# dashboard

slug: github-stats-by-repository-group
title: Github Stats by Repository Group
created: 2024-07-12 09:56:24.335223602+00:00
updated: 2024-07-12 09:56:24.335223682+00:00
uid: 48
data:
  {
    "id": 139,
    "refresh": false,
    "style": "dark",
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        },
        {
          "hide": false,
          "limit": 100,
          "name": "Releases",
          "tagsColumn": "title,description",
          "type": "alert",
          "titleColumn": "[[full_name]] Release",
          "datasource": "psql",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "query": "select title, description from annotations WHERE $timeFilter order by time asc",
          "rawQuery": "select extract(epoch from time) as time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "textColumn": ""
        }
      ]
    },
    "editable": true,
    "title": "Github Stats by Repository Group",
    "version": 24,
    "graphTooltip": 0,
    "links": [],
    "templating": {
      "list": [
        {
          "options": [
            {
              "selected": false,
              "text": "Hour",
              "value": "h"
            },
            {
              "selected": true,
              "text": "24 Hours MA",
              "value": "h24"
            },
            {
              "text": "Day",
              "value": "d",
              "selected": false
            },
            {
              "selected": false,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "text": "Month",
              "value": "m",
              "selected": false
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "allValue": null,
          "current": {
            "tags": [],
            "text": "24 Hours MA",
            "value": "h24"
          },
          "hide": 0,
          "includeAll": false,
          "label": "Period",
          "multi": false,
          "name": "period",
          "query": "h,h24,d,d7,w,m,q,y",
          "skipUrlSync": false,
          "type": "custom"
        },
        {
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "datasource": "psql",
          "hide": 0,
          "includeAll": true,
          "query": "select '\"' || repo_group_name || '\"' from trepo_groups order by 1",
          "refresh": 1,
          "skipUrlSync": false,
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "regex": "",
          "tagsQuery": "",
          "useTags": false,
          "multi": true,
          "label": "Repository group",
          "name": "repogroups",
          "options": [],
          "tags": [],
          "allValue": ""
        },
        {
          "refresh": 1,
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "multi": false,
          "name": "full_name",
          "options": [],
          "datasource": "psql",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "label": null,
          "skipUrlSync": true,
          "regex": "",
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "hide": 2,
          "includeAll": false
        },
        {
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "options": [],
          "tags": [],
          "includeAll": false,
          "refresh": 1,
          "regex": "",
          "multi": false,
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'gh_stats_[[stat]]_docs_html'",
          "sort": 0,
          "type": "query",
          "current": {
            "text": "\u003ch1 id=\"kubernetes-reviewers-dashboard\"\u003eKubernetes reviewers dashboard (part of GitHub stats dashboard)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRepository groups version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/github_stats_by_repo_groups.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRepositories version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/github_stats_by_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInfluxDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003egithub_stats_by_repo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/github-stats-by-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (repository groups version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/github-stats-by-repository.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (repositories version).\u003c/li\u003e\n\u003cli\u003eDeveloper \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/dashboards/kubernetes/reviewers_devel.md\" target=\"_blank\"\u003edocumentation\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis documentations only refers to \u003ccode\u003eReviewers\u003c/code\u003e statistic.\n\u003cli\u003eThis dashboard shows the number of reviewers for a selected repository or repository group.\u003c/li\u003e\n\u003cli\u003eYou can select multiple repositories or repository groups to stack them.\u003c/li\u003e\n\u003cli\u003eReviewer is defined as someone who added pull request review comment(s) or added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or added \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\u003c/li\u003e\n\u003cli\u003eYou can filter by repository or repository group and period.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dahsboard will count distinct users who made a review in these 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 when calculating number of reviewers, 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=\"kubernetes-reviewers-dashboard\"\u003eKubernetes reviewers dashboard (part of GitHub stats dashboard)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRepository groups version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/github_stats_by_repo_groups.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRepositories version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/github_stats_by_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInfluxDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003egithub_stats_by_repo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/github-stats-by-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (repository groups version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/github-stats-by-repository.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (repositories version).\u003c/li\u003e\n\u003cli\u003eDeveloper \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/dashboards/kubernetes/reviewers_devel.md\" target=\"_blank\"\u003edocumentation\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis documentations only refers to \u003ccode\u003eReviewers\u003c/code\u003e statistic.\n\u003cli\u003eThis dashboard shows the number of reviewers for a selected repository or repository group.\u003c/li\u003e\n\u003cli\u003eYou can select multiple repositories or repository groups to stack them.\u003c/li\u003e\n\u003cli\u003eReviewer is defined as someone who added pull request review comment(s) or added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or added \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\u003c/li\u003e\n\u003cli\u003eYou can filter by repository or repository group and period.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dahsboard will count distinct users who made a review in these 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 when calculating number of reviewers, 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"
          },
          "hide": 2,
          "label": null
        },
        {
          "type": "custom",
          "allValue": null,
          "current": {
            "value": "reviewers",
            "tags": [],
            "text": "Reviewers"
          },
          "hide": 0,
          "name": "stat",
          "options": [
            {
              "selected": false,
              "text": "Commits",
              "value": "commits"
            },
            {
              "selected": false,
              "text": "Issues closed",
              "value": "iclosed"
            },
            {
              "selected": false,
              "text": "Issues opened",
              "value": "iopened"
            },
            {
              "value": "propened",
              "selected": false,
              "text": "PRs opened"
            },
            {
              "selected": false,
              "text": "PRs merged",
              "value": "prmerged"
            },
            {
              "selected": false,
              "text": "PRs closed (but not merged)",
              "value": "prclosed"
            },
            {
              "selected": false,
              "text": "PR Comments",
              "value": "prcomments"
            },
            {
              "selected": false,
              "text": "PR commenters",
              "value": "prcommenters"
            },
            {
              "selected": false,
              "text": "Issue comments",
              "value": "icomments"
            },
            {
              "selected": false,
              "text": "Issue commenters",
              "value": "icommenters"
            },
            {
              "value": "reviewers",
              "selected": true,
              "text": "Reviewers"
            }
          ],
          "query": "commits,iclosed,iopened,propened,prmerged,prclosed,prcomments,prcommenters,icomments,icommenters,reviewers",
          "skipUrlSync": false,
          "includeAll": false,
          "label": "Statistic",
          "multi": false
        }
      ]
    },
    "time": {
      "from": "now-30d",
      "to": "now"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "panels": [
      {
        "stack": true,
        "points": false,
        "seriesOverrides": [],
        "type": "graph",
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 21,
          "w": 24
        },
        "lines": false,
        "targets": [
          {
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${repogroups:csv}\nfrom\n  sgh_stats_rgrp\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'gstat_rgrp_[[stat]]'\norder by\n  time",
            "groupBy": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "policy": "default",
            "refId": "A",
            "format": "time_series",
            "measurement": "notused",
            "query": "",
            "resultFormat": "time_series"
          }
        ],
        "timeFrom": null,
        "transparent": true,
        "id": 2,
        "legend": {
          "sortDesc": true,
          "total": true,
          "values": true,
          "max": true,
          "show": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "sort": "total",
          "alignAsTable": true,
          "avg": true
        },
        "datasource": "psql",
        "aliasColors": {
          
        },
        "dashes": false,
        "links": [],
        "pointradius": 5,
        "dashLength": 10,
        "description": "[[full_name]] [[stat]] in given repository group",
        "renderer": "flot",
        "steppedLine": true,
        "title": "[[full_name]] [[stat]] in repository groups ([[repogroups]], [[period]])",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "decimals": null,
        "nullPointMode": "null as zero",
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Statistic",
            "logBase": 1
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "linewidth": 0,
        "spaceLength": 10,
        "percentage": false,
        "thresholds": [],
        "timeShift": null,
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "bars": true,
        "fill": 3
      },
      {
        "nullPointMode": "null as zero",
        "thresholds": [],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "aliasColors": {
          
        },
        "decimals": null,
        "timeShift": null,
        "title": "[[full_name]] [[stat]] in repository groups ([[repogroups]], [[period]])",
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "Statistic",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": false,
            "format": "short"
          }
        ],
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "bars": false,
        "linewidth": 1,
        "renderer": "flot",
        "seriesOverrides": [],
        "stack": false,
        "description": "[[full_name]] [[stat]] in given repository group",
        "percentage": false,
        "points": false,
        "transparent": true,
        "dashLength": 10,
        "lines": true,
        "timeFrom": null,
        "dashes": false,
        "type": "graph",
        "datasource": "psql",
        "legend": {
          "rightSide": true,
          "values": true,
          "sortDesc": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "max": true,
          "min": true,
          "show": true,
          "sort": "total",
          "total": true
        },
        "pointradius": 5,
        "spaceLength": 10,
        "steppedLine": false,
        "targets": [
          {
            "resultFormat": "time_series",
            "format": "time_series",
            "policy": "default",
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "orderByTime": "ASC",
            "query": "SELECT /^[[repogroups]]$/ FROM \"gh_stats_repo_groups_[[stat]]_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${repogroups:csv}\nfrom\n  sgh_stats_rgrp\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'gstat_rgrp_[[stat]]'\norder by\n  time",
            "tags": [],
            "alias": "",
            "measurement": "notused",
            "rawQuery": true
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 21,
          "h": 21
        },
        "id": 4,
        "links": [],
        "fill": 3
      },
      {
        "renderer": "flot",
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "dashes": false,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "legend": {
          "avg": true,
          "current": true,
          "min": true,
          "show": true,
          "alignAsTable": true,
          "max": true,
          "rightSide": true,
          "sort": "total",
          "sortDesc": true,
          "total": true,
          "values": true
        },
        "steppedLine": true,
        "timeFrom": null,
        "dashLength": 10,
        "id": 3,
        "nullPointMode": "null as zero",
        "percentage": true,
        "stack": true,
        "thresholds": [],
        "datasource": "psql",
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "Statistic",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "bars": true,
        "description": "[[full_name]] [[stat]] in given repository group",
        "linewidth": 0,
        "targets": [
          {
            "tags": [],
            "format": "time_series",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${repogroups:csv}\nfrom\n  sgh_stats_rgrp\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'gstat_rgrp_[[stat]]'\norder by\n  time",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "policy": "default",
            "measurement": "notused",
            "query": "SELECT /^[[repogroups]]$/ FROM \"gh_stats_repo_groups_[[stat]]_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "resultFormat": "time_series"
          }
        ],
        "title": "[[full_name]] [[stat]] in repository groups ([[repogroups]], [[period]])",
        "transparent": true,
        "fill": 3,
        "lines": false,
        "seriesOverrides": [],
        "timeShift": null,
        "pointradius": 5,
        "points": false,
        "type": "graph",
        "decimals": null,
        "links": [],
        "spaceLength": 10
      },
      {
        "id": 1,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 16,
          "w": 24,
          "x": 0,
          "y": 63
        }
      }
    ],
    "schemaVersion": 16,
    "timezone": "",
    "uid": "48",
    "gnetId": null,
    "tags": [
      "dashboard",
      "kubernetes",
      "repogroups"
    ]
  }


slug: github-stats-by-repository
title: Github Stats by Repository
created: 2024-07-12 09:56:24.340100848+00:00
updated: 2024-07-12 09:56:24.340100918+00:00
uid: 49
data:
  {
    "uid": "49",
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        },
        {
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] Release",
          "datasource": "psql",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "type": "alert",
          "enable": true,
          "limit": 100,
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "textColumn": ""
        }
      ]
    },
    "gnetId": null,
    "panels": [
      {
        "datasource": "psql",
        "legend": {
          "max": true,
          "min": true,
          "show": true,
          "sort": "total",
          "total": true,
          "alignAsTable": true,
          "current": true,
          "rightSide": true,
          "sortDesc": true,
          "values": true,
          "avg": true
        },
        "links": [],
        "nullPointMode": "null as zero",
        "bars": true,
        "tooltip": {
          "sort": 2,
          "value_type": "individual",
          "shared": true
        },
        "points": false,
        "renderer": "flot",
        "stack": true,
        "type": "graph",
        "lines": false,
        "targets": [
          {
            "dsType": "influxdb",
            "query": "",
            "rawQuery": true,
            "policy": "default",
            "groupBy": [],
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${repos:csv}\nfrom\n  sgh_stats_r\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'gstat_r_[[stat]]'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "format": "time_series",
            "measurement": "notused",
            "refId": "A",
            "tags": []
          }
        ],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "aliasColors": {
          
        },
        "dashes": false,
        "title": "[[full_name]] [[stat]] in repository ([[repos]], [[period]])",
        "transparent": true,
        "fill": 3,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "id": 2,
        "pointradius": 5,
        "description": "[[full_name]] [[stat]] in given repositories",
        "linewidth": 0,
        "seriesOverrides": [],
        "spaceLength": 10,
        "steppedLine": true,
        "thresholds": [],
        "timeShift": null,
        "dashLength": 10,
        "decimals": null,
        "percentage": false,
        "timeFrom": null,
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "Statistic",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "bars": false,
        "steppedLine": false,
        "targets": [
          {
            "groupBy": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "format": "time_series",
            "orderByTime": "ASC",
            "tags": [],
            "alias": "",
            "policy": "default",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${repos:csv}\nfrom\n  sgh_stats_r\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'gstat_r_[[stat]]'\norder by\n  time",
            "refId": "A",
            "measurement": "notused",
            "query": "SELECT /^[[repos]]$/ FROM \"gh_stats_repos_[[stat]]_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "dsType": "influxdb"
          }
        ],
        "timeFrom": null,
        "transparent": true,
        "renderer": "flot",
        "seriesOverrides": [],
        "stack": false,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "fill": 3,
        "legend": {
          "rightSide": true,
          "sort": "total",
          "values": true,
          "avg": true,
          "current": true,
          "max": true,
          "min": true,
          "alignAsTable": true,
          "show": true,
          "sortDesc": true,
          "total": true
        },
        "dashes": false,
        "nullPointMode": "null as zero",
        "thresholds": [],
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "id": 4,
        "lines": true,
        "links": [],
        "pointradius": 5,
        "points": false,
        "spaceLength": 10,
        "timeShift": null,
        "type": "graph",
        "decimals": null,
        "linewidth": 1,
        "datasource": "psql",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 21,
          "h": 21
        },
        "percentage": false,
        "title": "[[full_name]] [[stat]] in repositories ([[repos]], [[period]])",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "dashLength": 10,
        "description": "[[full_name]] [[stat]] in given reposities",
        "yaxes": [
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Statistic"
          },
          {
            "show": false,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ]
      },
      {
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "bars": true,
        "dashes": false,
        "datasource": "psql",
        "decimals": null,
        "lines": false,
        "timeShift": null,
        "timeFrom": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "dashLength": 10,
        "description": "[[full_name]] [[stat]] in given repositories",
        "gridPos": {
          "x": 0,
          "y": 42,
          "h": 21,
          "w": 24
        },
        "legend": {
          "sort": "total",
          "sortDesc": true,
          "total": true,
          "values": true,
          "avg": true,
          "current": true,
          "min": true,
          "show": true,
          "alignAsTable": true,
          "max": true,
          "rightSide": true
        },
        "steppedLine": true,
        "thresholds": [],
        "transparent": true,
        "fill": 3,
        "seriesOverrides": [],
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Statistic",
            "logBase": 1,
            "max": null
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "renderer": "flot",
        "spaceLength": 10,
        "stack": true,
        "linewidth": 0,
        "nullPointMode": "null as zero",
        "percentage": true,
        "aliasColors": {
          
        },
        "id": 3,
        "points": false,
        "type": "graph",
        "targets": [
          {
            "groupBy": [],
            "query": "SELECT /^[[repos]]$/ FROM \"gh_stats_repos_[[stat]]_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "dsType": "influxdb",
            "format": "time_series",
            "measurement": "notused",
            "orderByTime": "ASC",
            "refId": "A",
            "resultFormat": "time_series",
            "policy": "default",
            "tags": [],
            "alias": "",
            "rawSql": "select\n  time,\n  ${repos:csv}\nfrom\n  sgh_stats_r\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'gstat_r_[[stat]]'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "title": "[[full_name]] [[stat]] in repositories ([[repos]], [[period]])",
        "links": [],
        "pointradius": 5,
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 63,
          "h": 14
        },
        "id": 1,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "title": "Github Stats by Repository",
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "repos"
    ],
    "time": {
      "from": "now-30d",
      "to": "now"
    },
    "graphTooltip": 0,
    "id": 140,
    "refresh": false,
    "schemaVersion": 16,
    "editable": true,
    "templating": {
      "list": [
        {
          "includeAll": false,
          "label": "Period",
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Hour",
              "value": "h"
            },
            {
              "value": "h24",
              "selected": true,
              "text": "24 Hours MA"
            },
            {
              "text": "Day",
              "value": "d",
              "selected": false
            },
            {
              "text": "7 Days MA",
              "value": "d7",
              "selected": false
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "text": "Quarter",
              "value": "q",
              "selected": false
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "h,h24,d,d7,w,m,q,y",
          "skipUrlSync": false,
          "type": "custom",
          "current": {
            "tags": [],
            "text": "24 Hours MA",
            "value": "h24"
          },
          "hide": 0,
          "multi": false,
          "allValue": null
        },
        {
          "tagValuesQuery": "",
          "skipUrlSync": false,
          "sort": 0,
          "type": "query",
          "allValue": "",
          "hide": 0,
          "multi": true,
          "name": "repos",
          "datasource": "psql",
          "includeAll": true,
          "label": "Repository",
          "regex": "",
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "options": [],
          "query": "select '\"' || top_repo_names_name || '\"' from ttop_repo_names order by 1",
          "refresh": 1
        },
        {
          "useTags": false,
          "allValue": null,
          "name": "full_name",
          "label": null,
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "datasource": "psql",
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagsQuery": "",
          "type": "query",
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "options": [],
          "sort": 0,
          "includeAll": false,
          "refresh": 1
        },
        {
          "allValue": null,
          "current": {
            "text": "\u003ch1 id=\"kubernetes-reviewers-dashboard\"\u003eKubernetes reviewers dashboard (part of GitHub stats dashboard)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRepository groups version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/github_stats_by_repo_groups.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRepositories version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/github_stats_by_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInfluxDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003egithub_stats_by_repo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/github-stats-by-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (repository groups version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/github-stats-by-repository.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (repositories version).\u003c/li\u003e\n\u003cli\u003eDeveloper \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/dashboards/kubernetes/reviewers_devel.md\" target=\"_blank\"\u003edocumentation\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis documentations only refers to \u003ccode\u003eReviewers\u003c/code\u003e statistic.\n\u003cli\u003eThis dashboard shows the number of reviewers for a selected repository or repository group.\u003c/li\u003e\n\u003cli\u003eYou can select multiple repositories or repository groups to stack them.\u003c/li\u003e\n\u003cli\u003eReviewer is defined as someone who added pull request review comment(s) or added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or added \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\u003c/li\u003e\n\u003cli\u003eYou can filter by repository or repository group and period.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dahsboard will count distinct users who made a review in these 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 when calculating number of reviewers, 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=\"kubernetes-reviewers-dashboard\"\u003eKubernetes reviewers dashboard (part of GitHub stats dashboard)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRepository groups version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/github_stats_by_repo_groups.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRepositories version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/github_stats_by_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eInfluxDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003egithub_stats_by_repo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/github-stats-by-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (repository groups version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/github-stats-by-repository.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (repositories version).\u003c/li\u003e\n\u003cli\u003eDeveloper \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/dashboards/kubernetes/reviewers_devel.md\" target=\"_blank\"\u003edocumentation\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis documentations only refers to \u003ccode\u003eReviewers\u003c/code\u003e statistic.\n\u003cli\u003eThis dashboard shows the number of reviewers for a selected repository or repository group.\u003c/li\u003e\n\u003cli\u003eYou can select multiple repositories or repository groups to stack them.\u003c/li\u003e\n\u003cli\u003eReviewer is defined as someone who added pull request review comment(s) or added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or added \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\u003c/li\u003e\n\u003cli\u003eYou can filter by repository or repository group and period.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dahsboard will count distinct users who made a review in these 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 when calculating number of reviewers, 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"
          },
          "includeAll": false,
          "tagsQuery": "",
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'gh_stats_[[stat]]_docs_html'",
          "skipUrlSync": true,
          "type": "query",
          "label": null,
          "regex": "",
          "useTags": false,
          "tagValuesQuery": "",
          "tags": [],
          "datasource": "psql",
          "hide": 2,
          "multi": false,
          "options": [],
          "refresh": 1,
          "sort": 0
        },
        {
          "query": "commits,iclosed,iopened,propened,prmerged,prclosed,prcomments,prcommenters,icomments,icommenters,reviewers",
          "skipUrlSync": false,
          "type": "custom",
          "allValue": null,
          "includeAll": false,
          "options": [
            {
              "selected": false,
              "text": "Commits",
              "value": "commits"
            },
            {
              "selected": false,
              "text": "Issues closed",
              "value": "iclosed"
            },
            {
              "selected": false,
              "text": "Issues opened",
              "value": "iopened"
            },
            {
              "selected": false,
              "text": "PRs opened",
              "value": "propened"
            },
            {
              "value": "prmerged",
              "selected": false,
              "text": "PRs merged"
            },
            {
              "selected": false,
              "text": "PRs closed (but not merged)",
              "value": "prclosed"
            },
            {
              "value": "prcomments",
              "selected": false,
              "text": "PR Comments"
            },
            {
              "selected": false,
              "text": "PR commenters",
              "value": "prcommenters"
            },
            {
              "selected": false,
              "text": "Issue comments",
              "value": "icomments"
            },
            {
              "selected": false,
              "text": "Issue commenters",
              "value": "icommenters"
            },
            {
              "selected": true,
              "text": "Reviewers",
              "value": "reviewers"
            }
          ],
          "multi": false,
          "name": "stat",
          "current": {
            "tags": [],
            "text": "Reviewers",
            "value": "reviewers"
          },
          "hide": 0,
          "label": "Statistic"
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "",
    "links": [],
    "version": 14
  }


slug: inactive-issues-by-sig-and-repository
title: Inactive Issues by SIG and repository
created: 2024-07-12 09:56:24.345053917+00:00
updated: 2024-07-12 09:56:24.345053988+00:00
uid: 77
data:
  {
    "tags": [
      "SIGs",
      "issues",
      "kubernetes",
      "dashboard",
      "repos"
    ],
    "graphTooltip": 0,
    "id": 17,
    "links": [],
    "style": "dark",
    "timezone": "",
    "title": "Inactive Issues by SIG and repository",
    "uid": "77",
    "annotations": {
      "list": [
        {
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts"
        },
        {
          "enable": true,
          "limit": 100,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "tagsColumn": "title,description",
          "textColumn": "",
          "datasource": "psql",
          "titleColumn": "[[full_name]] release",
          "iconColor": "rgba(255, 96, 96, 1)",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "type": "alert",
          "hide": false
        }
      ]
    },
    "editable": true,
    "iteration": 1621334884191,
    "schemaVersion": 27,
    "gnetId": null,
    "panels": [
      {
        "points": false,
        "renderer": "flot",
        "thresholds": [],
        "timeFrom": null,
        "tooltip": {
          "sort": 2,
          "value_type": "individual",
          "shared": true
        },
        "transparent": true,
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "legend": {
          "max": true,
          "sort": "avg",
          "sortDesc": true,
          "values": true,
          "current": true,
          "avg": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "total": false,
          "alignAsTable": true
        },
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "fillGradient": 0,
        "lines": true,
        "links": [],
        "pointradius": 5,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "fill": 6,
        "id": 12,
        "percentage": false,
        "spaceLength": 10,
        "targets": [
          {
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "tags": [],
            "timeColumn": "time",
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_issues_by_sig_repos\nwhere\n  $__timeFilter(time)\n  and period = 'd'\n  and series = 'inactive_issues_by_sig_repos[[repo]]d90'\norder by\n  time",
            "group": [],
            "metricColumn": "none",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": [],
            "measurement": "notused",
            "policy": "default",
            "rawQuery": true,
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "title": "Inactive Issues by SIG for [[repo_name]] repository (inactive for 90 days or more)",
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "steppedLine": false,
        "timeShift": null,
        "linewidth": 0,
        "hiddenSeries": false,
        "options": {
          "alertThreshold": true
        },
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "datasource": "psql",
        "interval": "",
        "seriesOverrides": [],
        "timeRegions": [],
        "type": "graph",
        "bars": false,
        "dashes": false,
        "description": "Issues by SIG that were inactive for 90 or more days at s given point in time",
        "stack": true,
        "dashLength": 10,
        "decimals": 0,
        "nullPointMode": "null as zero",
        "pluginVersion": "7.5.6",
        "aliasColors": {
          
        }
      },
      {
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "bars": false,
        "dashLength": 10,
        "datasource": "psql",
        "linewidth": 0,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "type": "graph",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "gridPos": {
          "x": 0,
          "y": 21,
          "h": 21,
          "w": 24
        },
        "steppedLine": false,
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "lines": true,
        "links": [],
        "percentage": false,
        "renderer": "flot",
        "spaceLength": 10,
        "targets": [
          {
            "alias": "",
            "dsType": "influxdb",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_issues_by_sig_repos\nwhere\n  $__timeFilter(time)\n  and period = 'd'\n  and series = 'inactive_issues_by_sig_repos[[repo]]d30'\norder by\n  time",
            "refId": "A",
            "tags": [],
            "rawQuery": true,
            "resultFormat": "time_series",
            "timeColumn": "time",
            "format": "time_series",
            "group": [],
            "measurement": "notused",
            "orderByTime": "ASC",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "groupBy": [],
            "metricColumn": "none",
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter"
          }
        ],
        "decimals": 0,
        "fillGradient": 0,
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "max": true,
          "rightSide": true,
          "sort": "avg",
          "sortDesc": true,
          "values": true,
          "current": true,
          "min": true,
          "show": true,
          "total": false
        },
        "pointradius": 5,
        "thresholds": [],
        "transparent": true,
        "description": "Issues by SIG that were inactive for 30 or more days at s given point in time",
        "pluginVersion": "7.5.6",
        "stack": true,
        "timeRegions": [],
        "title": "Inactive Issues by SIG for [[repo_name]] repository (inactive for 30 days or more)",
        "dashes": false,
        "fill": 6,
        "hiddenSeries": false,
        "nullPointMode": "null as zero",
        "id": 11,
        "points": false,
        "aliasColors": {
          
        },
        "interval": "",
        "options": {
          "alertThreshold": true
        },
        "seriesOverrides": [],
        "timeFrom": null,
        "timeShift": null
      },
      {
        "id": 2,
        "interval": "",
        "linewidth": 0,
        "steppedLine": false,
        "aliasColors": {
          
        },
        "decimals": 0,
        "fillGradient": 0,
        "lines": true,
        "spaceLength": 10,
        "title": "Inactive Issues by SIG for [[repo_name]] repository (inactive for 2 weeks or more)",
        "datasource": "psql",
        "legend": {
          "min": true,
          "rightSide": true,
          "total": false,
          "alignAsTable": true,
          "max": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "values": true,
          "avg": true,
          "current": true
        },
        "pointradius": 5,
        "points": false,
        "renderer": "flot",
        "targets": [
          {
            "rawQuery": true,
            "tags": [],
            "timeColumn": "time",
            "orderByTime": "ASC",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_issues_by_sig_repos\nwhere\n  $__timeFilter(time)\n  and period = 'd'\n  and series = 'inactive_issues_by_sig_repos[[repo]]w2'\norder by\n  time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "policy": "default",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "refId": "A",
            "groupBy": [],
            "measurement": "notused",
            "metricColumn": "none",
            "format": "time_series",
            "group": []
          }
        ],
        "type": "graph",
        "timeShift": null,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "bars": false,
        "dashLength": 10,
        "hiddenSeries": false,
        "options": {
          "alertThreshold": true
        },
        "percentage": false,
        "timeFrom": null,
        "stack": true,
        "timeRegions": [],
        "description": "Issues by SIG that were inactive for 2 or more weeks at s given point in time",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "links": [],
        "nullPointMode": "null as zero",
        "pluginVersion": "7.5.6",
        "seriesOverrides": [],
        "transparent": true,
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "thresholds": [],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "dashes": false,
        "fill": 6,
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 63
        },
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 10,
        "pluginVersion": "7.5.6"
      }
    ],
    "refresh": false,
    "version": 2,
    "templating": {
      "list": [
        {
          "description": null,
          "hide": 0,
          "options": [],
          "query": "select '\"' || sig_mentions_labels_name || '\"' from tsig_mentions_labels order by 1",
          "skipUrlSync": false,
          "allValue": "",
          "current": {
            "selected": false,
            "text": [
              "All"
            ],
            "value": [
              "$__all"
            ]
          },
          "definition": "select '\"' || sig_mentions_labels_name || '\"' from tsig_mentions_labels order by 1",
          "error": null,
          "name": "sigs",
          "tagsQuery": "",
          "multi": true,
          "refresh": 1,
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "datasource": "psql",
          "includeAll": true,
          "label": "SIG",
          "regex": "",
          "sort": 0,
          "type": "query"
        },
        {
          "allValue": null,
          "includeAll": false,
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "definition": "",
          "error": null,
          "hide": 2,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "tagValuesQuery": "",
          "description": null,
          "label": null,
          "datasource": "psql",
          "name": "full_name",
          "options": [],
          "regex": "",
          "tags": [],
          "type": "query",
          "useTags": false
        },
        {
          "definition": "select value_s from gha_vars where name = 'inactive_issues_by_sig_docs_html'",
          "label": null,
          "multi": false,
          "regex": "",
          "allValue": null,
          "datasource": "psql",
          "includeAll": false,
          "sort": 0,
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Inactive issues by SIG (and repository) 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/kubernetes/inactive_issues_by_sig.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eMetric (repositories version) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/inactive_issues_by_sig_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003einactive_issues_by_sig(_repos)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-issues-by-sig.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGrafana dashboard (repositories version) \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-issues-by-sig-and-repository.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 the number of issues opened by SIG that were inactive for longer than 14, 30 and 90 days.\u003c/li\u003e\n\u003cli\u003eInactive means issues that are open and have no activity other than author and bots more than specified amount of time at given point in time, so for example data for 2 weeks ago show issues that were inactive for more than 14 days 2 weeks ago (now they may be inactive for 1 month or some activity happened earlier than 14 days ago).\u003c/li\u003e\n\u003cli\u003eIssues belongs to SIG by using \u003ccode\u003esig/*\u003c/code\u003e labels. List of SIGs to display in drop-down comes from all \u003ccode\u003esig/*\u003c/code\u003e labels.\u003c/li\u003e\n\u003cli\u003eIn repositories version you can select repository to per single repository statistics. Note that not all SIGs may be present in may repos, so you need to select a sub-set or a single one from SIG drop down.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Inactive issues by SIG (and repository) 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/kubernetes/inactive_issues_by_sig.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eMetric (repositories version) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/inactive_issues_by_sig_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003einactive_issues_by_sig(_repos)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-issues-by-sig.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGrafana dashboard (repositories version) \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-issues-by-sig-and-repository.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 the number of issues opened by SIG that were inactive for longer than 14, 30 and 90 days.\u003c/li\u003e\n\u003cli\u003eInactive means issues that are open and have no activity other than author and bots more than specified amount of time at given point in time, so for example data for 2 weeks ago show issues that were inactive for more than 14 days 2 weeks ago (now they may be inactive for 1 month or some activity happened earlier than 14 days ago).\u003c/li\u003e\n\u003cli\u003eIssues belongs to SIG by using \u003ccode\u003esig/*\u003c/code\u003e labels. List of SIGs to display in drop-down comes from all \u003ccode\u003esig/*\u003c/code\u003e labels.\u003c/li\u003e\n\u003cli\u003eIn repositories version you can select repository to per single repository statistics. Note that not all SIGs may be present in may repos, so you need to select a sub-set or a single one from SIG drop down.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "error": null,
          "hide": 2,
          "name": "docs",
          "options": [],
          "query": "select value_s from gha_vars where name = 'inactive_issues_by_sig_docs_html'",
          "skipUrlSync": true,
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "description": null,
          "refresh": 1,
          "type": "query"
        },
        {
          "datasource": null,
          "error": null,
          "includeAll": false,
          "tagValuesQuery": "",
          "refresh": 1,
          "regex": "",
          "type": "query",
          "allValue": null,
          "current": {
            "value": "kubernetes/kubernetes",
            "selected": false,
            "text": "kubernetes/kubernetes"
          },
          "definition": "select repo_name from trepos order by 1",
          "hide": 0,
          "multi": false,
          "options": [],
          "skipUrlSync": false,
          "useTags": false,
          "description": null,
          "label": "Repository",
          "name": "repo_name",
          "query": "select repo_name from trepos order by 1",
          "sort": 0,
          "tags": [],
          "tagsQuery": ""
        },
        {
          "type": "query",
          "allValue": null,
          "description": null,
          "options": [],
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "datasource": null,
          "label": null,
          "name": "repo",
          "useTags": false,
          "hide": 2,
          "includeAll": false,
          "refresh": 1,
          "regex": "",
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "error": null,
          "multi": false,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "tagsQuery": ""
        }
      ]
    },
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    }
  }


slug: inactive-issues-by-sig
title: Inactive Issues by SIG
created: 2024-07-12 09:56:24.351316909+00:00
updated: 2024-07-12 09:56:24.351316989+00:00
uid: 73
data:
  {
    "timezone": "",
    "style": "dark",
    "graphTooltip": 0,
    "refresh": false,
    "tags": [
      "SIGs",
      "issues",
      "kubernetes",
      "dashboard"
    ],
    "templating": {
      "list": [
        {
          "includeAll": true,
          "multi": true,
          "options": [],
          "tagValuesQuery": "",
          "query": "select '\"' || sig_mentions_labels_name || '\"' from tsig_mentions_labels order by 1",
          "refresh": 1,
          "sort": 0,
          "tagsQuery": "",
          "datasource": "psql",
          "hide": 0,
          "label": "SIG",
          "name": "sigs",
          "type": "query",
          "useTags": false,
          "skipUrlSync": false,
          "tags": [],
          "allValue": "",
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "definition": "",
          "regex": ""
        },
        {
          "skipUrlSync": true,
          "sort": 0,
          "datasource": "psql",
          "definition": "",
          "includeAll": false,
          "name": "full_name",
          "refresh": 1,
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "regex": "",
          "type": "query",
          "useTags": false,
          "tags": [],
          "tagsQuery": "",
          "allValue": null,
          "hide": 2,
          "multi": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "label": null,
          "tagValuesQuery": ""
        },
        {
          "allValue": null,
          "label": null,
          "name": "docs",
          "tags": [],
          "type": "query",
          "useTags": false,
          "definition": "select value_s from gha_vars where name = 'inactive_issues_by_sig_docs_html'",
          "query": "select value_s from gha_vars where name = 'inactive_issues_by_sig_docs_html'",
          "sort": 0,
          "current": {
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Inactive issues by SIG 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/kubernetes/inactive_issues_by_sig.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003einactive_issues_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-issues-by-sig.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 the number of issues opened by SIG that were inactive for longer than 14, 30 and 90 days.\u003c/li\u003e\n\u003cli\u003eInactive means issues that are open and have no activity other than author and bots more than specified amount of time at given point in time, so for example data for 2 weeks ago show issues that were inactive for more than 14 days 2 weeks ago (now they may be inactive for 1 month or some activity happened earlier than 14 days ago).\u003c/li\u003e\n\u003cli\u003eIssues belongs to SIG by using \u003ccode\u003esig/*\u003c/code\u003e labels. List of SIGs to display in drop-down comes from all \u003ccode\u003esig/*\u003c/code\u003e labels.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Inactive issues by SIG 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/kubernetes/inactive_issues_by_sig.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003einactive_issues_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-issues-by-sig.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 the number of issues opened by SIG that were inactive for longer than 14, 30 and 90 days.\u003c/li\u003e\n\u003cli\u003eInactive means issues that are open and have no activity other than author and bots more than specified amount of time at given point in time, so for example data for 2 weeks ago show issues that were inactive for more than 14 days 2 weeks ago (now they may be inactive for 1 month or some activity happened earlier than 14 days ago).\u003c/li\u003e\n\u003cli\u003eIssues belongs to SIG by using \u003ccode\u003esig/*\u003c/code\u003e labels. List of SIGs to display in drop-down comes from all \u003ccode\u003esig/*\u003c/code\u003e labels.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "hide": 2,
          "includeAll": false,
          "options": [],
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "multi": false,
          "refresh": 1,
          "skipUrlSync": true
        }
      ]
    },
    "editable": true,
    "iteration": 1589369297161,
    "links": [],
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "title": "Inactive Issues by SIG",
    "version": 4,
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true
        },
        {
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "titleColumn": "[[full_name]] release",
          "iconColor": "rgba(255, 96, 96, 1)",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "hide": false,
          "limit": 100,
          "name": "Releases",
          "showIn": 0,
          "tagsColumn": "title,description",
          "textColumn": "",
          "datasource": "psql",
          "enable": true,
          "type": "alert"
        }
      ]
    },
    "id": 16,
    "panels": [
      {
        "legend": {
          "avg": true,
          "max": true,
          "total": false,
          "values": true,
          "alignAsTable": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true
        },
        "links": [],
        "title": "Inactive Issues by SIG (inactive for 90 days or more)",
        "description": "Issues by SIG that were inactive for 90 or more days at s given point in time",
        "fill": 6,
        "id": 12,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "type": "graph",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "nullPointMode": "null as zero",
        "percentage": false,
        "renderer": "flot",
        "steppedLine": false,
        "thresholds": [],
        "timeFrom": null,
        "fillGradient": 0,
        "lines": true,
        "spaceLength": 10,
        "hiddenSeries": false,
        "pointradius": 5,
        "timeRegions": [],
        "timeShift": null,
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "bars": false,
        "dashes": false,
        "datasource": "psql",
        "points": false,
        "targets": [
          {
            "dsType": "influxdb",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "format": "time_series",
            "orderByTime": "ASC",
            "timeColumn": "time",
            "resultFormat": "time_series",
            "groupBy": [],
            "measurement": "notused",
            "metricColumn": "none",
            "refId": "A",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_issues_by_sigd90\nwhere\n  $__timeFilter(time)\n  and period = 'd'\norder by\n  time",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "transparent": true,
        "interval": "",
        "linewidth": 0,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "aliasColors": {
          
        },
        "decimals": 0,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "stack": true,
        "dashLength": 10,
        "options": {
          "dataLinks": []
        },
        "seriesOverrides": []
      },
      {
        "hiddenSeries": false,
        "timeShift": null,
        "type": "graph",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs",
            "logBase": 1
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "id": 11,
        "interval": "",
        "legend": {
          "sortDesc": true,
          "total": false,
          "values": true,
          "current": true,
          "max": true,
          "sort": "avg",
          "rightSide": true,
          "show": true,
          "alignAsTable": true,
          "avg": true,
          "min": true
        },
        "options": {
          "dataLinks": []
        },
        "percentage": false,
        "dashLength": 10,
        "nullPointMode": "null as zero",
        "thresholds": [],
        "timeRegions": [],
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "datasource": "psql",
        "description": "Issues by SIG that were inactive for 30 or more days at s given point in time",
        "fill": 6,
        "seriesOverrides": [],
        "targets": [
          {
            "refId": "A",
            "resultFormat": "time_series",
            "tags": [],
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_issues_by_sigd30\nwhere\n  $__timeFilter(time)\n  and period = 'd'\norder by\n  time",
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "groupBy": [],
            "rawQuery": true,
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "group": [],
            "measurement": "notused",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "timeColumn": "time",
            "format": "time_series"
          }
        ],
        "dashes": false,
        "decimals": 0,
        "spaceLength": 10,
        "title": "Inactive Issues by SIG (inactive for 30 days or more)",
        "stack": true,
        "timeFrom": null,
        "aliasColors": {
          
        },
        "gridPos": {
          "x": 0,
          "y": 21,
          "h": 21,
          "w": 24
        },
        "lines": true,
        "links": [],
        "renderer": "flot",
        "transparent": true,
        "bars": false,
        "fillGradient": 0,
        "linewidth": 0,
        "points": false,
        "steppedLine": false,
        "pointradius": 5,
        "yaxis": {
          "alignLevel": null,
          "align": false
        }
      },
      {
        "dashes": false,
        "datasource": "psql",
        "options": {
          "dataLinks": []
        },
        "decimals": 0,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "interval": "",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "description": "Issues by SIG that were inactive for 2 or more weeks at s given point in time",
        "transparent": true,
        "aliasColors": {
          
        },
        "dashLength": 10,
        "hiddenSeries": false,
        "stack": true,
        "thresholds": [],
        "spaceLength": 10,
        "bars": false,
        "fill": 6,
        "fillGradient": 0,
        "id": 2,
        "legend": {
          "sort": "avg",
          "values": true,
          "alignAsTable": true,
          "max": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "sortDesc": true,
          "total": false,
          "avg": true,
          "current": true
        },
        "pointradius": 5,
        "title": "Inactive Issues by SIG (inactive for 2 weeks or more)",
        "type": "graph",
        "linewidth": 0,
        "percentage": false,
        "seriesOverrides": [],
        "targets": [
          {
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "measurement": "notused",
            "orderByTime": "ASC",
            "refId": "A",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "format": "time_series",
            "rawQuery": true,
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "group": [],
            "groupBy": [],
            "metricColumn": "none",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_issues_by_sigw2\nwhere\n  $__timeFilter(time)\n  and period = 'd'\norder by\n  time"
          }
        ],
        "timeFrom": null,
        "timeShift": null,
        "nullPointMode": "null as zero",
        "points": false,
        "steppedLine": false,
        "timeRegions": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "lines": true,
        "links": [],
        "renderer": "flot",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "yaxes": [
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ]
      },
      {
        "links": [],
        "mode": "html",
        "options": {
          
        },
        "type": "text",
        "id": 10,
        "datasource": null,
        "gridPos": {
          "x": 0,
          "y": 63,
          "h": 10,
          "w": 24
        },
        "title": "Dashboard documentation",
        "content": "${docs:raw}"
      }
    ],
    "schemaVersion": 21,
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "uid": "73",
    "gnetId": null
  }


slug: inactive-prs-by-sig-and-repository
title: Inactive PRs by SIG and repository
created: 2024-07-12 09:56:24.35714341+00:00
updated: 2024-07-12 09:56:24.3571435+00:00
uid: 78
data:
  {
    "graphTooltip": 0,
    "id": 1006,
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "SIGs",
      "PRs",
      "repos"
    ],
    "title": "Inactive PRs by SIG and repository",
    "iteration": 1621336151129,
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "uid": "78",
    "gnetId": null,
    "links": [],
    "version": 4,
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        },
        {
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "tagsColumn": "title,description",
          "type": "alert",
          "enable": true,
          "hide": false
        }
      ]
    },
    "editable": true,
    "panels": [
      {
        "bars": false,
        "dashLength": 10,
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            "links": []
          }
        },
        "fill": 6,
        "thresholds": [],
        "timeShift": null,
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 21
        },
        "hiddenSeries": false,
        "lines": true,
        "stack": true,
        "renderer": "flot",
        "transparent": true,
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashes": false,
        "datasource": "psql",
        "nullPointMode": "null as zero",
        "points": false,
        "timeRegions": [],
        "title": "Inactive PRs by SIG for [[repo_name]] repository (inactive for 90 days or more)",
        "percentage": false,
        "steppedLine": false,
        "targets": [
          {
            "metricColumn": "none",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_prs_by_sig_repos\nwhere\n  $__timeFilter(time)\n  and period = 'd'\n  and series = 'inactive_prs_by_sig_repos[[repo]]d90'\norder by\n  time",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "timeColumn": "time",
            "alias": "",
            "group": [],
            "resultFormat": "time_series",
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "rawQuery": true,
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "measurement": "notused"
          }
        ],
        "timeFrom": null,
        "seriesOverrides": [],
        "decimals": 0,
        "id": 12,
        "pluginVersion": "7.5.6",
        "pointradius": 5,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "description": "PRs by SIG that were inactive for 90 or more days at s given point in time",
        "links": [],
        "spaceLength": 10,
        "type": "graph",
        "interval": "",
        "legend": {
          "current": true,
          "max": true,
          "rightSide": true,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "min": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "total": false
        },
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "aliasColors": {
          
        },
        "fillGradient": 0,
        "linewidth": 0,
        "options": {
          "alertThreshold": true
        }
      },
      {
        "id": 11,
        "interval": "",
        "pluginVersion": "7.5.6",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "decimals": 0,
        "fillGradient": 0,
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 21,
          "h": 21
        },
        "spaceLength": 10,
        "timeRegions": [],
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "sortDesc": true,
          "total": false,
          "show": true,
          "sort": "avg",
          "values": true,
          "current": true,
          "max": true,
          "min": true,
          "rightSide": true
        },
        "steppedLine": false,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "transparent": true,
        "dashes": false,
        "links": [],
        "pointradius": 5,
        "seriesOverrides": [],
        "dashLength": 10,
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "nullPointMode": "null as zero",
        "targets": [
          {
            "group": [],
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "policy": "default",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_prs_by_sig_repos\nwhere\n  $__timeFilter(time)\n  and period = 'd'\n  and series = 'inactive_prs_by_sig_repos[[repo]]d30'\norder by\n  time",
            "resultFormat": "time_series",
            "rawQuery": true,
            "refId": "A",
            "tags": [],
            "timeColumn": "time",
            "dsType": "influxdb",
            "format": "time_series",
            "measurement": "notused",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "alias": "",
            "groupBy": [],
            "metricColumn": "none",
            "orderByTime": "ASC"
          }
        ],
        "title": "Inactive PRs by SIG for [[repo_name]] repository (inactive for 30 days or more)",
        "type": "graph",
        "description": "PRs by SIG that were inactive for 30 or more days at s given point in time",
        "fill": 6,
        "points": false,
        "thresholds": [],
        "timeFrom": null,
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "percentage": false,
        "renderer": "flot",
        "stack": true,
        "aliasColors": {
          
        },
        "hiddenSeries": false,
        "lines": true,
        "linewidth": 0,
        "options": {
          "alertThreshold": true
        },
        "timeShift": null
      },
      {
        "fillGradient": 0,
        "tooltip": {
          "sort": 2,
          "value_type": "individual",
          "shared": true
        },
        "type": "graph",
        "points": false,
        "timeRegions": [],
        "linewidth": 0,
        "renderer": "flot",
        "targets": [
          {
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_prs_by_sig_repos\nwhere\n  $__timeFilter(time)\n  and period = 'd'\n  and series = 'inactive_prs_by_sig_repos[[repo]]w2'\norder by\n  time",
            "resultFormat": "time_series",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "format": "time_series",
            "group": [],
            "measurement": "notused",
            "metricColumn": "none",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "timeColumn": "time",
            "policy": "default",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "rawQuery": true,
            "tags": []
          }
        ],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "decimals": 0,
        "hiddenSeries": false,
        "legend": {
          "show": true,
          "sortDesc": true,
          "total": false,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "min": true,
          "sort": "avg",
          "current": true,
          "max": true,
          "rightSide": true
        },
        "options": {
          "alertThreshold": true
        },
        "steppedLine": false,
        "datasource": "psql",
        "interval": "",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "fill": 6,
        "id": 2,
        "links": [],
        "pluginVersion": "7.5.6",
        "seriesOverrides": [],
        "aliasColors": {
          
        },
        "dashLength": 10,
        "timeFrom": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "yaxes": [
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "timeShift": null,
        "title": "Inactive PRs by SIG for [[repo_name]] repository (inactive for 2 weeks or more)",
        "dashes": false,
        "lines": true,
        "percentage": false,
        "pointradius": 5,
        "stack": true,
        "thresholds": [],
        "transparent": true,
        "description": "PRs by SIG that were inactive for 2 or more weeks at s given point in time",
        "gridPos": {
          "y": 42,
          "h": 21,
          "w": 24,
          "x": 0
        }
      },
      {
        "pluginVersion": "7.5.6",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null,
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            
          }
        },
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "gridPos": {
          "y": 63,
          "h": 10,
          "w": 24,
          "x": 0
        },
        "id": 10,
        "links": []
      }
    ],
    "refresh": false,
    "schemaVersion": 27,
    "templating": {
      "list": [
        {
          "current": {
            "selected": true,
            "text": [
              "All"
            ],
            "value": [
              "$__all"
            ]
          },
          "options": [],
          "query": "select '\"' || sig_mentions_labels_name || '\"' from tsig_mentions_labels order by 1",
          "sort": 0,
          "tags": [],
          "useTags": false,
          "datasource": "psql",
          "definition": "",
          "description": null,
          "includeAll": true,
          "skipUrlSync": false,
          "type": "query",
          "error": null,
          "hide": 0,
          "multi": true,
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "allValue": "",
          "label": "SIG",
          "name": "sigs",
          "refresh": 1
        },
        {
          "refresh": 1,
          "skipUrlSync": true,
          "type": "query",
          "datasource": "psql",
          "description": null,
          "error": null,
          "label": null,
          "name": "full_name",
          "options": [],
          "tagValuesQuery": "",
          "regex": "",
          "sort": 0,
          "tags": [],
          "useTags": false,
          "allValue": null,
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes",
            "selected": false
          },
          "hide": 2,
          "includeAll": false,
          "definition": "",
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagsQuery": ""
        },
        {
          "allValue": null,
          "description": null,
          "error": null,
          "hide": 2,
          "sort": 0,
          "type": "query",
          "datasource": "psql",
          "definition": "select value_s from gha_vars where name = 'inactive_prs_by_sig_docs_html'",
          "query": "select value_s from gha_vars where name = 'inactive_prs_by_sig_docs_html'",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Inactive PRs by SIG 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/kubernetes/inactive_prs_by_sig.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003einactive_prs_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-prs-by-sig.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 the number of PRs opened by SIG that were inactive for longer than 14, 30 and 90 days.\u003c/li\u003e\n\u003cli\u003eInactive means PRs that are open and have no activity other than author and bots more than specified amount of time at given point in time, so for example data for 2 weeks ago show PRs that were inactive for more than 14 days 2 weeks ago (now they may be inactive for 1 month or some activity happened earlier than 14 days ago).\u003c/li\u003e\n\u003cli\u003ePR belongs to SIG by using \u003ccode\u003esig/*\u003c/code\u003e labels. List of SIGs to display in drop-down comes from all \u003ccode\u003esig/*\u003c/code\u003e labels.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Inactive PRs by SIG 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/kubernetes/inactive_prs_by_sig.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003einactive_prs_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-prs-by-sig.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 the number of PRs opened by SIG that were inactive for longer than 14, 30 and 90 days.\u003c/li\u003e\n\u003cli\u003eInactive means PRs that are open and have no activity other than author and bots more than specified amount of time at given point in time, so for example data for 2 weeks ago show PRs that were inactive for more than 14 days 2 weeks ago (now they may be inactive for 1 month or some activity happened earlier than 14 days ago).\u003c/li\u003e\n\u003cli\u003ePR belongs to SIG by using \u003ccode\u003esig/*\u003c/code\u003e labels. List of SIGs to display in drop-down comes from all \u003ccode\u003esig/*\u003c/code\u003e labels.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "label": null,
          "multi": false,
          "name": "docs",
          "refresh": 1,
          "regex": "",
          "includeAll": false,
          "options": [],
          "skipUrlSync": true,
          "tags": [],
          "useTags": false
        },
        {
          "datasource": null,
          "tagsQuery": "",
          "current": {
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes",
            "selected": true
          },
          "definition": "select repo_name from trepos order by 1",
          "includeAll": false,
          "options": [],
          "query": "select repo_name from trepos order by 1",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": false,
          "allValue": null,
          "error": null,
          "label": "Repository",
          "multi": false,
          "name": "repo_name",
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "useTags": false,
          "description": null,
          "hide": 0,
          "sort": 0
        },
        {
          "refresh": 1,
          "sort": 0,
          "useTags": false,
          "current": {
            "value": "kuberneteskubernetes",
            "selected": false,
            "text": "kuberneteskubernetes"
          },
          "datasource": null,
          "hide": 2,
          "name": "repo",
          "regex": "",
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "allValue": null,
          "error": null,
          "includeAll": false,
          "label": null,
          "multi": false,
          "options": [],
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "description": null,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "skipUrlSync": false,
          "tagsQuery": ""
        }
      ]
    },
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "timezone": ""
  }


slug: inactive-prs-by-sig
title: Inactive PRs by SIG
created: 2024-07-12 09:56:24.363520759+00:00
updated: 2024-07-12 09:56:24.363520829+00:00
uid: 72
data:
  {
    "version": 2,
    "editable": true,
    "style": "dark",
    "uid": "72",
    "id": 1006,
    "tags": [
      "dashboard",
      "kubernetes",
      "SIGs",
      "PRs"
    ],
    "title": "Inactive PRs by SIG",
    "panels": [
      {
        "thresholds": [],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "datasource": "psql",
        "percentage": false,
        "hiddenSeries": false,
        "id": 12,
        "interval": "",
        "title": "Inactive PRs by SIG (inactive for 90 days or more)",
        "description": "PRs by SIG that were inactive for 90 or more days at s given point in time",
        "fillGradient": 0,
        "nullPointMode": "null as zero",
        "steppedLine": false,
        "pointradius": 5,
        "points": false,
        "seriesOverrides": [],
        "spaceLength": 10,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "legend": {
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "rightSide": true,
          "show": true,
          "sortDesc": true,
          "current": true,
          "max": true,
          "min": true,
          "sort": "avg",
          "total": false
        },
        "dashes": false,
        "timeFrom": null,
        "timeRegions": [],
        "transparent": true,
        "aliasColors": {
          
        },
        "dashLength": 10,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "renderer": "flot",
        "timeShift": null,
        "fill": 6,
        "links": [],
        "options": {
          "dataLinks": []
        },
        "stack": true,
        "targets": [
          {
            "group": [],
            "rawQuery": true,
            "timeColumn": "time",
            "alias": "",
            "dsType": "influxdb",
            "refId": "A",
            "resultFormat": "time_series",
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "policy": "default",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_prs_by_sigd90\nwhere\n  $__timeFilter(time)\n  and period = 'd'\norder by\n  time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "measurement": "notused",
            "metricColumn": "none",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": []
          }
        ],
        "type": "graph",
        "bars": false,
        "decimals": 0,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs",
            "logBase": 1
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "lines": true,
        "linewidth": 0
      },
      {
        "renderer": "flot",
        "seriesOverrides": [],
        "stack": true,
        "targets": [
          {
            "orderByTime": "ASC",
            "policy": "default",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_prs_by_sigd30\nwhere\n  $__timeFilter(time)\n  and period = 'd'\norder by\n  time",
            "resultFormat": "time_series",
            "format": "time_series",
            "group": [],
            "groupBy": [],
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "metricColumn": "none",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "timeColumn": "time",
            "refId": "A",
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "measurement": "notused",
            "rawQuery": true
          }
        ],
        "timeRegions": [],
        "transparent": true,
        "datasource": "psql",
        "options": {
          "dataLinks": []
        },
        "pointradius": 5,
        "title": "Inactive PRs by SIG (inactive for 30 days or more)",
        "bars": false,
        "fillGradient": 0,
        "id": 11,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "hiddenSeries": false,
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "max": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "total": false,
          "values": true
        },
        "lines": true,
        "links": [],
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "aliasColors": {
          
        },
        "dashes": false,
        "steppedLine": false,
        "type": "graph",
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "percentage": false,
        "timeShift": null,
        "timeFrom": null,
        "tooltip": {
          "sort": 2,
          "value_type": "individual",
          "shared": true
        },
        "description": "PRs by SIG that were inactive for 30 or more days at s given point in time",
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 21
        },
        "points": false,
        "thresholds": [],
        "fill": 6,
        "linewidth": 0,
        "interval": "",
        "dashLength": 10,
        "decimals": 0
      },
      {
        "aliasColors": {
          
        },
        "fill": 6,
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 42,
          "h": 21
        },
        "spaceLength": 10,
        "timeRegions": [],
        "type": "graph",
        "nullPointMode": "null as zero",
        "options": {
          "dataLinks": []
        },
        "points": false,
        "stack": true,
        "dashes": false,
        "interval": "",
        "transparent": true,
        "datasource": "psql",
        "fillGradient": 0,
        "percentage": false,
        "pointradius": 5,
        "targets": [
          {
            "rawQuery": true,
            "refId": "A",
            "alias": "",
            "measurement": "notused",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "dsType": "influxdb",
            "format": "time_series",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "resultFormat": "time_series",
            "tags": [],
            "group": [],
            "groupBy": [],
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  sinactive_prs_by_sigw2\nwhere\n  $__timeFilter(time)\n  and period = 'd'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "timeShift": null,
        "description": "PRs by SIG that were inactive for 2 or more weeks at s given point in time",
        "thresholds": [],
        "timeFrom": null,
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "seriesOverrides": [],
        "title": "Inactive PRs by SIG (inactive for 2 weeks or more)",
        "dashLength": 10,
        "hiddenSeries": false,
        "id": 2,
        "lines": true,
        "links": [],
        "renderer": "flot",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "decimals": 0,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "bars": false,
        "legend": {
          "show": true,
          "total": false,
          "avg": true,
          "max": true,
          "min": true,
          "sort": "avg",
          "sortDesc": true,
          "values": true,
          "alignAsTable": true,
          "current": true,
          "rightSide": true
        },
        "linewidth": 0,
        "steppedLine": false,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        }
      },
      {
        "id": 10,
        "links": [],
        "mode": "html",
        "content": "${docs:raw}",
        "datasource": null,
        "gridPos": {
          "h": 10,
          "w": 24,
          "x": 0,
          "y": 63
        },
        "options": {
          
        },
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "",
    "gnetId": null,
    "graphTooltip": 0,
    "iteration": 1589364661967,
    "schemaVersion": 21,
    "templating": {
      "list": [
        {
          "refresh": 1,
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "definition": "",
          "includeAll": true,
          "name": "sigs",
          "tags": [],
          "allValue": "",
          "datasource": "psql",
          "options": [],
          "useTags": false,
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "query": "select '\"' || sig_mentions_labels_name || '\"' from tsig_mentions_labels order by 1",
          "type": "query",
          "regex": "",
          "sort": 0,
          "hide": 0,
          "label": "SIG",
          "multi": true
        },
        {
          "name": "full_name",
          "tagValuesQuery": "",
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "tagsQuery": "",
          "current": {
            "value": "Kubernetes",
            "text": "Kubernetes"
          },
          "options": [],
          "tags": [],
          "hide": 2,
          "refresh": 1,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "useTags": false,
          "allValue": null,
          "definition": "",
          "label": null
        },
        {
          "definition": "select value_s from gha_vars where name = 'inactive_prs_by_sig_docs_html'",
          "multi": false,
          "options": [],
          "datasource": "psql",
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'inactive_prs_by_sig_docs_html'",
          "refresh": 1,
          "sort": 0,
          "allValue": null,
          "label": null,
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "current": {
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Inactive PRs by SIG 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/kubernetes/inactive_prs_by_sig.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003einactive_prs_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-prs-by-sig.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 the number of PRs opened by SIG that were inactive for longer than 14, 30 and 90 days.\u003c/li\u003e\n\u003cli\u003eInactive means PRs that are open and have no activity other than author and bots more than specified amount of time at given point in time, so for example data for 2 weeks ago show PRs that were inactive for more than 14 days 2 weeks ago (now they may be inactive for 1 month or some activity happened earlier than 14 days ago).\u003c/li\u003e\n\u003cli\u003ePR belongs to SIG by using \u003ccode\u003esig/*\u003c/code\u003e labels. List of SIGs to display in drop-down comes from all \u003ccode\u003esig/*\u003c/code\u003e labels.\u003c/li\u003e\n\u003c/ul\u003e",
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Inactive PRs by SIG 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/kubernetes/inactive_prs_by_sig.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003einactive_prs_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/inactive-prs-by-sig.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 the number of PRs opened by SIG that were inactive for longer than 14, 30 and 90 days.\u003c/li\u003e\n\u003cli\u003eInactive means PRs that are open and have no activity other than author and bots more than specified amount of time at given point in time, so for example data for 2 weeks ago show PRs that were inactive for more than 14 days 2 weeks ago (now they may be inactive for 1 month or some activity happened earlier than 14 days ago).\u003c/li\u003e\n\u003cli\u003ePR belongs to SIG by using \u003ccode\u003esig/*\u003c/code\u003e labels. List of SIGs to display in drop-down comes from all \u003ccode\u003esig/*\u003c/code\u003e labels.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "includeAll": false,
          "name": "docs",
          "tags": []
        }
      ]
    },
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "datasource": "psql",
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "tagsColumn": "title,description",
          "textColumn": "",
          "enable": true,
          "hide": false,
          "name": "Releases",
          "showIn": 0
        }
      ]
    },
    "links": [],
    "refresh": false
  }


slug: issues-age-by-sig-and-repository-groups
title: Issues age by SIG and repository groups
created: 2024-07-12 09:56:24.372578024+00:00
updated: 2024-07-12 09:56:24.372578094+00:00
uid: 15
data:
  {
    "id": 23,
    "iteration": 1621417775790,
    "refresh": false,
    "style": "dark",
    "templating": {
      "list": [
        {
          "current": {
            "selected": false,
            "text": "7 Days MA",
            "value": "d7"
          },
          "includeAll": false,
          "options": [
            {
              "value": "d",
              "selected": false,
              "text": "Day"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,d7,w,m,q,y",
          "type": "custom",
          "allValue": null,
          "error": null,
          "hide": 0,
          "label": "Period",
          "multi": false,
          "name": "period",
          "skipUrlSync": false,
          "description": null
        },
        {
          "label": "Repository group",
          "multi": false,
          "skipUrlSync": false,
          "useTags": false,
          "allValue": null,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "definition": "",
          "error": null,
          "options": [],
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "regex": "",
          "description": null,
          "hide": 0,
          "includeAll": false,
          "name": "repogroup_name",
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "datasource": "psql",
          "sort": 0
        },
        {
          "multi": false,
          "sort": 0,
          "tags": [],
          "type": "query",
          "current": {
            "selected": false,
            "text": "kubernetes",
            "value": "kubernetes"
          },
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "options": [],
          "refresh": 1,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "hide": 2,
          "datasource": "psql",
          "definition": "",
          "description": null,
          "error": null,
          "includeAll": false,
          "label": "",
          "name": "repogroup",
          "allValue": null,
          "skipUrlSync": true,
          "regex": ""
        },
        {
          "tags": [],
          "type": "query",
          "name": "repo_name",
          "sort": 0,
          "datasource": null,
          "includeAll": false,
          "multi": false,
          "skipUrlSync": false,
          "allValue": null,
          "current": {
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes",
            "selected": false
          },
          "query": "select repo_name from trepos order by 1",
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "error": null,
          "hide": 0,
          "label": "Repository",
          "options": [],
          "refresh": 1,
          "useTags": false,
          "definition": "select repo_name from trepos order by 1",
          "description": null
        },
        {
          "type": "query",
          "datasource": null,
          "name": "repo",
          "skipUrlSync": false,
          "includeAll": false,
          "options": [],
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "description": null,
          "error": null,
          "refresh": 1,
          "tagsQuery": "",
          "allValue": null,
          "hide": 2,
          "label": null,
          "regex": "",
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "multi": false,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'"
        },
        {
          "description": null,
          "name": "sig_name",
          "skipUrlSync": false,
          "tagsQuery": "",
          "tagValuesQuery": "",
          "type": "query",
          "datasource": "psql",
          "definition": "",
          "error": null,
          "includeAll": false,
          "refresh": 1,
          "tags": [],
          "useTags": false,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "hide": 0,
          "label": "SIG",
          "regex": "",
          "sort": 0,
          "allValue": "",
          "multi": false,
          "options": [],
          "query": "select sig_mentions_labels_name_with_all from tsig_mentions_labels_with_all order by 1"
        },
        {
          "description": null,
          "error": null,
          "includeAll": false,
          "options": [],
          "tagValuesQuery": "",
          "type": "query",
          "datasource": "psql",
          "definition": "",
          "label": "Kind",
          "name": "kind_name",
          "query": "select sigm_lbl_kind_name_with_all from tsigm_lbl_kinds_with_all order by 1",
          "regex": "",
          "sort": 0,
          "tags": [],
          "current": {
            "text": "All",
            "value": "All",
            "selected": false
          },
          "hide": 0,
          "tagsQuery": "",
          "multi": false,
          "skipUrlSync": false,
          "useTags": false,
          "allValue": "",
          "refresh": 1
        },
        {
          "description": null,
          "includeAll": false,
          "options": [],
          "query": "select priority_labels_name_with_all from tpriority_labels_with_all order by 1",
          "regex": "",
          "sort": 0,
          "type": "query",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "useTags": false,
          "tagsQuery": "",
          "error": null,
          "multi": false,
          "name": "prio_name",
          "skipUrlSync": false,
          "tags": [],
          "datasource": "psql",
          "definition": "",
          "hide": 0,
          "label": "Priority",
          "refresh": 1,
          "tagValuesQuery": "",
          "allValue": ""
        },
        {
          "name": "sig",
          "query": "select sig_mentions_labels_value_with_all from tsig_mentions_labels_with_all where sig_mentions_labels_name_with_all = '[[sig_name]]'",
          "refresh": 1,
          "allValue": "",
          "definition": "",
          "description": null,
          "error": null,
          "multi": false,
          "skipUrlSync": true,
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "hide": 2,
          "includeAll": false,
          "label": "SIG",
          "regex": "",
          "current": {
            "text": "all",
            "value": "all",
            "selected": false
          },
          "sort": 0,
          "tagsQuery": "",
          "options": [],
          "tagValuesQuery": "",
          "useTags": false
        },
        {
          "error": null,
          "includeAll": false,
          "options": [],
          "tagValuesQuery": "",
          "useTags": false,
          "allValue": "",
          "label": "Kind",
          "multi": false,
          "refresh": 1,
          "tagsQuery": "",
          "type": "query",
          "description": null,
          "query": "select sigm_lbl_kind_value_with_all from tsigm_lbl_kinds_with_all where sigm_lbl_kind_name_with_all = '[[kind_name]]'",
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "tags": [],
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "name": "kind"
        },
        {
          "allValue": "",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "hide": 2,
          "includeAll": false,
          "query": "select priority_labels_value_with_all from tpriority_labels_with_all where priority_labels_name_with_all = '[[prio_name]]'",
          "regex": "",
          "description": null,
          "label": "Priority",
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "datasource": "psql",
          "multi": false,
          "sort": 0,
          "type": "query",
          "useTags": false,
          "definition": "",
          "error": null,
          "name": "prio",
          "options": [],
          "tags": [],
          "tagsQuery": ""
        },
        {
          "tags": [],
          "datasource": "psql",
          "label": null,
          "name": "full_name",
          "tagValuesQuery": "",
          "hide": 2,
          "options": [],
          "skipUrlSync": true,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "sort": 0,
          "tagsQuery": "",
          "useTags": false,
          "definition": "",
          "description": null,
          "multi": false,
          "includeAll": false,
          "regex": "",
          "type": "query",
          "allValue": null,
          "current": {
            "value": "Kubernetes",
            "selected": false,
            "text": "Kubernetes"
          },
          "error": null
        },
        {
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "includeAll": false,
          "regex": "",
          "tags": [],
          "allValue": null,
          "query": "select value_s from gha_vars where name = 'issues_age_docs_html'",
          "name": "docs",
          "sort": 0,
          "type": "query",
          "refresh": 1,
          "skipUrlSync": true,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Issues age by SIG and repository groups 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/kubernetes/issues_age.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eissues_age\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/issues-age-by-sig-and-repository-groups.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 the chart of how many issues were open in selected periods and what was the median issue open to close time.\u003c/li\u003e\n\u003cli\u003eIssue SIG is determined by \u003ccode\u003esig/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e SIG.\u003c/li\u003e\n\u003cli\u003eIssue kind is determined by \u003ccode\u003ekind/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e kind.\u003c/li\u003e\n\u003cli\u003eIssue priority is determined by \u003ccode\u003epriority/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e priority.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show number of open issues and median close time 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\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Issues age by SIG and repository groups 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/kubernetes/issues_age.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eissues_age\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/issues-age-by-sig-and-repository-groups.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 the chart of how many issues were open in selected periods and what was the median issue open to close time.\u003c/li\u003e\n\u003cli\u003eIssue SIG is determined by \u003ccode\u003esig/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e SIG.\u003c/li\u003e\n\u003cli\u003eIssue kind is determined by \u003ccode\u003ekind/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e kind.\u003c/li\u003e\n\u003cli\u003eIssue priority is determined by \u003ccode\u003epriority/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e priority.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show number of open issues and median close time 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\u003c/ul\u003e"
          },
          "description": null,
          "error": null,
          "label": null,
          "multi": false,
          "options": [],
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false
        }
      ]
    },
    "editable": true,
    "gnetId": null,
    "graphTooltip": 0,
    "title": "Issues age by SIG and repository groups",
    "uid": "15",
    "annotations": {
      "list": [
        {
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "datasource": "psql",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "enable": true,
          "limit": 100,
          "name": "Releases",
          "showIn": 0,
          "tagsColumn": "title,description"
        },
        {
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "iconColor": "rgba(0, 211, 255, 1)",
          "limit": 100,
          "showIn": 0
        }
      ]
    },
    "schemaVersion": 27,
    "tags": [
      "dashboard",
      "kubernetes",
      "issues",
      "repogroups",
      "SIGs",
      "repos"
    ],
    "links": [],
    "panels": [
      {
        "cacheTimeout": null,
        "format": "none",
        "postfixFontSize": "50%",
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "nullText": null,
        "valueName": "current",
        "colorValue": false,
        "nullPointMode": "connected",
        "prefixFontSize": "50%",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "datasource": "psql",
        "id": 2,
        "interval": null,
        "prefix": "",
        "targets": [
          {
            "format": "table",
            "rawSql": "select\n  descr\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[sig]][[kind]][[prio]]m'\norder by\n  time desc\nlimit 1",
            "resultFormat": "time_series",
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "tags": []
          }
        ],
        "hideTimeOverride": false,
        "links": [],
        "maxDataPoints": 100,
        "postfix": "",
        "tableColumn": "",
        "title": "Current median time to close for issues created last [[period]] for repository group [[repogroup_name]], SIG: [[sig_name]], Kind: [[kind_name]], Priority: [[prio_name]]",
        "valueFontSize": "50%",
        "description": "Current median closing time for recent issues.",
        "gauge": {
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false
        },
        "gridPos": {
          "h": 3,
          "w": 12,
          "x": 0,
          "y": 0
        },
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "type": "singlestat",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "colorBackground": false,
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            
          }
        },
        "mappingType": 1,
        "thresholds": ""
      },
      {
        "cacheTimeout": null,
        "format": "none",
        "gridPos": {
          "h": 3,
          "w": 12,
          "x": 12,
          "y": 0
        },
        "hideTimeOverride": false,
        "valueFontSize": "50%",
        "id": 6,
        "nullText": null,
        "postfix": "",
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "postfixFontSize": "50%",
        "valueName": "current",
        "colorBackground": false,
        "colorValue": false,
        "description": "Current median closing time for recent issues.",
        "maxDataPoints": 100,
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "title": "Current median time to close for issues created last [[period]] for repository group [[repogroup_name]], SIG: [[sig_name]], Kind: [[kind_name]], Priority: [[prio_name]]",
        "mappingType": 1,
        "prefixFontSize": "50%",
        "rangeMaps": [
          {
            "to": "null",
            "from": "null",
            "text": "N/A"
          }
        ],
        "links": [],
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "targets": [
          {
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  descr\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[sig]][[kind]][[prio]]m'\norder by\n  time desc\nlimit 1",
            "refId": "A",
            "resultFormat": "time_series",
            "alias": "",
            "format": "table",
            "tags": [],
            "rawQuery": true,
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ]
          }
        ],
        "type": "singlestat",
        "valueMaps": [
          {
            "text": "N/A",
            "value": "null",
            "op": "="
          }
        ],
        "tableColumn": "",
        "thresholds": "",
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "interval": null,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "value": 2,
            "name": "range to text"
          }
        ],
        "nullPointMode": "connected",
        "prefix": ""
      },
      {
        "points": false,
        "type": "graph",
        "linewidth": 0,
        "nullPointMode": "null",
        "dashes": false,
        "decimals": 2,
        "pointradius": 1,
        "seriesOverrides": [
          {
            "alias": "Median time to close issue",
            "fill": 2,
            "lines": true,
            "linewidth": 0,
            "yaxis": 1
          },
          {
            "alias": "Average number of issues opened",
            "fill": 0,
            "lines": true,
            "linewidth": 1,
            "yaxis": 2
          }
        ],
        "id": 1,
        "spaceLength": 10,
        "steppedLine": false,
        "timeFrom": null,
        "bars": false,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fillGradient": 0,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 3
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "datasource": "psql",
        "timeShift": null,
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "thresholds": [],
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "hiddenSeries": false,
        "percentage": false,
        "renderer": "flot",
        "targets": [
          {
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "measurement": "reviewers_d",
            "metricColumn": "none",
            "tags": [],
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "groupBy": [],
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "policy": "autogen",
            "rawQuery": true,
            "refId": "A",
            "timeColumn": "time",
            "dsType": "influxdb",
            "group": [],
            "hide": false,
            "format": "time_series",
            "rawSql": "select\n  time,\n  value as \"Average number of issues opened\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[sig]][[kind]][[prio]]n'\norder by\n  time"
          },
          {
            "measurement": "reviewers_d",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "hide": false,
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"Median time to close issue\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[sig]][[kind]][[prio]]m'\norder by\n  time",
            "format": "time_series",
            "group": [],
            "metricColumn": "none",
            "tags": [],
            "groupBy": [],
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "policy": "autogen",
            "refId": "B",
            "timeColumn": "time"
          }
        ],
        "dashLength": 10,
        "description": "Median time to close and the number of issues created in [[repogroup_name]] repository group.",
        "legend": {
          "alignAsTable": false,
          "min": true,
          "rightSide": false,
          "sideWidth": null,
          "total": false,
          "values": true,
          "avg": true,
          "current": true,
          "hideEmpty": false,
          "hideZero": false,
          "max": true,
          "show": true
        },
        "stack": false,
        "pluginVersion": "7.5.6",
        "timeRegions": [],
        "title": "Number/Median time to close of Issues in [[repogroup_name]] repository group ([[period]]), SIG: [[sig_name]], Kind: [[kind_name]], Priority: [[prio_name]]",
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "h",
            "label": "Median issue close time",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Average issues opened",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "fill": 3,
        "lines": false,
        "links": [],
        "options": {
          "alertThreshold": true
        }
      },
      {
        "id": 3,
        "pageSize": 10,
        "type": "table-old",
        "links": [],
        "scroll": true,
        "title": "Number/Median time to close of Issues in [[repogroup_name]] repository group ([[period]]), SIG: [[sig_name]], Kind: [[kind_name]], Priority: [[prio_name]]",
        "transform": "timeseries_to_rows",
        "columns": [],
        "description": "Median time to close and the number of issues created in [[repogroup_name]] repository group.",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fontSize": "90%",
        "targets": [
          {
            "query": "SELECT \"descr\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "orderByTime": "ASC",
            "group": [],
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median time to close issue\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[sig]][[kind]][[prio]]m'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "table",
            "dsType": "influxdb",
            "metricColumn": "none",
            "alias": "",
            "policy": "default",
            "refId": "A",
            "tags": [],
            "timeColumn": "time",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ]
          },
          {
            "dsType": "influxdb",
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "rawSql": "select\n  time as \"Time\",\n  value as \"Average number of issues opened\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[sig]][[kind]][[prio]]n'\norder by\n  time",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "refId": "B",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "format": "table",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "policy": "default",
            "resultFormat": "time_series"
          }
        ],
        "datasource": "psql",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 16,
          "h": 11
        },
        "showHeader": true,
        "sort": {
          "col": 0,
          "desc": true
        },
        "styles": [
          {
            "type": "date",
            "alias": "Time",
            "align": "auto",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time"
          },
          {
            "type": "number",
            "alias": "",
            "decimals": 2,
            "pattern": "/.*/",
            "thresholds": [],
            "align": "auto",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "unit": "short"
          }
        ]
      },
      {
        "interval": null,
        "maxDataPoints": 100,
        "postfix": "",
        "prefixFontSize": "50%",
        "colorBackground": false,
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "decimals": null,
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "title": "Number of closed issues opened last [[period]] for repository [[repo_name]], SIG: [[sig_name]], Kind: [[kind_name]], Priority: [[prio_name]]",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "cacheTimeout": null,
        "links": [],
        "valueName": "current",
        "type": "singlestat",
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "nullPointMode": "connected",
        "nullText": null,
        "rangeMaps": [
          {
            "to": "null",
            "from": "null",
            "text": "N/A"
          }
        ],
        "targets": [
          {
            "format": "time_series",
            "metricColumn": "none",
            "timeColumn": "time",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "tags": [],
            "dsType": "influxdb",
            "group": [],
            "policy": "default",
            "rawQuery": true,
            "rawSql": "select\n  time, value\nfrom\n  sissues_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repo]][[sig]][[kind]][[prio]]n'\norder by\n  time desc\nlimit 1",
            "alias": "",
            "orderByTime": "ASC",
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ]
          }
        ],
        "valueFontSize": "50%",
        "colorValue": false,
        "datasource": "psql",
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            
          }
        },
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "format": "none",
        "mappingType": 1,
        "description": "Number of closed issues opened recently",
        "tableColumn": "",
        "thresholds": "",
        "gridPos": {
          "w": 12,
          "x": 0,
          "y": 27,
          "h": 3
        },
        "id": 4,
        "postfixFontSize": "50%",
        "prefix": ""
      },
      {
        "prefix": "",
        "prefixFontSize": "50%",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "sparkline": {
          "lineColor": "rgb(31, 120, 193)",
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false
        },
        "targets": [
          {
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "format": "table",
            "metricColumn": "none",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "group": [],
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  descr\nfrom\n  sissues_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repo]][[sig]][[kind]][[prio]]m'\norder by\n  time desc\nlimit 1",
            "refId": "A",
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ]
          }
        ],
        "datasource": "psql",
        "maxDataPoints": 100,
        "valueName": "current",
        "type": "singlestat",
        "valueFontSize": "50%",
        "nullText": null,
        "tableColumn": "",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "gridPos": {
          "h": 3,
          "w": 12,
          "x": 12,
          "y": 27
        },
        "hideTimeOverride": false,
        "id": 7,
        "mappingType": 1,
        "mappingTypes": [
          {
            "value": 1,
            "name": "value to text"
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "postfix": "",
        "cacheTimeout": null,
        "colorValue": false,
        "title": "Current median time to close for issues created last [[period]] for repository [[repo_name]], SIG: [[sig_name]], Kind: [[kind_name]], Priority: [[prio_name]]",
        "format": "none",
        "nullPointMode": "connected",
        "postfixFontSize": "50%",
        "thresholds": "",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "colorBackground": false,
        "description": "Current median closing time for recent issues.",
        "links": [],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "interval": null
      },
      {
        "datasource": "psql",
        "fillGradient": 0,
        "linewidth": 0,
        "percentage": false,
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 0
        },
        "xaxis": {
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time"
        },
        "lines": false,
        "renderer": "flot",
        "stack": false,
        "timeFrom": null,
        "title": "Number/Median time to close of Issues in [[repo_name]] repository ([[period]]), SIG: [[sig_name]], Kind: [[kind_name]], Priority: [[prio_name]]",
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "h",
            "label": "Median issue close time",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Average issues opened",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "gridPos": {
          "y": 30,
          "h": 13,
          "w": 24,
          "x": 0
        },
        "hiddenSeries": false,
        "nullPointMode": "null",
        "points": false,
        "spaceLength": 10,
        "timeRegions": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "fill": 3,
        "pluginVersion": "7.5.6",
        "seriesOverrides": [
          {
            "lines": true,
            "linewidth": 0,
            "yaxis": 1,
            "alias": "Median time to close issue",
            "fill": 2
          },
          {
            "alias": "Average number of issues opened",
            "fill": 0,
            "lines": true,
            "linewidth": 1,
            "yaxis": 2
          }
        ],
        "bars": false,
        "dashes": false,
        "description": "Median time to close and the number of issues created in [[repo_name]] repository.",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 8,
        "legend": {
          "avg": true,
          "current": true,
          "hideZero": false,
          "min": true,
          "rightSide": false,
          "sideWidth": null,
          "values": true,
          "alignAsTable": false,
          "hideEmpty": false,
          "max": true,
          "show": true,
          "total": false
        },
        "targets": [
          {
            "policy": "autogen",
            "dsType": "influxdb",
            "groupBy": [],
            "metricColumn": "none",
            "resultFormat": "time_series",
            "tags": [],
            "format": "time_series",
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "A",
            "alias": "",
            "hide": false,
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"Average number of issues opened\"\nfrom\n  sissues_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repo]][[sig]][[kind]][[prio]]n'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": []
          },
          {
            "format": "time_series",
            "hide": false,
            "measurement": "reviewers_d",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "policy": "autogen",
            "rawSql": "select\n  time,\n  value as \"Median time to close issue\"\nfrom\n  sissues_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repo]][[sig]][[kind]][[prio]]m'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "groupBy": [],
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "timeColumn": "time",
            "group": [],
            "refId": "B",
            "resultFormat": "time_series"
          }
        ],
        "thresholds": [],
        "dashLength": 10,
        "options": {
          "alertThreshold": true
        },
        "timeShift": null,
        "decimals": 2,
        "type": "graph",
        "aliasColors": {
          
        },
        "links": [],
        "pointradius": 1,
        "steppedLine": false
      },
      {
        "pageSize": 10,
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "type": "table-old",
        "id": 9,
        "links": [],
        "sort": {
          "col": 0,
          "desc": true
        },
        "targets": [
          {
            "group": [],
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median time to close issue\"\nfrom\n  sissues_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repo]][[sig]][[kind]][[prio]]m'\norder by\n  time",
            "refId": "A",
            "tags": [],
            "timeColumn": "time",
            "dsType": "influxdb",
            "query": "SELECT \"descr\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "alias": "",
            "format": "table",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none"
          },
          {
            "orderByTime": "ASC",
            "refId": "B",
            "tags": [],
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "rawQuery": true,
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[sig]]_[[kind]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time as \"Time\",\n  value as \"Average number of issues opened\"\nfrom\n  sissues_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repo]][[sig]][[kind]][[prio]]n'\norder by\n  time",
            "resultFormat": "time_series",
            "timeColumn": "time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "group": [],
            "metricColumn": "none",
            "policy": "default"
          }
        ],
        "title": "Number/Median time to close of Issues in [[repo_name]] repository ([[period]]), SIG: [[sig_name]], Kind: [[kind_name]], Priority: [[prio_name]]",
        "transform": "timeseries_to_rows",
        "styles": [
          {
            "pattern": "Time",
            "type": "date",
            "alias": "Time",
            "align": "auto",
            "dateFormat": "MM/DD/YYYY"
          },
          {
            "alias": "",
            "colorMode": null,
            "decimals": 2,
            "align": "auto",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "unit": "short"
          }
        ],
        "columns": [],
        "description": "Median time to close and the number of issues created in [[repo_name]] repository.",
        "fontSize": "90%",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 43
        },
        "scroll": true,
        "showHeader": true
      },
      {
        "datasource": null,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 54
        },
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "7.5.6",
        "title": "Dashboard documentation",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 5,
        "type": "text"
      }
    ],
    "time": {
      "from": "now-1y",
      "to": "now-1w"
    },
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "timezone": "",
    "version": 6
  }


slug: issues-opened-closed-by-sig
title: Issues Opened/Closed by SIG
created: 2024-07-12 09:56:24.380456408+00:00
updated: 2024-07-12 09:56:24.380456498+00:00
uid: 39
data:
  {
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        },
        {
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "limit": 100,
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "tagsColumn": "title,description",
          "textColumn": "",
          "type": "alert"
        }
      ]
    },
    "iteration": 1621419596870,
    "links": [],
    "uid": "39",
    "editable": true,
    "style": "dark",
    "templating": {
      "list": [
        {
          "type": "custom",
          "description": null,
          "hide": 0,
          "includeAll": false,
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "text": "7 Days MA",
              "value": "d7",
              "selected": true
            },
            {
              "value": "w",
              "selected": false,
              "text": "Week"
            },
            {
              "text": "Month",
              "value": "m",
              "selected": false
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,w,m,q,y",
          "allValue": null,
          "current": {
            "value": "d7",
            "tags": [],
            "text": "7 Days MA"
          },
          "error": null,
          "label": "Period",
          "multi": false,
          "skipUrlSync": false
        },
        {
          "hide": 0,
          "refresh": 1,
          "tagsQuery": "",
          "allValue": null,
          "definition": "select repo_name from trepos order by 1",
          "error": null,
          "includeAll": false,
          "multi": false,
          "name": "repo_name",
          "regex": "",
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "description": null,
          "tags": [],
          "skipUrlSync": false,
          "type": "query",
          "useTags": false,
          "label": "Repository",
          "options": [],
          "sort": 0,
          "datasource": null,
          "query": "select repo_name from trepos order by 1"
        },
        {
          "datasource": null,
          "label": null,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "sort": 0,
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "options": [],
          "refresh": 1,
          "regex": "",
          "skipUrlSync": false,
          "hide": 2,
          "includeAll": false,
          "name": "repo",
          "tags": [],
          "type": "query",
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "description": null,
          "error": null,
          "multi": false,
          "tagValuesQuery": ""
        },
        {
          "includeAll": false,
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "allValue": "",
          "label": "SIG",
          "query": "select sig_mentions_labels_name_with_all from tsig_mentions_labels_with_all order by 1",
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "name": "sig_name",
          "options": [],
          "datasource": "psql",
          "definition": "",
          "description": null,
          "error": null,
          "hide": 0,
          "multi": false,
          "tagsQuery": "",
          "current": {
            "value": "All",
            "selected": false,
            "text": "All"
          },
          "refresh": 1,
          "type": "query"
        },
        {
          "options": [],
          "skipUrlSync": false,
          "sort": 0,
          "tags": [],
          "description": null,
          "error": null,
          "hide": 0,
          "label": "Kind",
          "type": "query",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "datasource": "psql",
          "includeAll": false,
          "name": "kind_name",
          "query": "select sigm_lbl_kind_name_with_all from tsigm_lbl_kinds_with_all order by 1",
          "allValue": "",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "definition": "",
          "regex": "",
          "multi": false,
          "refresh": 1
        },
        {
          "description": null,
          "name": "full_name",
          "regex": "",
          "tagsQuery": "",
          "type": "query",
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "options": [],
          "tags": [],
          "refresh": 1,
          "sort": 0,
          "allValue": null,
          "error": null,
          "includeAll": false,
          "label": null,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagValuesQuery": "",
          "useTags": false,
          "skipUrlSync": true
        },
        {
          "refresh": 1,
          "regex": "",
          "tags": [],
          "name": "sig",
          "options": [],
          "hide": 2,
          "useTags": false,
          "error": null,
          "label": "",
          "query": "select sig_mentions_labels_value_with_all from tsig_mentions_labels_with_all where sig_mentions_labels_name_with_all = '[[sig_name]]'",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "definition": "",
          "description": null,
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "sort": 0,
          "allValue": "",
          "current": {
            "value": "all",
            "selected": false,
            "text": "all"
          }
        },
        {
          "query": "select sigm_lbl_kind_value_with_all from tsigm_lbl_kinds_with_all where sigm_lbl_kind_name_with_all = '[[kind_name]]'",
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "current": {
            "value": "all",
            "selected": false,
            "text": "all"
          },
          "hide": 2,
          "multi": false,
          "name": "kind",
          "error": null,
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "regex": "",
          "type": "query",
          "datasource": "psql",
          "description": null,
          "label": "",
          "options": [],
          "allValue": "",
          "definition": "",
          "includeAll": false,
          "tagValuesQuery": ""
        },
        {
          "useTags": false,
          "description": null,
          "error": null,
          "multi": false,
          "name": "docs",
          "refresh": 1,
          "skipUrlSync": true,
          "tags": [],
          "allValue": null,
          "definition": "",
          "includeAll": false,
          "regex": "",
          "sort": 0,
          "hide": 2,
          "options": [],
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Issues Opened/Closed by SIG dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/labels_sig_kind.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOpened issues metric (repositories) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/labels_sig_kind_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eClosed issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/labels_sig_kind_closed.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eClosed issues metric (repositories) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/labels_sig_kind_closed_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eIssues opened\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/issues-opened-closed-by-sig.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 the chart of how many issues were opened and closed in selected periods.\u003c/li\u003e\n\u003cli\u003eYou can filter by SIG and kind.\u003c/li\u003e\n\u003cli\u003eIssue SIG is determined by \u003ccode\u003esig/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e SIG.\u003c/li\u003e\n\u003cli\u003eIssue kind is determined by \u003ccode\u003ekind/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e kind.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show number of issues 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\u003eYou can select repository for bottom panel showing per single repository statistics.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Issues Opened/Closed by SIG dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/labels_sig_kind.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOpened issues metric (repositories) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/labels_sig_kind_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eClosed issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/labels_sig_kind_closed.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eClosed issues metric (repositories) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/labels_sig_kind_closed_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eIssues opened\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/issues-opened-closed-by-sig.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 the chart of how many issues were opened and closed in selected periods.\u003c/li\u003e\n\u003cli\u003eYou can filter by SIG and kind.\u003c/li\u003e\n\u003cli\u003eIssue SIG is determined by \u003ccode\u003esig/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e SIG.\u003c/li\u003e\n\u003cli\u003eIssue kind is determined by \u003ccode\u003ekind/*\u003c/code\u003e labels. You can also select summary for all issues by choosing \u003ccode\u003eAll\u003c/code\u003e kind.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show number of issues 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\u003eYou can select repository for bottom panel showing per single repository statistics.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "datasource": "psql",
          "label": null,
          "query": "select value_s from gha_vars where name = 'issues_opened_closed_docs_html'",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query"
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "version": 2,
    "graphTooltip": 0,
    "id": 24,
    "panels": [
      {
        "fillGradient": 0,
        "renderer": "flot",
        "spaceLength": 10,
        "stack": false,
        "transparent": true,
        "pluginVersion": "7.5.6",
        "thresholds": [],
        "aliasColors": {
          
        },
        "dashLength": 10,
        "dashes": false,
        "lines": true,
        "linewidth": 1,
        "nullPointMode": "null as zero",
        "decimals": 2,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "options": {
          "alertThreshold": true
        },
        "targets": [
          {
            "groupBy": [],
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"Issues opened\"\nfrom\n  ssigm_lsk\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'sigm_lsk[[sig]][[kind]]'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "query": "SELECT /^[[sig]]-[[kind]]$/ FROM \"sig_mentions_labels_sig_kind_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "format": "time_series",
            "measurement": "sig_federation_d",
            "orderByTime": "ASC",
            "refId": "A",
            "resultFormat": "time_series",
            "dsType": "influxdb"
          },
          {
            "resultFormat": "time_series",
            "orderByTime": "ASC",
            "query": "SELECT /^[[sig]]-[[kind]]$/ FROM \"issues_closed_labels_sig_kind_[[period]]\" WHERE $timeFilter",
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "rawSql": "select\n  time,\n  \"value\" as \"Issues closed\"\nfrom\n  siclosed_lsk\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iclosed_lsk[[sig]][[kind]]'\norder by\n  time",
            "measurement": "sig_federation_d",
            "tags": [],
            "dsType": "influxdb",
            "groupBy": [],
            "rawQuery": true,
            "format": "time_series",
            "policy": "default"
          }
        ],
        "title": "Issues SIG: [[sig_name]] Kind: [[kind_name]] ([[period]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "datasource": "psql",
        "description": "Show Issues opened/closed for given SIG and Kind",
        "hiddenSeries": false,
        "steppedLine": false,
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Issues",
            "logBase": 1
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "bars": false,
        "gridPos": {
          "h": 18,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "id": 3,
        "legend": {
          "hideEmpty": false,
          "min": true,
          "show": true,
          "sortDesc": true,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "sort": "avg",
          "total": true,
          "hideZero": false,
          "max": true,
          "rightSide": false
        },
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "type": "graph",
        "percentage": false,
        "timeShift": null,
        "fill": 1,
        "points": false,
        "seriesOverrides": [],
        "timeFrom": null,
        "timeRegions": [],
        "links": [],
        "pointradius": 5
      },
      {
        "stack": false,
        "description": "Show Issues opened/closed for given SIG and Kind",
        "hiddenSeries": false,
        "lines": true,
        "percentage": false,
        "renderer": "flot",
        "dashLength": 10,
        "fillGradient": 0,
        "pluginVersion": "7.5.6",
        "yaxes": [
          {
            "format": "short",
            "label": "Issues",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "id": 6,
        "pointradius": 5,
        "spaceLength": 10,
        "targets": [
          {
            "resultFormat": "time_series",
            "alias": "",
            "measurement": "sig_federation_d",
            "metricColumn": "none",
            "policy": "default",
            "rawQuery": true,
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "refId": "A",
            "tags": [],
            "timeColumn": "time",
            "group": [],
            "groupBy": [],
            "query": "SELECT /^[[sig]]-[[kind]]$/ FROM \"sig_mentions_labels_sig_kind_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"Issues opened\"\nfrom\n  ssigm_lskr\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'sigm_lskr[[sig]][[kind]][[repo]]'\norder by\n  time",
            "format": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          },
          {
            "metricColumn": "none",
            "resultFormat": "time_series",
            "group": [],
            "groupBy": [],
            "format": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "dsType": "influxdb",
            "rawSql": "select\n  time,\n  \"value\" as \"Issues closed\"\nfrom\n  siclosed_lskr\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iclosed_lskr[[sig]][[kind]][[repo]]'\norder by\n  time",
            "refId": "B",
            "tags": [],
            "measurement": "sig_federation_d",
            "query": "SELECT /^[[sig]]-[[kind]]$/ FROM \"issues_closed_labels_sig_kind_[[period]]\" WHERE $timeFilter"
          }
        ],
        "aliasColors": {
          
        },
        "dashes": false,
        "datasource": "psql",
        "legend": {
          "min": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "hideZero": false,
          "max": true,
          "total": true,
          "values": true,
          "hideEmpty": false,
          "rightSide": false,
          "show": true,
          "sort": "avg",
          "sortDesc": true
        },
        "points": false,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "linewidth": 1,
        "options": {
          "alertThreshold": true
        },
        "steppedLine": false,
        "thresholds": [],
        "timeRegions": [],
        "title": "Issues SIG: [[sig_name]] Kind: [[kind_name]], Repo: [[repo_name]] ([[period]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "decimals": 2,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "h": 18,
          "w": 24,
          "x": 0,
          "y": 18
        },
        "nullPointMode": "null as zero",
        "timeFrom": null,
        "bars": false,
        "links": [],
        "timeShift": null,
        "transparent": true,
        "fill": 1,
        "seriesOverrides": [],
        "type": "graph"
      },
      {
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 36
        },
        "pluginVersion": "7.5.6",
        "title": "Dashboard documentation",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 5,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "type": "text",
        "datasource": null
      }
    ],
    "refresh": false,
    "tags": [
      "dashboard",
      "kubernetes",
      "issues",
      "SIGs",
      "repos"
    ],
    "timezone": "",
    "gnetId": null,
    "schemaVersion": 27,
    "time": {
      "from": "now-3y",
      "to": "now"
    },
    "title": "Issues Opened/Closed by SIG"
  }


slug: last-updated
title: Last updated
created: 2024-07-12 09:56:24.386833567+00:00
updated: 2024-07-12 09:56:24.386833627+00:00
uid: 82
data:
  {
    "templating": {
      "list": [
        {
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "name": "full_name",
          "skipUrlSync": true,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "multi": false,
          "refresh": 1,
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "hide": 2,
          "includeAll": false,
          "options": [],
          "sort": 0,
          "definition": "",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "tagValuesQuery": ""
        },
        {
          "definition": "select value_s from gha_vars where name = 'last_updated_docs_html'",
          "multi": false,
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'last_updated_docs_html'",
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "hide": 2,
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "options": [],
          "refresh": 1,
          "type": "query",
          "current": {
            "text": "\u003ch1 id=\"-full_name-home-dashboard\"\u003eKubernetes last updated dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/last-updated.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\u003e\u0026#39;Metric name\u0026#39; maps to a specific SQL file name (without \u003ccode\u003e.sql\u003c/code\u003e extension) used in a given dashboard, for example \u0026#39;events\u0026#39; maps to \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/events.sql\" target=\"_blank\"\u003eevents.sql\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEach dashboard has a list of metrics used in its dashboard documentation panel.\u003c/li\u003e\n\u003cli\u003eThen there is a time period marker like \u003ccode\u003ed, d7, h, h24, w, m, q, y, y10, a_x_y, a_x_n, c_b, c_n, c_j_i, c_i_g, c_i_n, c_j_g, c_g_n, \u003c/code\u003e they mean:\u003c/li\u003e\n\u003cli\u003eh - hourly, hN - moving average of N hours, d - daily, dN - moving average of N days, w - week, m - month, q - quarter, y - year, each can have extra N, examples: h24, d7, m3, y10.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ea_x_y\u003c/code\u003e - between annotations, \u003ccode\u003ea_0_1\u003c/code\u003e - between 1st and 2nd annotaion and so on, \u003ccode\u003ea_x_n\u003c/code\u003e - when (x+1)th annotation is the last one then it is from (n+1)th annotation till now. Examples: \u003ccode\u003ea_10_11, a_11_n\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ec_n\u003c/code\u003e - from joining CNCF till now, \u003ccode\u003ec_b\u003c/code\u003e - from beginning till joining CNCF.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ec_j_i, c_j_g\u003c/code\u003e - since joining CNCF till incubation (\u003ccode\u003ec_j_i\u003c/code\u003e), graduation (\u003ccode\u003ec_j_g\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ec_i_g\u003c/code\u003e - since incubation to graduation, \u003ccode\u003ec_i_n\u003c/code\u003e - since incubation to now, \u003ccode\u003ec_g_n\u003c/code\u003e - since graduation to now.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"-full_name-home-dashboard\"\u003eKubernetes last updated dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/last-updated.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\u003e\u0026#39;Metric name\u0026#39; maps to a specific SQL file name (without \u003ccode\u003e.sql\u003c/code\u003e extension) used in a given dashboard, for example \u0026#39;events\u0026#39; maps to \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/events.sql\" target=\"_blank\"\u003eevents.sql\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEach dashboard has a list of metrics used in its dashboard documentation panel.\u003c/li\u003e\n\u003cli\u003eThen there is a time period marker like \u003ccode\u003ed, d7, h, h24, w, m, q, y, y10, a_x_y, a_x_n, c_b, c_n, c_j_i, c_i_g, c_i_n, c_j_g, c_g_n, \u003c/code\u003e they mean:\u003c/li\u003e\n\u003cli\u003eh - hourly, hN - moving average of N hours, d - daily, dN - moving average of N days, w - week, m - month, q - quarter, y - year, each can have extra N, examples: h24, d7, m3, y10.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ea_x_y\u003c/code\u003e - between annotations, \u003ccode\u003ea_0_1\u003c/code\u003e - between 1st and 2nd annotaion and so on, \u003ccode\u003ea_x_n\u003c/code\u003e - when (x+1)th annotation is the last one then it is from (n+1)th annotation till now. Examples: \u003ccode\u003ea_10_11, a_11_n\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ec_n\u003c/code\u003e - from joining CNCF till now, \u003ccode\u003ec_b\u003c/code\u003e - from beginning till joining CNCF.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ec_j_i, c_j_g\u003c/code\u003e - since joining CNCF till incubation (\u003ccode\u003ec_j_i\u003c/code\u003e), graduation (\u003ccode\u003ec_j_g\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ec_i_g\u003c/code\u003e - since incubation to graduation, \u003ccode\u003ec_i_n\u003c/code\u003e - since incubation to now, \u003ccode\u003ec_g_n\u003c/code\u003e - since graduation to now.\u003c/li\u003e\n\u003c/ul\u003e",
            "selected": false
          },
          "name": "docs"
        }
      ]
    },
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "target": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          },
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "uid": "grafana",
            "type": "datasource"
          },
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        }
      ]
    },
    "editable": true,
    "panels": [
      {
        "datasource": {
          "uid": "P172949F98CB31475",
          "type": "postgres"
        },
        "fieldConfig": {
          "defaults": {
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "value": null,
                  "color": "green"
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            },
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "align": "auto",
              "displayMode": "auto",
              "inspect": false
            },
            "mappings": []
          },
          "overrides": [
            {
              "matcher": {
                "id": "byName",
                "options": "Last calculated date"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 185
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Took"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 164
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Metric name"
              },
              "properties": [
                {
                  "value": 540,
                  "id": "custom.width"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Finished at"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 172
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Started at"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 183
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Milliseconds"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 101
                }
              ]
            }
          ]
        },
        "interval": "",
        "targets": [
          {
            "format": "table",
            "policy": "default",
            "rawQuery": true,
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "datasource": {
              "type": "postgres",
              "uid": "P172949F98CB31475"
            },
            "dsType": "influxdb",
            "query": "",
            "rawSql": "select\n  metric as \"Metric name\",\n  dt as \"Finished at\",\n  start_dt as \"Started at\",\n  took_as_str as \"Took\",\n  took as \"Milliseconds\",\n  command as \"Command\"\nfrom\n  gha_last_computed\norder by\n  dt desc",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "timeColumn": "time",
            "orderByTime": "ASC",
            "tags": [],
            "refId": "A",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "group": []
          }
        ],
        "transformations": [
          {
            "id": "merge",
            "options": {
              "reducers": []
            }
          }
        ],
        "type": "table",
        "hideTimeOverride": false,
        "pluginVersion": "8.5.20",
        "links": [],
        "title": "[[full_name]] metrics last calculation dates",
        "description": "[[full_name]] metrics last calculation dates",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "options": {
          "footer": {
            "enablePagination": true,
            "fields": "",
            "reducer": [
              "sum"
            ],
            "show": false
          },
          "showHeader": true,
          "sortBy": [
            {
              "desc": true,
              "displayName": "Finished at"
            }
          ]
        }
      },
      {
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "id": 3,
        "pluginVersion": "8.5.20",
        "targets": [
          {
            "datasource": {
              "type": "postgres",
              "uid": "P172949F98CB31475"
            },
            "format": "time_series",
            "group": [],
            "rawQuery": false,
            "refId": "A",
            "select": [],
            "table": "",
            "timeColumn": "",
            "timeColumnType": "",
            "metricColumn": "none",
            "rawSql": "",
            "where": []
          }
        ],
        "title": "Dashboard documentation",
        "type": "text",
        "description": "",
        "gridPos": {
          "y": 22,
          "h": 12,
          "w": 24,
          "x": 0
        },
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        }
      }
    ],
    "refresh": false,
    "schemaVersion": 36,
    "timepicker": {
      "hidden": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "version": 4,
    "links": [],
    "liveNow": false,
    "iteration": 1674835364311,
    "tags": [
      "dashboard",
      "kubernetes"
    ],
    "time": {
      "to": "now",
      "from": "now-7d"
    },
    "title": "Last updated",
    "weekStart": "",
    "graphTooltip": 0,
    "id": 25,
    "timezone": "",
    "uid": "82",
    "fiscalYearStartMonth": 0,
    "style": "dark"
  }


slug: licenses-and-programming-languages
title: Licenses and programming languages
created: 2024-07-12 09:56:24.391032082+00:00
updated: 2024-07-12 09:56:24.391032142+00:00
uid: 67
data:
  {
    "style": "dark",
    "version": 3,
    "editable": true,
    "graphTooltip": 0,
    "iteration": 1581599788116,
    "schemaVersion": 21,
    "id": 19,
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "timepicker": {
      "hidden": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "templating": {
      "list": [
        {
          "type": "query",
          "allValue": null,
          "includeAll": false,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "datasource": "psql",
          "definition": "",
          "refresh": 1,
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "hide": 2,
          "label": null,
          "name": "full_name",
          "options": [],
          "skipUrlSync": true
        },
        {
          "datasource": "psql",
          "label": null,
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF licenses and programming languages dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/licenses-and-programming-languages.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 summary of repository licenses and programming languages.\u003c/li\u003e\n\u003cli\u003eYou can select one or more repository groups or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select one or more licenses type or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select one or more programming languages or summary for all of them.\u003c/li\u003e\n\u003cli\u003eAll staticstics are displayed for currently selected set of values from drop-downs.\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\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF licenses and programming languages dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/licenses-and-programming-languages.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 summary of repository licenses and programming languages.\u003c/li\u003e\n\u003cli\u003eYou can select one or more repository groups or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select one or more licenses type or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select one or more programming languages or summary for all of them.\u003c/li\u003e\n\u003cli\u003eAll staticstics are displayed for currently selected set of values from drop-downs.\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\u003c/ul\u003e"
          },
          "definition": "select value_s from gha_vars where name = 'licenses_docs_html'",
          "includeAll": false,
          "multi": false,
          "tagValuesQuery": "",
          "allValue": null,
          "query": "select value_s from gha_vars where name = 'licenses_docs_html'",
          "type": "query",
          "hide": 2,
          "name": "docs",
          "options": [],
          "tags": [],
          "useTags": false
        },
        {
          "hide": 0,
          "name": "repogroups",
          "regex": "",
          "tags": [],
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "datasource": "psql",
          "multi": true,
          "query": "select repo_group_name from trepo_groups order by 1",
          "tagsQuery": "",
          "useTags": false,
          "allValue": "null",
          "definition": "select repo_group_name from trepo_groups order by 1",
          "includeAll": true,
          "label": "Repository groups",
          "sort": 0,
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "type": "query"
        },
        {
          "tagValuesQuery": "",
          "type": "query",
          "allValue": "null",
          "refresh": 1,
          "includeAll": true,
          "label": "Licenses",
          "options": [],
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "hide": 0,
          "regex": "",
          "skipUrlSync": false,
          "multi": true,
          "name": "licenses",
          "query": "select license_name from tlicenses order by 1",
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "datasource": "psql",
          "definition": "select license_name from tlicenses order by 1",
          "useTags": false
        },
        {
          "multi": true,
          "tagValuesQuery": "",
          "useTags": false,
          "allValue": "null",
          "datasource": "psql",
          "label": "Programming languages",
          "tagsQuery": "",
          "refresh": 1,
          "regex": "",
          "type": "query",
          "current": {
            "tags": [],
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "name": "languages",
          "options": [],
          "query": "select lang_name from tlanguages order by 1",
          "skipUrlSync": false,
          "sort": 0,
          "tags": [],
          "definition": "select lang_name from tlanguages order by 1",
          "hide": 0,
          "includeAll": true
        }
      ]
    },
    "timezone": "",
    "refresh": false,
    "tags": [
      "kubernetes",
      "dashboard",
      "table"
    ],
    "title": "Licenses and programming languages",
    "uid": "67",
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        }
      ]
    },
    "gnetId": null,
    "links": [],
    "panels": [
      {
        "description": "Summary for all [[full_name]] data. It includes data from repositories with unknown licenses and/or unknown programming languages.",
        "fontSize": "100%",
        "gridPos": {
          "h": 3,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "hideTimeOverride": false,
        "showHeader": true,
        "sort": {
          "col": 2,
          "desc": true
        },
        "type": "table",
        "columns": [],
        "scroll": true,
        "title": "Summary for all data",
        "id": 15,
        "styles": [],
        "timeFrom": null,
        "timeShift": null,
        "transparent": true,
        "pageSize": 2,
        "interval": "",
        "links": [],
        "options": {
          
        },
        "targets": [
          {
            "refId": "A",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "resultFormat": "table",
            "alias": "",
            "rawSql": "select\n  count(distinct r.license_name) filter (where r.license_name is not null and r.license_name != '' and r.license_name != 'Not found') as \"All Licenses\",\n  count(distinct rl.lang_name) filter (where rl.lang_name is not null and rl.lang_name != '' and rl.lang_name != 'unknown') as \"All Programming Languages\",\n  count(distinct r.alias) filter (where r.alias is not null) as \"All Repositories\",\n  sum(rl.lang_loc) as \"All BOC\"\nfrom\n  gha_repos r,\n  gha_repo_groups rg,\n  gha_repos_langs rl\nwhere\n  r.id = rg.id\n  and r.name = rg.name\n  and rg.name = rl.repo_name\n  and ('[[repogroups:csv]]' = 'null' or rg.repo_group in ([[repogroups]]))\n  and ('[[licenses:csv]]' = 'null' or r.license_name in ([[licenses]]))\n  and ('[[languages:csv]]' = 'null' or rl.lang_name in ([[languages]]))\n  and (r.name, r.id) = (\n    select i.name,\n      i.id\n    from\n      gha_repos i\n    where\n      i.alias = r.alias\n      and i.name like '%_/_%'\n      and i.name not like '%/%/%'\n    limit 1\n  )\n;",
            "policy": "default",
            "query": "",
            "rawQuery": true,
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "format": "table",
            "timeColumn": "time",
            "group": [],
            "orderByTime": "ASC"
          }
        ],
        "transform": "table",
        "datasource": "psql"
      },
      {
        "pageSize": 16,
        "targets": [
          {
            "alias": "",
            "metricColumn": "none",
            "policy": "default",
            "refId": "A",
            "tags": [],
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "rawSql": "select \n  r.license_name as \"License\",\n  count(distinct r.alias) as \"Repositories\"\nfrom\n  gha_repos r,\n  gha_repo_groups rg,\n  gha_repos_langs rl\nwhere\n  r.id = rg.id\n  and r.name = rg.name\n  and r.name = rl.repo_name\n  and ('[[repogroups:csv]]' = 'null' or rg.repo_group in ([[repogroups]]))\n  and ('[[licenses:csv]]' = 'null' or r.license_name in ([[licenses]]))\n  and ('[[languages:csv]]' = 'null' or rl.lang_name in ([[languages]]))\n  and r.license_name is not null and r.license_name not in ('', 'Not found')\n  and (r.name, r.id) = (\n    select i.name,\n      i.id\n    from\n      gha_repos i\n    where\n      i.alias = r.alias\n      and i.name like '%_/_%'\n      and i.name not like '%/%/%'\n    limit 1\n  )\ngroup by\n  r.license_name\n;",
            "resultFormat": "table",
            "rawQuery": true,
            "timeColumn": "time",
            "dsType": "influxdb",
            "group": [],
            "query": "",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "description": "Summary of all license types used in [[full_name]] repositories. Includes data from unidentified programming languages too. Only includes data from repositories with known license.",
        "gridPos": {
          "h": 15,
          "w": 5,
          "x": 0,
          "y": 3
        },
        "hideTimeOverride": false,
        "id": 1,
        "interval": "",
        "options": {
          
        },
        "columns": [],
        "sort": {
          "col": 1,
          "desc": true
        },
        "timeFrom": null,
        "type": "table",
        "datasource": "psql",
        "links": [],
        "scroll": true,
        "showHeader": true,
        "timeShift": null,
        "title": "Licenses summary",
        "fontSize": "90%",
        "styles": [],
        "transform": "table"
      },
      {
        "interval": "",
        "links": [],
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "format": "table",
            "rawSql": "select \n  rl.lang_name as \"Language\",\n  count(distinct r.alias) as \"Repositories\",\n  sum(rl.lang_loc) as \"BOC\"\nfrom\n  gha_repos r,\n  gha_repo_groups rg,\n  gha_repos_langs rl\nwhere\n  r.id = rg.id\n  and r.name = rg.name\n  and r.name = rl.repo_name\n  and ('[[repogroups:csv]]' = 'null' or rg.repo_group in ([[repogroups]]))\n  and ('[[licenses:csv]]' = 'null' or r.license_name in ([[licenses]]))\n  and ('[[languages:csv]]' = 'null' or rl.lang_name in ([[languages]]))\n  and rl.lang_name is not null and rl.lang_name not in ('', 'unknown')\n  and (r.name, r.id) = (\n    select i.name,\n      i.id\n    from\n      gha_repos i\n    where\n      i.alias = r.alias\n      and i.name like '%_/_%'\n      and i.name not like '%/%/%'\n    limit 1\n  )\ngroup by\n  rl.lang_name\n;",
            "resultFormat": "table",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "metricColumn": "none",
            "policy": "default",
            "rawQuery": true,
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "query": "",
            "refId": "A",
            "tags": [],
            "timeColumn": "time",
            "dsType": "influxdb",
            "group": [],
            "orderByTime": "ASC"
          }
        ],
        "timeShift": null,
        "title": "Programming languages summary",
        "type": "table",
        "fontSize": "90%",
        "pageSize": 16,
        "scroll": true,
        "styles": [],
        "hideTimeOverride": false,
        "id": 13,
        "options": {
          
        },
        "showHeader": true,
        "description": "Summary of all programming languages used in [[full_name]] repositories. Includes data from repositories with unknown licenses. Only includes data from repositories with identified programming languages.",
        "datasource": "psql",
        "gridPos": {
          "h": 15,
          "w": 8,
          "x": 5,
          "y": 3
        },
        "sort": {
          "col": 2,
          "desc": true
        },
        "timeFrom": null,
        "transform": "table",
        "columns": []
      },
      {
        "links": [],
        "options": {
          
        },
        "sort": {
          "col": 2,
          "desc": true
        },
        "datasource": "psql",
        "fontSize": "90%",
        "hideTimeOverride": false,
        "columns": [],
        "pageSize": 16,
        "styles": [],
        "showHeader": true,
        "transform": "table",
        "type": "table",
        "gridPos": {
          "h": 15,
          "w": 11,
          "x": 13,
          "y": 3
        },
        "interval": "",
        "scroll": true,
        "timeFrom": null,
        "timeShift": null,
        "title": "Licenses and programming languages",
        "description": "The number of repositories and bytes of code per license and programming language. It only includes data from repositories with known licenses and programming languages used.",
        "id": 14,
        "targets": [
          {
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "table",
            "group": [],
            "rawQuery": true,
            "rawSql": "select\n  r.license_name as \"License\",\n  rl.lang_name as \"Language\",\n  count(distinct r.alias) as \"Repositories\",\n  sum(rl.lang_loc) as \"BOC\"\nfrom\n  gha_repos r,\n  gha_repo_groups rg,\n  gha_repos_langs rl\nwhere\n  r.id = rg.id\n  and r.name = rg.name\n  and r.name = rl.repo_name\n  and ('[[repogroups:csv]]' = 'null' or rg.repo_group in ([[repogroups]]))\n  and ('[[licenses:csv]]' = 'null' or r.license_name in ([[licenses]]))\n  and ('[[languages:csv]]' = 'null' or rl.lang_name in ([[languages]]))\n  and r.license_name is not null and r.license_name not in ('', 'Not found')\n  and rl.lang_name is not null and rl.lang_name not in ('', 'unknown')\n  and (r.name, r.id) = (\n    select i.name,\n      i.id\n    from\n      gha_repos i\n    where\n      i.alias = r.alias\n      and i.name like '%_/_%'\n      and i.name not like '%/%/%'\n    limit 1\n  )\ngroup by\n  r.license_name,\n  rl.lang_name\n;",
            "refId": "A",
            "alias": "",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "query": "",
            "tags": [],
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time"
          }
        ]
      },
      {
        "options": {
          
        },
        "showHeader": true,
        "styles": [
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 3,
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "mappingType": 1,
            "pattern": "Language percent",
            "thresholds": []
          }
        ],
        "timeShift": null,
        "transform": "table",
        "columns": [],
        "gridPos": {
          "y": 18,
          "h": 23,
          "w": 24,
          "x": 0
        },
        "hideTimeOverride": false,
        "id": 12,
        "links": [],
        "sort": {
          "col": 4,
          "desc": true
        },
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "group": [],
            "policy": "default",
            "query": "",
            "refId": "A",
            "tags": [],
            "timeColumn": "time",
            "format": "table",
            "metricColumn": "none",
            "rawQuery": true,
            "resultFormat": "table",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "rawSql": "select \n  distinct coalesce(r.repo_group, 'No repo group') as \"Repo group\",\n  r.alias as \"Repo\",\n  r.license_name as \"License\",\n  rl.lang_name as \"Language\",\n  rl.lang_loc as \"BOC\",\n  rl.lang_perc as \"Language percent\"\nfrom\n  gha_repos r,\n  gha_repo_groups rg,\n  gha_repos_langs rl\nwhere\n  r.id = rg.id\n  and r.name = rg.name\n  and r.name = rl.repo_name\n  and ('[[repogroups:csv]]' = 'null' or rg.repo_group in ([[repogroups]]))\n  and ('[[licenses:csv]]' = 'null' or r.license_name in ([[licenses]]))\n  and ('[[languages:csv]]' = 'null' or rl.lang_name in ([[languages]]))\n  and (r.name, r.id) = (\n    select i.name,\n      i.id\n    from\n      gha_repos i\n    where\n      i.alias = r.alias\n      and i.name like '%_/_%'\n      and i.name not like '%/%/%'\n    limit 1\n  )\n;",
            "alias": ""
          }
        ],
        "datasource": "psql",
        "description": "Display license types and programming languages split per repository. Includes data for repositories with unknown licenses and/or unidentified programming languages.",
        "fontSize": "80%",
        "interval": "",
        "scroll": true,
        "pageSize": 30,
        "timeFrom": null,
        "title": "Repository licenses and programming languages details for [[full_name]]",
        "type": "table"
      },
      {
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "content": "${docs:raw}",
        "datasource": null,
        "gridPos": {
          "h": 10,
          "w": 24,
          "x": 0,
          "y": 41
        },
        "options": {
          
        },
        "type": "text"
      }
    ]
  }


slug: new-and-episodic-issue-creators
title: New And Episodic Issue Creators
created: 2024-07-12 09:56:24.396125428+00:00
updated: 2024-07-12 09:56:24.396125488+00:00
uid: 19
data:
  {
    "links": [],
    "refresh": false,
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "title": "New And Episodic Issue Creators",
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        },
        {
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "hide": false,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "name": "Releases",
          "showIn": 0,
          "tagsColumn": "title,description",
          "datasource": "psql",
          "enable": true
        }
      ]
    },
    "id": 23,
    "iteration": 1618568589826,
    "schemaVersion": 27,
    "editable": true,
    "gnetId": null,
    "templating": {
      "list": [
        {
          "description": null,
          "hide": 0,
          "label": "Period",
          "multi": false,
          "query": "d28,w,m,q,y",
          "skipUrlSync": false,
          "type": "custom",
          "allValue": null,
          "current": {
            "tags": [],
            "text": "28 Days MA",
            "value": "d28"
          },
          "error": null,
          "includeAll": false,
          "name": "period",
          "options": [
            {
              "selected": true,
              "text": "28 Days MA",
              "value": "d28"
            },
            {
              "text": "Week",
              "value": "w",
              "selected": false
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ]
        },
        {
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "hide": 0,
          "label": "Repository group",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "tags": [],
          "useTags": false,
          "allValue": null,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "error": null,
          "multi": false,
          "options": [],
          "sort": 1,
          "datasource": "psql",
          "definition": "",
          "description": null,
          "includeAll": false,
          "name": "repogroup_name",
          "skipUrlSync": false,
          "type": "query"
        },
        {
          "allValue": null,
          "definition": "",
          "description": null,
          "hide": 2,
          "includeAll": false,
          "multi": false,
          "options": [],
          "refresh": 1,
          "tags": [],
          "regex": "",
          "sort": 0,
          "error": null,
          "name": "repogroup",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "current": {
            "value": "all",
            "selected": false,
            "text": "all"
          },
          "datasource": "psql",
          "label": null,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'"
        },
        {
          "regex": "",
          "definition": "select repo_name from trepos order by 1",
          "description": null,
          "error": null,
          "skipUrlSync": false,
          "sort": 1,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "allValue": null,
          "tagsQuery": "",
          "includeAll": false,
          "datasource": "psql",
          "hide": 0,
          "label": "Repository group",
          "multi": false,
          "name": "repo_name",
          "options": [],
          "query": "select repo_name from trepos order by 1",
          "current": {
            "selected": false,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "tags": [],
          "refresh": 1
        },
        {
          "useTags": false,
          "allValue": null,
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "includeAll": false,
          "name": "repo",
          "error": null,
          "multi": false,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "refresh": 1,
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "hide": 2,
          "tagValuesQuery": "",
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": "",
          "description": null,
          "label": null,
          "options": [],
          "regex": ""
        },
        {
          "options": [],
          "refresh": 1,
          "description": null,
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "allValue": null,
          "label": null,
          "hide": 2,
          "includeAll": false,
          "useTags": false,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "definition": "",
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "error": null
        },
        {
          "description": null,
          "sort": 0,
          "useTags": false,
          "current": {
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes New And Episodic Issue Creators dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew issues metric (repo groups) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_issues.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic issues metric (repo groups) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/episodic_issues.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew issues metric (repos) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/new_issues_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic issues metric (repos) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/episodic_issues_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eNew and episodic issue\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/new-and-episodic-issue-creators.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 statistics about new and episodic issues and issue creators.\u003c/li\u003e\n\u003cli\u003eNew issue creator is someone who haven't created any issue before given period.\u003c/li\u003e\n\u003cli\u003eNew issue is an issue created by new issue creator\u003c/li\u003e\n\u003cli\u003eEpisodic issue creator is someone who haven't created any issue in 3 months before given project and haven't created more than 12 issues overall.\u003c/li\u003e\n\u003cli\u003eEpisodic issue is an issue created by episodic issue creator.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them (for the top panel).\u003c/li\u003e\n\u003cli\u003eYou can repository for bottom panel showing per single repository statistics.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate statistics 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\u003c/ul\u003e",
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes New And Episodic Issue Creators dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew issues metric (repo groups) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_issues.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic issues metric (repo groups) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/episodic_issues.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew issues metric (repos) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/new_issues_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic issues metric (repos) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/episodic_issues_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eNew and episodic issue\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/new-and-episodic-issue-creators.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 statistics about new and episodic issues and issue creators.\u003c/li\u003e\n\u003cli\u003eNew issue creator is someone who haven't created any issue before given period.\u003c/li\u003e\n\u003cli\u003eNew issue is an issue created by new issue creator\u003c/li\u003e\n\u003cli\u003eEpisodic issue creator is someone who haven't created any issue in 3 months before given project and haven't created more than 12 issues overall.\u003c/li\u003e\n\u003cli\u003eEpisodic issue is an issue created by episodic issue creator.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them (for the top panel).\u003c/li\u003e\n\u003cli\u003eYou can repository for bottom panel showing per single repository statistics.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate statistics 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\u003c/ul\u003e"
          },
          "datasource": "psql",
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'episodic_issues_docs_html'",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "allValue": null,
          "error": null,
          "includeAll": false,
          "multi": false,
          "refresh": 1,
          "regex": "",
          "tags": [],
          "type": "query",
          "definition": "",
          "hide": 2,
          "label": null,
          "options": []
        }
      ]
    },
    "time": {
      "from": "now-3y",
      "to": "now-1M"
    },
    "uid": "19",
    "graphTooltip": 0,
    "tags": [
      "dashboard",
      "kubernetes",
      "issues",
      "repogroups",
      "repos"
    ],
    "timezone": "",
    "version": 4,
    "panels": [
      {
        "nullPointMode": "null",
        "thresholds": [],
        "timeRegions": [],
        "timeShift": null,
        "pluginVersion": "7.5.4",
        "dashLength": 10,
        "dashes": false,
        "datasource": "psql",
        "decimals": 0,
        "fill": 1,
        "id": 1,
        "lines": true,
        "points": false,
        "stack": false,
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 0
        },
        "aliasColors": {
          
        },
        "hiddenSeries": false,
        "steppedLine": false,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "links": [],
        "renderer": "flot",
        "yaxes": [
          {
            "format": "none",
            "label": "Issues",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "label": "Issue creators",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "none"
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "legend": {
          "max": true,
          "values": true,
          "current": true,
          "hideEmpty": false,
          "hideZero": false,
          "min": true,
          "rightSide": false,
          "show": true,
          "total": false,
          "alignAsTable": false,
          "avg": true
        },
        "timeFrom": null,
        "transparent": true,
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "pointradius": 1,
        "seriesOverrides": [
          {
            "alias": "New issue creators",
            "yaxis": 2
          },
          {
            "alias": "Episodic issue creators",
            "yaxis": 2
          }
        ],
        "targets": [
          {
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "format": "time_series",
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "rawSql": "select\n  time,\n  value as \"Number of issues from new contributors\"\nfrom\n  snew_issues\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_iss[[repogroup]]iss'\norder by\n  time",
            "dsType": "influxdb",
            "groupBy": [],
            "hide": false,
            "policy": "autogen",
            "tags": [],
            "alias": ""
          },
          {
            "refId": "B",
            "tags": [],
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"New issue creators\"\nfrom\n  snew_issues\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_iss[[repogroup]]contrib'\norder by\n  time",
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "policy": "autogen",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "hide": false,
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "format": "time_series",
            "groupBy": []
          },
          {
            "alias": "",
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "dsType": "influxdb",
            "format": "time_series",
            "rawSql": "select\n  time,\n  value as \"Number of issues from episodic contributors\"\nfrom\n  sepisodic_issues\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_iss[[repogroup]]iss'\norder by\n  time",
            "tags": [],
            "orderByTime": "ASC",
            "refId": "C",
            "resultFormat": "time_series",
            "groupBy": [],
            "hide": false,
            "policy": "autogen",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          },
          {
            "format": "time_series",
            "hide": false,
            "orderByTime": "ASC",
            "refId": "D",
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "groupBy": [],
            "measurement": "reviewers_d",
            "policy": "autogen",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "rawSql": "select\n  time,\n  value as \"Episodic issue creators\"\nfrom\n  sepisodic_issues\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_iss[[repogroup]]contrib'\norder by\n  time",
            "resultFormat": "time_series"
          }
        ],
        "type": "graph",
        "bars": false,
        "description": "Displays the number of new/episodic issues and the number of new/episodic issues authors.\nThe episodic author is defined as someone who hasn't created issue in the last 3 months and no more than 12 issues overall.",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fillGradient": 0,
        "linewidth": 1,
        "percentage": false,
        "title": "New/episodic issues ([[repogroup_name]], [[period]])",
        "options": {
          "alertThreshold": true
        },
        "spaceLength": 10
      },
      {
        "fillGradient": 0,
        "legend": {
          "max": true,
          "min": true,
          "rightSide": false,
          "show": true,
          "values": true,
          "hideEmpty": false,
          "hideZero": false,
          "current": true,
          "total": false,
          "alignAsTable": false,
          "avg": true
        },
        "nullPointMode": "null",
        "seriesOverrides": [
          {
            "alias": "New issue creators",
            "yaxis": 2
          },
          {
            "yaxis": 2,
            "alias": "Episodic issue creators"
          }
        ],
        "transparent": true,
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "spaceLength": 10,
        "targets": [
          {
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "timeColumn": "time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "group": [],
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "rawQuery": true,
            "alias": "",
            "rawSql": "select\n  time,\n  value as \"Number of issues from new contributors\"\nfrom\n  snew_issues_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_iss[[repo]]iss'\norder by\n  time",
            "refId": "A",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "groupBy": [],
            "hide": false,
            "metricColumn": "none",
            "resultFormat": "time_series"
          },
          {
            "policy": "autogen",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": [],
            "refId": "B",
            "tags": [],
            "rawQuery": true,
            "format": "time_series",
            "measurement": "reviewers_d",
            "rawSql": "select\n  time,\n  value as \"New issue creators\"\nfrom\n  snew_issues_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_iss[[repo]]contrib'\norder by\n  time",
            "alias": "",
            "group": [],
            "hide": false,
            "metricColumn": "none",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "timeColumn": "time",
            "dsType": "influxdb",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ]
          },
          {
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "metricColumn": "none",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "policy": "autogen",
            "rawSql": "select\n  time,\n  value as \"Number of issues from episodic contributors\"\nfrom\n  sepisodic_issues_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_iss[[repo]]iss'\norder by\n  time",
            "alias": "",
            "format": "time_series",
            "group": [],
            "hide": false,
            "refId": "C",
            "resultFormat": "time_series",
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "tags": [],
            "timeColumn": "time"
          },
          {
            "hide": false,
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "tags": [],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "format": "time_series",
            "group": [],
            "measurement": "reviewers_d",
            "refId": "D",
            "resultFormat": "time_series",
            "rawSql": "select\n  time,\n  value as \"Episodic issue creators\"\nfrom\n  sepisodic_issues_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_iss[[repo]]contrib'\norder by\n  time",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "policy": "autogen",
            "rawQuery": true
          }
        ],
        "yaxes": [
          {
            "show": true,
            "format": "none",
            "label": "Issues",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "none",
            "label": "Issue creators"
          }
        ],
        "description": "Displays the number of new/episodic issues and the number of new/episodic issues authors.\nThe episodic author is defined as someone who hasn't created issue in the last 3 months and no more than 12 issues overall.",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "linewidth": 1,
        "options": {
          "alertThreshold": true
        },
        "timeShift": null,
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 0
        },
        "decimals": 0,
        "pointradius": 1,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "dashes": false,
        "type": "graph",
        "fill": 1,
        "stack": false,
        "timeRegions": [],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "aliasColors": {
          
        },
        "hiddenSeries": false,
        "id": 6,
        "lines": true,
        "links": [],
        "percentage": false,
        "pluginVersion": "7.5.4",
        "points": false,
        "steppedLine": false,
        "title": "New/episodic issues ([[repo_name]], [[period]])",
        "dashLength": 10,
        "renderer": "flot",
        "thresholds": [],
        "timeFrom": null
      },
      {
        "id": 5,
        "links": [],
        "title": "Dashboard documentation",
        "pluginVersion": "7.5.4",
        "type": "text",
        "datasource": null,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "h": 15,
          "w": 24,
          "x": 0,
          "y": 44
        },
        "options": {
          "mode": "html",
          "content": "${docs:raw}"
        }
      }
    ],
    "style": "dark"
  }


slug: new-and-episodic-pr-contributors
title: New and Episodic PR Contributors
created: 2024-07-12 09:56:24.402613958+00:00
updated: 2024-07-12 09:56:24.402614039+00:00
uid: 18
data:
  {
    "links": [],
    "uid": "18",
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description",
          "datasource": "psql",
          "enable": true,
          "titleColumn": "[[full_name]] release",
          "textColumn": "",
          "type": "alert",
          "limit": 100,
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)"
        }
      ]
    },
    "editable": true,
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "PRs",
      "repogroups",
      "repos"
    ],
    "time": {
      "to": "now-1M",
      "from": "now-3y"
    },
    "title": "New and Episodic PR Contributors",
    "gnetId": null,
    "id": 24,
    "panels": [
      {
        "spaceLength": 10,
        "dashLength": 10,
        "dashes": false,
        "fillGradient": 0,
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 22
        },
        "percentage": false,
        "pointradius": 1,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "hiddenSeries": false,
        "nullPointMode": "null",
        "seriesOverrides": [
          {
            "alias": "New contributors",
            "yaxis": 2
          },
          {
            "yaxis": 2,
            "alias": "Episodic contributors"
          }
        ],
        "transparent": true,
        "datasource": "psql",
        "decimals": 0,
        "id": 1,
        "legend": {
          "values": true,
          "avg": true,
          "current": true,
          "hideEmpty": false,
          "max": true,
          "rightSide": false,
          "alignAsTable": false,
          "hideZero": false,
          "min": true,
          "show": true,
          "total": false
        },
        "stack": false,
        "description": "Displays number of new/episodic PRs and number of new/episodic PRs authors.\nThe episodic author is defined as someone who hasn't created PRs in the last 3 months and no more than 12 PRs overall.",
        "fill": 1,
        "pluginVersion": "7.5.4",
        "title": "New/episodic contributors/contributions ([[repogroup_name]], [[period]])",
        "lines": true,
        "renderer": "flot",
        "targets": [
          {
            "orderByTime": "ASC",
            "rawQuery": true,
            "refId": "A",
            "dsType": "influxdb",
            "policy": "autogen",
            "tags": [],
            "query": "SELECT \"value\" FROM \"new_contributors_[[repogroup]]_prs_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"Number of PRs from new contributors\"\nfrom\n  snew_contributors\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_contrib[[repogroup]]prs'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "alias": "",
            "format": "time_series",
            "groupBy": [],
            "hide": false,
            "measurement": "reviewers_d"
          },
          {
            "dsType": "influxdb",
            "groupBy": [],
            "hide": false,
            "policy": "autogen",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"New contributors\"\nfrom\n  snew_contributors\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_contrib[[repogroup]]contrib'\norder by\n  time",
            "refId": "B",
            "resultFormat": "time_series",
            "alias": "",
            "format": "time_series",
            "orderByTime": "ASC",
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"new_contributors_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": []
          },
          {
            "rawSql": "select\n  time,\n  value as \"Number of PRs from episodic contributors\"\nfrom\n  sepisodic_contributors\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_contrib[[repogroup]]prs'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "query": "SELECT \"value\" FROM \"episodic_contributors_[[repogroup]]_prs_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "C",
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "hide": false,
            "measurement": "reviewers_d",
            "policy": "autogen"
          },
          {
            "tags": [],
            "format": "time_series",
            "hide": false,
            "orderByTime": "ASC",
            "policy": "autogen",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Episodic contributors\"\nfrom\n  sepisodic_contributors\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_contrib[[repogroup]]contrib'\norder by\n  time",
            "refId": "D",
            "alias": "",
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"episodic_contributors_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series"
          }
        ],
        "timeRegions": [],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "options": {
          "alertThreshold": true
        },
        "thresholds": [],
        "timeFrom": null,
        "timeShift": null,
        "bars": false,
        "linewidth": 1,
        "links": [],
        "points": false,
        "steppedLine": false,
        "type": "graph",
        "xaxis": {
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "yaxes": [
          {
            "format": "none",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "none",
            "label": "PR authors",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ]
      },
      {
        "seriesOverrides": [
          {
            "yaxis": 2,
            "alias": "New contributors"
          },
          {
            "alias": "Episodic contributors",
            "yaxis": 2
          }
        ],
        "timeFrom": null,
        "transparent": true,
        "yaxes": [
          {
            "format": "none",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "none",
            "label": "PR authors",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "bars": false,
        "links": [],
        "nullPointMode": "null",
        "options": {
          "alertThreshold": true
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "fill": 1,
        "hiddenSeries": false,
        "dashes": false,
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "percentage": false,
        "points": false,
        "renderer": "flot",
        "timeRegions": [],
        "timeShift": null,
        "title": "New/episodic contributors/contributions ([[repo_name]], [[period]])",
        "decimals": 0,
        "fillGradient": 0,
        "legend": {
          "avg": true,
          "hideEmpty": false,
          "min": true,
          "rightSide": false,
          "show": true,
          "values": true,
          "alignAsTable": false,
          "hideZero": false,
          "max": true,
          "total": false,
          "current": true
        },
        "xaxis": {
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time"
        },
        "thresholds": [],
        "aliasColors": {
          
        },
        "spaceLength": 10,
        "targets": [
          {
            "alias": "",
            "format": "time_series",
            "hide": false,
            "rawSql": "select\n  time,\n  value as \"Number of PRs from new contributors\"\nfrom\n  snew_contributors_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_contrib[[repog]]prs'\norder by\n  time",
            "timeColumn": "time",
            "group": [],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"new_contributors_[[repogroup]]_prs_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "tags": [],
            "groupBy": [],
            "measurement": "reviewers_d",
            "policy": "autogen",
            "dsType": "influxdb",
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          },
          {
            "groupBy": [],
            "hide": false,
            "rawSql": "select\n  time,\n  value as \"New contributors\"\nfrom\n  snew_contributors_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_contrib[[repo]]contrib'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "metricColumn": "none",
            "policy": "autogen",
            "rawQuery": true,
            "refId": "B",
            "tags": [],
            "format": "time_series",
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "timeColumn": "time",
            "group": [],
            "query": "SELECT \"value\" FROM \"new_contributors_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          },
          {
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"episodic_contributors_[[repogroup]]_prs_[[period]]\" WHERE $timeFilter",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "refId": "C",
            "alias": "",
            "format": "time_series",
            "group": [],
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "hide": false,
            "orderByTime": "ASC",
            "policy": "autogen",
            "tags": [],
            "groupBy": [],
            "metricColumn": "none",
            "rawSql": "select\n  time,\n  value as \"Number of PRs from episodic contributors\"\nfrom\n  sepisodic_contributors_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_contrib[[repo]]prs'\norder by\n  time",
            "resultFormat": "time_series"
          },
          {
            "group": [],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"Episodic contributors\"\nfrom\n  sepisodic_contributors_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_contrib[[repo]]contrib'\norder by\n  time",
            "resultFormat": "time_series",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "measurement": "reviewers_d",
            "format": "time_series",
            "groupBy": [],
            "hide": false,
            "refId": "D",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "dsType": "influxdb",
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"episodic_contributors_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "linewidth": 1,
        "pluginVersion": "7.5.4",
        "stack": false,
        "type": "graph",
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "lines": true,
        "pointradius": 1,
        "steppedLine": false,
        "description": "Displays number of new/episodic PRs and number of new/episodic PRs authors.\nThe episodic author is defined as someone who hasn't created PRs in the last 3 months and no more than 12 PRs overall.",
        "id": 6,
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 0
        }
      },
      {
        "gridPos": {
          "h": 16,
          "w": 24,
          "x": 0,
          "y": 44
        },
        "pluginVersion": "7.5.4",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 5,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null
      }
    ],
    "schemaVersion": 27,
    "templating": {
      "list": [
        {
          "allValue": null,
          "current": {
            "tags": [],
            "text": "28 Days MA",
            "value": "d28"
          },
          "error": null,
          "includeAll": false,
          "name": "period",
          "query": "d28,w,m,q,y",
          "skipUrlSync": false,
          "description": null,
          "hide": 0,
          "label": "Period",
          "multi": false,
          "options": [
            {
              "selected": true,
              "text": "28 Days MA",
              "value": "d28"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "value": "m",
              "selected": false,
              "text": "Month"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "type": "custom"
        },
        {
          "tagValuesQuery": "",
          "label": "Repository group",
          "datasource": "psql",
          "multi": false,
          "tags": [],
          "type": "query",
          "allValue": null,
          "description": null,
          "hide": 0,
          "includeAll": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "skipUrlSync": false,
          "definition": "",
          "error": null,
          "name": "repogroup_name",
          "options": [],
          "refresh": 1,
          "regex": "",
          "sort": 1,
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "useTags": false
        },
        {
          "includeAll": false,
          "name": "repogroup",
          "regex": "",
          "skipUrlSync": true,
          "type": "query",
          "allValue": null,
          "error": null,
          "hide": 2,
          "options": [],
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "datasource": "psql",
          "definition": "",
          "label": null,
          "multi": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "tagValuesQuery": "",
          "current": {
            "text": "all",
            "value": "all",
            "selected": false
          },
          "description": null
        },
        {
          "includeAll": false,
          "sort": 1,
          "tags": [],
          "datasource": "psql",
          "hide": 0,
          "multi": false,
          "query": "select repo_name from trepos order by 1",
          "tagsQuery": "",
          "error": null,
          "regex": "",
          "skipUrlSync": false,
          "useTags": false,
          "refresh": 1,
          "current": {
            "selected": true,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "definition": "select repo_name from trepos order by 1",
          "description": null,
          "label": "Repository",
          "name": "repo_name",
          "options": [],
          "tagValuesQuery": "",
          "allValue": null,
          "type": "query"
        },
        {
          "options": [],
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "hide": 2,
          "name": "repo",
          "datasource": "psql",
          "refresh": 1,
          "sort": 0,
          "multi": false,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "regex": "",
          "useTags": false,
          "allValue": null,
          "error": null,
          "includeAll": false,
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "description": null,
          "label": null
        },
        {
          "tagsQuery": "",
          "datasource": "psql",
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "useTags": false,
          "hide": 2,
          "includeAll": false,
          "tags": [],
          "type": "query",
          "label": null,
          "name": "full_name",
          "sort": 0,
          "error": null,
          "multi": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "allValue": null,
          "current": {
            "value": "Kubernetes",
            "selected": false,
            "text": "Kubernetes"
          },
          "definition": "",
          "description": null,
          "regex": ""
        },
        {
          "description": null,
          "error": null,
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'episodic_prs_docs_html'",
          "type": "query",
          "definition": "",
          "tagValuesQuery": "",
          "tags": [],
          "includeAll": false,
          "datasource": "psql",
          "label": null,
          "multi": false,
          "name": "docs",
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "allValue": null,
          "tagsQuery": "",
          "options": [],
          "regex": "",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes New And Episodic PR Contributors dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew PRs metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic PRs metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/episodic_contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eNew and episodic PR\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/new-and-episodic-pr-contributors.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 statistics about new and episodic PRs and contributors (PR creators).\u003c/li\u003e\n\u003cli\u003eNew contributor (PR creator) is someone who haven't created any PR before given period.\u003c/li\u003e\n\u003cli\u003eNew PR is a PR created by new contributor\u003c/li\u003e\n\u003cli\u003eEpisodic contributor (PR creator) is someone who haven't created any PR in 3 months before given project and haven't created more than 12 PRs overall.\u003c/li\u003e\n\u003cli\u003eEpisodic PR is a PR created by episodic contributor.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate statistics 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\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes New And Episodic PR Contributors dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew PRs metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic PRs metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/episodic_contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eNew and episodic PR\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/new-and-episodic-pr-contributors.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 statistics about new and episodic PRs and contributors (PR creators).\u003c/li\u003e\n\u003cli\u003eNew contributor (PR creator) is someone who haven't created any PR before given period.\u003c/li\u003e\n\u003cli\u003eNew PR is a PR created by new contributor\u003c/li\u003e\n\u003cli\u003eEpisodic contributor (PR creator) is someone who haven't created any PR in 3 months before given project and haven't created more than 12 PRs overall.\u003c/li\u003e\n\u003cli\u003eEpisodic PR is a PR created by episodic contributor.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate statistics 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\u003c/ul\u003e"
          }
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "",
    "graphTooltip": 0,
    "iteration": 1618564508490,
    "refresh": false,
    "version": 5
  }


slug: new-contributors
title: New contributors
created: 2024-07-12 09:56:24.40919235+00:00
updated: 2024-07-12 09:56:24.40919242+00:00
uid: 52
data:
  {
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "target": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          },
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "type": "datasource",
            "uid": "grafana"
          },
          "enable": true,
          "hide": true
        }
      ]
    },
    "refresh": false,
    "weekStart": "",
    "templating": {
      "list": [
        {
          "includeAll": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "definition": "",
          "hide": 2,
          "name": "full_name",
          "refresh": 1,
          "regex": "",
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "type": "query",
          "useTags": false,
          "multi": false,
          "tagsQuery": "",
          "skipUrlSync": true
        },
        {
          "label": "Repository group",
          "multi": false,
          "name": "repogroup_name",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "definition": "",
          "includeAll": false,
          "tagValuesQuery": "",
          "hide": 0,
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "type": "query",
          "useTags": false,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "options": [],
          "refresh": 1
        },
        {
          "tagValuesQuery": "",
          "type": "query",
          "label": "",
          "refresh": 1,
          "skipUrlSync": true,
          "tagsQuery": "",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "regex": "",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "sort": 0,
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "name": "repogroup",
          "options": [],
          "useTags": false,
          "hide": 2,
          "includeAll": false,
          "multi": false
        },
        {
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'new_contributors_docs_html'",
          "regex": "",
          "skipUrlSync": true,
          "tagsQuery": "",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": 2,
          "includeAll": false,
          "multi": false,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eKubernetes new contributors table dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew contributors metric (repo groups) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_contributors_data.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew contributors metric (repos) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/new_contributors_data_repos.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\u003eNew contributors table\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/new-contributors-table.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 statistics about new PR contributors.\u003c/li\u003e\n\u003cli\u003eNew contributor (PR creator) is someone whose PR was merged for the first time.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them (for the top panel).\u003c/li\u003e\n\u003cli\u003eYou can select repository for bottom panel showing per single repository statistics.\u003c/li\u003e\n\u003cli\u003eYou can select date range to show new contributors for this period.\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\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eKubernetes new contributors table dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew contributors metric (repo groups) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_contributors_data.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew contributors metric (repos) \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/new_contributors_data_repos.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\u003eNew contributors table\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/new-contributors-table.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 statistics about new PR contributors.\u003c/li\u003e\n\u003cli\u003eNew contributor (PR creator) is someone whose PR was merged for the first time.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them (for the top panel).\u003c/li\u003e\n\u003cli\u003eYou can select repository for bottom panel showing per single repository statistics.\u003c/li\u003e\n\u003cli\u003eYou can select date range to show new contributors for this period.\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\u003c/ul\u003e"
          },
          "definition": "",
          "options": [],
          "refresh": 1
        },
        {
          "useTags": false,
          "hide": 0,
          "sort": 0,
          "tagValuesQuery": "",
          "regex": "",
          "type": "query",
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "name": "repo_name",
          "refresh": 1,
          "multi": false,
          "tagsQuery": "",
          "label": "Repository",
          "options": [],
          "query": "select repo_name from trepos order by 1",
          "skipUrlSync": false,
          "current": {
            "selected": false,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "definition": "select repo_name from trepos order by 1",
          "includeAll": false
        },
        {
          "includeAll": false,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "hide": 2,
          "label": "",
          "sort": 0,
          "type": "query",
          "useTags": false,
          "multi": false,
          "name": "repo",
          "options": [],
          "refresh": 1,
          "regex": "",
          "tagValuesQuery": "",
          "skipUrlSync": true
        }
      ]
    },
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "hidden": false,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "title": "New contributors",
    "editable": true,
    "graphTooltip": 0,
    "links": [],
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "table",
      "repos"
    ],
    "version": 2,
    "schemaVersion": 36,
    "fiscalYearStartMonth": 0,
    "id": 29,
    "iteration": 1702016029909,
    "liveNow": false,
    "panels": [
      {
        "type": "table",
        "datasource": {
          "uid": "P172949F98CB31475",
          "type": "postgres"
        },
        "fieldConfig": {
          "defaults": {
            "decimals": 0,
            "displayName": "",
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green",
                  "value": null
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            },
            "unit": "short",
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "displayMode": "auto",
              "inspect": false
            }
          },
          "overrides": [
            {
              "properties": [
                {
                  "id": "displayName",
                  "value": "Contributor"
                },
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ],
              "matcher": {
                "id": "byName",
                "options": "str"
              }
            },
            {
              "matcher": {
                "id": "byName",
                "options": "dt"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "First contribution"
                },
                {
                  "id": "unit",
                  "value": "none"
                },
                {
                  "id": "unit",
                  "value": "time: MM/DD/YY h:mm:ss a"
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": ""
              },
              "properties": [
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ]
            }
          ]
        },
        "gridPos": {
          "h": 25,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "hideTimeOverride": false,
        "id": 1,
        "options": {
          "footer": {
            "reducer": [
              "sum"
            ],
            "show": false,
            "fields": ""
          },
          "showHeader": true
        },
        "transformations": [
          {
            "id": "seriesToRows",
            "options": {
              "reducers": []
            }
          }
        ],
        "description": "",
        "links": [],
        "pluginVersion": "8.5.27",
        "targets": [
          {
            "rawQuery": true,
            "rawSql": "select str, dt from \"snew_contributors_data\" where $__timeFilter(dt) and series = 'ncd[[repogroup]]' and period = 'd'",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "orderByTime": "ASC",
            "policy": "default",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "query": "",
            "refId": "A",
            "resultFormat": "table",
            "tags": []
          }
        ],
        "title": "[[full_name]] New contributors table (Repository group [[repogroup_name]])"
      },
      {
        "title": "[[full_name]] New contributors table (Repository [[repo_name]])",
        "type": "table-old",
        "links": [],
        "targets": [
          {
            "format": "table",
            "group": [],
            "resultFormat": "table",
            "alias": "",
            "dsType": "influxdb",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "tags": [],
            "query": "",
            "rawSql": "select str, dt from \"snew_contributors_data_repos\" where $__timeFilter(dt) and series = 'ncd[[repo]]' and period = 'd'",
            "rawQuery": true,
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none",
            "orderByTime": "ASC"
          }
        ],
        "gridPos": {
          "h": 25,
          "w": 24,
          "x": 0,
          "y": 25
        },
        "id": 12,
        "columns": [],
        "description": "",
        "hideTimeOverride": false,
        "pageSize": 30,
        "scroll": true,
        "showHeader": true,
        "styles": [
          {
            "unit": "short",
            "alias": "Contributor",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 2,
            "preserveFormat": false,
            "type": "string",
            "align": "auto",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "pattern": "str",
            "thresholds": []
          },
          {
            "align": "auto",
            "dateFormat": "MM/DD/YY h:mm:ss a",
            "thresholds": [],
            "pattern": "dt",
            "type": "date",
            "unit": "none",
            "alias": "First contribution",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0
          },
          {
            "alias": "",
            "align": "auto",
            "mappingType": 1,
            "unit": "short",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 2,
            "pattern": "",
            "thresholds": [],
            "type": "number"
          },
          {
            "alias": "",
            "align": "auto",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0,
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "unit": "short"
          }
        ],
        "datasource": {
          "uid": "P172949F98CB31475",
          "type": "postgres"
        },
        "fontSize": "90%",
        "sort": {
          "desc": false,
          "col": 1
        },
        "transform": "timeseries_to_rows"
      },
      {
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "7.5.4",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 50
        },
        "id": 11,
        "links": []
      }
    ],
    "time": {
      "from": "now-7d",
      "to": "now"
    },
    "timezone": "",
    "uid": "52"
  }


slug: open-issues-prs-by-milestone-and-repository
title: Open issues/PRs by milestone and repository
created: 2024-07-12 09:56:24.41478672+00:00
updated: 2024-07-12 09:56:24.4147868+00:00
uid: 22
data:
  {
    "schemaVersion": 16,
    "version": 13,
    "links": [],
    "uid": "22",
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "title": "Open issues/PRs by milestone and repository",
    "annotations": {
      "list": [
        {
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1
        },
        {
          "datasource": "psql",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "showIn": 0,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "hide": false,
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "textColumn": "",
          "type": "alert"
        }
      ]
    },
    "editable": true,
    "gnetId": null,
    "tags": [
      "dashboard",
      "kubernetes",
      "issues",
      "PRs",
      "repos"
    ],
    "style": "dark",
    "templating": {
      "list": [
        {
          "allValue": null,
          "datasource": "psql",
          "tags": [],
          "tagsQuery": "",
          "tagValuesQuery": "",
          "useTags": false,
          "current": {
            "text": "All",
            "value": "All"
          },
          "name": "sig_name",
          "query": "select sig_mentions_labels_name_with_all from tsig_mentions_labels_with_all order by 1",
          "refresh": 1,
          "regex": "",
          "hide": 0,
          "multi": false,
          "skipUrlSync": false,
          "sort": 0,
          "type": "query",
          "includeAll": false,
          "label": "SIG",
          "options": []
        },
        {
          "multi": false,
          "options": [],
          "skipUrlSync": true,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "includeAll": false,
          "current": {
            "text": "all",
            "value": "all"
          },
          "refresh": 1,
          "regex": "",
          "type": "query",
          "allValue": null,
          "label": "",
          "tags": [],
          "useTags": false,
          "datasource": "psql",
          "name": "sig",
          "query": "select sig_mentions_labels_value_with_all from tsig_mentions_labels_with_all where sig_mentions_labels_name_with_all = '[[sig_name]]'",
          "hide": 2
        },
        {
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "current": {
            "text": "All",
            "value": "All"
          },
          "label": "Milestone",
          "name": "milestone_name",
          "query": "select all_milestones_name from tall_milestones order by all_milestones_value",
          "type": "query",
          "datasource": "psql",
          "multi": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "allValue": null,
          "hide": 0,
          "tags": [],
          "useTags": false,
          "includeAll": false,
          "regex": ""
        },
        {
          "current": {
            "value": "all",
            "text": "all"
          },
          "multi": false,
          "regex": "",
          "sort": 0,
          "tags": [],
          "type": "query",
          "hide": 2,
          "includeAll": false,
          "name": "milestone",
          "refresh": 1,
          "skipUrlSync": true,
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "query": "select all_milestones_value from tall_milestones where all_milestones_name = '[[milestone_name]]'",
          "tagsQuery": "",
          "label": "",
          "options": [],
          "tagValuesQuery": ""
        },
        {
          "allValue": null,
          "datasource": "psql",
          "label": "Repository",
          "name": "repo_name",
          "sort": 1,
          "type": "query",
          "tagsQuery": "",
          "current": {
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "hide": 0,
          "multi": false,
          "refresh": 1,
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tags": [],
          "includeAll": false,
          "query": "select top_repo_names_name_with_all from ttop_repo_names_with_all order by 1",
          "regex": "",
          "useTags": false,
          "options": []
        },
        {
          "allValue": null,
          "hide": 2,
          "label": "",
          "options": [],
          "query": "select top_repo_names_value_with_all from ttop_repo_names_with_all where top_repo_names_name_with_all = '[[repo_name]]'",
          "skipUrlSync": true,
          "tags": [],
          "multi": false,
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "useTags": false,
          "current": {
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "name": "repo",
          "refresh": 1,
          "regex": "",
          "tagValuesQuery": ""
        },
        {
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "hide": 2,
          "multi": false,
          "sort": 0,
          "tagValuesQuery": "",
          "skipUrlSync": true,
          "datasource": "psql",
          "includeAll": false,
          "label": null,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "regex": "",
          "name": "full_name",
          "type": "query"
        },
        {
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "allValue": null,
          "datasource": "psql",
          "includeAll": false,
          "label": null,
          "query": "select value_s from gha_vars where name = 'sig_milestones_docs_html'",
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "current": {
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes open issues/PRs by milestone and repository dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpen issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/open_issues_sigs_milestones.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOpen PRs metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/open_prs_sigs_milestones.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003esigs_milestones\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/open-issues-prs-by-milestone-and-repository.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\u003eDashboard shows number of open issues and PRs for given SIG and milestone.\u003c/li\u003e\n\u003cli\u003eIt shows number of issues/PRs that were open at given point in time.\u003c/li\u003e\n\u003cli\u003eIt detects issue/PR SIG by \u003ccode\u003esig/*\u003c/code\u003e labels. You can also select all SIGs.\u003c/li\u003e\n\u003cli\u003eYou can filter by specific milestone or select all milestones.\u003c/li\u003e\n\u003cli\u003eYou can filter by specific repository or select all repositories.\u003c/li\u003e\n\u003cli\u003eMilestone and labels set is determined from last issue/PR comment before or at given point in time.\u003c/li\u003e\n\u003cli\u003eWe're using special dedicated tool that uses GitHub API to get newest issue/PR state because labels/milestones are usually updated by k8s-bot after the comment (in reaction to comment's command).\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes open issues/PRs by milestone and repository dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpen issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/open_issues_sigs_milestones.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eOpen PRs metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/open_prs_sigs_milestones.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003esigs_milestones\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/open-issues-prs-by-milestone-and-repository.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\u003eDashboard shows number of open issues and PRs for given SIG and milestone.\u003c/li\u003e\n\u003cli\u003eIt shows number of issues/PRs that were open at given point in time.\u003c/li\u003e\n\u003cli\u003eIt detects issue/PR SIG by \u003ccode\u003esig/*\u003c/code\u003e labels. You can also select all SIGs.\u003c/li\u003e\n\u003cli\u003eYou can filter by specific milestone or select all milestones.\u003c/li\u003e\n\u003cli\u003eYou can filter by specific repository or select all repositories.\u003c/li\u003e\n\u003cli\u003eMilestone and labels set is determined from last issue/PR comment before or at given point in time.\u003c/li\u003e\n\u003cli\u003eWe're using special dedicated tool that uses GitHub API to get newest issue/PR state because labels/milestones are usually updated by k8s-bot after the comment (in reaction to comment's command).\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "hide": 2,
          "multi": false,
          "name": "docs",
          "options": [],
          "skipUrlSync": true,
          "type": "query",
          "useTags": false
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "",
    "graphTooltip": 0,
    "id": 114,
    "panels": [
      {
        "percentage": false,
        "renderer": "flot",
        "type": "graph",
        "linewidth": 1,
        "transparent": false,
        "timeFrom": null,
        "bars": false,
        "datasource": "psql",
        "id": 1,
        "points": false,
        "spaceLength": 10,
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "decimals": 0,
            "format": "none",
            "label": "Open Issues",
            "logBase": 1
          },
          {
            "format": "none",
            "label": "Open PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": 0
          }
        ],
        "aliasColors": {
          
        },
        "description": "Number of open PRs and Issues for a given SIG: [[sig_name]] and Milestone: [[milestone_name]]",
        "lines": true,
        "links": [],
        "title": "Open issues/PRs (SIG: [[sig_name]], Milestone: [[milestone_name]])",
        "targets": [
          {
            "tags": [],
            "hide": false,
            "groupBy": [],
            "orderByTime": "ASC",
            "dsType": "influxdb",
            "format": "time_series",
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"open_issues_sigs_milestones_[[sig]]_[[milestone]]_[[repo]]_d\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "alias": "",
            "rawSql": "select\n  time,\n  value as \"Open issues\"\nfrom\n  sissues_milestones\nwhere\n  $__timeFilter(time)\n  and series = 'isigml[[sig]][[milestone]][[repo]]'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "measurement": "reviewers_d"
          },
          {
            "hide": false,
            "rawSql": "select\n  time,\n  value as \"Open PRs\"\nfrom\n  sprs_milestones\nwhere\n  $__timeFilter(time)\n  and series = 'prsigml[[sig]][[milestone]][[repo]]'\norder by\n  time",
            "dsType": "influxdb",
            "refId": "B",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "orderByTime": "ASC",
            "policy": "autogen",
            "rawQuery": true,
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"open_prs_sigs_milestones_[[sig]]_[[milestone]]_[[repo]]_d\" WHERE $timeFilter",
            "alias": "",
            "format": "time_series",
            "groupBy": []
          }
        ],
        "timeShift": null,
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "dashes": false,
        "pointradius": 5,
        "stack": false,
        "thresholds": [],
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "dashLength": 10,
        "fill": 2,
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "nullPointMode": "null",
        "steppedLine": true,
        "decimals": 0,
        "legend": {
          "current": true,
          "avg": true,
          "hideEmpty": false,
          "hideZero": false,
          "max": true,
          "min": true,
          "rightSide": false,
          "show": true,
          "alignAsTable": true,
          "total": false,
          "values": true,
          "sideWidth": null
        },
        "seriesOverrides": [
          {
            "alias": "Open PRs",
            "yaxis": 2
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 2,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "refresh": false
  }


slug: open-pr-age-by-repository-group
title: Open PR Age by Repository Group
created: 2024-07-12 09:56:24.422475552+00:00
updated: 2024-07-12 09:56:24.422475622+00:00
uid: 25
data:
  {
    "id": 27,
    "iteration": 1619519511742,
    "templating": {
      "list": [
        {
          "includeAll": false,
          "label": "Period",
          "multi": false,
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "text": "Week",
              "value": "w",
              "selected": false
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,d7,w,m,q,y",
          "allValue": null,
          "error": null,
          "skipUrlSync": false,
          "hide": 0,
          "type": "custom",
          "current": {
            "selected": false,
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "description": null
        },
        {
          "description": null,
          "name": "repogroup_name",
          "sort": 0,
          "type": "query",
          "tagValuesQuery": "",
          "tags": [],
          "datasource": "psql",
          "definition": "",
          "label": "Repository group",
          "skipUrlSync": false,
          "refresh": 1,
          "regex": "",
          "allValue": null,
          "error": null,
          "hide": 0,
          "includeAll": false,
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "multi": false,
          "options": [],
          "query": "select all_repo_group_name from tall_repo_groups order by 1"
        },
        {
          "current": {
            "selected": false,
            "text": "kubernetes",
            "value": "kubernetes"
          },
          "definition": "",
          "description": null,
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "hide": 2,
          "label": "",
          "multi": false,
          "name": "repogroup",
          "options": [],
          "refresh": 1,
          "tagsQuery": "",
          "useTags": false,
          "datasource": "psql",
          "sort": 0,
          "tags": [],
          "type": "query",
          "allValue": null,
          "error": null,
          "includeAll": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'"
        },
        {
          "allValue": null,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "useTags": false,
          "current": {
            "selected": true,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "datasource": "psql",
          "description": null,
          "refresh": 1,
          "regex": "",
          "query": "select repo_name from trepos order by 1",
          "error": null,
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "options": [],
          "tagsQuery": "",
          "definition": "select repo_name from trepos order by 1",
          "label": "Repository",
          "name": "repo_name",
          "skipUrlSync": false,
          "sort": 0
        },
        {
          "tags": [],
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "description": null,
          "hide": 2,
          "name": "repo",
          "refresh": 1,
          "datasource": "psql",
          "includeAll": false,
          "label": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "error": null,
          "options": [],
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "skipUrlSync": true,
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "multi": false,
          "regex": "",
          "sort": 0,
          "useTags": false
        },
        {
          "hide": 2,
          "includeAll": false,
          "options": [],
          "description": null,
          "multi": false,
          "name": "full_name",
          "skipUrlSync": true,
          "allValue": null,
          "definition": "",
          "error": null,
          "label": null,
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "datasource": "psql",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "regex": ""
        },
        {
          "datasource": "psql",
          "definition": "",
          "label": null,
          "skipUrlSync": true,
          "sort": 0,
          "useTags": false,
          "error": null,
          "includeAll": false,
          "regex": "",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "description": null,
          "hide": 2,
          "name": "docs",
          "options": [],
          "query": "select value_s from gha_vars where name = 'prs_age_docs_html'",
          "tagValuesQuery": "",
          "allValue": null,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Open PR Age By Repository Group 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/kubernetes/prs_age.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eprs_age\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/open-pr-age-by-repository-group.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 the chart of how many PRs were open in selected periods and what was the median PR open to merge time.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select PRs with a specific \u003ccode\u003ekind/*\u003c/code\u003e label or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show number of open PRs and median open to merge time 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\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Open PR Age By Repository Group 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/kubernetes/prs_age.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eprs_age\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/open-pr-age-by-repository-group.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 the chart of how many PRs were open in selected periods and what was the median PR open to merge time.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select PRs with a specific \u003ccode\u003ekind/*\u003c/code\u003e label or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show number of open PRs and median open to merge time 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\u003c/ul\u003e"
          },
          "multi": false,
          "refresh": 1
        },
        {
          "datasource": "psql",
          "includeAll": false,
          "skipUrlSync": false,
          "sort": 0,
          "allValue": null,
          "current": {
            "text": "All",
            "value": "All",
            "selected": false
          },
          "regex": "",
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "options": [],
          "query": "select sigm_lbl_kind_name_with_all from tsigm_lbl_kinds_with_all where sigm_lbl_kind_name_with_all in ('All', 'api-change', 'bug', 'feature', 'design', 'cleanup', 'documentation', 'flake', 'kep') order by 1;",
          "error": null,
          "hide": 0,
          "label": "Kind",
          "multi": false,
          "name": "kind_name",
          "refresh": 1,
          "definition": "",
          "description": null,
          "tagsQuery": "",
          "useTags": false
        },
        {
          "description": null,
          "error": null,
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "label": "",
          "multi": false,
          "query": "select sigm_lbl_kind_value_with_all from tsigm_lbl_kinds_with_all where sigm_lbl_kind_name_with_all = '[[kind_name]]'",
          "regex": "",
          "definition": "",
          "includeAll": false,
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "allValue": null,
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "datasource": "psql",
          "hide": 2,
          "name": "kind"
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "graphTooltip": 0,
    "schemaVersion": 27,
    "timezone": "",
    "uid": "25",
    "style": "dark",
    "title": "Open PR Age by Repository Group",
    "version": 3,
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "datasource": "psql",
          "titleColumn": "[[full_name]] release",
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "enable": true,
          "hide": false,
          "type": "alert",
          "tagsColumn": "title,description",
          "textColumn": ""
        }
      ]
    },
    "gnetId": null,
    "panels": [
      {
        "targets": [
          {
            "rawQuery": true,
            "rawSql": "select\n  descr\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]][[kind]]m'\norder by\n  time desc\nlimit 1",
            "resultFormat": "time_series",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "query": "SELECT \"descr\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "policy": "default",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "format": "table"
          }
        ],
        "valueName": "current",
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "value": 2,
            "name": "range to text"
          }
        ],
        "tableColumn": "",
        "mappingType": 1,
        "maxDataPoints": 100,
        "nullPointMode": "connected",
        "sparkline": {
          "lineColor": "rgb(31, 120, 193)",
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false
        },
        "thresholds": "",
        "datasource": "psql",
        "id": 2,
        "postfix": "",
        "postfixFontSize": "50%",
        "prefixFontSize": "50%",
        "format": "none",
        "links": [],
        "gridPos": {
          "h": 3,
          "w": 14,
          "x": 0,
          "y": 0
        },
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "prefix": "",
        "colorBackground": false,
        "description": "Current median age of opened PRs.",
        "cacheTimeout": null,
        "valueFontSize": "50%",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "title": "Current median age of opened PRs in [[repogroup_name]] repository group (kind: [[kind_name]], [[period]])",
        "interval": null,
        "nullText": null,
        "type": "singlestat",
        "colorValue": false,
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ]
      },
      {
        "valueFontSize": "50%",
        "postfix": "",
        "postfixFontSize": "50%",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "targets": [
          {
            "policy": "default",
            "rawQuery": true,
            "rawSql": "select\n  time, value\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]][[kind]]n'\norder by\n  time desc\nlimit 1",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "refId": "A",
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series"
          }
        ],
        "cacheTimeout": null,
        "description": "Current average number of opened PRs.",
        "id": 4,
        "prefixFontSize": "50%",
        "thresholds": "",
        "type": "singlestat",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "colorValue": false,
        "format": "none",
        "gridPos": {
          "x": 14,
          "y": 0,
          "h": 3,
          "w": 10
        },
        "nullText": null,
        "valueName": "current",
        "maxDataPoints": 100,
        "prefix": "",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "interval": null,
        "links": [],
        "nullPointMode": "connected",
        "mappingType": 1,
        "title": "Current average number of opened PRs in [[repogroup_name]] repository group (Kind: [[kind_name]], [[period]])",
        "colorBackground": false,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "datasource": "psql",
        "gauge": {
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0
        },
        "tableColumn": ""
      },
      {
        "fillGradient": 0,
        "id": 1,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "xaxis": {
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time"
        },
        "aliasColors": {
          
        },
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "renderer": "flot",
        "steppedLine": false,
        "title": "Number/Age of Pull requests in [[repogroup_name]] repository group (Kind: [[kind_name]], [[period]])",
        "bars": false,
        "pointradius": 1,
        "hiddenSeries": false,
        "percentage": false,
        "points": false,
        "spaceLength": 10,
        "targets": [
          {
            "dsType": "influxdb",
            "hide": false,
            "policy": "autogen",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Average number of PRs opened\"\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]][[kind]]n'\norder by\n  time",
            "tags": [],
            "alias": "",
            "measurement": "reviewers_d",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "refId": "A"
          },
          {
            "alias": "",
            "rawQuery": true,
            "refId": "B",
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "policy": "autogen",
            "rawSql": "select\n  time,\n  value as \"Median age of opened PRs\"\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]][[kind]]m'\norder by\n  time",
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "hide": false,
            "orderByTime": "ASC"
          }
        ],
        "type": "graph",
        "dashes": false,
        "description": "Median age and number of pull requests created in [[repogroup]] repository group.",
        "options": {
          "alertThreshold": true
        },
        "yaxes": [
          {
            "label": "Median PRs age",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "h"
          },
          {
            "show": true,
            "format": "short",
            "label": "Average opened PRs number",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "datasource": "psql",
        "timeRegions": [],
        "thresholds": [],
        "timeShift": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "decimals": 2,
        "seriesOverrides": [
          {
            "fill": 2,
            "lines": true,
            "linewidth": 0,
            "yaxis": 1,
            "alias": "Median age of opened PRs"
          },
          {
            "fill": 0,
            "lines": true,
            "linewidth": 1,
            "yaxis": 2,
            "alias": "Average number of PRs opened"
          }
        ],
        "legend": {
          "alignAsTable": false,
          "hideEmpty": false,
          "max": true,
          "rightSide": false,
          "sideWidth": null,
          "values": true,
          "avg": true,
          "current": true,
          "hideZero": false,
          "min": true,
          "show": true,
          "total": false
        },
        "nullPointMode": "null",
        "pluginVersion": "7.5.4",
        "timeFrom": null,
        "fill": 3,
        "gridPos": {
          "x": 0,
          "y": 3,
          "h": 13,
          "w": 24
        },
        "linewidth": 0,
        "links": [],
        "stack": false,
        "dashLength": 10,
        "lines": false
      },
      {
        "pageSize": 10,
        "scroll": true,
        "styles": [
          {
            "align": "auto",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date",
            "alias": "Time"
          },
          {
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "/.*/",
            "type": "number",
            "unit": "short",
            "alias": "",
            "align": "auto",
            "thresholds": []
          }
        ],
        "columns": [],
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "sort": {
          "desc": true,
          "col": 0
        },
        "targets": [
          {
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "orderByTime": "ASC",
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median opened PRs age\"\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]][[kind]]m'\norder by\n  time",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "type": "mean",
                  "params": []
                }
              ]
            ],
            "tags": []
          },
          {
            "refId": "B",
            "resultFormat": "time_series",
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  value as \"Average number of opened PRs\"\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]][[kind]]n'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ]
          }
        ],
        "description": "Median age and number of pull requests created in [[repogroup]] repository group.",
        "fontSize": "90%",
        "id": 3,
        "title": "Number/Age of Pull requests in [[repogroup_name]] repository group (Kind: [[kind_name]], [[period]])",
        "transform": "timeseries_to_rows",
        "type": "table-old",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 16,
          "h": 11
        },
        "links": [],
        "showHeader": true
      },
      {
        "postfix": "",
        "targets": [
          {
            "format": "table",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "query": "SELECT \"descr\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawSql": "select\n  descr\nfrom\n  sprs_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repo]][[kind]]m'\norder by\n  time desc\nlimit 1",
            "tags": [],
            "alias": "",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "policy": "default",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "resultFormat": "time_series"
          }
        ],
        "type": "singlestat",
        "valueFontSize": "50%",
        "datasource": "psql",
        "rangeMaps": [
          {
            "text": "N/A",
            "to": "null",
            "from": "null"
          }
        ],
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "tableColumn": "",
        "thresholds": "",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "maxDataPoints": 100,
        "title": "Current median age of opened PRs in [[repo_name]] repository (kind: [[kind_name]], [[period]])",
        "links": [],
        "gauge": {
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false
        },
        "prefix": "",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "mappingType": 1,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "interval": null,
        "description": "Current median age of opened PRs.",
        "valueName": "current",
        "colorBackground": false,
        "gridPos": {
          "h": 3,
          "w": 14,
          "x": 0,
          "y": 27
        },
        "nullText": null,
        "postfixFontSize": "50%",
        "cacheTimeout": null,
        "format": "none",
        "id": 6,
        "nullPointMode": "connected",
        "prefixFontSize": "50%",
        "colorValue": false
      },
      {
        "cacheTimeout": null,
        "gridPos": {
          "y": 27,
          "h": 3,
          "w": 10,
          "x": 14
        },
        "prefixFontSize": "50%",
        "valueName": "current",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "targets": [
          {
            "rawSql": "select\n  time, value\nfrom\n  sprs_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repo]][[kind]]n'\norder by\n  time desc\nlimit 1",
            "alias": "",
            "format": "time_series",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "refId": "A",
            "resultFormat": "time_series",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "metricColumn": "none"
          }
        ],
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "id": 7,
        "mappingType": 1,
        "maxDataPoints": 100,
        "postfixFontSize": "50%",
        "colorValue": false,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "prefix": "",
        "thresholds": "",
        "valueFontSize": "50%",
        "colorBackground": false,
        "datasource": "psql",
        "format": "none",
        "type": "singlestat",
        "description": "Current average number of opened PRs.",
        "nullPointMode": "connected",
        "tableColumn": "",
        "valueMaps": [
          {
            "text": "N/A",
            "value": "null",
            "op": "="
          }
        ],
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "nullText": null,
        "sparkline": {
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)"
        },
        "interval": null,
        "title": "Current average number of opened PRs in [[repo_name]] repository (Kind: [[kind_name]], [[period]])",
        "links": [],
        "postfix": ""
      },
      {
        "lines": false,
        "pluginVersion": "7.5.4",
        "timeShift": null,
        "yaxes": [
          {
            "format": "h",
            "label": "Median PRs age",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "Average opened PRs number",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "aliasColors": {
          
        },
        "fillGradient": 0,
        "id": 8,
        "pointradius": 1,
        "targets": [
          {
            "dsType": "influxdb",
            "metricColumn": "none",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "format": "time_series",
            "hide": false,
            "measurement": "reviewers_d",
            "resultFormat": "time_series",
            "tags": [],
            "timeColumn": "time",
            "group": [],
            "groupBy": [],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "refId": "A",
            "alias": "",
            "policy": "autogen",
            "rawSql": "select\n  time,\n  value as \"Average number of PRs opened\"\nfrom\n  sprs_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repo]][[kind]]n'\norder by\n  time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          },
          {
            "refId": "B",
            "resultFormat": "time_series",
            "format": "time_series",
            "groupBy": [],
            "hide": false,
            "measurement": "reviewers_d",
            "metricColumn": "none",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawQuery": true,
            "tags": [],
            "dsType": "influxdb",
            "group": [],
            "orderByTime": "ASC",
            "policy": "autogen",
            "rawSql": "select\n  time,\n  value as \"Median age of opened PRs\"\nfrom\n  sprs_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repo]][[kind]]m'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time"
          }
        ],
        "type": "graph",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "options": {
          "alertThreshold": true
        },
        "percentage": false,
        "seriesOverrides": [
          {
            "alias": "Median age of opened PRs",
            "fill": 2,
            "lines": true,
            "linewidth": 0,
            "yaxis": 1
          },
          {
            "alias": "Average number of PRs opened",
            "fill": 0,
            "lines": true,
            "linewidth": 1,
            "yaxis": 2
          }
        ],
        "spaceLength": 10,
        "thresholds": [],
        "title": "Number/Age of Pull requests in [[repo_name]] repository (Kind: [[kind_name]], [[period]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "legend": {
          "min": true,
          "total": false,
          "values": true,
          "alignAsTable": false,
          "current": true,
          "hideZero": false,
          "rightSide": false,
          "show": true,
          "sideWidth": null,
          "avg": true,
          "hideEmpty": false,
          "max": true
        },
        "links": [],
        "dashes": false,
        "linewidth": 0,
        "renderer": "flot",
        "dashLength": 10,
        "datasource": "psql",
        "decimals": 2,
        "steppedLine": false,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "bars": false,
        "description": "Median age and number of pull requests created in [[repo]] repository.",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fill": 3,
        "nullPointMode": "null",
        "points": false,
        "stack": false,
        "timeFrom": null,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 30
        },
        "hiddenSeries": false,
        "timeRegions": []
      },
      {
        "targets": [
          {
            "format": "table",
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "type": "mean",
                  "params": []
                }
              ]
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "query": "SELECT \"descr\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median opened PRs age\"\nfrom\n  sprs_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repo]][[kind]]m'\norder by\n  time",
            "refId": "A",
            "dsType": "influxdb",
            "resultFormat": "time_series"
          },
          {
            "format": "table",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  value as \"Average number of opened PRs\"\nfrom\n  sprs_age_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repo]][[kind]]n'\norder by\n  time",
            "refId": "B",
            "resultFormat": "time_series",
            "timeColumn": "time",
            "alias": "",
            "dsType": "influxdb",
            "group": [],
            "metricColumn": "none",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "type": "mean",
                  "params": []
                }
              ]
            ],
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default"
          }
        ],
        "datasource": "psql",
        "id": 9,
        "styles": [
          {
            "align": "auto",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date",
            "alias": "Time"
          },
          {
            "align": "auto",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "type": "number",
            "alias": "",
            "pattern": "/.*/",
            "thresholds": [],
            "unit": "short"
          }
        ],
        "title": "Number/Age of Pull requests in [[repo_name]] repository (Kind: [[kind_name]], [[period]])",
        "type": "table-old",
        "columns": [],
        "pageSize": 10,
        "showHeader": true,
        "links": [],
        "transform": "timeseries_to_rows",
        "description": "Median age and number of pull requests created in [[repo]] repository.",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fontSize": "90%",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 43,
          "h": 11
        },
        "scroll": true,
        "sort": {
          "col": 0,
          "desc": true
        }
      },
      {
        "pluginVersion": "7.5.4",
        "datasource": null,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 54
        },
        "id": 5,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "title": "Dashboard documentation",
        "type": "text",
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            
          }
        }
      }
    ],
    "refresh": false,
    "editable": true,
    "links": [],
    "tags": [
      "dashboard",
      "kubernetes",
      "repogroups",
      "PRs",
      "repos"
    ],
    "time": {
      "from": "now-1y",
      "to": "now-1w"
    }
  }


slug: overall-project-statistics
title: Overall Project Statistics
created: 2024-07-12 09:56:24.43076633+00:00
updated: 2024-07-12 09:56:24.43076642+00:00
uid: 24
data:
  {
    "timezone": "",
    "version": 3,
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        }
      ]
    },
    "editable": true,
    "gnetId": null,
    "graphTooltip": 0,
    "links": [],
    "panels": [
      {
        "columns": [],
        "links": [],
        "transform": "table",
        "sort": {
          "col": 0,
          "desc": false
        },
        "styles": [
          {
            "alias": "Time",
            "align": "auto",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null,
            "pattern": "Time",
            "type": "hidden"
          },
          {
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "preserveFormat": false,
            "thresholds": [],
            "type": "string",
            "align": "auto",
            "colorMode": null,
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "name",
            "unit": "short",
            "alias": "Metric name"
          },
          {
            "alias": "Metric value",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0,
            "thresholds": [],
            "type": "number",
            "align": "auto",
            "colorMode": null,
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "value",
            "unit": "none"
          },
          {
            "alias": "",
            "align": "auto",
            "type": "number",
            "unit": "short",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0,
            "pattern": "/.*/",
            "thresholds": []
          }
        ],
        "type": "table-old",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "h": 18,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "pageSize": 20,
        "showHeader": true,
        "datasource": "psql",
        "description": "",
        "fontSize": "90%",
        "scroll": true,
        "title": "[[full_name]] Project statistics (Repository group [[repogroup_name]], Range: [[period_name]]), bots excluded",
        "hideTimeOverride": true,
        "targets": [
          {
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"name\", \"value\" FROM \"project_stats_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "refId": "A",
            "tags": [],
            "rawSql": "select name, value from \"spstat\" where series = 'pstat[[repogroup]]' and period = '[[period]]'",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "rawQuery": true
          }
        ]
      },
      {
        "gridPos": {
          "h": 18,
          "w": 24,
          "x": 0,
          "y": 18
        },
        "type": "table-old",
        "title": "[[full_name]] Project statistics (Repository [[repo_name]], Range: [[period_name]]), bots excluded",
        "scroll": true,
        "targets": [
          {
            "orderByTime": "ASC",
            "refId": "A",
            "timeColumn": "time",
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "resultFormat": "table",
            "alias": "",
            "group": [],
            "policy": "default",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "table",
            "metricColumn": "none",
            "query": "SELECT \"name\", \"value\" FROM \"project_stats_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "rawSql": "select name, value from \"spstat_repos\" where series = 'pstat[[repo]]' and period = '[[period]]'"
          }
        ],
        "pageSize": 20,
        "showHeader": true,
        "styles": [
          {
            "decimals": null,
            "pattern": "Time",
            "type": "hidden",
            "alias": "Time",
            "align": "auto",
            "dateFormat": "YYYY-MM-DD HH:mm:ss"
          },
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 2,
            "preserveFormat": false,
            "unit": "short",
            "alias": "Metric name",
            "align": "auto",
            "colorMode": null,
            "type": "string",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "pattern": "name",
            "thresholds": []
          },
          {
            "type": "number",
            "align": "auto",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "value",
            "thresholds": [],
            "alias": "Metric value",
            "decimals": 0,
            "unit": "none"
          },
          {
            "decimals": 0,
            "thresholds": [],
            "align": "auto",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "pattern": "/.*/",
            "type": "number",
            "unit": "short",
            "alias": ""
          }
        ],
        "transform": "table",
        "description": "",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fontSize": "90%",
        "hideTimeOverride": true,
        "id": 6,
        "links": [],
        "sort": {
          "col": 0,
          "desc": false
        },
        "columns": [],
        "datasource": "psql"
      },
      {
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 36
        },
        "pluginVersion": "7.5.4",
        "title": "Dashboard documentation",
        "datasource": null,
        "id": 5,
        "links": [],
        "options": {
          "mode": "html",
          "content": "${docs:raw}"
        },
        "type": "text",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        }
      }
    ],
    "iteration": 1619510405258,
    "refresh": false,
    "schemaVersion": 27,
    "uid": "24",
    "id": 29,
    "tags": [
      "dashboard",
      "kubernetes",
      "table",
      "repos"
    ],
    "templating": {
      "list": [
        {
          "datasource": "psql",
          "description": null,
          "name": "period_name",
          "options": [],
          "allValue": null,
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "label": "Range",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "skipUrlSync": false,
          "includeAll": false,
          "definition": "",
          "error": null,
          "hide": 0,
          "multi": false,
          "refresh": 1,
          "regex": "",
          "type": "query",
          "current": {
            "selected": false,
            "text": "Last decade",
            "value": "Last decade"
          }
        },
        {
          "current": {
            "selected": false,
            "text": "y10",
            "value": "y10"
          },
          "datasource": "psql",
          "error": null,
          "label": null,
          "sort": 0,
          "tags": [],
          "useTags": false,
          "allValue": null,
          "definition": "",
          "description": null,
          "hide": 2,
          "includeAll": false,
          "regex": "",
          "skipUrlSync": true,
          "tagsQuery": "",
          "multi": false,
          "name": "period",
          "options": [],
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "refresh": 1,
          "tagValuesQuery": "",
          "type": "query"
        },
        {
          "hide": 0,
          "error": null,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "description": null,
          "datasource": "psql",
          "definition": "",
          "includeAll": false,
          "label": "Repository group",
          "multi": false,
          "name": "repogroup_name",
          "refresh": 1,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "skipUrlSync": false,
          "regex": "",
          "options": [],
          "sort": 0,
          "useTags": false,
          "allValue": null
        },
        {
          "skipUrlSync": true,
          "allValue": null,
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "error": null,
          "label": "",
          "multi": false,
          "name": "repogroup",
          "options": [],
          "tags": [],
          "type": "query",
          "useTags": false,
          "sort": 0,
          "tagsQuery": "",
          "regex": "",
          "datasource": "psql",
          "definition": "",
          "description": null,
          "hide": 2,
          "includeAll": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "tagValuesQuery": ""
        },
        {
          "datasource": "psql",
          "multi": false,
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "options": [],
          "regex": "",
          "allValue": null,
          "current": {
            "selected": true,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "definition": "select repo_name from trepos order by 1",
          "description": null,
          "hide": 0,
          "includeAll": false,
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "type": "query",
          "error": null,
          "label": "Repository",
          "name": "repo_name",
          "query": "select repo_name from trepos order by 1",
          "refresh": 1,
          "sort": 0
        },
        {
          "refresh": 1,
          "skipUrlSync": true,
          "current": {
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes",
            "selected": false
          },
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "multi": false,
          "name": "repo",
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "allValue": null,
          "description": null,
          "error": null,
          "options": [],
          "useTags": false,
          "hide": 2,
          "includeAll": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "datasource": "psql",
          "label": "",
          "regex": "",
          "sort": 0,
          "tags": []
        },
        {
          "skipUrlSync": true,
          "useTags": false,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "hide": 2,
          "label": null,
          "regex": "",
          "refresh": 1,
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "datasource": "psql",
          "description": null,
          "error": null,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "type": "query",
          "name": "full_name",
          "options": [],
          "tagValuesQuery": "",
          "allValue": null,
          "definition": "",
          "includeAll": false,
          "multi": false
        },
        {
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "includeAll": false,
          "label": null,
          "query": "select value_s from gha_vars where name = 'project_stats_docs_html'",
          "regex": "",
          "name": "docs",
          "options": [],
          "sort": 0,
          "useTags": false,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes Overall Project Statistics dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMain metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/project_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eproject_stats\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/overall-project-statistics.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 project metrics.\u003c/li\u003e\n\u003cli\u003eContributor is defined as somebody who made a commit or created PR or issue.\u003c/li\u003e\n\u003cli\u003ePusher is somebody who pushed the commit into the repository, committer is somebody who made/authored a commit/PR pushed by the pusher, this can be the same person or not.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week etc. range or date range between releases, for example \u003ccode\u003ev1.9 - v1.10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\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 when calculating statistics, 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=\"kubernetes-dashboard\"\u003eKubernetes Overall Project Statistics dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMain metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/project_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eproject_stats\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/overall-project-statistics.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 project metrics.\u003c/li\u003e\n\u003cli\u003eContributor is defined as somebody who made a commit or created PR or issue.\u003c/li\u003e\n\u003cli\u003ePusher is somebody who pushed the commit into the repository, committer is somebody who made/authored a commit/PR pushed by the pusher, this can be the same person or not.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week etc. range or date range between releases, for example \u003ccode\u003ev1.9 - v1.10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\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 when calculating statistics, 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"
          },
          "datasource": "psql",
          "multi": false,
          "refresh": 1,
          "hide": 2,
          "skipUrlSync": true,
          "tags": [],
          "allValue": null,
          "definition": "",
          "description": null,
          "error": null
        }
      ]
    },
    "style": "dark",
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "hidden": true
    },
    "title": "Overall Project Statistics"
  }


slug: pr-comments
title: PR Comments
created: 2024-07-12 09:56:24.436054367+00:00
updated: 2024-07-12 09:56:24.436054448+00:00
uid: 23
data:
  {
    "version": 7,
    "links": [],
    "schemaVersion": 16,
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "PRs"
    ],
    "time": {
      "from": "now-40M",
      "to": "now"
    },
    "title": "PR Comments",
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        },
        {
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "tagsColumn": "title,description",
          "datasource": "psql",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "type": "alert"
        }
      ]
    },
    "graphTooltip": 0,
    "templating": {
      "list": [
        {
          "skipUrlSync": false,
          "type": "custom",
          "allValue": null,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "hide": 0,
          "multi": false,
          "query": "d,w,m,q,y",
          "includeAll": false,
          "label": "Period",
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ]
        },
        {
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "hide": 2,
          "multi": false,
          "tagValuesQuery": "",
          "type": "query",
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "datasource": "psql",
          "name": "full_name",
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "allValue": null,
          "label": null,
          "regex": "",
          "includeAll": false
        },
        {
          "multi": false,
          "name": "docs",
          "tags": [],
          "useTags": false,
          "current": {
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR comments 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/pr_comments.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003epr_comments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-comments.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 median, 85th and 95th percentices of number of comments on PRs created in given 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\u003eWe are skipping bots when displaying bots commands usage, 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=\"kubernetes-dashboard\"\u003eKubernetes PR comments 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/pr_comments.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003epr_comments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-comments.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 median, 85th and 95th percentices of number of comments on PRs created in given 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\u003eWe are skipping bots when displaying bots commands usage, 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"
          },
          "label": null,
          "type": "query",
          "includeAll": false,
          "tagsQuery": "",
          "query": "select value_s from gha_vars where name = 'pr_comments_docs_html'",
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "allValue": null,
          "options": [],
          "refresh": 1,
          "sort": 0,
          "datasource": "psql",
          "hide": 2
        }
      ]
    },
    "gnetId": null,
    "id": 112,
    "panels": [
      {
        "thresholds": [],
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "decimals": 0,
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 21
        },
        "id": 2,
        "lines": false,
        "renderer": "flot",
        "datasource": "psql",
        "pointradius": 5,
        "points": false,
        "timeShift": null,
        "bars": true,
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "avg"
          ],
          "buckets": null
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "links": [],
        "description": "Median and 85th, 95th percentile of comments for PRs created in given period",
        "aliasColors": {
          
        },
        "dashes": false,
        "seriesOverrides": [],
        "stack": false,
        "steppedLine": false,
        "targets": [
          {
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "query": "SELECT \"value\" FROM \"pr_comments_percentile_95_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"95th percentile for number of comments on PRs\"\nfrom\n  spr_comms_p95\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "tags": [],
            "alias": "",
            "format": "time_series",
            "orderByTime": "ASC",
            "policy": "default"
          },
          {
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"85th percentile for number of comments on PRs\"\nfrom\n  spr_comms_p85\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "B",
            "resultFormat": "time_series",
            "alias": "",
            "format": "time_series",
            "groupBy": [],
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"pr_comments_percentile_85_[[period]]\" WHERE $timeFilter"
          },
          {
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"pr_comments_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "rawSql": "select\n  time,\n  value as \"Median for number of comments on PRs\"\nfrom\n  spr_comms_med\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "C",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": ""
          }
        ],
        "type": "graph",
        "dashLength": 10,
        "linewidth": 1,
        "percentage": false,
        "yaxes": [
          {
            "format": "none",
            "label": "Comments",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "none",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "fill": 1,
        "timeFrom": null,
        "title": "Median and 85th, 95th percentile of number of comments for PRs ([[period]])",
        "legend": {
          "total": false,
          "values": true,
          "alignAsTable": true,
          "max": true,
          "min": true,
          "rightSide": false,
          "show": true,
          "avg": true,
          "current": true
        }
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "h": 10,
          "w": 24,
          "x": 0,
          "y": 21
        },
        "id": 5,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "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": "23",
    "editable": true,
    "timezone": ""
  }


