# dashboard

slug: users-statistics-by-repository-group
title: Users Statistics by Repository Group
created: 2023-09-13 22:34:56.808422671+00:00
updated: 2023-09-13 22:34:56.808422742+00:00
uid: 48
data:
  {
    "gnetId": null,
    "panels": [
      {
        "decimals": 2,
        "fillGradient": 0,
        "spaceLength": 10,
        "aliasColors": {
          
        },
        "datasource": "psql",
        "pointradius": 5,
        "thresholds": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "type": "graph",
        "yaxes": [
          {
            "format": "short",
            "label": "Value",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "All",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "dashes": false,
        "lines": true,
        "options": {
          "dataLinks": []
        },
        "renderer": "flot",
        "seriesOverrides": [
          {
            "yaxis": 2,
            "alias": "All",
            "bars": false,
            "fill": 0,
            "lines": true,
            "linewidth": 1,
            "stack": false
          }
        ],
        "stack": true,
        "timeRegions": [],
        "title": "Users [[metric]] metric ([[repogroup_name]], [[period]])",
        "description": "Measures user [[metric]].",
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "legend": {
          "sideWidth": null,
          "sort": "avg",
          "rightSide": true,
          "total": false,
          "avg": true,
          "current": true,
          "hideEmpty": false,
          "hideZero": false,
          "max": true,
          "sortDesc": true,
          "alignAsTable": true,
          "min": true,
          "show": true,
          "values": true
        },
        "linewidth": 0,
        "links": [],
        "nullPointMode": "null as zero",
        "percentage": false,
        "targets": [
          {
            "format": "time_series",
            "orderByTime": "ASC",
            "policy": "default",
            "alias": "",
            "query": "",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${users:csv}\nfrom\n  suser_activity\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'user[[repogroup]][[metric]]'\norder by\n  time",
            "tags": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "sig_federation_d",
            "refId": "B",
            "resultFormat": "time_series"
          }
        ],
        "id": 1,
        "timeFrom": null,
        "timeShift": null,
        "transparent": true,
        "points": false,
        "fill": 6,
        "steppedLine": false,
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "dashLength": 10,
        "hiddenSeries": false,
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 17,
          "w": 24
        }
      },
      {
        "datasource": "psql",
        "lines": true,
        "transparent": true,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "targets": [
          {
            "dsType": "influxdb",
            "measurement": "sig_federation_d",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${users:csv}\nfrom\n  suser_activity\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'user[[repogroup]][[metric]]'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": [],
            "alias": "",
            "policy": "default",
            "format": "time_series",
            "query": "",
            "rawQuery": true,
            "refId": "B",
            "tags": []
          }
        ],
        "yaxes": [
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "max": "100",
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "fill": 6,
        "gridPos": {
          "y": 17,
          "h": 16,
          "w": 24,
          "x": 0
        },
        "links": [],
        "pointradius": 5,
        "spaceLength": 10,
        "steppedLine": false,
        "timeRegions": [],
        "timeShift": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "decimals": 2,
        "hiddenSeries": false,
        "id": 2,
        "type": "graph",
        "dashes": false,
        "description": "Measures user [[metric]].",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "bars": false,
        "fillGradient": 0,
        "options": {
          "dataLinks": []
        },
        "percentage": true,
        "points": false,
        "renderer": "flot",
        "thresholds": [],
        "timeFrom": null,
        "title": "Users [[metric]] metric ([[repogroup_name]], [[period]])",
        "legend": {
          "hideZero": false,
          "min": true,
          "rightSide": true,
          "total": false,
          "values": true,
          "avg": true,
          "current": true,
          "sideWidth": null,
          "sort": "avg",
          "alignAsTable": true,
          "max": true,
          "sortDesc": true,
          "hideEmpty": false,
          "show": true
        },
        "nullPointMode": "null as zero",
        "seriesOverrides": [],
        "stack": true,
        "linewidth": 0
      },
      {
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "datasource": null,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 33
        },
        "id": 11
      }
    ],
    "templating": {
      "list": [
        {
          "definition": "",
          "hide": 2,
          "index": -1,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "datasource": "psql",
          "name": "full_name",
          "tagValuesQuery": "",
          "type": "query",
          "allValue": null,
          "current": {
            "text": "Backstage",
            "value": "Backstage"
          },
          "includeAll": false,
          "label": null,
          "multi": false,
          "refresh": 1,
          "tags": [],
          "tagsQuery": "",
          "options": [],
          "skipUrlSync": true,
          "sort": 0,
          "useTags": false
        },
        {
          "type": "custom",
          "hide": 0,
          "multi": false,
          "options": [
            {
              "$$hashKey": "object:56",
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "$$hashKey": "object:57",
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "$$hashKey": "object:58",
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "value": "m",
              "$$hashKey": "object:59",
              "selected": false,
              "text": "Month"
            },
            {
              "value": "q",
              "$$hashKey": "object:60",
              "selected": false,
              "text": "Quarter"
            },
            {
              "$$hashKey": "object:61",
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,w,m,q,y",
          "skipUrlSync": false,
          "allValue": null,
          "current": {
            "selected": true,
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "includeAll": false,
          "label": "Period",
          "name": "period"
        },
        {
          "current": {
            "selected": true,
            "text": "Contributions",
            "value": "contributions"
          },
          "includeAll": false,
          "label": "Metric",
          "multi": false,
          "query": "activity,issues,prs,pushes,commits,contributions,comments,reviews",
          "skipUrlSync": false,
          "type": "custom",
          "allValue": null,
          "hide": 0,
          "name": "metric",
          "options": [
            {
              "selected": false,
              "text": "All activity",
              "value": "activity"
            },
            {
              "value": "issues",
              "selected": false,
              "text": "Issues created"
            },
            {
              "text": "Pull requests created",
              "value": "prs",
              "selected": false
            },
            {
              "selected": false,
              "text": "Reviews submitted",
              "value": "reviews"
            },
            {
              "selected": false,
              "text": "Commits made",
              "value": "commits"
            },
            {
              "selected": false,
              "text": "Pushes made",
              "value": "pushes"
            },
            {
              "selected": true,
              "text": "Contributions",
              "value": "contributions"
            },
            {
              "selected": false,
              "text": "Added comments",
              "value": "comments"
            }
          ]
        },
        {
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "includeAll": false,
          "index": -1,
          "label": "Repository group",
          "refresh": 1,
          "tags": [],
          "current": {
            "value": "All",
            "selected": true,
            "text": "All"
          },
          "hide": 0,
          "options": [],
          "regex": "",
          "type": "query",
          "useTags": false,
          "allValue": null,
          "definition": "",
          "multi": false,
          "name": "repogroup_name"
        },
        {
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "sort": 0,
          "useTags": false,
          "regex": "",
          "tags": [],
          "type": "query",
          "current": {
            "value": "all",
            "text": "all"
          },
          "hide": 2,
          "includeAll": false,
          "index": -1,
          "refresh": 1,
          "allValue": null,
          "datasource": "psql",
          "options": [],
          "skipUrlSync": true,
          "tagsQuery": "",
          "definition": "",
          "label": "",
          "multi": false,
          "name": "repogroup",
          "tagValuesQuery": ""
        },
        {
          "tagValuesQuery": "",
          "type": "query",
          "hide": 0,
          "multi": true,
          "skipUrlSync": false,
          "tags": [],
          "useTags": false,
          "current": {
            "text": "\"Timunas\" + \"twishasaraiya\" + \"lowjoel\" + \"mbruggmann\" + \"splisson\" + \"daniel-j-davis\" + \"johnson-jesse\" + \"ellieseastream\" + \"govindgoel\" + \"eduramirezh\" + \"ashokm\" + \"fidelcoria\" + \"FrailWords\" + \"ari-hacks\" + \"littlethoughts\" + \"kettanaito\" + \"jaime-talkdesk\" + \"alisinabh\" + \"nspirrello\" + \"jaygurnani\" + \"gsemaj\" + \"lelvisl\" + \"davidamitchell\" + \"andrewthauer\" + \"enricomeneghel\" + \"c00kiemon5ter\" + \"dufcrule\" + \"alandovskis\" + \"ldemailly\" + \"rtirserio\" + \"emmaindal\" + \"ZaradarDFDS\" + \"ilyamkin\" + \"amccall-eigt\" + \"dariddler\" + \"mijailr\" + \"iain-b\" + \"FARMAN581\" + \"HenrikStanley\" + \"Anshi19\" + \"daviddyball\" + \"bresmith-wayfair\" + \"larsnaesbye\" + \"jlind23\"",
            "value": [
              "\"Timunas\"",
              "\"twishasaraiya\"",
              "\"lowjoel\"",
              "\"mbruggmann\"",
              "\"splisson\"",
              "\"daniel-j-davis\"",
              "\"johnson-jesse\"",
              "\"ellieseastream\"",
              "\"govindgoel\"",
              "\"eduramirezh\"",
              "\"ashokm\"",
              "\"fidelcoria\"",
              "\"FrailWords\"",
              "\"ari-hacks\"",
              "\"littlethoughts\"",
              "\"kettanaito\"",
              "\"jaime-talkdesk\"",
              "\"alisinabh\"",
              "\"nspirrello\"",
              "\"jaygurnani\"",
              "\"gsemaj\"",
              "\"lelvisl\"",
              "\"davidamitchell\"",
              "\"andrewthauer\"",
              "\"enricomeneghel\"",
              "\"c00kiemon5ter\"",
              "\"dufcrule\"",
              "\"alandovskis\"",
              "\"ldemailly\"",
              "\"rtirserio\"",
              "\"emmaindal\"",
              "\"ZaradarDFDS\"",
              "\"ilyamkin\"",
              "\"amccall-eigt\"",
              "\"dariddler\"",
              "\"mijailr\"",
              "\"iain-b\"",
              "\"FARMAN581\"",
              "\"HenrikStanley\"",
              "\"Anshi19\"",
              "\"daviddyball\"",
              "\"bresmith-wayfair\"",
              "\"larsnaesbye\"",
              "\"jlind23\""
            ]
          },
          "datasource": "psql",
          "definition": "",
          "label": "Users",
          "options": [],
          "refresh": 1,
          "sort": 0,
          "allValue": "",
          "includeAll": true,
          "index": -1,
          "tagsQuery": "",
          "name": "users",
          "query": "select '\"' || users_name || '\"' from tusers order by time asc",
          "regex": ""
        },
        {
          "datasource": "psql",
          "hide": 2,
          "includeAll": false,
          "label": null,
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "definition": "",
          "options": [],
          "type": "query",
          "useTags": false,
          "query": "select value_s from gha_vars where name = 'users_stats_docs_html'",
          "allValue": null,
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eBackstage users stats dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/user_activity.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003euser_activity\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/backstage/users-stats.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows various user statistics.\u003c/li\u003e\n\u003cli\u003eContributor is defined as somebody who made a review, comment, commit, created PR or issue.\u003c/li\u003e\n\u003cli\u003eContribution is a review, comment, commit, issue or PR.\u003c/li\u003e\n\u003cli\u003eYou can select statistic from the metrics drop down (All activity means all events registered by GitHub).\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary statistics for all of them combined.\u003c/li\u003e\n\u003cli\u003eYou can select multiple users or all of them in a multi select dowp down.\u003c/li\u003e\n\u003cli\u003eWe are showing top 255 most active users in the drop-down list.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show data in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eBackstage users stats dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/user_activity.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003euser_activity\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/backstage/users-stats.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows various user statistics.\u003c/li\u003e\n\u003cli\u003eContributor is defined as somebody who made a review, comment, commit, created PR or issue.\u003c/li\u003e\n\u003cli\u003eContribution is a review, comment, commit, issue or PR.\u003c/li\u003e\n\u003cli\u003eYou can select statistic from the metrics drop down (All activity means all events registered by GitHub).\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary statistics for all of them combined.\u003c/li\u003e\n\u003cli\u003eYou can select multiple users or all of them in a multi select dowp down.\u003c/li\u003e\n\u003cli\u003eWe are showing top 255 most active users in the drop-down list.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show data in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "index": -1,
          "name": "docs",
          "refresh": 1,
          "sort": 0
        }
      ]
    },
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "uid": "48",
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "showIn": 0,
          "type": "dashboard",
          "$$hashKey": "object:28",
          "builtIn": 1,
          "enable": true,
          "name": "Annotations \u0026 Alerts",
          "datasource": "-- Grafana --",
          "hide": true,
          "limit": 100
        },
        {
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "titleColumn": "[[full_name]] release",
          "iconColor": "rgba(255, 96, 96, 1)",
          "tagsColumn": "title,description",
          "textColumn": "",
          "datasource": "psql",
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "type": "alert",
          "$$hashKey": "object:29",
          "enable": true,
          "hide": false,
          "limit": 100
        }
      ]
    },
    "editable": true,
    "graphTooltip": 0,
    "style": "dark",
    "timezone": "",
    "variables": {
      "list": []
    },
    "id": 39,
    "iteration": 1600100607065,
    "links": [],
    "schemaVersion": 22,
    "tags": [
      "dashboard",
      "cdk8s"
    ],
    "time": {
      "from": "now-6M",
      "to": "now"
    },
    "title": "Users Statistics by Repository Group",
    "version": 3
  }


# alert_configuration

configuration_version: v1
configuration_hash: 8c409350c88d78d2ee938448449e628d
alertmanager_configuration:
  {
  	"alertmanager_config": {
  		"route": {
  			"receiver": "grafana-default-email"
  		},
  		"receivers": [{
  			"name": "grafana-default-email",
  			"grafana_managed_receiver_configs": [{
  				"uid": "",
  				"name": "email receiver",
  				"type": "email",
  				"isDefault": true,
  				"settings": {
  					"addresses": "<example@email.com>"
  				}
  			}]
  		}]
  	}
  }


