# dashboard

slug: pr-reviews-by-contributor
title: PR Reviews by Contributor
created: 2023-09-13 22:35:06.687144938+00:00
updated: 2023-09-13 22:35:06.687145018+00:00
uid: 46
data:
  {
    "iteration": 1615446263682,
    "schemaVersion": 27,
    "tags": [
      "dashboard",
      "kubernetes",
      "reviewing",
      "repogroups",
      "PRs"
    ],
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "title": "PR Reviews by Contributor",
    "editable": true,
    "gnetId": null,
    "graphTooltip": 0,
    "style": "dark",
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "uid": "46",
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true
        },
        {
          "hide": false,
          "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,
          "type": "alert",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "tagsColumn": "title,description",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql"
        }
      ]
    },
    "id": 31,
    "links": [],
    "templating": {
      "list": [
        {
          "allValue": null,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "description": null,
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ],
          "skipUrlSync": false,
          "error": null,
          "hide": 0,
          "includeAll": false,
          "label": "Period",
          "multi": false,
          "query": "d,w,d7,m,q,y",
          "type": "custom"
        },
        {
          "query": "select top_repos_name_with_all from ttop_repos_with_all order by 1",
          "tags": [],
          "error": null,
          "name": "repo_name",
          "refresh": 1,
          "skipUrlSync": false,
          "sort": 0,
          "allValue": null,
          "definition": "",
          "description": null,
          "label": "Repository",
          "useTags": false,
          "datasource": "psql",
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "options": [],
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "type": "query"
        },
        {
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "datasource": "psql",
          "definition": "",
          "description": null,
          "includeAll": false,
          "multi": false,
          "tagsQuery": "",
          "useTags": false,
          "regex": "",
          "skipUrlSync": true,
          "type": "query",
          "allValue": null,
          "label": "",
          "options": [],
          "query": "select top_repos_value_with_all from ttop_repos_with_all where top_repos_name_with_all = '[[repo_name]]'",
          "refresh": 1,
          "current": {
            "value": "all",
            "selected": false,
            "text": "all"
          },
          "hide": 2,
          "error": null,
          "name": "repo"
        },
        {
          "refresh": 1,
          "allValue": "",
          "datasource": "psql",
          "definition": "",
          "includeAll": true,
          "multi": true,
          "options": [],
          "sort": 0,
          "tagValuesQuery": "",
          "current": {
            "text": [
              "\"tengqm\"",
              "\"wojtek-t\"",
              "\"liggitt\"",
              "\"sftim\"",
              "\"msau42\"",
              "\"BenTheElder\"",
              "\"aojea\"",
              "\"thockin\"",
              "\"Huang-Wei\"",
              "\"neolit123\"",
              "\"andrewsykim\"",
              "\"vincepri\"",
              "\"spiffxp\"",
              "\"lavalamp\"",
              "\"deads2k\"",
              "\"justaugustus\"",
              "\"sttts\"",
              "\"MikeSpreitzer\"",
              "\"DirectXMan12\"",
              "\"detiber\"",
              "\"corneliusweig\"",
              "\"nasa9084\"",
              "\"stevekuznetsov\"",
              "\"yue9944882\"",
              "\"bowei\"",
              "\"alculquicondor\"",
              "\"ahg-g\"",
              "\"hakman\"",
              "\"kbhawkey\"",
              "\"serathius\"",
              "\"ehashman\"",
              "\"CecileRobertMichon\""
            ],
            "value": [
              "\"tengqm\"",
              "\"wojtek-t\"",
              "\"liggitt\"",
              "\"sftim\"",
              "\"msau42\"",
              "\"BenTheElder\"",
              "\"aojea\"",
              "\"thockin\"",
              "\"Huang-Wei\"",
              "\"neolit123\"",
              "\"andrewsykim\"",
              "\"vincepri\"",
              "\"spiffxp\"",
              "\"lavalamp\"",
              "\"deads2k\"",
              "\"justaugustus\"",
              "\"sttts\"",
              "\"MikeSpreitzer\"",
              "\"DirectXMan12\"",
              "\"detiber\"",
              "\"corneliusweig\"",
              "\"nasa9084\"",
              "\"stevekuznetsov\"",
              "\"yue9944882\"",
              "\"bowei\"",
              "\"alculquicondor\"",
              "\"ahg-g\"",
              "\"hakman\"",
              "\"kbhawkey\"",
              "\"serathius\"",
              "\"ehashman\"",
              "\"CecileRobertMichon\""
            ],
            "selected": true,
            "tags": []
          },
          "description": null,
          "error": null,
          "hide": 0,
          "label": "Reviewer",
          "tags": [],
          "type": "query",
          "useTags": false,
          "name": "reviewers",
          "query": "select '\"' || reviewers_name || '\"' from treviewers",
          "regex": "",
          "skipUrlSync": false,
          "tagsQuery": ""
        },
        {
          "options": [],
          "type": "query",
          "useTags": false,
          "allValue": null,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "label": null,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagValuesQuery": "",
          "includeAll": false,
          "multi": false,
          "name": "full_name",
          "refresh": 1,
          "tags": [],
          "definition": "",
          "description": null,
          "hide": 2,
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": "",
          "datasource": "psql",
          "error": null,
          "regex": ""
        },
        {
          "label": null,
          "regex": "",
          "error": null,
          "multi": false,
          "tagValuesQuery": "",
          "refresh": 1,
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "definition": "",
          "description": null,
          "hide": 2,
          "includeAll": false,
          "name": "docs",
          "options": [],
          "query": "select value_s from gha_vars where name = 'pr_reviews_by_contributor_docs_html'",
          "skipUrlSync": true,
          "allValue": null,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR Reviews by Contributor 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/reviews_per_user.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\u003ereviews_per_user\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-reviews-by-contributor.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 number of reviews and lgtms for most active reviewers.\u003c/li\u003e\n\u003cli\u003eLGTM means user added \u003ccode\u003e/lgtm\u003c/code\u003e comment or \u003ccode\u003elgtm\u003c/code\u003e label.\u003c/li\u003e\n\u003cli\u003eReview means user added PR review comment.\u003c/li\u003e\n\u003cli\u003eYou can select reviewer from the reviewers drop-down, it shows top active reviewers from last 3 months.\u003c/li\u003e\n\u003cli\u003eTo find top active reviewers we sum number of reviews and lgtms per user.\u003c/li\u003e\n\u003cli\u003eYou can select single repository or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can filter by period and choose multiple reviewers to stack their data.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show reviews and lgtms 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\u003eWe are skipping bots when calculating number of commenters, 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 Reviews by Contributor 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/reviews_per_user.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\u003ereviews_per_user\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-reviews-by-contributor.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 number of reviews and lgtms for most active reviewers.\u003c/li\u003e\n\u003cli\u003eLGTM means user added \u003ccode\u003e/lgtm\u003c/code\u003e comment or \u003ccode\u003elgtm\u003c/code\u003e label.\u003c/li\u003e\n\u003cli\u003eReview means user added PR review comment.\u003c/li\u003e\n\u003cli\u003eYou can select reviewer from the reviewers drop-down, it shows top active reviewers from last 3 months.\u003c/li\u003e\n\u003cli\u003eTo find top active reviewers we sum number of reviews and lgtms per user.\u003c/li\u003e\n\u003cli\u003eYou can select single repository or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can filter by period and choose multiple reviewers to stack their data.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show reviews and lgtms 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\u003eWe are skipping bots when calculating number of commenters, 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",
          "useTags": false
        }
      ]
    },
    "timezone": "",
    "version": 2,
    "panels": [
      {
        "timeShift": null,
        "transparent": true,
        "type": "graph",
        "hideTimeOverride": false,
        "nullPointMode": "null as zero",
        "links": [],
        "options": {
          "alertThreshold": true
        },
        "points": false,
        "steppedLine": false,
        "timeFrom": null,
        "aliasColors": {
          
        },
        "fieldConfig": {
          "defaults": {
            "custom": {
              
            },
            "links": []
          },
          "overrides": []
        },
        "fill": 1,
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 22
        },
        "lines": false,
        "stack": true,
        "targets": [
          {
            "query": "SELECT /^[[reviewers]]$/ FROM \"reviews_per_user_[[repo]]_[[period]]\" WHERE $timeFilter",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "measurement": "sig_federation_d",
            "tags": [],
            "format": "time_series",
            "groupBy": [],
            "rawSql": "select\n  time,\n  ${reviewers:csv}\nfrom\n  suser_reviews\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'reviews_per_user[[repo]]'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "title": "Reviews per user/repo ([[repo_name]], [[period]])",
        "dashes": false,
        "decimals": null,
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Number of PR review comments",
            "logBase": 1
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "pluginVersion": "7.4.3",
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "bars": true,
        "legend": {
          "min": true,
          "sideWidth": null,
          "sortDesc": true,
          "total": true,
          "avg": true,
          "hideEmpty": false,
          "sort": "avg",
          "show": true,
          "values": true,
          "alignAsTable": true,
          "rightSide": true,
          "max": true,
          "current": true,
          "hideZero": false
        },
        "fillGradient": 0,
        "hiddenSeries": false,
        "id": 1,
        "seriesOverrides": [],
        "spaceLength": 10,
        "datasource": "psql",
        "description": "Shows review counts for given users and repository.",
        "percentage": false,
        "pointradius": 5,
        "thresholds": [],
        "timeRegions": [],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "dashLength": 10,
        "linewidth": 1,
        "renderer": "flot",
        "xaxis": {
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time"
        }
      },
      {
        "hiddenSeries": false,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "percentage": false,
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Number of LGTMs",
            "logBase": 1,
            "max": null
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "dashes": false,
        "hideTimeOverride": false,
        "options": {
          "alertThreshold": true
        },
        "thresholds": [],
        "type": "graph",
        "aliasColors": {
          
        },
        "id": 2,
        "legend": {
          "values": true,
          "sort": "avg",
          "hideEmpty": false,
          "max": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "avg": true,
          "current": true,
          "total": true,
          "alignAsTable": true,
          "hideZero": false,
          "sideWidth": null,
          "sortDesc": true
        },
        "links": [],
        "nullPointMode": "null as zero",
        "pointradius": 5,
        "seriesOverrides": [],
        "spaceLength": 10,
        "decimals": null,
        "linewidth": 1,
        "points": false,
        "renderer": "flot",
        "transparent": true,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": true,
        "fill": 1,
        "fillGradient": 0,
        "pluginVersion": "7.4.3",
        "timeRegions": [],
        "title": "LGTMs per user/repo ([[repo_name]], [[period]])",
        "datasource": "psql",
        "description": "Shows LGTM counts for given users and repository.",
        "fieldConfig": {
          "defaults": {
            "custom": {
              
            },
            "links": []
          },
          "overrides": []
        },
        "lines": false,
        "stack": true,
        "timeFrom": null,
        "dashLength": 10,
        "gridPos": {
          "x": 0,
          "y": 22,
          "h": 22,
          "w": 24
        },
        "steppedLine": false,
        "targets": [
          {
            "format": "time_series",
            "measurement": "sig_federation_d",
            "orderByTime": "ASC",
            "tags": [],
            "dsType": "influxdb",
            "groupBy": [],
            "query": "SELECT /^[[reviewers]]$/ FROM \"lgtms_per_user_[[repo]]_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${reviewers:csv}\nfrom\n  suser_reviews\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'ulgtms[[repo]]'\norder by\n  time",
            "alias": "",
            "policy": "default",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        }
      },
      {
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "7.4.3",
        "title": "Dashboard documentation",
        "datasource": null,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 44
        },
        "id": 3,
        "links": [],
        "type": "text",
        "fieldConfig": {
          "defaults": {
            "custom": {
              
            }
          },
          "overrides": []
        }
      }
    ]
  }


slug: pr-time-to-approve-and-merge
title: PR Time to Approve and Merge
created: 2023-09-13 22:35:06.706507133+00:00
updated: 2023-09-13 22:35:06.706507204+00:00
uid: 44
data:
  {
    "graphTooltip": 0,
    "tags": [
      "dashboard",
      "kubernetes",
      "repogroups",
      "repos"
    ],
    "uid": "44",
    "annotations": {
      "list": [
        {
          "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)",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "enable": true,
          "limit": 100,
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "textColumn": "",
          "type": "alert"
        }
      ]
    },
    "gnetId": null,
    "links": [],
    "panels": [
      {
        "pointradius": 5,
        "dashes": false,
        "description": "Stacked times from open to lgtm, approve and merge.",
        "fillGradient": 0,
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 13,
          "w": 12
        },
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "timeFrom": null,
        "title": "Median time PRs from open to lgtm, approve, merge for [[repogroup_name]] repository group ([[period]], API change: [[apichange]], Size: [[size_name]], Kind: [[kind_name]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "legend": {
          "alignAsTable": true,
          "min": true,
          "show": true,
          "values": true,
          "total": false,
          "avg": true,
          "current": true,
          "max": true,
          "rightSide": false
        },
        "lines": false,
        "nullPointMode": "null",
        "timeShift": null,
        "spaceLength": 10,
        "yaxes": [
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "h"
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "none",
            "label": "",
            "logBase": 10
          }
        ],
        "bars": true,
        "dashLength": 10,
        "decimals": 2,
        "options": {
          "alertThreshold": true
        },
        "pluginVersion": "7.5.4",
        "stack": true,
        "steppedLine": false,
        "links": [],
        "percentage": false,
        "timeRegions": [],
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "datasource": "psql",
        "fill": 1,
        "hiddenSeries": false,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "avg"
          ],
          "buckets": null
        },
        "renderer": "flot",
        "thresholds": [],
        "type": "graph",
        "targets": [
          {
            "tags": [],
            "refId": "A",
            "resultFormat": "time_series",
            "timeColumn": "time",
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "metricColumn": "none",
            "rawQuery": true,
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "policy": "default",
            "format": "time_series",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_open_to_lgtm_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"Median time from open to LGTM (in hours)\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]medo2l'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          },
          {
            "alias": "",
            "group": [],
            "orderByTime": "ASC",
            "policy": "default",
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "format": "time_series",
            "groupBy": [],
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_lgtm_to_approve_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "metricColumn": "none",
            "rawSql": "select\n  time,\n  value as \"Median time from LGTM to approve (in hours)\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]medl2a'\norder by\n  time",
            "refId": "B",
            "dsType": "influxdb",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          },
          {
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "orderByTime": "ASC",
            "tags": [],
            "refId": "C",
            "dsType": "influxdb",
            "format": "time_series",
            "group": [],
            "groupBy": [],
            "metricColumn": "none",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_approve_to_merge_[[period]]\" WHERE $timeFilter",
            "alias": "",
            "timeColumn": "time",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "rawSql": "select\n  time,\n  value as \"Median time from approve to merge (in hours)\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]meda2m'\norder by\n  time"
          }
        ],
        "id": 8,
        "linewidth": 1,
        "points": false,
        "seriesOverrides": []
      },
      {
        "fill": 1,
        "hiddenSeries": false,
        "options": {
          "alertThreshold": true
        },
        "points": false,
        "spaceLength": 10,
        "dashLength": 10,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "nullPointMode": "null",
        "targets": [
          {
            "alias": "",
            "groupBy": [],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_open_to_lgtm_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "format": "time_series",
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"85th percentile time from open to LGTM (in hours)\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]p85o2l'\norder by\n  time",
            "refId": "A",
            "resultFormat": "time_series",
            "tags": []
          },
          {
            "groupBy": [],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_lgtm_to_approve_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"85th percentile time from LGTM to approve (in hours)\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]p85l2a'\norder by\n  time",
            "alias": "",
            "format": "time_series",
            "policy": "default",
            "rawQuery": true,
            "refId": "B",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb"
          },
          {
            "rawSql": "select\n  time,\n  value as \"85th percentile time from approve to merge (in hours)\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]p85a2m'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_approve_to_merge_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "C",
            "resultFormat": "time_series",
            "tags": []
          }
        ],
        "timeShift": null,
        "description": "Stacked times from open to lgtm, approve and merge for mono-repos kubernetes and contrib",
        "bars": true,
        "fillGradient": 0,
        "gridPos": {
          "x": 12,
          "y": 0,
          "h": 13,
          "w": 12
        },
        "legend": {
          "current": true,
          "max": true,
          "min": true,
          "rightSide": false,
          "show": true,
          "alignAsTable": true,
          "avg": true,
          "total": false,
          "values": true
        },
        "lines": false,
        "percentage": false,
        "pointradius": 5,
        "aliasColors": {
          
        },
        "title": "85th percentile time PRs from open to lgtm, approve, merge for [[repogroup_name]] repository group ([[period]], API change: [[apichange]], Size: [[size_name]], Kind: [[kind_name]])",
        "steppedLine": false,
        "id": 9,
        "renderer": "flot",
        "dashes": false,
        "pluginVersion": "7.5.4",
        "timeRegions": [],
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "linewidth": 1,
        "decimals": 2,
        "thresholds": [],
        "timeFrom": null,
        "type": "graph",
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "avg"
          ],
          "buckets": null
        },
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "h",
            "label": "",
            "logBase": 1
          },
          {
            "show": true,
            "format": "none",
            "label": "",
            "logBase": 10,
            "max": null,
            "min": "0"
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "datasource": "psql",
        "stack": true,
        "seriesOverrides": [],
        "links": []
      },
      {
        "fontSize": "80%",
        "pageSize": 10,
        "scroll": true,
        "title": "Time PRs from open to lgtm, approve, merge for [[repogroup_name]] repository group ([[period]], API change: [[apichange]], Size: [[size_name]], Kind: [[kind_name]])",
        "description": "Time PRs from open to lgtm, approve, merge",
        "showHeader": true,
        "sort": {
          "col": 0,
          "desc": true
        },
        "targets": [
          {
            "alias": "",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "rawQuery": true,
            "refId": "A",
            "dsType": "influxdb",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_open_to_lgtm_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median open to LGTM\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]medo2l'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": []
          },
          {
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median LGTM to approve\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]medl2a'\norder by\n  time",
            "rawQuery": true,
            "refId": "B",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_lgtm_to_approve_[[period]]\" WHERE $timeFilter"
          },
          {
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_approve_to_merge_[[period]]\" WHERE $timeFilter",
            "refId": "C",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "tags": [],
            "format": "table",
            "orderByTime": "ASC",
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median approve to merge\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]meda2m'\norder by\n  time"
          },
          {
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_open_to_lgtm_[[period]]\" WHERE $timeFilter",
            "refId": "D",
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "tags": [],
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile open to LGTM\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]p85o2l'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ]
          },
          {
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_lgtm_to_approve_[[period]]\" WHERE $timeFilter",
            "refId": "E",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile LGTM to approve\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]p85l2a'\norder by\n  time",
            "resultFormat": "time_series",
            "alias": "",
            "orderByTime": "ASC",
            "rawQuery": true
          },
          {
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "refId": "F",
            "tags": [],
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile approve to merge\"\nfrom\n  stime_metrics\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repogroup]][[size]][[kind]][[apichange]]p85a2m'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_approve_to_merge_[[period]]\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "transform": "timeseries_to_rows",
        "links": [],
        "datasource": "psql",
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            
          }
        },
        "gridPos": {
          "x": 0,
          "y": 13,
          "h": 10,
          "w": 24
        },
        "id": 10,
        "styles": [
          {
            "alias": "Time",
            "align": "auto",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date"
          },
          {
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "unit": "short",
            "align": "auto"
          }
        ],
        "type": "table-old",
        "columns": []
      },
      {
        "percentage": false,
        "seriesOverrides": [],
        "stack": true,
        "thresholds": [],
        "fillGradient": 0,
        "renderer": "flot",
        "targets": [
          {
            "alias": "",
            "format": "time_series",
            "metricColumn": "none",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_open_to_lgtm_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "group": [],
            "policy": "default",
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "rawSql": "select\n  time,\n  value as \"Median time from open to LGTM (in hours)\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]medo2l'\norder by\n  time",
            "refId": "A",
            "orderByTime": "ASC",
            "rawQuery": true,
            "resultFormat": "time_series"
          },
          {
            "refId": "B",
            "timeColumn": "time",
            "group": [],
            "groupBy": [],
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_lgtm_to_approve_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Median time from LGTM to approve (in hours)\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]medl2a'\norder by\n  time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          },
          {
            "dsType": "influxdb",
            "refId": "C",
            "format": "time_series",
            "orderByTime": "ASC",
            "policy": "default",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "groupBy": [],
            "tags": [],
            "timeColumn": "time",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_approve_to_merge_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Median time from approve to merge (in hours)\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]meda2m'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "group": [],
            "metricColumn": "none"
          }
        ],
        "timeShift": null,
        "description": "Stacked times from open to lgtm, approve and merge.",
        "legend": {
          "min": true,
          "total": false,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "max": true,
          "rightSide": false,
          "show": true
        },
        "steppedLine": false,
        "timeFrom": null,
        "timeRegions": [],
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "h",
            "label": "",
            "logBase": 1
          },
          {
            "show": true,
            "format": "none",
            "label": "",
            "logBase": 10,
            "max": null,
            "min": "0"
          }
        ],
        "dashes": false,
        "hiddenSeries": false,
        "nullPointMode": "null",
        "spaceLength": 10,
        "pointradius": 5,
        "title": "Median time PRs from open to lgtm, approve, merge for [[repo_name]] repository ([[period]], API change: [[apichange]], Size: [[size_name]], Kind: [[kind_name]])",
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fill": 1,
        "lines": false,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": true,
        "gridPos": {
          "h": 13,
          "w": 12,
          "x": 0,
          "y": 23
        },
        "linewidth": 1,
        "options": {
          "alertThreshold": true
        },
        "aliasColors": {
          
        },
        "id": 11,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "avg"
          ],
          "buckets": null
        },
        "points": false,
        "type": "graph",
        "dashLength": 10,
        "decimals": 2,
        "links": [],
        "pluginVersion": "7.5.4"
      },
      {
        "description": "Stacked times from open to lgtm, approve and merge for mono-repos kubernetes and contrib",
        "fill": 1,
        "lines": false,
        "renderer": "flot",
        "dashes": false,
        "hiddenSeries": false,
        "id": 12,
        "nullPointMode": "null",
        "stack": true,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "gridPos": {
          "h": 13,
          "w": 12,
          "x": 12,
          "y": 23
        },
        "links": [],
        "percentage": false,
        "pointradius": 5,
        "timeRegions": [],
        "timeShift": null,
        "title": "85th percentile time PRs from open to lgtm, approve, merge for [[repo_name]] repository ([[period]], API change: [[apichange]], Size: [[size_name]], Kind: [[kind_name]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "pluginVersion": "7.5.4",
        "spaceLength": 10,
        "thresholds": [],
        "yaxes": [
          {
            "format": "h",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "logBase": 10,
            "max": null,
            "min": "0",
            "show": true,
            "format": "none",
            "label": ""
          }
        ],
        "bars": true,
        "legend": {
          "alignAsTable": true,
          "max": true,
          "min": true,
          "show": true,
          "total": false,
          "values": true,
          "avg": true,
          "current": true,
          "rightSide": false
        },
        "seriesOverrides": [],
        "xaxis": {
          "values": [
            "avg"
          ],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "decimals": 2,
        "fillGradient": 0,
        "linewidth": 1,
        "points": false,
        "targets": [
          {
            "groupBy": [],
            "rawQuery": true,
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "format": "time_series",
            "group": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "metricColumn": "none",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_open_to_lgtm_[[period]]\" WHERE $timeFilter",
            "refId": "A",
            "timeColumn": "time",
            "alias": "",
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"85th percentile time from open to LGTM (in hours)\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]p85o2l'\norder by\n  time"
          },
          {
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"85th percentile time from LGTM to approve (in hours)\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]p85l2a'\norder by\n  time",
            "refId": "B",
            "resultFormat": "time_series",
            "tags": [],
            "timeColumn": "time",
            "alias": "",
            "format": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "group": [],
            "groupBy": [],
            "dsType": "influxdb",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_lgtm_to_approve_[[period]]\" WHERE $timeFilter",
            "policy": "default",
            "metricColumn": "none",
            "orderByTime": "ASC"
          },
          {
            "group": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "dsType": "influxdb",
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"85th percentile time from approve to merge (in hours)\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]p85a2m'\norder by\n  time",
            "resultFormat": "time_series",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_approve_to_merge_[[period]]\" WHERE $timeFilter",
            "timeColumn": "time",
            "format": "time_series",
            "groupBy": [],
            "rawQuery": true,
            "refId": "C"
          }
        ],
        "timeFrom": null,
        "dashLength": 10,
        "options": {
          "alertThreshold": true
        },
        "steppedLine": false,
        "type": "graph"
      },
      {
        "columns": [],
        "datasource": "psql",
        "description": "Time PRs from open to lgtm, approve, merge",
        "scroll": true,
        "sort": {
          "desc": true,
          "col": 0
        },
        "styles": [
          {
            "pattern": "Time",
            "type": "date",
            "alias": "Time",
            "align": "auto",
            "dateFormat": "MM/DD/YYYY"
          },
          {
            "alias": "",
            "align": "auto",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "colorMode": null,
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "unit": "short"
          }
        ],
        "title": "Time PRs from open to lgtm, approve, merge for [[repo_name]] repository ([[period]], API change: [[apichange]], Size: [[size_name]], Kind: [[kind_name]])",
        "type": "table-old",
        "gridPos": {
          "h": 10,
          "w": 24,
          "x": 0,
          "y": 36
        },
        "id": 13,
        "links": [],
        "fontSize": "80%",
        "targets": [
          {
            "timeColumn": "time",
            "dsType": "influxdb",
            "format": "table",
            "group": [],
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median open to LGTM\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]medo2l'\norder by\n  time",
            "refId": "A",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_open_to_lgtm_[[period]]\" WHERE $timeFilter",
            "tags": [],
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "metricColumn": "none",
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "resultFormat": "time_series"
          },
          {
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_lgtm_to_approve_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "policy": "default",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median LGTM to approve\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]medl2a'\norder by\n  time",
            "dsType": "influxdb",
            "format": "table",
            "group": [],
            "orderByTime": "ASC",
            "rawQuery": true,
            "alias": "",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "refId": "B"
          },
          {
            "format": "table",
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "refId": "C",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_median_approve_to_merge_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median approve to merge\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]meda2m'\norder by\n  time",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "rawQuery": true,
            "resultFormat": "time_series",
            "timeColumn": "time"
          },
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "group": [],
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "metricColumn": "none",
            "rawQuery": true,
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "tags": [],
            "refId": "D",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_open_to_lgtm_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile open to LGTM\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]p85o2l'\norder by\n  time"
          },
          {
            "format": "table",
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "group": [],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_lgtm_to_approve_[[period]]\" WHERE $timeFilter",
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile LGTM to approve\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]p85l2a'\norder by\n  time",
            "refId": "E",
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          },
          {
            "group": [],
            "rawQuery": true,
            "refId": "F",
            "resultFormat": "time_series",
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "query": "SELECT \"descr\" FROM \"time_metrics_[[repogroup]]_[[size]]_[[apichange]]_percentile_85_approve_to_merge_[[period]]\" WHERE $timeFilter",
            "policy": "default",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile approve to merge\"\nfrom\n  stime_metrics_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'tmet[[repo]][[size]][[kind]][[apichange]]p85a2m'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ]
          }
        ],
        "transform": "timeseries_to_rows",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "pageSize": 10,
        "showHeader": true
      },
      {
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "h": 19,
          "w": 24,
          "x": 0,
          "y": 46
        },
        "id": 5,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "title": "Dashboard documentation",
        "datasource": null,
        "pluginVersion": "7.5.4",
        "type": "text"
      }
    ],
    "schemaVersion": 27,
    "style": "dark",
    "templating": {
      "list": [
        {
          "label": "Period",
          "query": "d,w,m,q,y",
          "type": "custom",
          "allValue": null,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "description": null,
          "error": null,
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "value": "m",
              "selected": false,
              "text": "Month"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "skipUrlSync": false
        },
        {
          "current": {
            "value": "Kubernetes",
            "selected": false,
            "text": "Kubernetes"
          },
          "multi": false,
          "refresh": 1,
          "tagValuesQuery": "",
          "includeAll": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "regex": "",
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "definition": "",
          "error": null,
          "skipUrlSync": false,
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "description": null,
          "hide": 0,
          "label": "Repository group",
          "name": "repogroup_name",
          "options": [],
          "sort": 0
        },
        {
          "options": [],
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "useTags": false,
          "description": null,
          "includeAll": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "sort": 0,
          "allValue": null,
          "current": {
            "value": "kubernetes",
            "selected": false,
            "text": "kubernetes"
          },
          "datasource": "psql",
          "hide": 2,
          "tagsQuery": "",
          "definition": "",
          "error": null,
          "label": "",
          "multi": false,
          "name": "repogroup",
          "tagValuesQuery": "",
          "tags": [],
          "type": "query"
        },
        {
          "allValue": null,
          "current": {
            "selected": true,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "definition": "select repo_name from trepos order by 1",
          "description": null,
          "label": "Repository",
          "skipUrlSync": false,
          "datasource": "psql",
          "includeAll": false,
          "query": "select repo_name from trepos order by 1",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "hide": 0,
          "refresh": 1,
          "regex": "",
          "sort": 0,
          "error": null,
          "multi": false,
          "name": "repo_name",
          "options": [],
          "tagValuesQuery": "",
          "useTags": false
        },
        {
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "label": "",
          "multi": false,
          "name": "repo",
          "options": [],
          "refresh": 1,
          "tagValuesQuery": "",
          "allValue": null,
          "type": "query",
          "tags": [],
          "regex": "",
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "skipUrlSync": true,
          "tagsQuery": "",
          "datasource": "psql",
          "error": null,
          "hide": 2,
          "includeAll": false,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "sort": 0,
          "useTags": false,
          "description": null
        },
        {
          "error": null,
          "multi": false,
          "name": "apichange",
          "options": [
            {
              "selected": true,
              "text": "All",
              "value": "a"
            },
            {
              "selected": false,
              "text": "Yes",
              "value": "y"
            },
            {
              "selected": false,
              "text": "No",
              "value": "n"
            }
          ],
          "skipUrlSync": false,
          "type": "custom",
          "description": null,
          "current": {
            "tags": [],
            "text": "All",
            "value": "a"
          },
          "hide": 0,
          "includeAll": false,
          "label": "API change",
          "query": "a,y,n",
          "allValue": null
        },
        {
          "skipUrlSync": false,
          "tagsQuery": "",
          "allValue": null,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "includeAll": false,
          "multi": false,
          "name": "size_name",
          "regex": "",
          "type": "query",
          "useTags": false,
          "description": null,
          "error": null,
          "hide": 0,
          "label": "Size",
          "query": "select size_labels_name_with_all from tsize_labels_with_all order by 1",
          "datasource": "psql",
          "definition": "",
          "refresh": 1,
          "tagValuesQuery": "",
          "options": [],
          "sort": 0,
          "tags": []
        },
        {
          "datasource": "psql",
          "description": null,
          "regex": "",
          "tagValuesQuery": "",
          "definition": "",
          "label": null,
          "name": "size",
          "options": [],
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "includeAll": false,
          "query": "select size_labels_value_with_all from tsize_labels_with_all where size_labels_name_with_all = '[[size_name]]'",
          "allValue": null,
          "error": null,
          "hide": 2,
          "multi": false,
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "useTags": false
        },
        {
          "useTags": false,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "description": null,
          "hide": 2,
          "sort": 0,
          "refresh": 1,
          "includeAll": false,
          "label": null,
          "multi": false,
          "options": [],
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "allValue": null,
          "datasource": "psql",
          "definition": "",
          "name": "full_name",
          "type": "query",
          "error": null,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagsQuery": ""
        },
        {
          "type": "query",
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "definition": "",
          "label": null,
          "name": "docs",
          "current": {
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR Time to Approve and Merge 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/time_metrics.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\u003etime_metrics\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-time-to-approve-and-merge.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 show median and 85th percentile time for merged PRs from open to LGTM, approve and merge.\u003c/li\u003e\n\u003cli\u003eLGTM happens when \u003ccode\u003elgtm\u003c/code\u003e label is added on a PR.\u003c/li\u003e\n\u003cli\u003eApprove happens when \u003ccode\u003eapproved\u003c/code\u003e label is added on a PR.\u003c/li\u003e\n\u003cli\u003eOpen to LGTM time is defined as time from open to LGTM when LGTM is present or from open to approve when approve is present or from open to merge if neither lgtm nor approve is present.\u003c/li\u003e\n\u003cli\u003eIt means that adding approved label when there is no lgtm label means LGTM too. Merging PR without approve or lgtm labels also means LGTM.\u003c/li\u003e\n\u003cli\u003eLGTM to approve is defined as time from LGTM to approve when approve is present or from lgtm to merge if there is no approved label. If there is no LGTM this is zero.\u003c/li\u003e\n\u003cli\u003eIt means that merging PR means approving it.\u003c/li\u003e\n\u003cli\u003eApprove to merge is defined as time from approve to merge if approved label is present. It is zero otherwise.\u003c/li\u003e\n\u003cli\u003eYou can filter by PR size. PR size is defined by \u003ccode\u003esize/*\u003c/code\u003e label. You can select All to get all PRs.\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\u003eYou can filter by API change. PR belongs to API change yes when it has \u003ccode\u003ekind/api-change\u003c/code\u003e label. You can select All to get all PRs.\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 data for PRs created 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 PR Time to Approve and Merge 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/time_metrics.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\u003etime_metrics\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-time-to-approve-and-merge.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 show median and 85th percentile time for merged PRs from open to LGTM, approve and merge.\u003c/li\u003e\n\u003cli\u003eLGTM happens when \u003ccode\u003elgtm\u003c/code\u003e label is added on a PR.\u003c/li\u003e\n\u003cli\u003eApprove happens when \u003ccode\u003eapproved\u003c/code\u003e label is added on a PR.\u003c/li\u003e\n\u003cli\u003eOpen to LGTM time is defined as time from open to LGTM when LGTM is present or from open to approve when approve is present or from open to merge if neither lgtm nor approve is present.\u003c/li\u003e\n\u003cli\u003eIt means that adding approved label when there is no lgtm label means LGTM too. Merging PR without approve or lgtm labels also means LGTM.\u003c/li\u003e\n\u003cli\u003eLGTM to approve is defined as time from LGTM to approve when approve is present or from lgtm to merge if there is no approved label. If there is no LGTM this is zero.\u003c/li\u003e\n\u003cli\u003eIt means that merging PR means approving it.\u003c/li\u003e\n\u003cli\u003eApprove to merge is defined as time from approve to merge if approved label is present. It is zero otherwise.\u003c/li\u003e\n\u003cli\u003eYou can filter by PR size. PR size is defined by \u003ccode\u003esize/*\u003c/code\u003e label. You can select All to get all PRs.\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\u003eYou can filter by API change. PR belongs to API change yes when it has \u003ccode\u003ekind/api-change\u003c/code\u003e label. You can select All to get all PRs.\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 data for PRs created 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"
          },
          "error": null,
          "hide": 2,
          "options": [],
          "tags": [],
          "description": null,
          "multi": false,
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'pr_approve_to_merge_docs_html'",
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0
        },
        {
          "definition": "",
          "error": null,
          "query": "select sigm_lbl_kind_name_with_all from tsigm_lbl_kinds_with_all where sigm_lbl_kind_name_with_all in ('All', 'bug', 'feature', 'design', 'cleanup', 'documentation', 'flake', 'kep') order by 1;",
          "sort": 0,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "options": [],
          "refresh": 1,
          "regex": "",
          "tags": [],
          "useTags": false,
          "name": "kind_name",
          "tagsQuery": "",
          "allValue": null,
          "datasource": "psql",
          "description": null,
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "label": "Kind",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "type": "query"
        },
        {
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "definition": "",
          "error": null,
          "regex": "",
          "skipUrlSync": true,
          "multi": false,
          "options": [],
          "query": "select sigm_lbl_kind_value_with_all from tsigm_lbl_kinds_with_all where sigm_lbl_kind_name_with_all = '[[kind_name]]'",
          "allValue": null,
          "datasource": "psql",
          "description": null,
          "includeAll": false,
          "label": null,
          "hide": 2,
          "name": "kind",
          "refresh": 1,
          "sort": 0,
          "tagValuesQuery": ""
        }
      ]
    },
    "title": "PR Time to Approve and Merge",
    "id": 32,
    "time": {
      "to": "now",
      "from": "now-1y"
    },
    "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": "",
    "editable": true,
    "iteration": 1619522578421,
    "version": 4
  }


slug: pr-time-to-engagement
title: PR Time to Engagement
created: 2023-09-13 22:35:06.722194129+00:00
updated: 2023-09-13 22:35:06.722194209+00:00
uid: 14
data:
  {
    "iteration": 1616746758423,
    "panels": [
      {
        "thresholds": [],
        "timeFrom": null,
        "timeRegions": [],
        "title": "Time before any comments or activities from someone other than the author (repo group: [[repogroup_name]], kind: [[kind_name]], [[period]])",
        "dashes": false,
        "description": "Time before any comments or activities from someone other than the author",
        "fillGradient": 0,
        "hiddenSeries": false,
        "linewidth": 1,
        "nullPointMode": "null",
        "options": {
          "alertThreshold": true
        },
        "pluginVersion": "7.5.0",
        "dashLength": 10,
        "decimals": 2,
        "spaceLength": 10,
        "timeShift": null,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "lines": true,
        "aliasColors": {
          
        },
        "id": 2,
        "datasource": "psql",
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "points": false,
        "stack": false,
        "steppedLine": false,
        "targets": [
          {
            "group": [],
            "rawSql": "select\n  time,\n  value as \"85th percentile time\"\nfrom\n  sfirst_non_author\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repogroup]][[kind]]p85'\norder by\n  time",
            "dsType": "influxdb",
            "format": "time_series",
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "rawQuery": true,
            "resultFormat": "time_series",
            "timeColumn": "time",
            "policy": "default",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "groupBy": []
          },
          {
            "alias": "",
            "format": "time_series",
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "orderByTime": "ASC",
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"Median time\"\nfrom\n  sfirst_non_author\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repogroup]][[kind]]med'\norder by\n  time",
            "tags": [],
            "timeColumn": "time",
            "dsType": "influxdb",
            "rawQuery": true,
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": [],
            "metricColumn": "none",
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_median_[[period]]\" WHERE $timeFilter"
          },
          {
            "group": [],
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "orderByTime": "ASC",
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"15th percentile time\"\nfrom\n  sfirst_non_author\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repogroup]][[kind]]p15'\norder by\n  time",
            "refId": "C",
            "tags": [],
            "dsType": "influxdb",
            "rawQuery": true,
            "alias": "",
            "groupBy": [],
            "metricColumn": "none",
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time"
          }
        ],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "yaxes": [
          {
            "format": "h",
            "label": "",
            "logBase": 2,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "links": [],
        "type": "graph",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "fill": 0,
        "pointradius": 5,
        "percentage": false,
        "renderer": "flot",
        "seriesOverrides": [
          {
            "alias": "15th percentile time opened to merged (in hours)"
          }
        ],
        "bars": false,
        "legend": {
          "values": true,
          "alignAsTable": true,
          "current": true,
          "show": true,
          "rightSide": false,
          "total": false,
          "avg": true,
          "max": true,
          "min": true
        }
      },
      {
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 3,
        "transform": "timeseries_to_rows",
        "datasource": "psql",
        "type": "table-old",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 13
        },
        "fontSize": "90%",
        "pageSize": 10,
        "scroll": true,
        "sort": {
          "desc": true,
          "col": 0
        },
        "columns": [],
        "links": [],
        "showHeader": true,
        "styles": [
          {
            "alias": "Time",
            "align": "auto",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date"
          },
          {
            "alias": "",
            "colorMode": null,
            "thresholds": [],
            "type": "number",
            "align": "auto",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "/.*/",
            "unit": "short"
          }
        ],
        "targets": [
          {
            "format": "table",
            "orderByTime": "ASC",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"15th percentile\"\nfrom\n  sfirst_non_author\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repogroup]][[kind]]p15'\norder by\n  time",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "policy": "default",
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "group": [],
            "metricColumn": "none",
            "refId": "A",
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "tags": []
          },
          {
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "resultFormat": "time_series",
            "alias": "",
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median\"\nfrom\n  sfirst_non_author\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repogroup]][[kind]]med'\norder by\n  time",
            "refId": "B",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none",
            "policy": "default",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "format": "table",
            "group": [],
            "orderByTime": "ASC"
          },
          {
            "refId": "C",
            "dsType": "influxdb",
            "group": [],
            "metricColumn": "none",
            "alias": "",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "orderByTime": "ASC",
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile\"\nfrom\n  sfirst_non_author\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repogroup]][[kind]]p85'\norder by\n  time",
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ]
          }
        ],
        "title": "Time to first non-author activity (repo group: [[repogroup_name]], kind: [[kind]], [[period]])",
        "description": "Time to first non-author activity"
      },
      {
        "bars": false,
        "fill": 0,
        "linewidth": 1,
        "pointradius": 5,
        "thresholds": [],
        "type": "graph",
        "hiddenSeries": false,
        "legend": {
          "values": true,
          "alignAsTable": true,
          "min": true,
          "rightSide": false,
          "show": true,
          "total": false,
          "avg": true,
          "current": true,
          "max": true
        },
        "lines": true,
        "points": false,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "description": "Time before any comments or activities from someone other than the author",
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "title": "Time before any comments or activities from someone other than the author (repo: [[repo_name]], kind: [[kind_name]], [[period]])",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fillGradient": 0,
        "nullPointMode": "null",
        "options": {
          "alertThreshold": true
        },
        "stack": false,
        "steppedLine": false,
        "timeFrom": null,
        "decimals": 2,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 24
        },
        "id": 6,
        "links": [],
        "renderer": "flot",
        "yaxes": [
          {
            "show": true,
            "format": "h",
            "label": "",
            "logBase": 2,
            "max": null,
            "min": "0"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "dashLength": 10,
        "percentage": false,
        "seriesOverrides": [
          {
            "alias": "15th percentile time opened to merged (in hours)"
          }
        ],
        "spaceLength": 10,
        "targets": [
          {
            "rawSql": "select\n  time,\n  value as \"85th percentile time\"\nfrom\n  sfirst_non_author_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repo]][[kind]]p85'\norder by\n  time",
            "resultFormat": "time_series",
            "tags": [],
            "group": [],
            "metricColumn": "none",
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "groupBy": [],
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "dsType": "influxdb",
            "policy": "default",
            "rawQuery": true,
            "refId": "A",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "format": "time_series"
          },
          {
            "metricColumn": "none",
            "rawSql": "select\n  time,\n  value as \"Median time\"\nfrom\n  sfirst_non_author_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repo]][[kind]]med'\norder by\n  time",
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "groupBy": [],
            "rawQuery": true,
            "refId": "B",
            "format": "time_series",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "group": []
          },
          {
            "groupBy": [],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "rawQuery": true,
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "dsType": "influxdb",
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"15th percentile time\"\nfrom\n  sfirst_non_author_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repo]][[kind]]p15'\norder by\n  time",
            "tags": [],
            "timeColumn": "time",
            "format": "time_series",
            "group": [],
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "refId": "C",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "timeRegions": [],
        "xaxis": {
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "aliasColors": {
          
        },
        "dashes": false,
        "datasource": "psql",
        "pluginVersion": "7.5.0"
      },
      {
        "columns": [],
        "description": "Time to first non-author activity",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 37
        },
        "id": 7,
        "transform": "timeseries_to_rows",
        "datasource": "psql",
        "links": [],
        "showHeader": true,
        "sort": {
          "col": 0,
          "desc": true
        },
        "type": "table-old",
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            
          }
        },
        "fontSize": "90%",
        "targets": [
          {
            "refId": "A",
            "resultFormat": "time_series",
            "timeColumn": "time",
            "policy": "default",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"15th percentile\"\nfrom\n  sfirst_non_author_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repo]][[kind]]p15'\norder by\n  time",
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "rawQuery": true,
            "tags": [],
            "alias": "",
            "format": "table",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ]
          },
          {
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "group": [],
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median\"\nfrom\n  sfirst_non_author_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repo]][[kind]]med'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "orderByTime": "ASC",
            "policy": "default",
            "refId": "B",
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "timeColumn": "time"
          },
          {
            "metricColumn": "none",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile\"\nfrom\n  sfirst_non_author_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'non_auth[[repo]][[kind]]p85'\norder by\n  time",
            "rawQuery": true,
            "refId": "C",
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "alias": "",
            "tags": [],
            "timeColumn": "time",
            "format": "table",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ]
          }
        ],
        "pageSize": 10,
        "scroll": true,
        "styles": [
          {
            "alias": "Time",
            "align": "auto",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date"
          },
          {
            "align": "auto",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "decimals": 2,
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number"
          }
        ],
        "title": "Time to first non-author activity (repo: [[repo_name]], kind: [[kind]], [[period]])"
      },
      {
        "datasource": null,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 48,
          "h": 12
        },
        "id": 5,
        "type": "text",
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "7.5.0",
        "title": "Dashboard documentation"
      }
    ],
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "repogroups",
      "PRs",
      "repos"
    ],
    "templating": {
      "list": [
        {
          "includeAll": false,
          "allValue": null,
          "hide": 0,
          "error": null,
          "label": "Period",
          "multi": false,
          "name": "period",
          "options": [
            {
              "text": "7 Days MA",
              "value": "d7",
              "selected": true
            },
            {
              "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": "d7,w,m,q,y",
          "current": {
            "selected": true,
            "text": "7 Days MA",
            "value": "d7"
          },
          "description": null,
          "skipUrlSync": false,
          "type": "custom"
        },
        {
          "options": [],
          "regex": "",
          "tags": [],
          "allValue": null,
          "datasource": "psql",
          "description": null,
          "includeAll": false,
          "definition": "",
          "name": "repogroup_name",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "type": "query",
          "error": null,
          "multi": false,
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "hide": 0,
          "label": "Repository group",
          "refresh": 1,
          "useTags": false
        },
        {
          "allValue": null,
          "current": {
            "selected": false,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "error": null,
          "hide": 0,
          "tagsQuery": "",
          "description": null,
          "includeAll": false,
          "sort": 0,
          "tagValuesQuery": "",
          "useTags": false,
          "datasource": "psql",
          "label": "Repository",
          "multi": false,
          "query": "select repo_name from trepos order by 1",
          "regex": "",
          "tags": [],
          "definition": "select repo_name from trepos order by 1",
          "name": "repo_name",
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "type": "query"
        },
        {
          "refresh": 1,
          "tagsQuery": "",
          "label": "",
          "name": "repogroup",
          "hide": 2,
          "error": null,
          "includeAll": false,
          "multi": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "regex": "",
          "sort": 0,
          "allValue": null,
          "definition": "",
          "type": "query",
          "description": null,
          "options": [],
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "datasource": "psql"
        },
        {
          "multi": false,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "hide": 2,
          "includeAll": false,
          "skipUrlSync": true,
          "error": null,
          "refresh": 1,
          "regex": "",
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "options": [],
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "sort": 0,
          "type": "query",
          "description": "",
          "label": "",
          "name": "repo"
        },
        {
          "includeAll": false,
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "description": null,
          "error": null,
          "options": [],
          "refresh": 1,
          "regex": "",
          "allValue": null,
          "definition": "",
          "name": "kind_name",
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "label": "Kind",
          "multi": false,
          "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;",
          "hide": 0
        },
        {
          "type": "query",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "label": "Kind",
          "options": [],
          "tags": [],
          "tagsQuery": "",
          "datasource": "psql",
          "definition": "",
          "error": null,
          "includeAll": false,
          "refresh": 1,
          "sort": 0,
          "tagValuesQuery": "",
          "allValue": null,
          "description": null,
          "hide": 2,
          "name": "kind",
          "query": "select sigm_lbl_kind_value_with_all from tsigm_lbl_kinds_with_all where sigm_lbl_kind_name_with_all = '[[kind_name]]'"
        },
        {
          "allValue": null,
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "datasource": "psql",
          "definition": "",
          "multi": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "tags": [],
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "description": null,
          "error": null,
          "label": null,
          "name": "full_name",
          "options": [],
          "regex": "",
          "includeAll": false,
          "refresh": 1,
          "sort": 0,
          "type": "query",
          "useTags": false
        },
        {
          "datasource": "psql",
          "description": null,
          "refresh": 1,
          "tags": [],
          "type": "query",
          "useTags": false,
          "includeAll": false,
          "name": "docs",
          "options": [],
          "query": "select value_s from gha_vars where name = 'pr_time_to_engagement_docs_html'",
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR Time to Engagement 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/first_non_author_activity.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003efirst_non_author_activity\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-time-to-engagement.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, 15th and 85th percentices of time from creation to first non-author activity on issues and PRs created in given periods.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them (for 2 top panels showing repository groups).\u003c/li\u003e\n\u003cli\u003eYou can repository for 2 bottom panels showing per single repository statistics.\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 data for PRs and issues created in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR Time to Engagement 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/first_non_author_activity.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003efirst_non_author_activity\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-time-to-engagement.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, 15th and 85th percentices of time from creation to first non-author activity on issues and PRs created in given periods.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them (for 2 top panels showing repository groups).\u003c/li\u003e\n\u003cli\u003eYou can repository for 2 bottom panels showing per single repository statistics.\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 data for PRs and issues created in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "error": null,
          "label": null,
          "multi": false,
          "tagsQuery": "",
          "allValue": null,
          "definition": "",
          "hide": 2,
          "tagValuesQuery": ""
        }
      ]
    },
    "gnetId": null,
    "id": 33,
    "time": {
      "from": "now-2y",
      "to": "now-2w"
    },
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "editable": true,
    "links": [],
    "schemaVersion": 27,
    "timezone": "",
    "title": "PR Time to Engagement",
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        },
        {
          "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": "",
          "datasource": "psql",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "showIn": 0,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "hide": false,
          "limit": 100,
          "name": "Releases"
        }
      ]
    },
    "graphTooltip": 0,
    "uid": "14",
    "version": 2
  }


slug: pr-workload-per-sig-and-repository-chart
title: PR Workload per SIG and repository Chart
created: 2023-09-13 22:35:06.746674118+00:00
updated: 2023-09-13 22:35:06.746674218+00:00
uid: 80
data:
  {
    "editable": true,
    "gnetId": null,
    "id": 1006,
    "links": [],
    "refresh": false,
    "timezone": "",
    "uid": "80",
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        },
        {
          "enable": true,
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "textColumn": "",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "type": "alert"
        }
      ]
    },
    "style": "dark",
    "title": "PR Workload per SIG and repository Chart",
    "version": 5,
    "iteration": 1621411011220,
    "panels": [
      {
        "points": false,
        "bars": false,
        "options": {
          "alertThreshold": true
        },
        "dashes": false,
        "fill": 6,
        "legend": {
          "sort": "total",
          "sortDesc": true,
          "values": true,
          "alignAsTable": true,
          "current": true,
          "max": true,
          "min": true,
          "show": true,
          "avg": true,
          "rightSide": true,
          "total": false
        },
        "lines": true,
        "renderer": "flot",
        "spaceLength": 10,
        "timeRegions": [],
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "Absolute PR workload",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 2,
        "percentage": false,
        "thresholds": [],
        "timeShift": null,
        "title": "Absolute PR workload for [[repo_name]] repository",
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "aliasColors": {
          
        },
        "decimals": 0,
        "description": "Absolute PR workload for [[repo_name]] repository",
        "fillGradient": 0,
        "seriesOverrides": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 21
        },
        "hiddenSeries": false,
        "links": [],
        "pluginVersion": "7.5.6",
        "stack": true,
        "targets": [
          {
            "group": [],
            "measurement": "notused",
            "metricColumn": "none",
            "policy": "default",
            "refId": "A",
            "timeColumn": "time",
            "alias": "",
            "groupBy": [],
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  spr_workload_repos\nwhere\n  $__timeFilter(time)\n  and series = 'sig_pr_wrl[[repo]]abs'\norder by\n  time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "rawQuery": true,
            "resultFormat": "time_series",
            "tags": [],
            "dsType": "influxdb",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "orderByTime": "ASC"
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "transparent": true,
        "datasource": "psql",
        "pointradius": 5,
        "steppedLine": false,
        "timeFrom": null,
        "dashLength": 10,
        "linewidth": 0,
        "nullPointMode": "null as zero",
        "type": "graph"
      },
      {
        "timeRegions": [],
        "title": "Relative PR workload for [[repo_name]] repository",
        "bars": false,
        "fillGradient": 0,
        "pointradius": 5,
        "steppedLine": false,
        "dashLength": 10,
        "id": 5,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "pluginVersion": "7.5.6",
        "points": false,
        "renderer": "flot",
        "seriesOverrides": [],
        "description": "Relative PR workload for [[repo_name]] repository",
        "fill": 6,
        "hiddenSeries": false,
        "links": [],
        "timeFrom": null,
        "type": "graph",
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "decimals": 0,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 21
        },
        "legend": {
          "sortDesc": true,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "min": true,
          "sort": "total",
          "total": false,
          "current": true,
          "max": true,
          "rightSide": true,
          "show": true
        },
        "thresholds": [],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "transparent": true,
        "aliasColors": {
          
        },
        "dashes": false,
        "lines": true,
        "percentage": false,
        "linewidth": 0,
        "spaceLength": 10,
        "stack": true,
        "targets": [
          {
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_relative_workload_d\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  spr_workload_repos\nwhere\n  $__timeFilter(time)\n  and series = 'sig_pr_wrl[[repo]]rel'\norder by\n  time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "orderByTime": "ASC",
            "measurement": "notused",
            "metricColumn": "none",
            "policy": "default",
            "rawQuery": true,
            "tags": [],
            "timeColumn": "time",
            "format": "time_series",
            "group": [],
            "groupBy": [],
            "refId": "A",
            "alias": ""
          }
        ],
        "yaxes": [
          {
            "format": "short",
            "label": "Relative PR workload",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "datasource": "psql",
        "nullPointMode": "null as zero",
        "options": {
          "alertThreshold": true
        },
        "timeShift": null
      },
      {
        "decimals": null,
        "steppedLine": false,
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "id": 4,
        "legend": {
          "sortDesc": true,
          "total": false,
          "current": true,
          "max": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "alignAsTable": true,
          "avg": true,
          "sideWidth": null,
          "sort": "total",
          "values": true
        },
        "lines": true,
        "points": false,
        "targets": [
          {
            "orderByTime": "ASC",
            "refId": "A",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "group": [],
            "metricColumn": "none",
            "groupBy": [],
            "policy": "default",
            "rawQuery": true,
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  spr_workload_repos\nwhere\n  $__timeFilter(time)\n  and series = 'sig_pr_wrl[[repo]]abs'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "measurement": "notused"
          }
        ],
        "dashes": false,
        "description": "Absolute PR workload for [[repo_name]] repository",
        "hiddenSeries": false,
        "thresholds": [],
        "timeShift": null,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "seriesOverrides": [],
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Absolute PR workload",
            "logBase": 1,
            "max": null
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": false,
            "format": "short",
            "label": ""
          }
        ],
        "dashLength": 10,
        "linewidth": 1,
        "spaceLength": 10,
        "timeFrom": null,
        "timeRegions": [],
        "transparent": true,
        "nullPointMode": "null as zero",
        "percentage": false,
        "stack": false,
        "datasource": "psql",
        "pointradius": 5,
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "options": {
          "alertThreshold": true
        },
        "renderer": "flot",
        "title": "Absolute PR workload for [[repo_name]] repository",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "bars": false,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "links": [],
        "pluginVersion": "7.5.6",
        "type": "graph",
        "aliasColors": {
          
        },
        "fill": 0,
        "fillGradient": 0
      },
      {
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "hiddenSeries": false,
        "percentage": false,
        "stack": false,
        "steppedLine": false,
        "targets": [
          {
            "group": [],
            "rawQuery": true,
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "groupBy": [],
            "measurement": "notused",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  spr_workload_repos\nwhere\n  $__timeFilter(time)\n  and series = 'sig_pr_wrl[[repo]]rel'\norder by\n  time",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "format": "time_series",
            "metricColumn": "none",
            "tags": [],
            "dsType": "influxdb",
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_relative_workload_d\" WHERE $timeFilter",
            "timeColumn": "time"
          }
        ],
        "legend": {
          "min": true,
          "rightSide": true,
          "show": true,
          "sideWidth": null,
          "sort": "total",
          "avg": true,
          "current": true,
          "max": true,
          "values": true,
          "alignAsTable": true,
          "sortDesc": true,
          "total": false
        },
        "transparent": true,
        "fill": 0,
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "thresholds": [],
        "timeShift": null,
        "datasource": "psql",
        "decimals": null,
        "fillGradient": 0,
        "id": 6,
        "linewidth": 1,
        "pluginVersion": "7.5.6",
        "pointradius": 5,
        "renderer": "flot",
        "title": "Relative PR workload for [[repo_name]] repository",
        "type": "graph",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "description": "Relative PR workload for [[repo_name]] repository",
        "lines": true,
        "links": [],
        "points": false,
        "bars": false,
        "dashLength": 10,
        "dashes": false,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "aliasColors": {
          
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 63,
          "h": 21
        },
        "options": {
          "alertThreshold": true
        },
        "seriesOverrides": [],
        "timeFrom": null,
        "timeRegions": [],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Relative PR workload",
            "logBase": 1
          },
          {
            "min": "0",
            "show": false,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null
          }
        ]
      },
      {
        "thresholds": [],
        "yaxes": [
          {
            "format": "short",
            "label": "Absolute PR workload",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "decimals": null,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          }
        ],
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "linewidth": 0,
        "options": {
          "alertThreshold": true
        },
        "timeFrom": null,
        "timeShift": null,
        "aliasColors": {
          
        },
        "dashes": false,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "stack": true,
        "type": "graph",
        "legend": {
          "alignAsTable": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "sort": "total",
          "sortDesc": true,
          "avg": true,
          "max": true,
          "show": true,
          "total": false,
          "values": true
        },
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "description": "Absolute PR workload for [[repo_name]] repository",
        "id": 3,
        "lines": true,
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "timeRegions": [],
        "dashLength": 10,
        "decimals": 0,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "transparent": true,
        "renderer": "flot",
        "seriesOverrides": [],
        "links": [],
        "pluginVersion": "7.5.6",
        "pointradius": 5,
        "points": false,
        "title": "Absolute PR workload for [[repo_name]] repository",
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 84
        },
        "hiddenSeries": false,
        "fillGradient": 0,
        "percentage": true,
        "steppedLine": false,
        "targets": [
          {
            "refId": "A",
            "policy": "default",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  spr_workload_repos\nwhere\n  $__timeFilter(time)\n  and series = 'sig_pr_wrl[[repo]]abs'\norder by\n  time",
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "orderByTime": "ASC",
            "groupBy": [],
            "metricColumn": "none",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "tags": [],
            "format": "time_series",
            "group": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "measurement": "notused"
          }
        ],
        "bars": false,
        "fill": 7
      },
      {
        "timeRegions": [],
        "fillGradient": 0,
        "lines": true,
        "renderer": "flot",
        "legend": {
          "max": true,
          "sortDesc": true,
          "total": false,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "sort": "total",
          "values": true
        },
        "percentage": true,
        "pluginVersion": "7.5.6",
        "aliasColors": {
          
        },
        "dashes": false,
        "id": 7,
        "links": [],
        "targets": [
          {
            "groupBy": [],
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_relative_workload_d\" WHERE $timeFilter",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "timeColumn": "time",
            "dsType": "influxdb",
            "measurement": "notused",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "format": "time_series",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  spr_workload_repos\nwhere\n  $__timeFilter(time)\n  and series = 'sig_pr_wrl[[repo]]rel'\norder by\n  time",
            "tags": [],
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "group": [],
            "metricColumn": "none",
            "policy": "default"
          }
        ],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "decimals": 0,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "steppedLine": false,
        "points": false,
        "stack": true,
        "yaxes": [
          {
            "max": "100",
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Relative PR workload",
            "logBase": 1
          },
          {
            "decimals": null,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "options": {
          "alertThreshold": true
        },
        "pointradius": 5,
        "seriesOverrides": [],
        "timeShift": null,
        "transparent": true,
        "fill": 7,
        "hiddenSeries": false,
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "title": "Relative PR workload for [[repo_name]] repository",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "type": "graph",
        "dashLength": 10,
        "datasource": "psql",
        "description": "Relative PR workload for [[repo_name]] repository",
        "timeFrom": null,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 105
        },
        "linewidth": 0,
        "thresholds": []
      },
      {
        "fillGradient": 0,
        "seriesOverrides": [],
        "timeRegions": [],
        "transparent": true,
        "lines": true,
        "percentage": false,
        "spaceLength": 10,
        "steppedLine": false,
        "type": "graph",
        "bars": false,
        "decimals": null,
        "links": [],
        "pluginVersion": "7.5.6",
        "pointradius": 5,
        "aliasColors": {
          
        },
        "dashes": false,
        "datasource": "psql",
        "title": "Number of SIG reviewers for [[repo_name]] repository",
        "nullPointMode": "null as zero",
        "thresholds": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "points": false,
        "renderer": "flot",
        "stack": false,
        "description": "Number of SIG reviewers for [[repo_name]] repository",
        "fill": 0,
        "id": 8,
        "linewidth": 1,
        "options": {
          "alertThreshold": true
        },
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "yaxes": [
          {
            "format": "short",
            "label": "Reviewers",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "max": null,
            "min": "0",
            "show": false,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "targets": [
          {
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  spr_workload_repos\nwhere\n  $__timeFilter(time)\n  and series = 'sig_pr_wrl[[repo]]rev'\norder by\n  time",
            "timeColumn": "time",
            "dsType": "influxdb",
            "format": "time_series",
            "measurement": "notused",
            "group": [],
            "orderByTime": "ASC",
            "tags": [],
            "refId": "A",
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "groupBy": [],
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_reviewers_d\" WHERE $timeFilter",
            "metricColumn": "none",
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "timeFrom": null,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "dashLength": 10,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 126
        },
        "hiddenSeries": false,
        "legend": {
          "avg": true,
          "max": true,
          "min": true,
          "sort": "total",
          "sortDesc": true,
          "total": false,
          "alignAsTable": true,
          "rightSide": true,
          "show": true,
          "sideWidth": null,
          "values": true,
          "current": true
        }
      },
      {
        "dashes": false,
        "id": 9,
        "links": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 147,
          "h": 21
        },
        "timeShift": null,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "aliasColors": {
          
        },
        "dashLength": 10,
        "decimals": null,
        "description": "Number of SIG PRs for [[repo_name]] repository",
        "seriesOverrides": [],
        "stack": false,
        "targets": [
          {
            "format": "time_series",
            "measurement": "notused",
            "refId": "A",
            "dsType": "influxdb",
            "groupBy": [],
            "policy": "default",
            "rawQuery": true,
            "group": [],
            "metricColumn": "none",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_issues_d\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  spr_workload_repos\nwhere\n  $__timeFilter(time)\n  and series = 'sig_pr_wrl[[repo]]iss'\norder by\n  time",
            "resultFormat": "time_series",
            "timeColumn": "time"
          }
        ],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "datasource": "psql",
        "legend": {
          "max": true,
          "sideWidth": null,
          "sortDesc": true,
          "total": false,
          "show": true,
          "sort": "total",
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "min": true,
          "rightSide": true
        },
        "percentage": false,
        "pluginVersion": "7.5.6",
        "points": false,
        "title": "Number of SIG PRs for [[repo_name]] repository",
        "type": "graph",
        "lines": true,
        "steppedLine": false,
        "timeRegions": [],
        "transparent": true,
        "yaxes": [
          {
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": false
          }
        ],
        "fill": 0,
        "linewidth": 1,
        "options": {
          "alertThreshold": true
        },
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "bars": false,
        "fillGradient": 0,
        "hiddenSeries": false,
        "pointradius": 5,
        "renderer": "flot",
        "thresholds": [],
        "timeFrom": null
      },
      {
        "datasource": null,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 168,
          "h": 21
        },
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "7.5.6",
        "id": 10,
        "links": [],
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "tags": [
      "dashboard",
      "kubernetes",
      "SIGs",
      "PRs",
      "repos"
    ],
    "templating": {
      "list": [
        {
          "query": "select '\"' || sig_mentions_labels_name || '\"' from tsig_mentions_labels order by 1",
          "tagsQuery": "",
          "useTags": false,
          "allValue": "",
          "current": {
            "selected": true,
            "text": [
              "All"
            ],
            "value": [
              "$__all"
            ]
          },
          "definition": "",
          "includeAll": true,
          "multi": true,
          "name": "sigs",
          "refresh": 1,
          "regex": "",
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "description": null,
          "error": null,
          "sort": 0,
          "tagValuesQuery": "",
          "hide": 0,
          "label": "SIG",
          "options": [],
          "skipUrlSync": false
        },
        {
          "name": "full_name",
          "skipUrlSync": true,
          "allValue": null,
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes",
            "selected": false
          },
          "includeAll": false,
          "label": null,
          "options": [],
          "tags": [],
          "tagsQuery": "",
          "datasource": "psql",
          "definition": "",
          "error": null,
          "multi": false,
          "description": null,
          "sort": 0,
          "useTags": false,
          "tagValuesQuery": "",
          "type": "query",
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "regex": ""
        },
        {
          "allValue": null,
          "error": null,
          "hide": 2,
          "multi": false,
          "sort": 0,
          "datasource": "psql",
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'pr_workload_docs_html'",
          "refresh": 1,
          "tags": [],
          "tagsQuery": "",
          "definition": "",
          "description": null,
          "name": "docs",
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR Workload per SIG dashboards (chart and table)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChart version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eChart repositories version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTable version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_table.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTable repositories version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_table_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\u003epr_workload\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-chart.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (chart version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (table version).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThose dashboards show PR workload for SIGs\u003c/li\u003e\n\u003cli\u003eChart version allows to see absolute and relative PR worklod as line charts, stacked charts and stacked percent charts.\u003c/li\u003e\n\u003cli\u003eChart version also allows to see chart of SIG PRs and SIG reviewers. You can select list of SIGs to display.\u003c/li\u003e\n\u003cli\u003eTable version allows to see absolute and relative PR workload per SIG and number of PRs and reviewers for given SIGs.\u003c/li\u003e\n\u003cli\u003eTable version also allows to choose period to display metric, like last month, year, particular release etc.\u003c/li\u003e\n\u003cli\u003eYou can select repository for bottom panel showing per single repository statistics.\u003c/li\u003e\n\u003cli\u003eFor chart version we're counting PRs that were opened at given point in time (not closed, not merged).\u003c/li\u003e\n\u003cli\u003eFor table version we're counting PRs taht were open at the period's end (for last week it is now), for v1.9 - v1.10 it is v1.10\u003c/li\u003e\n\u003cli\u003ePR size comes from \u003ccode\u003esize/*\u003c/code\u003e labels. Different sizes, have different weights.\u003c/li\u003e\n\u003cli\u003exs: 0.25, small, s: 0.5, large, l: 2, xl: 4, xxl: 8. All other size labels (or no size label) have weight 1.\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\u003cli\u003eAbsolute PR workload is a weighted sum of all PRs for a given SIG using size labels as weights.\u003c/li\u003e\n\u003cli\u003eRelative PR workload for given SIG is absolute PR workload divided by number of reviewers for given SIG.\u003c/li\u003e\n\u003cli\u003eNumber of reviewers is calculated in last month preceeding given point in time for chart version.\u003c/li\u003e\n\u003cli\u003eFor table version we're conting reviewers in a selected period.\u003c/li\u003e\n\u003cli\u003eReviewer is somebody who added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\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 PR Workload per SIG dashboards (chart and table)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChart version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eChart repositories version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_repos.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTable version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_table.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTable repositories version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_table_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\u003epr_workload\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-chart.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (chart version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (table version).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThose dashboards show PR workload for SIGs\u003c/li\u003e\n\u003cli\u003eChart version allows to see absolute and relative PR worklod as line charts, stacked charts and stacked percent charts.\u003c/li\u003e\n\u003cli\u003eChart version also allows to see chart of SIG PRs and SIG reviewers. You can select list of SIGs to display.\u003c/li\u003e\n\u003cli\u003eTable version allows to see absolute and relative PR workload per SIG and number of PRs and reviewers for given SIGs.\u003c/li\u003e\n\u003cli\u003eTable version also allows to choose period to display metric, like last month, year, particular release etc.\u003c/li\u003e\n\u003cli\u003eYou can select repository for bottom panel showing per single repository statistics.\u003c/li\u003e\n\u003cli\u003eFor chart version we're counting PRs that were opened at given point in time (not closed, not merged).\u003c/li\u003e\n\u003cli\u003eFor table version we're counting PRs taht were open at the period's end (for last week it is now), for v1.9 - v1.10 it is v1.10\u003c/li\u003e\n\u003cli\u003ePR size comes from \u003ccode\u003esize/*\u003c/code\u003e labels. Different sizes, have different weights.\u003c/li\u003e\n\u003cli\u003exs: 0.25, small, s: 0.5, large, l: 2, xl: 4, xxl: 8. All other size labels (or no size label) have weight 1.\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\u003cli\u003eAbsolute PR workload is a weighted sum of all PRs for a given SIG using size labels as weights.\u003c/li\u003e\n\u003cli\u003eRelative PR workload for given SIG is absolute PR workload divided by number of reviewers for given SIG.\u003c/li\u003e\n\u003cli\u003eNumber of reviewers is calculated in last month preceeding given point in time for chart version.\u003c/li\u003e\n\u003cli\u003eFor table version we're conting reviewers in a selected period.\u003c/li\u003e\n\u003cli\u003eReviewer is somebody who added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\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"
          },
          "label": null,
          "options": [],
          "regex": "",
          "tagValuesQuery": ""
        },
        {
          "current": {
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes",
            "selected": true
          },
          "datasource": null,
          "regex": "",
          "tagValuesQuery": "",
          "description": null,
          "includeAll": false,
          "query": "select repo_name from trepos order by 1",
          "tagsQuery": "",
          "type": "query",
          "definition": "select repo_name from trepos order by 1",
          "error": null,
          "name": "repo_name",
          "options": [],
          "sort": 0,
          "tags": [],
          "useTags": false,
          "allValue": null,
          "hide": 0,
          "label": "Repository",
          "multi": false,
          "refresh": 1,
          "skipUrlSync": false
        },
        {
          "multi": false,
          "regex": "",
          "tagValuesQuery": "",
          "type": "query",
          "datasource": null,
          "error": null,
          "includeAll": false,
          "hide": 2,
          "label": null,
          "name": "repo",
          "options": [
            {
              "selected": true,
              "text": "kuberneteskubernetes",
              "value": "kuberneteskubernetes"
            }
          ],
          "tags": [],
          "allValue": null,
          "current": {
            "value": "kuberneteskubernetes",
            "selected": false,
            "text": "kuberneteskubernetes"
          },
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "tagsQuery": "",
          "useTags": false,
          "skipUrlSync": false,
          "sort": 0,
          "description": null,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "refresh": 0
        }
      ]
    },
    "graphTooltip": 0,
    "time": {
      "from": "now-6M",
      "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"
      ]
    },
    "schemaVersion": 27
  }


slug: pr-workload-per-sig-chart
title: PR Workload per SIG Chart
created: 2023-09-13 22:35:06.765007397+00:00
updated: 2023-09-13 22:35:06.765007477+00:00
uid: 33
data:
  {
    "tags": [
      "dashboard",
      "kubernetes",
      "SIGs",
      "PRs"
    ],
    "uid": "33",
    "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": "",
    "refresh": false,
    "schemaVersion": 16,
    "templating": {
      "list": [
        {
          "skipUrlSync": false,
          "tagsQuery": "",
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "query": "select '\"' || sig_mentions_labels_name || '\"' from tsig_mentions_labels order by 1",
          "regex": "",
          "name": "sigs",
          "type": "query",
          "useTags": false,
          "allValue": "",
          "hide": 0,
          "multi": true,
          "tags": [],
          "includeAll": true,
          "label": "SIG",
          "tagValuesQuery": "",
          "sort": 0,
          "datasource": "psql",
          "options": [],
          "refresh": 1
        },
        {
          "query": "select value_s from gha_vars where name = 'full_name'",
          "useTags": false,
          "hide": 2,
          "skipUrlSync": true,
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "tags": [],
          "tagsQuery": "",
          "allValue": null,
          "current": {
            "value": "Kubernetes",
            "text": "Kubernetes"
          },
          "datasource": "psql",
          "refresh": 1,
          "regex": "",
          "includeAll": false,
          "label": null,
          "multi": false,
          "name": "full_name",
          "options": []
        },
        {
          "skipUrlSync": true,
          "includeAll": false,
          "label": null,
          "options": [],
          "refresh": 1,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "allValue": null,
          "datasource": "psql",
          "hide": 2,
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'pr_workload_docs_html'",
          "sort": 0,
          "useTags": false,
          "current": {
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR Workload per SIG dashboards (chart and table)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChart version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTable version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_table.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_workload\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-chart.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (chart version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (table version).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThose dashboards show PR workload for SIGs\u003c/li\u003e\n\u003cli\u003eChart version allows to see absolute and relative PR worklod as line charts, stacked charts and stacked percent charts.\u003c/li\u003e\n\u003cli\u003eChart version also allows to see chart of SIG PRs and SIG reviewers. You can select list of SIGs to display.\u003c/li\u003e\n\u003cli\u003eTable version allows to see absolute and relative PR workload per SIG and number of PRs and reviewers for given SIGs.\u003c/li\u003e\n\u003cli\u003eTable version also allows to choose period to display metric, like last month, year, particular release etc.\u003c/li\u003e\n\u003cli\u003eFor chart version we're counting PRs that were opened at given point in time (not closed, not merged).\u003c/li\u003e\n\u003cli\u003eFor table version we're counting PRs taht were open at the period's end (for last week it is now), for v1.9 - v1.10 it is v1.10\u003c/li\u003e\n\u003cli\u003ePR size comes from \u003ccode\u003esize/*\u003c/code\u003e labels. Different sizes, have different weights.\u003c/li\u003e\n\u003cli\u003exs: 0.25, small, s: 0.5, large, l: 2, xl: 4, xxl: 8. All other size labels (or no size label) have weight 1.\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\u003cli\u003eAbsolute PR workload is a weighted sum of all PRs for a given SIG using size labels as weights.\u003c/li\u003e\n\u003cli\u003eRelative PR workload for given SIG is absolute PR workload divided by number of reviewers for given SIG.\u003c/li\u003e\n\u003cli\u003eNumber of reviewers is calculated in last month preceeding given point in time for chart version.\u003c/li\u003e\n\u003cli\u003eFor table version we're conting reviewers in a selected period.\u003c/li\u003e\n\u003cli\u003eReviewer is somebody who added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\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 PR Workload per SIG dashboards (chart and table)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChart version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTable version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_table.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_workload\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-chart.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (chart version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (table version).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThose dashboards show PR workload for SIGs\u003c/li\u003e\n\u003cli\u003eChart version allows to see absolute and relative PR worklod as line charts, stacked charts and stacked percent charts.\u003c/li\u003e\n\u003cli\u003eChart version also allows to see chart of SIG PRs and SIG reviewers. You can select list of SIGs to display.\u003c/li\u003e\n\u003cli\u003eTable version allows to see absolute and relative PR workload per SIG and number of PRs and reviewers for given SIGs.\u003c/li\u003e\n\u003cli\u003eTable version also allows to choose period to display metric, like last month, year, particular release etc.\u003c/li\u003e\n\u003cli\u003eFor chart version we're counting PRs that were opened at given point in time (not closed, not merged).\u003c/li\u003e\n\u003cli\u003eFor table version we're counting PRs taht were open at the period's end (for last week it is now), for v1.9 - v1.10 it is v1.10\u003c/li\u003e\n\u003cli\u003ePR size comes from \u003ccode\u003esize/*\u003c/code\u003e labels. Different sizes, have different weights.\u003c/li\u003e\n\u003cli\u003exs: 0.25, small, s: 0.5, large, l: 2, xl: 4, xxl: 8. All other size labels (or no size label) have weight 1.\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\u003cli\u003eAbsolute PR workload is a weighted sum of all PRs for a given SIG using size labels as weights.\u003c/li\u003e\n\u003cli\u003eRelative PR workload for given SIG is absolute PR workload divided by number of reviewers for given SIG.\u003c/li\u003e\n\u003cli\u003eNumber of reviewers is calculated in last month preceeding given point in time for chart version.\u003c/li\u003e\n\u003cli\u003eFor table version we're conting reviewers in a selected period.\u003c/li\u003e\n\u003cli\u003eReviewer is somebody who added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\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"
          },
          "multi": false,
          "regex": "",
          "tagsQuery": ""
        }
      ]
    },
    "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)",
          "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,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "enable": true,
          "type": "alert",
          "limit": 100,
          "name": "Releases",
          "textColumn": "",
          "datasource": "psql"
        }
      ]
    },
    "editable": true,
    "id": 111,
    "links": [],
    "panels": [
      {
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 21,
          "w": 24
        },
        "timeFrom": null,
        "timeShift": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "decimals": 0,
        "fill": 6,
        "percentage": false,
        "pointradius": 5,
        "spaceLength": 10,
        "steppedLine": false,
        "bars": false,
        "lines": true,
        "seriesOverrides": [],
        "id": 2,
        "links": [],
        "renderer": "flot",
        "dashLength": 10,
        "nullPointMode": "null as zero",
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "targets": [
          {
            "format": "time_series",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_pr_wlabs\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "alias": "",
            "orderByTime": "ASC",
            "rawQuery": true,
            "tags": [],
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "notused",
            "resultFormat": "time_series"
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "points": false,
        "thresholds": [],
        "type": "graph",
        "aliasColors": {
          
        },
        "dashes": false,
        "yaxes": [
          {
            "format": "short",
            "label": "Absolute PR workload",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "datasource": "psql",
        "transparent": true,
        "linewidth": 0,
        "stack": true,
        "title": "Absolute PR workload",
        "description": "Absolute PR workload",
        "legend": {
          "show": true,
          "max": true,
          "min": true,
          "rightSide": true,
          "sort": "total",
          "sortDesc": true,
          "total": false,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "current": true
        }
      },
      {
        "timeShift": null,
        "transparent": true,
        "description": "Relative PR workload",
        "thresholds": [],
        "linewidth": 0,
        "timeFrom": null,
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "datasource": "psql",
        "decimals": 0,
        "title": "Relative PR workload",
        "aliasColors": {
          
        },
        "nullPointMode": "null as zero",
        "targets": [
          {
            "orderByTime": "ASC",
            "policy": "default",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_pr_wlrel\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "refId": "A",
            "measurement": "notused",
            "dsType": "influxdb",
            "format": "time_series",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_relative_workload_d\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "tags": [],
            "alias": "",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": []
          }
        ],
        "type": "graph",
        "fill": 6,
        "gridPos": {
          "y": 21,
          "h": 21,
          "w": 24,
          "x": 0
        },
        "seriesOverrides": [],
        "pointradius": 5,
        "renderer": "flot",
        "id": 5,
        "links": [],
        "percentage": false,
        "steppedLine": false,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "Relative PR workload",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "dashes": false,
        "legend": {
          "current": true,
          "rightSide": true,
          "show": true,
          "sort": "total",
          "avg": true,
          "max": true,
          "min": true,
          "sortDesc": true,
          "total": false,
          "values": true,
          "alignAsTable": true
        },
        "stack": true,
        "spaceLength": 10,
        "bars": false,
        "lines": true,
        "points": false
      },
      {
        "pointradius": 5,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "decimals": null,
        "id": 4,
        "title": "Absolute PR workload",
        "datasource": "psql",
        "percentage": false,
        "legend": {
          "current": true,
          "max": true,
          "rightSide": true,
          "sideWidth": null,
          "alignAsTable": true,
          "avg": true,
          "sort": "total",
          "sortDesc": true,
          "total": false,
          "values": true,
          "min": true,
          "show": true
        },
        "links": [],
        "steppedLine": false,
        "targets": [
          {
            "format": "time_series",
            "orderByTime": "ASC",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "notused",
            "alias": "",
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_pr_wlabs\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "resultFormat": "time_series",
            "tags": []
          }
        ],
        "yaxes": [
          {
            "label": "Absolute PR workload",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short"
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": false,
            "format": "short",
            "label": ""
          }
        ],
        "fill": 0,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "description": "Absolute PR workload",
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "spaceLength": 10,
        "stack": false,
        "thresholds": [],
        "timeFrom": null,
        "transparent": true,
        "lines": true,
        "renderer": "flot",
        "linewidth": 1,
        "seriesOverrides": [],
        "type": "graph",
        "bars": false,
        "dashLength": 10,
        "nullPointMode": "null as zero",
        "points": false,
        "timeShift": null,
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "aliasColors": {
          
        },
        "dashes": false
      },
      {
        "aliasColors": {
          
        },
        "legend": {
          "sideWidth": null,
          "sort": "total",
          "total": false,
          "values": true,
          "avg": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "sortDesc": true,
          "alignAsTable": true,
          "current": true,
          "max": true
        },
        "lines": true,
        "pointradius": 5,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "nullPointMode": "null as zero",
        "targets": [
          {
            "alias": "",
            "measurement": "notused",
            "policy": "default",
            "tags": [],
            "groupBy": [],
            "orderByTime": "ASC",
            "refId": "A",
            "resultFormat": "time_series",
            "format": "time_series",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_pr_wlrel\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_relative_workload_d\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "yaxes": [
          {
            "label": "Relative PR workload",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": false
          }
        ],
        "seriesOverrides": [],
        "spaceLength": 10,
        "thresholds": [],
        "bars": false,
        "datasource": "psql",
        "linewidth": 1,
        "percentage": false,
        "type": "graph",
        "dashLength": 10,
        "renderer": "flot",
        "steppedLine": false,
        "timeShift": null,
        "transparent": true,
        "description": "Relative PR workload",
        "fill": 0,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 63
        },
        "stack": false,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "timeFrom": null,
        "title": "Relative PR workload",
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "dashes": false,
        "decimals": null,
        "id": 6,
        "links": [],
        "points": false
      },
      {
        "decimals": 0,
        "thresholds": [],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "timeShift": null,
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "Absolute PR workload",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "decimals": null,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          }
        ],
        "description": "Absolute PR workload",
        "linewidth": 0,
        "nullPointMode": "null as zero",
        "renderer": "flot",
        "stack": true,
        "targets": [
          {
            "tags": [],
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_pr_wlabs\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "resultFormat": "time_series",
            "refId": "A",
            "format": "time_series",
            "policy": "default",
            "rawQuery": true,
            "measurement": "notused",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter"
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "dashes": false,
        "seriesOverrides": [],
        "aliasColors": {
          
        },
        "bars": false,
        "gridPos": {
          "x": 0,
          "y": 84,
          "h": 21,
          "w": 24
        },
        "id": 3,
        "legend": {
          "rightSide": true,
          "alignAsTable": true,
          "max": true,
          "min": true,
          "show": true,
          "sort": "total",
          "sortDesc": true,
          "total": false,
          "values": true,
          "avg": true,
          "current": true
        },
        "lines": true,
        "links": [],
        "percentage": true,
        "pointradius": 5,
        "timeFrom": null,
        "title": "Absolute PR workload",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "transparent": true,
        "datasource": "psql",
        "fill": 7,
        "points": false,
        "spaceLength": 10,
        "steppedLine": false,
        "type": "graph"
      },
      {
        "legend": {
          "rightSide": true,
          "show": true,
          "sort": "total",
          "sortDesc": true,
          "total": false,
          "values": true,
          "avg": true,
          "max": true,
          "min": true,
          "alignAsTable": true,
          "current": true
        },
        "links": [],
        "thresholds": [],
        "type": "graph",
        "timeFrom": null,
        "yaxes": [
          {
            "format": "short",
            "label": "Relative PR workload",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "label": "",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short"
          }
        ],
        "id": 7,
        "pointradius": 5,
        "targets": [
          {
            "format": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": [],
            "measurement": "notused",
            "policy": "default",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_relative_workload_d\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "A",
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_pr_wlrel\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "resultFormat": "time_series",
            "orderByTime": "ASC"
          }
        ],
        "timeShift": null,
        "gridPos": {
          "y": 105,
          "h": 21,
          "w": 24,
          "x": 0
        },
        "title": "Relative PR workload",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "nullPointMode": "null as zero",
        "points": false,
        "renderer": "flot",
        "spaceLength": 10,
        "seriesOverrides": [],
        "transparent": true,
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "aliasColors": {
          
        },
        "dashLength": 10,
        "dashes": false,
        "lines": true,
        "linewidth": 0,
        "steppedLine": false,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "bars": false,
        "datasource": "psql",
        "description": "Relative PR workload",
        "percentage": true,
        "stack": true,
        "decimals": 0,
        "fill": 7
      },
      {
        "renderer": "flot",
        "steppedLine": false,
        "yaxes": [
          {
            "label": "Reviewers",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short"
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": false,
            "format": "short"
          }
        ],
        "bars": false,
        "legend": {
          "rightSide": true,
          "show": true,
          "sideWidth": null,
          "sort": "total",
          "sortDesc": true,
          "values": true,
          "avg": true,
          "max": true,
          "min": true,
          "total": false,
          "alignAsTable": true,
          "current": true
        },
        "type": "graph",
        "xaxis": {
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "linewidth": 1,
        "percentage": false,
        "thresholds": [],
        "transparent": true,
        "fill": 0,
        "links": [],
        "id": 8,
        "stack": false,
        "targets": [
          {
            "format": "time_series",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_reviewers_d\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "A",
            "tags": [],
            "dsType": "influxdb",
            "groupBy": [],
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_pr_wlrev\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "resultFormat": "time_series",
            "alias": "",
            "measurement": "notused",
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "decimals": null,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 126
        },
        "timeShift": null,
        "points": false,
        "spaceLength": 10,
        "pointradius": 5,
        "timeFrom": null,
        "datasource": "psql",
        "lines": true,
        "dashes": false,
        "title": "Number of SIG reviewers",
        "aliasColors": {
          
        },
        "dashLength": 10,
        "seriesOverrides": [],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "description": "Number of SIG reviewers",
        "nullPointMode": "null as zero"
      },
      {
        "gridPos": {
          "y": 147,
          "h": 21,
          "w": 24,
          "x": 0
        },
        "targets": [
          {
            "policy": "default",
            "resultFormat": "time_series",
            "tags": [],
            "format": "time_series",
            "groupBy": [],
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_issues_d\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_pr_wliss\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "measurement": "notused",
            "dsType": "influxdb",
            "rawQuery": true,
            "orderByTime": "ASC"
          }
        ],
        "timeFrom": null,
        "description": "Number of SIG PRs",
        "pointradius": 5,
        "dashLength": 10,
        "dashes": false,
        "fill": 0,
        "lines": true,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "id": 9,
        "links": [],
        "nullPointMode": "null as zero",
        "renderer": "flot",
        "seriesOverrides": [],
        "steppedLine": false,
        "title": "Number of SIG PRs",
        "datasource": "psql",
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "min": "0",
            "show": false,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null
          }
        ],
        "legend": {
          "min": true,
          "show": true,
          "sideWidth": null,
          "sort": "total",
          "total": false,
          "alignAsTable": true,
          "avg": true,
          "rightSide": true,
          "sortDesc": true,
          "values": true,
          "current": true,
          "max": true
        },
        "aliasColors": {
          
        },
        "points": false,
        "timeShift": null,
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "transparent": true,
        "type": "graph",
        "linewidth": 1,
        "stack": false,
        "percentage": false,
        "spaceLength": 10,
        "thresholds": [],
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "decimals": null
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "h": 18,
          "w": 24,
          "x": 0,
          "y": 168
        },
        "id": 10,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "version": 16,
    "gnetId": null,
    "graphTooltip": 0,
    "style": "dark",
    "time": {
      "from": "now-6M",
      "to": "now"
    },
    "title": "PR Workload per SIG Chart"
  }


slug: pr-workload-per-sig-table
title: PR Workload per SIG Table
created: 2023-09-13 22:35:06.793960203+00:00
updated: 2023-09-13 22:35:06.793960303+00:00
uid: 34
data:
  {
    "gnetId": null,
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "table",
      "PRs",
      "SIGs",
      "repos"
    ],
    "templating": {
      "list": [
        {
          "type": "query",
          "current": {
            "value": "Last month",
            "selected": false,
            "text": "Last month"
          },
          "definition": "",
          "hide": 0,
          "refresh": 1,
          "regex": "",
          "useTags": false,
          "allValue": null,
          "description": null,
          "label": "Range",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "error": null,
          "name": "period_name",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "tags": [],
          "includeAll": false,
          "multi": false,
          "options": [],
          "sort": 0
        },
        {
          "allValue": null,
          "hide": 2,
          "includeAll": false,
          "name": "period",
          "options": [],
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "refresh": 1,
          "tagsQuery": "",
          "tagValuesQuery": "",
          "datasource": "psql",
          "definition": "",
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "type": "query",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "m",
            "value": "m"
          },
          "description": null,
          "error": null,
          "label": null,
          "sort": 0
        },
        {
          "type": "query",
          "allValue": null,
          "error": null,
          "multi": false,
          "name": "docs",
          "refresh": 1,
          "tagValuesQuery": "",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR Workload per SIG dashboards (chart and table)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChart version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTable version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_table.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_workload\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-chart.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (chart version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (table version).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThose dashboards show PR workload for SIGs\u003c/li\u003e\n\u003cli\u003eChart version allows to see absolute and relative PR worklod as line charts, stacked charts and stacked percent charts.\u003c/li\u003e\n\u003cli\u003eChart version also allows to see chart of SIG PRs and SIG reviewers. You can select list of SIGs to display.\u003c/li\u003e\n\u003cli\u003eTable version allows to see absolute and relative PR workload per SIG and number of PRs and reviewers for given SIGs.\u003c/li\u003e\n\u003cli\u003eTable version also allows to choose period to display metric, like last month, year, particular release etc.\u003c/li\u003e\n\u003cli\u003eFor chart version we're counting PRs that were opened at given point in time (not closed, not merged).\u003c/li\u003e\n\u003cli\u003eFor table version we're counting PRs taht were open at the period's end (for last week it is now), for v1.9 - v1.10 it is v1.10\u003c/li\u003e\n\u003cli\u003ePR size comes from \u003ccode\u003esize/*\u003c/code\u003e labels. Different sizes, have different weights.\u003c/li\u003e\n\u003cli\u003exs: 0.25, small, s: 0.5, large, l: 2, xl: 4, xxl: 8. All other size labels (or no size label) have weight 1.\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\u003cli\u003eAbsolute PR workload is a weighted sum of all PRs for a given SIG using size labels as weights.\u003c/li\u003e\n\u003cli\u003eRelative PR workload for given SIG is absolute PR workload divided by number of reviewers for given SIG.\u003c/li\u003e\n\u003cli\u003eNumber of reviewers is calculated in last month preceeding given point in time for chart version.\u003c/li\u003e\n\u003cli\u003eFor table version we're conting reviewers in a selected period.\u003c/li\u003e\n\u003cli\u003eReviewer is somebody who added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\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 PR Workload per SIG dashboards (chart and table)\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChart version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTable version metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/pr_workload_table.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_workload\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-chart.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (chart version).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/pr-workload-per-sig-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e (table version).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThose dashboards show PR workload for SIGs\u003c/li\u003e\n\u003cli\u003eChart version allows to see absolute and relative PR worklod as line charts, stacked charts and stacked percent charts.\u003c/li\u003e\n\u003cli\u003eChart version also allows to see chart of SIG PRs and SIG reviewers. You can select list of SIGs to display.\u003c/li\u003e\n\u003cli\u003eTable version allows to see absolute and relative PR workload per SIG and number of PRs and reviewers for given SIGs.\u003c/li\u003e\n\u003cli\u003eTable version also allows to choose period to display metric, like last month, year, particular release etc.\u003c/li\u003e\n\u003cli\u003eFor chart version we're counting PRs that were opened at given point in time (not closed, not merged).\u003c/li\u003e\n\u003cli\u003eFor table version we're counting PRs taht were open at the period's end (for last week it is now), for v1.9 - v1.10 it is v1.10\u003c/li\u003e\n\u003cli\u003ePR size comes from \u003ccode\u003esize/*\u003c/code\u003e labels. Different sizes, have different weights.\u003c/li\u003e\n\u003cli\u003exs: 0.25, small, s: 0.5, large, l: 2, xl: 4, xxl: 8. All other size labels (or no size label) have weight 1.\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\u003cli\u003eAbsolute PR workload is a weighted sum of all PRs for a given SIG using size labels as weights.\u003c/li\u003e\n\u003cli\u003eRelative PR workload for given SIG is absolute PR workload divided by number of reviewers for given SIG.\u003c/li\u003e\n\u003cli\u003eNumber of reviewers is calculated in last month preceeding given point in time for chart version.\u003c/li\u003e\n\u003cli\u003eFor table version we're conting reviewers in a selected period.\u003c/li\u003e\n\u003cli\u003eReviewer is somebody who added \u003ccode\u003e/lgtm\u003c/code\u003e or \u003ccode\u003e/approve\u003c/code\u003e text or \u003ccode\u003elgtm\u003c/code\u003e or \u003ccode\u003eapprove\u003c/code\u003e label.\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"
          },
          "includeAll": false,
          "label": null,
          "query": "select value_s from gha_vars where name = 'pr_workload_docs_html'",
          "definition": "",
          "description": null,
          "hide": 2,
          "skipUrlSync": true,
          "tags": [],
          "tagsQuery": "",
          "datasource": "psql",
          "options": [],
          "regex": "",
          "sort": 0
        },
        {
          "tagValuesQuery": "",
          "type": "query",
          "allValue": null,
          "multi": false,
          "name": "repo_name",
          "query": "select repo_name from trepos order by 1",
          "regex": "",
          "skipUrlSync": false,
          "tagsQuery": "",
          "current": {
            "selected": true,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "error": null,
          "hide": 0,
          "options": [],
          "includeAll": false,
          "label": "Repository",
          "refresh": 1,
          "tags": [],
          "useTags": false,
          "datasource": null,
          "definition": "select repo_name from trepos order by 1",
          "description": null,
          "sort": 1
        }
      ]
    },
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        }
      ]
    },
    "graphTooltip": 0,
    "iteration": 1619514877305,
    "panels": [
      {
        "columns": [],
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "scroll": true,
        "transform": "table",
        "links": [],
        "pageSize": 1000,
        "targets": [
          {
            "format": "table",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "select \"sig\" as SIG, \"issues\" as \"Number of PRs\", \"reviewers\" as \"Number of Reviewers\", \"absolute_workload\" as \"Absolute PR workload\", \"relative_workload\" as \"Relative PR workload\" FROM \"pr_workload_sigs_[[period]]\" WHERE $timeFilter",
            "rawSql": "select sig as \"SIG\", iss as \"Number of PRs\", rev as \"Number of Reviewers\", abs as \"Absolute PR workload\", rel as \"Relative PR workload\" from shpr_wlsigs where period = '[[period]]'"
          }
        ],
        "type": "table-old",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "hideTimeOverride": true,
        "showHeader": true,
        "sort": {
          "col": 5,
          "desc": true
        },
        "description": "PR workloads (Range: [[period_name]])",
        "fontSize": "80%",
        "id": 1,
        "styles": [
          {
            "alias": "Time",
            "align": "auto",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null,
            "pattern": "Time",
            "type": "hidden"
          },
          {
            "colors": [
              "rgba(50, 172, 45, 0.97)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(245, 54, 54, 0.9)"
            ],
            "pattern": "Number of PRs",
            "preserveFormat": false,
            "type": "number",
            "colorMode": "value",
            "align": "auto",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 0,
            "thresholds": [
              "10",
              "100"
            ],
            "unit": "none",
            "alias": ""
          },
          {
            "colorMode": "value",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 0,
            "pattern": "Absolute PR workload",
            "thresholds": [
              "10",
              "100"
            ],
            "unit": "none",
            "alias": "",
            "align": "auto",
            "colors": [
              "rgba(50, 172, 45, 0.97)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(245, 54, 54, 0.9)"
            ],
            "type": "number"
          },
          {
            "unit": "none",
            "alias": "",
            "align": "auto",
            "colors": [
              "rgba(50, 172, 45, 0.97)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(245, 54, 54, 0.9)"
            ],
            "decimals": 2,
            "type": "number",
            "colorMode": "value",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "Relative PR workload",
            "thresholds": [
              "5",
              "10"
            ]
          },
          {
            "decimals": 0,
            "pattern": "Number of Reviewers",
            "type": "number",
            "unit": "none",
            "align": "auto",
            "colorMode": "value",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "thresholds": [
              "10",
              "30"
            ],
            "alias": "",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ]
          },
          {
            "align": "auto",
            "colorMode": null,
            "decimals": 0,
            "pattern": "/.*/",
            "unit": "short",
            "alias": "",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "thresholds": [],
            "type": "number"
          }
        ],
        "title": "PR workloads (Range: [[period_name]])"
      },
      {
        "sort": {
          "col": 5,
          "desc": true
        },
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "dsType": "influxdb",
            "policy": "default",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "rawQuery": true,
            "tags": [],
            "timeColumn": "time",
            "group": [],
            "orderByTime": "ASC",
            "query": "select \"sig\" as SIG, \"issues\" as \"Number of PRs\", \"reviewers\" as \"Number of Reviewers\", \"absolute_workload\" as \"Absolute PR workload\", \"relative_workload\" as \"Relative PR workload\" FROM \"pr_workload_sigs_[[period]]\" WHERE $timeFilter",
            "resultFormat": "table",
            "metricColumn": "none",
            "rawSql": "select sig as \"SIG\", iss as \"Number of PRs\", rev as \"Number of Reviewers\", abs as \"Absolute PR workload\", rel as \"Relative PR workload\" from shpr_wrlsigs where period = '[[period]]' and repo = '[[repo_name]]'",
            "refId": "A"
          }
        ],
        "title": "PR workloads (Range: [[period_name]], Repository: [[repo_name]])",
        "transform": "table",
        "datasource": "psql",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "pageSize": 1000,
        "showHeader": true,
        "id": 3,
        "links": [],
        "description": "PR workloads (Range: [[period_name]], Repository: [[repo_name]])",
        "fontSize": "80%",
        "hideTimeOverride": true,
        "type": "table-old",
        "columns": [],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "scroll": true,
        "styles": [
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null,
            "pattern": "Time",
            "type": "hidden",
            "alias": "Time",
            "align": "auto"
          },
          {
            "type": "number",
            "align": "auto",
            "colors": [
              "rgba(50, 172, 45, 0.97)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(245, 54, 54, 0.9)"
            ],
            "preserveFormat": false,
            "decimals": 0,
            "pattern": "Number of PRs",
            "thresholds": [
              "10",
              "100"
            ],
            "unit": "none",
            "alias": "",
            "colorMode": "value",
            "dateFormat": "YYYY-MM-DD HH:mm:ss"
          },
          {
            "decimals": 0,
            "pattern": "Absolute PR workload",
            "align": "auto",
            "colors": [
              "rgba(50, 172, 45, 0.97)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "thresholds": [
              "10",
              "100"
            ],
            "type": "number",
            "unit": "none",
            "alias": "",
            "colorMode": "value"
          },
          {
            "decimals": 2,
            "thresholds": [
              "5",
              "10"
            ],
            "alias": "",
            "colors": [
              "rgba(50, 172, 45, 0.97)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "Relative PR workload",
            "type": "number",
            "unit": "none",
            "align": "auto",
            "colorMode": "value"
          },
          {
            "alias": "",
            "decimals": 0,
            "pattern": "Number of Reviewers",
            "thresholds": [
              "10",
              "30"
            ],
            "type": "number",
            "unit": "none",
            "align": "auto",
            "colorMode": "value",
            "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"
          },
          {
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "alias": "",
            "align": "auto",
            "colorMode": null,
            "decimals": 0,
            "unit": "short"
          }
        ]
      },
      {
        "datasource": null,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "7.5.4",
        "title": "Dashboard documentation",
        "gridPos": {
          "h": 19,
          "w": 24,
          "x": 0,
          "y": 44
        },
        "id": 2,
        "type": "text"
      }
    ],
    "schemaVersion": 27,
    "uid": "34",
    "id": 36,
    "links": [],
    "refresh": false,
    "version": 4,
    "editable": true,
    "time": {
      "to": "now",
      "from": "now-5y"
    },
    "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
    },
    "timezone": "",
    "title": "PR Workload per SIG Table"
  }


slug: prs-approval-repository-groups
title: PRs approval repository groups
created: 2023-09-13 22:35:06.814403064+00:00
updated: 2023-09-13 22:35:06.814403144+00:00
uid: 26
data:
  {
    "gnetId": null,
    "refresh": false,
    "schemaVersion": 27,
    "timezone": "",
    "version": 2,
    "panels": [
      {
        "pluginVersion": "7.5.4",
        "pointradius": 5,
        "title": "PRs approved and awaiting approval ([[repogroup]], [[period]])",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "description": "Number of PRs",
        "fillGradient": 0,
        "percentage": false,
        "bars": false,
        "stack": true,
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Pull requests",
            "logBase": 1
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            
          }
        },
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "id": 2,
        "nullPointMode": "null as zero",
        "renderer": "flot",
        "dashes": false,
        "fill": 5,
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "lines": true,
        "steppedLine": true,
        "links": [],
        "timeRegions": [],
        "type": "graph",
        "decimals": 2,
        "hiddenSeries": false,
        "legend": {
          "total": true,
          "values": true,
          "avg": true,
          "current": true,
          "rightSide": false,
          "sort": "avg",
          "sortDesc": true,
          "alignAsTable": true,
          "max": true,
          "min": true,
          "show": true
        },
        "thresholds": [],
        "timeShift": null,
        "options": {
          "alertThreshold": true
        },
        "seriesOverrides": [],
        "spaceLength": 10,
        "linewidth": 0,
        "points": false,
        "targets": [
          {
            "format": "time_series",
            "groupBy": [],
            "measurement": "prs_kubernetes_kubernetes_d",
            "policy": "default",
            "query": "SELECT /^[[repogroup]]$/ FROM \"prs_approve_state_approved_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Approved\"\nfrom\n  spr_apprappr\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "A",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "tags": []
          },
          {
            "format": "time_series",
            "measurement": "prs_kubernetes_kubernetes_d",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "refId": "B",
            "alias": "",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT /^[[repogroup]]$/ FROM \"prs_approve_state_awaiting_[[period]]\" WHERE $timeFilter",
            "dsType": "influxdb",
            "groupBy": [],
            "tags": [],
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Awaiting approval\"\nfrom\n  spr_apprwait\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "resultFormat": "time_series"
          }
        ],
        "timeFrom": null,
        "aliasColors": {
          
        },
        "dashLength": 10,
        "datasource": "psql"
      },
      {
        "title": "PRs approved and awaiting approval ([[repo]], [[period]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "linewidth": 0,
        "links": [],
        "points": false,
        "id": 6,
        "nullPointMode": "null as zero",
        "percentage": false,
        "renderer": "flot",
        "steppedLine": true,
        "aliasColors": {
          
        },
        "dashLength": 10,
        "decimals": 2,
        "timeShift": null,
        "pluginVersion": "7.5.4",
        "pointradius": 5,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "description": "Number of PRs",
        "hiddenSeries": false,
        "targets": [
          {
            "refId": "A",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "group": [],
            "groupBy": [],
            "query": "SELECT /^[[repogroup]]$/ FROM \"prs_approve_state_approved_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "tags": [],
            "measurement": "prs_kubernetes_kubernetes_d",
            "orderByTime": "ASC",
            "rawQuery": true,
            "format": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "policy": "default",
            "rawSql": "select\n  time,\n  \"[[repo]]\" as \"Approved\"\nfrom\n  spr_repapprappr\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "alias": "",
            "dsType": "influxdb",
            "metricColumn": "none"
          },
          {
            "group": [],
            "groupBy": [],
            "policy": "default",
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "measurement": "prs_kubernetes_kubernetes_d",
            "rawSql": "select\n  time,\n  \"[[repo]]\" as \"Awaiting approval\"\nfrom\n  spr_repapprwait\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "format": "time_series",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "refId": "B",
            "timeColumn": "time",
            "alias": "",
            "dsType": "influxdb",
            "query": "SELECT /^[[repogroup]]$/ FROM \"prs_approve_state_awaiting_[[period]]\" WHERE $timeFilter",
            "tags": []
          }
        ],
        "datasource": "psql",
        "spaceLength": 10,
        "type": "graph",
        "thresholds": [],
        "yaxes": [
          {
            "format": "short",
            "label": "Pull requests",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "bars": false,
        "fill": 5,
        "stack": true,
        "lines": true,
        "seriesOverrides": [],
        "timeRegions": [],
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 22,
          "h": 22
        },
        "legend": {
          "sortDesc": true,
          "total": true,
          "values": true,
          "alignAsTable": true,
          "show": true,
          "sort": "avg",
          "min": true,
          "rightSide": false,
          "avg": true,
          "current": true,
          "max": true
        },
        "options": {
          "alertThreshold": true
        },
        "timeFrom": null,
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "dashes": false,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fillGradient": 0
      },
      {
        "datasource": null,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 44
        },
        "links": [],
        "options": {
          "mode": "html",
          "content": "${docs:raw}"
        },
        "title": "Dashboard documentation",
        "type": "text",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 5,
        "pluginVersion": "7.5.4"
      }
    ],
    "style": "dark",
    "time": {
      "to": "now",
      "from": "now-40M"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "editable": true,
    "id": 37,
    "iteration": 1619521514743,
    "links": [],
    "tags": [
      "dashboard",
      "kubernetes",
      "PRs",
      "approving",
      "repogroups",
      "repos"
    ],
    "templating": {
      "list": [
        {
          "description": null,
          "label": "Period",
          "skipUrlSync": false,
          "allValue": null,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "includeAll": false,
          "multi": false,
          "name": "period",
          "options": [
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "value": "m",
              "selected": false,
              "text": "Month"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ],
          "query": "d,w,m,q,y",
          "type": "custom",
          "error": null,
          "hide": 0
        },
        {
          "description": null,
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "regex": "",
          "allValue": "",
          "definition": "",
          "includeAll": false,
          "label": "Repository group",
          "options": [],
          "error": null,
          "hide": 0,
          "refresh": 1,
          "skipUrlSync": false,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "name": "repogroup",
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "datasource": "psql",
          "sort": 0
        },
        {
          "current": {
            "selected": true,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "datasource": "psql",
          "includeAll": false,
          "sort": 0,
          "allValue": "",
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "skipUrlSync": false,
          "definition": "select repo_name from trepos order by 1",
          "description": null,
          "label": "Repository",
          "name": "repo",
          "options": [],
          "query": "select repo_name from trepos order by 1",
          "regex": "",
          "tagsQuery": "",
          "error": null,
          "hide": 0,
          "multi": false,
          "refresh": 1,
          "tags": []
        },
        {
          "definition": "",
          "hide": 2,
          "regex": "",
          "allValue": null,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "datasource": "psql",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "tagsQuery": "",
          "useTags": false,
          "error": null,
          "label": null,
          "name": "full_name",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "description": null,
          "multi": false,
          "refresh": 1,
          "includeAll": false,
          "options": []
        },
        {
          "definition": "",
          "hide": 2,
          "name": "docs",
          "regex": "",
          "useTags": false,
          "refresh": 1,
          "allValue": null,
          "datasource": "psql",
          "error": null,
          "label": null,
          "multi": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'pr_approval_docs_html'",
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": "",
          "includeAll": false,
          "tagValuesQuery": "",
          "tags": [],
          "current": {
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PRs approval 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/prs_state.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_state\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-approval-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 number of approved and awaiting approval non-closed PRs modifed in given periods.\u003c/li\u003e\n\u003cli\u003eNon-closed PR is a PR that is either open or merged.\u003c/li\u003e\n\u003cli\u003eApproved PR is a PR that is either merged or open and have \u003ccode\u003eapproved\u003c/code\u003e or \u003ccode\u003elgtm\u003c/code\u003e label.\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 data for PRs modified 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 PRs approval 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/prs_state.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_state\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-approval-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 number of approved and awaiting approval non-closed PRs modifed in given periods.\u003c/li\u003e\n\u003cli\u003eNon-closed PR is a PR that is either open or merged.\u003c/li\u003e\n\u003cli\u003eApproved PR is a PR that is either merged or open and have \u003ccode\u003eapproved\u003c/code\u003e or \u003ccode\u003elgtm\u003c/code\u003e label.\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 data for PRs modified 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,
          "type": "query"
        }
      ]
    },
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "type": "alert",
          "datasource": "psql",
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "textColumn": ""
        }
      ]
    },
    "graphTooltip": 0,
    "title": "PRs approval repository groups",
    "uid": "26"
  }


slug: prs-authors-repository-groups
title: PRs authors repository groups
created: 2023-09-13 22:35:06.83484344+00:00
updated: 2023-09-13 22:35:06.83484354+00:00
uid: 30
data:
  {
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        },
        {
          "datasource": "psql",
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "showIn": 0,
          "type": "alert",
          "titleColumn": "[[full_name]] release",
          "enable": true,
          "hide": false,
          "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)",
          "tagsColumn": "title,description",
          "textColumn": ""
        }
      ]
    },
    "panels": [
      {
        "options": {
          "alertThreshold": true
        },
        "renderer": "flot",
        "lines": false,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "type": "graph",
        "fill": 1,
        "id": 1,
        "points": false,
        "thresholds": [],
        "timeShift": null,
        "tooltip": {
          "shared": false,
          "sort": 0,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 22,
          "w": 24
        },
        "links": [],
        "pluginVersion": "7.5.4",
        "seriesOverrides": [],
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null
        },
        "yaxes": [
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Unique PRs authors"
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "dashLength": 10,
        "decimals": 0,
        "legend": {
          "current": true,
          "min": true,
          "rightSide": false,
          "total": true,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "hideEmpty": false,
          "hideZero": false,
          "max": true,
          "show": true
        },
        "dashes": false,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "hiddenSeries": false,
        "linewidth": 1,
        "pointradius": 5,
        "datasource": "psql",
        "targets": [
          {
            "dsType": "influxdb",
            "hide": false,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "measurement": "reviewers_d",
            "rawSql": "select\n  time,\n  value as \"Unique PR authors\"\nfrom\n  spr_auth\nwhere\n  $__timeFilter(time)\n  and series = 'pr_auth[[repogroup]]'\n  and period = '[[period]]'\norder by\n  time",
            "alias": "",
            "groupBy": [],
            "orderByTime": "ASC",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "format": "time_series",
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_authors_[[repogroup]]_[[period]][[aggregate]]\" WHERE $timeFilter"
          }
        ],
        "timeRegions": [],
        "title": "Number of unique PRs authors in [[repogroup_name]] repository group ([[period]])",
        "stack": false,
        "description": "Number of unique PR authors in [[repogroup_name]] repository group.",
        "fillGradient": 0,
        "nullPointMode": "null",
        "percentage": false,
        "spaceLength": 10,
        "steppedLine": false,
        "timeFrom": null,
        "bars": true
      },
      {
        "nullPointMode": "null",
        "hiddenSeries": false,
        "legend": {
          "max": true,
          "rightSide": false,
          "values": true,
          "alignAsTable": true,
          "current": true,
          "hideEmpty": false,
          "show": true,
          "total": true,
          "avg": true,
          "hideZero": false,
          "min": true
        },
        "seriesOverrides": [],
        "steppedLine": false,
        "thresholds": [],
        "bars": true,
        "decimals": 0,
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 22,
          "h": 22
        },
        "points": false,
        "title": "Number of unique PRs authors in [[repo_name]] repository group ([[period]])",
        "dashes": false,
        "percentage": false,
        "pluginVersion": "7.5.4",
        "stack": false,
        "targets": [
          {
            "timeColumn": "time",
            "format": "time_series",
            "orderByTime": "ASC",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "refId": "A",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_authors_[[repogroup]]_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"Unique PR authors\"\nfrom\n  spr_auth_repos\nwhere\n  $__timeFilter(time)\n  and series = 'pr_auth[[repo]]'\n  and period = '[[period]]'\norder by\n  time",
            "dsType": "influxdb",
            "hide": false,
            "resultFormat": "time_series",
            "group": [],
            "groupBy": [],
            "metricColumn": "none",
            "policy": "autogen"
          }
        ],
        "type": "graph",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "yaxes": [
          {
            "show": true,
            "format": "short",
            "label": "Unique PRs authors",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null
          }
        ],
        "fill": 1,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "lines": false,
        "links": [],
        "timeRegions": [],
        "tooltip": {
          "shared": false,
          "sort": 0,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "id": 6,
        "options": {
          "alertThreshold": true
        },
        "pointradius": 5,
        "description": "A number of unique PR authors in [[repo_name]] repository group.",
        "fillGradient": 0,
        "linewidth": 1,
        "renderer": "flot",
        "datasource": "psql",
        "timeFrom": null,
        "timeShift": null,
        "spaceLength": 10
      },
      {
        "datasource": null,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "x": 0,
          "y": 44,
          "h": 12,
          "w": 24
        },
        "pluginVersion": "7.5.4",
        "title": "Dashboard documentation",
        "type": "text",
        "id": 5,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        }
      }
    ],
    "schemaVersion": 27,
    "title": "PRs authors repository groups",
    "version": 2,
    "editable": true,
    "graphTooltip": 0,
    "links": [],
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "PRs",
      "repogroups",
      "repos"
    ],
    "uid": "30",
    "gnetId": null,
    "iteration": 1618569208353,
    "refresh": false,
    "id": 38,
    "templating": {
      "list": [
        {
          "multi": false,
          "query": "d,d7,w,m,q,y",
          "type": "custom",
          "allValue": null,
          "description": null,
          "error": null,
          "includeAll": false,
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "value": "d7",
              "selected": true,
              "text": "7 Days MA"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ],
          "skipUrlSync": false,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "hide": 0,
          "label": "Period",
          "name": "period"
        },
        {
          "includeAll": false,
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "useTags": false,
          "description": null,
          "name": "repogroup_name",
          "type": "query",
          "sort": 0,
          "tags": [],
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "datasource": "psql",
          "options": [],
          "regex": "",
          "label": "Repository group",
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "allValue": null,
          "definition": "",
          "error": null,
          "hide": 0,
          "tagsQuery": ""
        },
        {
          "datasource": "psql",
          "description": null,
          "name": "repogroup",
          "options": [],
          "useTags": false,
          "hide": 2,
          "multi": false,
          "tagValuesQuery": "",
          "tags": [],
          "refresh": 1,
          "regex": "",
          "allValue": null,
          "current": {
            "text": "all",
            "value": "all",
            "selected": false
          },
          "definition": "",
          "includeAll": false,
          "label": "",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "skipUrlSync": true,
          "error": null,
          "sort": 0,
          "tagsQuery": "",
          "type": "query"
        },
        {
          "tagsQuery": "",
          "useTags": false,
          "definition": "select repo_name from trepos order by 1",
          "error": null,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "hide": 0,
          "multi": false,
          "options": [],
          "regex": "",
          "name": "repo_name",
          "sort": 0,
          "allValue": null,
          "datasource": "psql",
          "includeAll": false,
          "label": "Repository",
          "skipUrlSync": false,
          "current": {
            "selected": true,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "description": null,
          "query": "select repo_name from trepos order by 1",
          "refresh": 1
        },
        {
          "hide": 2,
          "name": "repo",
          "type": "query",
          "sort": 0,
          "datasource": "psql",
          "error": null,
          "includeAll": false,
          "label": "",
          "multi": false,
          "options": [],
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "tags": [],
          "useTags": false,
          "allValue": null,
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "description": null,
          "regex": "",
          "tagsQuery": ""
        },
        {
          "definition": "",
          "hide": 2,
          "multi": false,
          "refresh": 1,
          "type": "query",
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "description": null,
          "options": [],
          "skipUrlSync": true,
          "tags": [],
          "tagsQuery": "",
          "error": null,
          "includeAll": false,
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "allValue": null,
          "datasource": "psql",
          "label": null,
          "sort": 0,
          "tagValuesQuery": "",
          "useTags": false
        },
        {
          "tagValuesQuery": "",
          "tags": [],
          "description": null,
          "includeAll": false,
          "label": null,
          "options": [],
          "regex": "",
          "error": null,
          "multi": false,
          "sort": 0,
          "tagsQuery": "",
          "useTags": false,
          "skipUrlSync": true,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PRs authors 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/shared/prs_authors.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_authors\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-authors-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 number of unique PRs authors who created PRs in given periods.\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 PR creators in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PRs authors 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/shared/prs_authors.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_authors\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-authors-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 number of unique PRs authors who created PRs in given periods.\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 PR creators in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "datasource": "psql",
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'pr_authors_docs_html'",
          "refresh": 1,
          "allValue": null,
          "definition": "",
          "name": "docs",
          "type": "query"
        }
      ]
    },
    "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": ""
  }


slug: prs-labels-by-sig
title: PRs labels by SIG
created: 2023-09-13 22:35:06.854420073+00:00
updated: 2023-09-13 22:35:06.854420153+00:00
uid: 71
data:
  {
    "annotations": {
      "list": [
        {
          "hide": true,
          "limit": 100,
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "type": "dashboard",
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "showIn": 0
        },
        {
          "textColumn": "",
          "datasource": "psql",
          "enable": true,
          "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)",
          "type": "alert",
          "hide": false,
          "showIn": 0,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release"
        }
      ]
    },
    "gnetId": null,
    "refresh": 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"
      ]
    },
    "uid": "71",
    "editable": true,
    "id": 38,
    "panels": [
      {
        "id": 3,
        "nullPointMode": "connected",
        "postfixFontSize": "50%",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": true,
          "lineColor": "rgb(31, 120, 193)",
          "show": true
        },
        "title": "PRs from [[sig_name]] with [[label_name]]",
        "cacheTimeout": null,
        "datasource": "psql",
        "nullText": null,
        "prefix": "Currently: ",
        "rangeMaps": [
          {
            "text": "N/A",
            "to": "null",
            "from": "null"
          }
        ],
        "colorBackground": false,
        "format": "none",
        "thresholds": "10,100",
        "valueFontSize": "80%",
        "gauge": {
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0
        },
        "repeatDirection": "h",
        "repeat": null,
        "transparent": true,
        "colorValue": true,
        "options": {
          
        },
        "tableColumn": "",
        "targets": [
          {
            "dsType": "influxdb",
            "tags": [],
            "alias": "",
            "metricColumn": "none",
            "rawSql": "select\n  time,\n  value\nfrom\n  sprs_labels_by_sig\nwhere\n  $__timeFilter(time)\n  and series = 'prsiglbl[[sig]][[label]]'\norder by\n  time",
            "resultFormat": "time_series",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "group": []
          }
        ],
        "decimals": null,
        "postfix": "",
        "mappingType": 1,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "links": [],
        "valueName": "current",
        "description": "",
        "gridPos": {
          "h": 4,
          "w": 12,
          "x": 0,
          "y": 0
        },
        "maxDataPoints": 100,
        "prefixFontSize": "50%",
        "type": "singlestat",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "colors": [
          "#299c46",
          "rgba(237, 129, 40, 0.89)",
          "#d44a3a"
        ],
        "interval": ""
      },
      {
        "tableColumn": "",
        "valueName": "max",
        "colorValue": true,
        "postfix": "",
        "rangeMaps": [
          {
            "text": "N/A",
            "to": "null",
            "from": "null"
          }
        ],
        "thresholds": "10,100",
        "format": "none",
        "links": [],
        "mappingType": 1,
        "mappingTypes": [
          {
            "value": 1,
            "name": "value to text"
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "maxDataPoints": 100,
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": true,
          "lineColor": "rgb(31, 120, 193)",
          "show": true
        },
        "valueFontSize": "80%",
        "postfixFontSize": "50%",
        "targets": [
          {
            "timeColumn": "time",
            "alias": "",
            "format": "time_series",
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "policy": "default",
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value\nfrom\n  sprs_labels_by_sig\nwhere\n  $__timeFilter(time)\n  and series = 'prsiglbl[[sig]][[label]]'\norder by\n  time",
            "refId": "A"
          }
        ],
        "transparent": true,
        "type": "singlestat",
        "colorBackground": false,
        "colors": [
          "#299c46",
          "rgba(237, 129, 40, 0.89)",
          "#d44a3a"
        ],
        "datasource": "psql",
        "interval": "",
        "nullText": null,
        "prefix": "Maximum:",
        "description": "",
        "gridPos": {
          "y": 0,
          "h": 4,
          "w": 12,
          "x": 12
        },
        "id": 4,
        "options": {
          
        },
        "title": "PRs from [[sig_name]] with [[label_name]]",
        "valueMaps": [
          {
            "value": "null",
            "op": "=",
            "text": "N/A"
          }
        ],
        "cacheTimeout": null,
        "decimals": null,
        "gauge": {
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0
        },
        "nullPointMode": "connected",
        "prefixFontSize": "50%"
      },
      {
        "renderer": "flot",
        "steppedLine": false,
        "targets": [
          {
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "metricColumn": "none",
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "tags": [],
            "timeColumn": "time",
            "alias": "",
            "format": "time_series",
            "group": [],
            "policy": "default",
            "rawSql": "select\n  time,\n  value as \"[[sig_name]]: [[label_name]]\"\nfrom\n  sprs_labels_by_sig\nwhere\n  $__timeFilter(time)\n  and series = 'prsiglbl[[sig]][[label]]'\norder by\n  time",
            "resultFormat": "time_series",
            "measurement": "prs_kubernetes_kubernetes_d",
            "orderByTime": "ASC",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ]
          }
        ],
        "timeRegions": [],
        "title": "PRs from [[sig_name]] with [[label_name]]",
        "aliasColors": {
          
        },
        "dashes": false,
        "interval": "",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 4
        },
        "transparent": true,
        "thresholds": [],
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "none",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "show": true,
            "format": "none",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "linewidth": 1,
        "pointradius": 5,
        "dashLength": 10,
        "decimals": 0,
        "lines": true,
        "seriesOverrides": [],
        "timeShift": null,
        "datasource": "psql",
        "fill": 5,
        "options": {
          "dataLinks": []
        },
        "id": 1,
        "points": false,
        "spaceLength": 10,
        "type": "graph",
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "bars": false,
        "description": "",
        "fillGradient": 0,
        "stack": true,
        "hiddenSeries": false,
        "nullPointMode": "null as zero",
        "percentage": false,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "legend": {
          "alignAsTable": true,
          "current": true,
          "min": true,
          "total": false,
          "sortDesc": true,
          "values": true,
          "avg": true,
          "max": true,
          "rightSide": false,
          "show": true,
          "sort": "avg"
        },
        "links": [],
        "timeFrom": null
      },
      {
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "group": [],
            "groupBy": [],
            "policy": "default",
            "resultFormat": "time_series",
            "refId": "A",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "rawQuery": true,
            "rawSql": "with series as (\n  select distinct l.time as time,\n    r.sig_mentions_labels_name_with_all as metric_name,\n    r.sig_mentions_labels_value_with_all as metric_value\n  from\n    sprs_labels_by_sig l,\n    tsig_mentions_labels_with_all r\n  where\n    $__timeFilter(l.time)\n    and r.sig_mentions_labels_name_with_all != 'All'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels_by_sig l\non\n  l.series = 'prsiglbl' || s.metric_value || '[[label]]'                     \n  and l.time = s.time\norder by\n  time",
            "alias": "",
            "dsType": "influxdb",
            "query": "select /: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "format": "time_series",
            "measurement": "prs_kubernetes_kubernetes_d"
          }
        ],
        "timeFrom": null,
        "type": "graph",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 16,
          "h": 13
        },
        "steppedLine": false,
        "title": "PRs with [[label_name]] labels from all SIGs",
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "spaceLength": 10,
        "timeRegions": [],
        "fillGradient": 0,
        "hiddenSeries": false,
        "renderer": "flot",
        "transparent": true,
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "dashLength": 10,
        "fill": 2,
        "datasource": "psql",
        "interval": "",
        "legend": {
          "alignAsTable": true,
          "max": true,
          "rightSide": true,
          "show": true,
          "sort": "avg",
          "total": false,
          "values": true,
          "avg": true,
          "current": true,
          "min": true,
          "sortDesc": true
        },
        "nullPointMode": "null as zero",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "bars": false,
        "dashes": false,
        "id": 2,
        "lines": true,
        "links": [],
        "timeShift": null,
        "aliasColors": {
          
        },
        "decimals": 0,
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "pointradius": 5,
        "seriesOverrides": [],
        "options": {
          "dataLinks": []
        },
        "percentage": false,
        "points": false,
        "stack": true,
        "thresholds": [],
        "description": "",
        "linewidth": 1
      },
      {
        "lines": true,
        "linewidth": 1,
        "spaceLength": 10,
        "timeRegions": [],
        "timeShift": null,
        "transparent": true,
        "decimals": 0,
        "description": "",
        "thresholds": [],
        "type": "graph",
        "dashes": false,
        "fillGradient": 0,
        "id": 7,
        "nullPointMode": "null as zero",
        "percentage": false,
        "pointradius": 5,
        "points": false,
        "renderer": "flot",
        "title": "PRs from [[sig_name]] (having at least one of specified labels)",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "gridPos": {
          "x": 0,
          "y": 29,
          "h": 13,
          "w": 24
        },
        "links": [],
        "seriesOverrides": [],
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "bars": false,
        "options": {
          "dataLinks": []
        },
        "steppedLine": false,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "fill": 2,
        "hiddenSeries": false,
        "interval": "",
        "stack": true,
        "timeFrom": null,
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "dashLength": 10,
        "datasource": "psql",
        "legend": {
          "current": true,
          "max": true,
          "min": true,
          "rightSide": true,
          "sort": "avg",
          "sortDesc": true,
          "total": false,
          "alignAsTable": true,
          "avg": true,
          "show": true,
          "values": true
        },
        "targets": [
          {
            "measurement": "prs_kubernetes_kubernetes_d",
            "policy": "default",
            "dsType": "influxdb",
            "format": "time_series",
            "group": [],
            "orderByTime": "ASC",
            "query": "select /^[[repogroups]]: / FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "with series as (\n  select distinct l.time as time,\n    lt.pr_labels_tags_name as metric_name,\n    lt.pr_labels_tags_value as metric_value\n  from\n    sprs_labels_by_sig l,\n    tpr_labels_tags lt\n  where\n    $__timeFilter(l.time)\n    and lt.pr_labels_tags_name != 'All labels combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels_by_sig l\non\n  l.series = 'prsiglbl[[sig]]' || s.metric_value           \n  and l.time = s.time\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "alias": "",
            "groupBy": [],
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none",
            "refId": "A"
          }
        ]
      },
      {
        "interval": "",
        "links": [],
        "options": {
          "dataLinks": []
        },
        "stack": true,
        "xaxis": {
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "decimals": 0,
        "description": "",
        "linewidth": 1,
        "points": false,
        "timeRegions": [],
        "dashes": false,
        "nullPointMode": "null as zero",
        "pointradius": 5,
        "renderer": "flot",
        "steppedLine": false,
        "transparent": true,
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "logBase": 1,
            "max": null,
            "min": null,
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "bars": false,
        "dashLength": 10,
        "fill": 2,
        "hiddenSeries": false,
        "id": 6,
        "datasource": "psql",
        "legend": {
          "alignAsTable": true,
          "max": true,
          "sort": "avg",
          "sortDesc": true,
          "total": false,
          "values": true,
          "avg": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "show": true
        },
        "timeShift": null,
        "type": "graph",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "seriesOverrides": [],
        "spaceLength": 10,
        "lines": true,
        "percentage": true,
        "thresholds": [],
        "timeFrom": null,
        "aliasColors": {
          
        },
        "fillGradient": 0,
        "targets": [
          {
            "tags": [],
            "rawSql": "with series as (\n  select distinct l.time as time,\n    r.sig_mentions_labels_name_with_all as metric_name,\n    r.sig_mentions_labels_value_with_all as metric_value\n  from\n    sprs_labels_by_sig l,\n    tsig_mentions_labels_with_all r\n  where\n    $__timeFilter(l.time)\n    and r.sig_mentions_labels_name_with_all != 'All'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels_by_sig l\non\n  l.series = 'prsiglbl' || s.metric_value || '[[label]]'                     \n  and l.time = s.time\norder by\n  time",
            "refId": "A",
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "groupBy": [],
            "measurement": "prs_kubernetes_kubernetes_d",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "metricColumn": "none",
            "query": "select /: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "policy": "default",
            "rawQuery": true,
            "dsType": "influxdb",
            "group": [],
            "orderByTime": "ASC"
          }
        ],
        "title": "PRs with [[label_name]] labels from all SIGs",
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "decimals": 0,
        "targets": [
          {
            "policy": "default",
            "refId": "A",
            "tags": [],
            "alias": "",
            "measurement": "prs_kubernetes_kubernetes_d",
            "orderByTime": "ASC",
            "group": [],
            "groupBy": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "rawQuery": true,
            "query": "select /^[[repogroups]]: / FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawSql": "with series as (\n  select distinct l.time as time,\n    lt.pr_labels_tags_name as metric_name,\n    lt.pr_labels_tags_value as metric_value\n  from\n    sprs_labels_by_sig l,\n    tpr_labels_tags lt\n  where\n    $__timeFilter(l.time)\n    and lt.pr_labels_tags_name != 'All labels combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels_by_sig l\non\n  l.series = 'prsiglbl[[sig]]' || s.metric_value           \n  and l.time = s.time\norder by\n  time",
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "metricColumn": "none"
          }
        ],
        "timeFrom": null,
        "fill": 2,
        "seriesOverrides": [],
        "spaceLength": 10,
        "dashes": false,
        "points": false,
        "transparent": true,
        "stack": true,
        "timeRegions": [],
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 55
        },
        "hiddenSeries": false,
        "linewidth": 1,
        "options": {
          "dataLinks": []
        },
        "timeShift": null,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "fillGradient": 0,
        "pointradius": 5,
        "steppedLine": false,
        "type": "graph",
        "yaxes": [
          {
            "label": "PRs",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true,
            "format": "short"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": null,
            "show": true
          }
        ],
        "bars": false,
        "description": "",
        "links": [],
        "thresholds": [],
        "nullPointMode": "null as zero",
        "percentage": true,
        "title": "PRs from [[sig_name]] (having at least one of specified labels)",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "dashLength": 10,
        "id": 8,
        "interval": "",
        "legend": {
          "sortDesc": true,
          "total": false,
          "values": true,
          "min": true,
          "sort": "avg",
          "current": true,
          "max": true,
          "rightSide": true,
          "show": true,
          "alignAsTable": true,
          "avg": true
        },
        "datasource": "psql",
        "lines": true,
        "renderer": "flot"
      },
      {
        "datasource": null,
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 68
        },
        "id": 5,
        "links": [],
        "type": "text",
        "content": "${docs:raw}",
        "mode": "html",
        "options": {
          
        },
        "title": "Dashboard documentation"
      }
    ],
    "tags": [
      "PRs",
      "SIGs",
      "dashboard",
      "kubernetes"
    ],
    "timezone": "",
    "links": [],
    "schemaVersion": 21,
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "title": "PRs labels by SIG",
    "graphTooltip": 0,
    "iteration": 1589369425081,
    "style": "dark",
    "templating": {
      "list": [
        {
          "regex": "",
          "tagValuesQuery": "",
          "datasource": "psql",
          "hide": 0,
          "skipUrlSync": false,
          "type": "query",
          "name": "sig_name",
          "sort": 0,
          "tags": [],
          "allValue": "",
          "definition": "select case sig_mentions_labels_name_with_all when 'All' then 'All SIGs combined' else sig_mentions_labels_name_with_all end from tsig_mentions_labels_with_all order by 1",
          "label": "SIG",
          "multi": false,
          "refresh": 1,
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "value": "All SIGs combined",
            "tags": [],
            "text": "All SIGs combined"
          },
          "includeAll": false,
          "options": [],
          "query": "select case sig_mentions_labels_name_with_all when 'All' then 'All SIGs combined' else sig_mentions_labels_name_with_all end from tsig_mentions_labels_with_all order by 1"
        },
        {
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "options": [],
          "sort": 0,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "multi": false,
          "name": "full_name",
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "allValue": null,
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "includeAll": false,
          "label": null
        },
        {
          "definition": "",
          "includeAll": false,
          "name": "label_name",
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "datasource": "psql",
          "hide": 0,
          "options": [],
          "refresh": 1,
          "type": "query",
          "tagsQuery": "",
          "query": "select pr_labels_tags_name from tpr_labels_tags order by 1",
          "tags": [],
          "useTags": false,
          "allValue": null,
          "current": {
            "value": "All labels combined",
            "tags": [],
            "text": "All labels combined"
          },
          "label": "Label",
          "multi": false
        },
        {
          "datasource": "psql",
          "multi": false,
          "name": "sig",
          "type": "query",
          "current": {
            "text": "allsigscombined",
            "value": "allsigscombined"
          },
          "definition": "select case sig_mentions_labels_value_with_all when 'all' then 'allsigscombined' else sig_mentions_labels_value_with_all  end from tsig_mentions_labels_with_all where sig_mentions_labels_name_with_all = case '[[sig_name]]' when 'All SIGs combined' then 'All' else '[[sig_name]]' end",
          "query": "select case sig_mentions_labels_value_with_all when 'all' then 'allsigscombined' else sig_mentions_labels_value_with_all  end from tsig_mentions_labels_with_all where sig_mentions_labels_name_with_all = case '[[sig_name]]' when 'All SIGs combined' then 'All' else '[[sig_name]]' end",
          "tagsQuery": "",
          "allValue": "",
          "includeAll": false,
          "label": "SIG",
          "regex": "",
          "sort": 0,
          "tags": [],
          "hide": 2,
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "useTags": false
        },
        {
          "name": "label",
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "current": {
            "text": "alllabelscombined",
            "value": "alllabelscombined"
          },
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "multi": false,
          "useTags": false,
          "skipUrlSync": true,
          "sort": 0,
          "type": "query",
          "includeAll": false,
          "options": [],
          "query": "select pr_labels_tags_value from tpr_labels_tags where pr_labels_tags_name = '[[label_name]]'",
          "tags": [],
          "allValue": null,
          "label": "",
          "tagValuesQuery": ""
        },
        {
          "label": null,
          "multi": false,
          "refresh": 1,
          "tagsQuery": "",
          "definition": "select value_s from gha_vars where name = 'prs_labels_by_sig_docs_html'",
          "name": "docs",
          "regex": "",
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "allValue": null,
          "includeAll": false,
          "options": [],
          "tagValuesQuery": "",
          "tags": [],
          "current": {
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR labels 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/prs_labels_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\u003eprs_labelsi_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-labels-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 how many PRs opened by a given SIG have/had a specified label(s) at given point in time.\u003c/li\u003e\n\u003cli\u003eList of labels is hardcoded. It contains PR merge blocker labels.\u003c/li\u003e\n\u003cli\u003eYou can select any of labels from given set or choose \u003ccode\u003eAll labels combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single SIG or summary for all of them \u003ccode\u003eAll SIGs combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThere are multiple charts that show summaries for all SIGs and/or for all labels.\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 PR labels 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/prs_labels_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\u003eprs_labelsi_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-labels-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 how many PRs opened by a given SIG have/had a specified label(s) at given point in time.\u003c/li\u003e\n\u003cli\u003eList of labels is hardcoded. It contains PR merge blocker labels.\u003c/li\u003e\n\u003cli\u003eYou can select any of labels from given set or choose \u003ccode\u003eAll labels combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single SIG or summary for all of them \u003ccode\u003eAll SIGs combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThere are multiple charts that show summaries for all SIGs and/or for all labels.\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"
          },
          "datasource": "psql",
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'prs_labels_by_sig_docs_html'",
          "sort": 0
        }
      ]
    },
    "version": 2
  }


slug: prs-labels-repositories
title: PRs labels repositories
created: 2023-09-13 22:35:06.872504208+00:00
updated: 2023-09-13 22:35:06.872504288+00:00
uid: 76
data:
  {
    "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": "",
    "annotations": {
      "list": [
        {
          "showIn": 0,
          "datasource": "-- Grafana --",
          "enable": true,
          "limit": 100,
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "datasource": "psql",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "textColumn": "",
          "hide": false,
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "type": "alert"
        }
      ]
    },
    "iteration": 1621319985252,
    "panels": [
      {
        "sparkline": {
          "show": true,
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": true,
          "lineColor": "rgb(31, 120, 193)"
        },
        "targets": [
          {
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "policy": "default",
            "rawSql": "select\n  time,\n  value\nfrom\n  sprs_labels_repos\nwhere\n  $__timeFilter(time)\n  and series = 'prlbl[[repo]][[label]]'\norder by\n  time",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "tags": [],
            "group": [],
            "orderByTime": "ASC",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "timeColumn": "time",
            "format": "time_series",
            "metricColumn": "none",
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "title": "PRs from [[repo_name]] repository with [[label_name]]",
        "valueMaps": [
          {
            "text": "N/A",
            "value": "null",
            "op": "="
          }
        ],
        "valueName": "current",
        "colors": [
          "#299c46",
          "rgba(237, 129, 40, 0.89)",
          "#d44a3a"
        ],
        "postfix": "",
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "id": 3,
        "links": [],
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "nullText": null,
        "prefixFontSize": "50%",
        "datasource": "psql",
        "format": "none",
        "thresholds": "10,100",
        "rangeMaps": [
          {
            "text": "N/A",
            "to": "null",
            "from": "null"
          }
        ],
        "repeat": null,
        "mappingType": 1,
        "postfixFontSize": "50%",
        "prefix": "Currently: ",
        "valueFontSize": "80%",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "h": 4,
          "w": 12,
          "x": 0,
          "y": 0
        },
        "tableColumn": "",
        "colorBackground": false,
        "colorValue": true,
        "decimals": null,
        "type": "singlestat",
        "repeatDirection": "h",
        "description": "",
        "maxDataPoints": 100,
        "transparent": true,
        "cacheTimeout": null,
        "nullPointMode": "connected",
        "interval": null
      },
      {
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "postfix": "",
        "thresholds": "10,100",
        "valueName": "max",
        "colorBackground": false,
        "gridPos": {
          "w": 12,
          "x": 12,
          "y": 0,
          "h": 4
        },
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "tableColumn": "",
        "type": "singlestat",
        "datasource": "psql",
        "links": [],
        "title": "PRs from [[repo_name]] repository with [[label_name]]",
        "valueFontSize": "80%",
        "colors": [
          "#299c46",
          "rgba(237, 129, 40, 0.89)",
          "#d44a3a"
        ],
        "format": "none",
        "nullText": null,
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "colorValue": true,
        "decimals": null,
        "transparent": true,
        "description": "",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 4,
        "postfixFontSize": "50%",
        "prefix": "Maximum:",
        "targets": [
          {
            "dsType": "influxdb",
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "format": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "rawSql": "select\n  time,\n  value\nfrom\n  sprs_labels_repos\nwhere\n  $__timeFilter(time)\n  and series = 'prlbl[[repo]][[label]]'\norder by\n  time",
            "resultFormat": "time_series",
            "group": [],
            "orderByTime": "ASC",
            "policy": "default",
            "timeColumn": "time",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ]
          }
        ],
        "cacheTimeout": null,
        "interval": null,
        "mappingType": 1,
        "maxDataPoints": 100,
        "nullPointMode": "connected",
        "prefixFontSize": "50%",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": true,
          "lineColor": "rgb(31, 120, 193)",
          "show": true
        }
      },
      {
        "fill": 5,
        "thresholds": [],
        "aliasColors": {
          
        },
        "bars": false,
        "datasource": "psql",
        "description": "",
        "seriesOverrides": [],
        "spaceLength": 10,
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null
          },
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null
          }
        ],
        "dashLength": 10,
        "decimals": 0,
        "hiddenSeries": false,
        "percentage": false,
        "title": "PRs from [[repo_name]] repository with [[label_name]]",
        "transparent": true,
        "fieldConfig": {
          "overrides": [],
          "defaults": {
            "links": []
          }
        },
        "linewidth": 1,
        "links": [],
        "targets": [
          {
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"[[repo_name]]: [[label_name]]\"\nfrom\n  sprs_labels_repos\nwhere\n  $__timeFilter(time)\n  and series = 'prlbl[[repo]][[label]]'\norder by\n  time",
            "format": "time_series",
            "groupBy": [],
            "metricColumn": "none",
            "refId": "A",
            "tags": [],
            "timeColumn": "time",
            "dsType": "influxdb",
            "group": [],
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "measurement": "prs_kubernetes_kubernetes_d",
            "orderByTime": "ASC",
            "policy": "default",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ]
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "fillGradient": 0,
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 4
        },
        "options": {
          "alertThreshold": true
        },
        "steppedLine": false,
        "points": false,
        "renderer": "flot",
        "stack": true,
        "timeRegions": [],
        "dashes": false,
        "legend": {
          "alignAsTable": true,
          "current": true,
          "max": true,
          "min": true,
          "avg": true,
          "rightSide": false,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "total": false,
          "values": true
        },
        "nullPointMode": "null as zero",
        "pointradius": 5,
        "id": 1,
        "type": "graph",
        "timeShift": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "lines": true,
        "pluginVersion": "7.5.5",
        "timeFrom": null
      },
      {
        "bars": false,
        "points": false,
        "spaceLength": 10,
        "stack": true,
        "targets": [
          {
            "rawSql": "with series as (\n  select distinct l.time as time,\n    r.repo_name as metric_name,\n    r.repo_value as metric_value\n  from\n    sprs_labels_repos l,\n    trepos r\n  where\n    $__timeFilter(l.time)\n    and r.repo_name != 'All repos combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels_repos l\non\n  l.series = 'prlbl' || s.metric_value || '[[label]]'                     \n  and l.time = s.time\norder by\n  time",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "policy": "default",
            "format": "time_series",
            "group": [],
            "measurement": "prs_kubernetes_kubernetes_d",
            "orderByTime": "ASC",
            "rawQuery": true,
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "groupBy": [],
            "metricColumn": "none",
            "query": "select /: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "tags": [],
            "timeColumn": "time",
            "dsType": "influxdb"
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "fill": 2,
        "hiddenSeries": false,
        "lines": true,
        "links": [],
        "options": {
          "alertThreshold": true
        },
        "percentage": false,
        "pluginVersion": "7.5.5",
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "dashLength": 10,
        "dashes": false,
        "renderer": "flot",
        "type": "graph",
        "aliasColors": {
          
        },
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "id": 2,
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "max": true,
          "sort": "avg",
          "values": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "sortDesc": true,
          "total": false
        },
        "seriesOverrides": [],
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "nullPointMode": "null as zero",
        "timeRegions": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "datasource": "psql",
        "pointradius": 5,
        "timeShift": null,
        "description": "",
        "linewidth": 1,
        "steppedLine": false,
        "thresholds": [],
        "timeFrom": null,
        "transparent": true,
        "decimals": 0,
        "fillGradient": 0,
        "gridPos": {
          "y": 16,
          "h": 13,
          "w": 24,
          "x": 0
        },
        "title": "PRs with [[label_name]] labels from all repos"
      },
      {
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "pluginVersion": "7.5.5",
        "seriesOverrides": [],
        "stack": true,
        "fillGradient": 0,
        "lines": true,
        "percentage": false,
        "options": {
          "alertThreshold": true
        },
        "points": false,
        "title": "PRs from [[repo_name]] repository (having at least one of specified labels)",
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null
          }
        ],
        "decimals": 0,
        "gridPos": {
          "x": 0,
          "y": 29,
          "h": 13,
          "w": 24
        },
        "linewidth": 1,
        "type": "graph",
        "dashLength": 10,
        "renderer": "flot",
        "spaceLength": 10,
        "dashes": false,
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "max": true,
          "sortDesc": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "sort": "avg",
          "total": false,
          "values": true
        },
        "timeRegions": [],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "steppedLine": false,
        "hiddenSeries": false,
        "id": 7,
        "thresholds": [],
        "timeFrom": null,
        "transparent": true,
        "aliasColors": {
          
        },
        "bars": false,
        "fill": 2,
        "pointradius": 5,
        "targets": [
          {
            "metricColumn": "none",
            "policy": "default",
            "tags": [],
            "group": [],
            "measurement": "prs_kubernetes_kubernetes_d",
            "orderByTime": "ASC",
            "rawQuery": true,
            "rawSql": "with series as (\n  select distinct l.time as time,\n    lt.pr_labels_tags_name as metric_name,\n    lt.pr_labels_tags_value as metric_value\n  from\n    sprs_labels_repos l,\n    tpr_labels_tags lt\n  where\n    $__timeFilter(l.time)\n    and lt.pr_labels_tags_name != 'All labels combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels_repos l\non\n  l.series = 'prlbl[[repo]]' || s.metric_value           \n  and l.time = s.time\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "format": "time_series",
            "groupBy": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "query": "select /^[[repogroups]]: / FROM \"prs_labelled_d\" WHERE $timeFilter",
            "refId": "A",
            "dsType": "influxdb"
          }
        ],
        "timeShift": null,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "description": "",
        "links": [],
        "nullPointMode": "null as zero"
      },
      {
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "decimals": 0,
        "pluginVersion": "7.5.5",
        "renderer": "flot",
        "seriesOverrides": [],
        "timeFrom": null,
        "dashes": false,
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "sort": "avg",
          "total": false,
          "max": true,
          "sortDesc": true,
          "values": true
        },
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "stack": true,
        "thresholds": [],
        "title": "PRs with [[label_name]] labels from all repos",
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "datasource": "psql",
        "hiddenSeries": false,
        "percentage": true,
        "links": [],
        "pointradius": 5,
        "steppedLine": false,
        "targets": [
          {
            "format": "time_series",
            "rawSql": "with series as (\n  select distinct l.time as time,\n    r.repo_name as metric_name,\n    r.repo_value as metric_value\n  from\n    sprs_labels_repos l,\n    trepos r\n  where\n    $__timeFilter(l.time)\n    and r.repo_name != 'All repos combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels_repos l\non\n  l.series = 'prlbl' || s.metric_value || '[[label]]'                     \n  and l.time = s.time\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "measurement": "prs_kubernetes_kubernetes_d",
            "query": "select /: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none",
            "refId": "A",
            "tags": [],
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "group": [],
            "groupBy": [],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "timeColumn": "time"
          }
        ],
        "timeShift": null,
        "description": "",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "fill": 2,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "id": 6,
        "options": {
          "alertThreshold": true
        },
        "bars": false,
        "linewidth": 1,
        "timeRegions": [],
        "points": false,
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": null,
            "show": true
          }
        ],
        "aliasColors": {
          
        },
        "dashLength": 10,
        "fillGradient": 0,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "lines": true,
        "transparent": true,
        "type": "graph"
      },
      {
        "title": "PRs from [[repo_name]] repository (having at least one of specified labels)",
        "type": "graph",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "legend": {
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "avg": true,
          "current": true,
          "max": true,
          "min": true,
          "rightSide": true,
          "total": false,
          "alignAsTable": true,
          "values": true
        },
        "percentage": true,
        "seriesOverrides": [],
        "targets": [
          {
            "format": "time_series",
            "orderByTime": "ASC",
            "rawSql": "with series as (\n  select distinct l.time as time,\n    lt.pr_labels_tags_name as metric_name,\n    lt.pr_labels_tags_value as metric_value\n  from\n    sprs_labels_repos l,\n    tpr_labels_tags lt\n  where\n    $__timeFilter(l.time)\n    and lt.pr_labels_tags_name != 'All labels combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels_repos l\non\n  l.series = 'prlbl[[repo]]' || s.metric_value           \n  and l.time = s.time\norder by\n  time",
            "refId": "A",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "prs_kubernetes_kubernetes_d",
            "tags": [],
            "timeColumn": "time",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "group": [],
            "metricColumn": "none",
            "query": "select /^[[repogroups]]: / FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawQuery": true,
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "thresholds": [],
        "transparent": true,
        "datasource": "psql",
        "fill": 2,
        "hiddenSeries": false,
        "steppedLine": false,
        "timeShift": null,
        "dashLength": 10,
        "lines": true,
        "pointradius": 5,
        "spaceLength": 10,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "id": 8,
        "yaxes": [
          {
            "show": true,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": "100",
            "min": "0"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": null,
            "show": true
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "description": "",
        "fillGradient": 0,
        "points": false,
        "timeFrom": null,
        "dashes": false,
        "links": [],
        "nullPointMode": "null as zero",
        "options": {
          "alertThreshold": true
        },
        "renderer": "flot",
        "timeRegions": [],
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 55
        },
        "decimals": 0,
        "linewidth": 1,
        "pluginVersion": "7.5.5",
        "stack": true,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "aliasColors": {
          
        }
      },
      {
        "options": {
          "mode": "html",
          "content": "${docs:raw}"
        },
        "pluginVersion": "7.5.5",
        "type": "text",
        "datasource": null,
        "links": [],
        "id": 5,
        "title": "Dashboard documentation",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 68
        }
      }
    ],
    "style": "dark",
    "gnetId": null,
    "links": [],
    "schemaVersion": 27,
    "editable": true,
    "graphTooltip": 0,
    "title": "PRs labels repositories",
    "uid": "76",
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "version": 4,
    "id": 1006,
    "refresh": false,
    "tags": [
      "dashboard",
      "kubernetes",
      "PRs",
      "repos"
    ],
    "templating": {
      "list": [
        {
          "current": {
            "selected": false,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "datasource": "psql",
          "definition": "select repo_name from trepos order by 1",
          "includeAll": false,
          "name": "repo_name",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "allValue": "",
          "type": "query",
          "refresh": 1,
          "tags": [],
          "useTags": false,
          "query": "select repo_name from trepos order by 1",
          "options": [],
          "sort": 0,
          "multi": false,
          "error": null,
          "hide": 0,
          "label": "Repository",
          "regex": "",
          "tagsQuery": "",
          "description": null
        },
        {
          "regex": "",
          "type": "query",
          "definition": "",
          "label": null,
          "refresh": 1,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "tags": [],
          "description": null,
          "error": null,
          "includeAll": false,
          "multi": false,
          "options": [],
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "datasource": "psql",
          "hide": 2,
          "name": "full_name",
          "skipUrlSync": true
        },
        {
          "error": null,
          "includeAll": false,
          "name": "label_name",
          "type": "query",
          "useTags": false,
          "current": {
            "value": "needs-rebase",
            "selected": true,
            "text": "needs-rebase"
          },
          "datasource": "psql",
          "definition": "",
          "description": null,
          "multi": false,
          "hide": 0,
          "label": "Label",
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "allValue": null,
          "options": [],
          "query": "select pr_labels_tags_name from tpr_labels_tags order by 1",
          "refresh": 1,
          "regex": "",
          "tags": []
        },
        {
          "error": null,
          "name": "repo",
          "regex": "",
          "sort": 0,
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "hide": 2,
          "label": "",
          "refresh": 1,
          "type": "query",
          "description": null,
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "tags": [],
          "allValue": "",
          "includeAll": false,
          "multi": false,
          "options": [],
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "datasource": "psql"
        },
        {
          "datasource": "psql",
          "definition": "",
          "name": "label",
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "current": {
            "selected": false,
            "text": "needsrebase",
            "value": "needsrebase"
          },
          "error": null,
          "multi": false,
          "tags": [],
          "allValue": null,
          "description": null,
          "hide": 2,
          "label": "",
          "tagValuesQuery": "",
          "useTags": false,
          "includeAll": false,
          "query": "select pr_labels_tags_value from tpr_labels_tags where pr_labels_tags_name = '[[label_name]]'",
          "regex": "",
          "sort": 0,
          "tagsQuery": "",
          "type": "query"
        },
        {
          "definition": "",
          "description": null,
          "error": null,
          "query": "select value_s from gha_vars where name = 'pr_labels_docs_html'",
          "skipUrlSync": true,
          "sort": 0,
          "useTags": false,
          "allValue": null,
          "hide": 2,
          "multi": false,
          "options": [],
          "tagValuesQuery": "",
          "tagsQuery": "",
          "label": null,
          "name": "docs",
          "refresh": 1,
          "regex": "",
          "tags": [],
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR labels 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/prs_labels.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_labels\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-labels-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 how many PRs have/had a specified label(s) in a given repository group(s) at given point in time.\u003c/li\u003e\n\u003cli\u003eList of labels is hardcoded. It contains PR merge blocker labels.\u003c/li\u003e\n\u003cli\u003eYou can select any of labels from given set or choose \u003ccode\u003eAll labels combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them \u003ccode\u003eAll repos combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThere are multiple charts that show summaries for all repo groups and/or for all labels.\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 PR labels 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/prs_labels.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_labels\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-labels-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 how many PRs have/had a specified label(s) in a given repository group(s) at given point in time.\u003c/li\u003e\n\u003cli\u003eList of labels is hardcoded. It contains PR merge blocker labels.\u003c/li\u003e\n\u003cli\u003eYou can select any of labels from given set or choose \u003ccode\u003eAll labels combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them \u003ccode\u003eAll repos combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThere are multiple charts that show summaries for all repo groups and/or for all labels.\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",
          "includeAll": false,
          "type": "query"
        }
      ]
    }
  }


slug: prs-labels-repository-groups
title: PRs labels repository groups
created: 2023-09-13 22:35:06.890001586+00:00
updated: 2023-09-13 22:35:06.890001676+00:00
uid: 47
data:
  {
    "graphTooltip": 0,
    "id": 37,
    "links": [],
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "editable": true,
    "refresh": false,
    "style": "dark",
    "title": "PRs labels repository groups",
    "version": 2,
    "annotations": {
      "list": [
        {
          "limit": 100,
          "showIn": 0,
          "type": "dashboard",
          "enable": true,
          "datasource": "-- Grafana --",
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "builtIn": 1
        },
        {
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "hide": false,
          "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,
          "datasource": "psql",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "textColumn": ""
        }
      ]
    },
    "iteration": 1589351980978,
    "panels": [
      {
        "description": "",
        "mappingType": 1,
        "nullText": null,
        "postfix": "",
        "valueFontSize": "80%",
        "decimals": null,
        "prefixFontSize": "50%",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": true,
          "lineColor": "rgb(31, 120, 193)",
          "show": true
        },
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value\nfrom\n  sprs_labels\nwhere\n  $__timeFilter(time)\n  and series = 'prlbl[[repogroup]][[label]]'\norder by\n  time",
            "resultFormat": "time_series",
            "alias": "",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "refId": "A"
          }
        ],
        "transparent": true,
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "interval": null,
        "type": "singlestat",
        "colorBackground": false,
        "repeatDirection": "h",
        "options": {
          
        },
        "datasource": "psql",
        "format": "none",
        "gauge": {
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100
        },
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 4,
          "w": 12
        },
        "tableColumn": "",
        "title": "PRs from [[repogroup_name]] repo group with [[label_name]]",
        "colors": [
          "#299c46",
          "rgba(237, 129, 40, 0.89)",
          "#d44a3a"
        ],
        "id": 3,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "maxDataPoints": 100,
        "nullPointMode": "connected",
        "postfixFontSize": "50%",
        "thresholds": "10,100",
        "colorValue": true,
        "prefix": "Currently: ",
        "rangeMaps": [
          {
            "to": "null",
            "from": "null",
            "text": "N/A"
          }
        ],
        "cacheTimeout": null,
        "repeat": null,
        "valueName": "current",
        "links": []
      },
      {
        "postfixFontSize": "50%",
        "cacheTimeout": null,
        "colorBackground": false,
        "format": "none",
        "gridPos": {
          "h": 4,
          "w": 12,
          "x": 12,
          "y": 0
        },
        "links": [],
        "mappingType": 1,
        "options": {
          
        },
        "tableColumn": "",
        "type": "singlestat",
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "sparkline": {
          "full": true,
          "lineColor": "rgb(31, 120, 193)",
          "show": true,
          "fillColor": "rgba(31, 118, 189, 0.18)"
        },
        "id": 4,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "prefix": "Maximum:",
        "description": "",
        "nullText": null,
        "valueFontSize": "80%",
        "colors": [
          "#299c46",
          "rgba(237, 129, 40, 0.89)",
          "#d44a3a"
        ],
        "datasource": "psql",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "targets": [
          {
            "alias": "",
            "policy": "default",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "rawSql": "select\n  time,\n  value\nfrom\n  sprs_labels\nwhere\n  $__timeFilter(time)\n  and series = 'prlbl[[repogroup]][[label]]'\norder by\n  time",
            "refId": "A",
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "decimals": null,
        "interval": null,
        "thresholds": "10,100",
        "valueMaps": [
          {
            "text": "N/A",
            "value": "null",
            "op": "="
          }
        ],
        "colorValue": true,
        "postfix": "",
        "prefixFontSize": "50%",
        "valueName": "max",
        "maxDataPoints": 100,
        "nullPointMode": "connected",
        "title": "PRs from [[repogroup_name]] repo group with [[label_name]]",
        "transparent": true
      },
      {
        "bars": false,
        "fill": 5,
        "steppedLine": false,
        "title": "PRs from [[repogroup_name]] repo group with [[label_name]]",
        "aliasColors": {
          
        },
        "dashLength": 10,
        "id": 1,
        "linewidth": 1,
        "percentage": false,
        "type": "graph",
        "datasource": "psql",
        "dashes": false,
        "pointradius": 5,
        "seriesOverrides": [],
        "thresholds": [],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "hiddenSeries": false,
        "options": {
          "dataLinks": []
        },
        "spaceLength": 10,
        "timeFrom": null,
        "timeRegions": [],
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "decimals": 0,
        "legend": {
          "sortDesc": true,
          "avg": true,
          "current": true,
          "max": true,
          "min": true,
          "total": false,
          "values": true,
          "alignAsTable": true,
          "rightSide": false,
          "show": true,
          "sort": "avg"
        },
        "nullPointMode": "null as zero",
        "points": false,
        "renderer": "flot",
        "transparent": true,
        "lines": true,
        "links": [],
        "stack": true,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "description": "",
        "fillGradient": 0,
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 4
        },
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "format": "time_series",
            "rawQuery": true,
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "refId": "A",
            "groupBy": [],
            "measurement": "prs_kubernetes_kubernetes_d",
            "policy": "default",
            "orderByTime": "ASC",
            "query": "select /^[[repogroups]]: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"[[repogroup_name]]: [[label_name]]\"\nfrom\n  sprs_labels\nwhere\n  $__timeFilter(time)\n  and series = 'prlbl[[repogroup]][[label]]'\norder by\n  time",
            "tags": []
          }
        ],
        "timeShift": 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
          }
        ]
      },
      {
        "hiddenSeries": false,
        "id": 2,
        "legend": {
          "avg": true,
          "show": true,
          "alignAsTable": true,
          "max": true,
          "min": true,
          "rightSide": true,
          "sort": "avg",
          "sortDesc": true,
          "total": false,
          "values": true,
          "current": true
        },
        "spaceLength": 10,
        "lines": true,
        "linewidth": 1,
        "renderer": "flot",
        "thresholds": [],
        "yaxes": [
          {
            "show": true,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "timeFrom": null,
        "bars": false,
        "dashLength": 10,
        "fill": 2,
        "fillGradient": 0,
        "links": [],
        "pointradius": 5,
        "aliasColors": {
          
        },
        "dashes": false,
        "nullPointMode": "null as zero",
        "targets": [
          {
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "rawQuery": true,
            "tags": [],
            "groupBy": [],
            "policy": "default",
            "rawSql": "with series as (\n  select distinct l.time as time,\n    r.all_combined_repo_group_name as metric_name,\n    r.all_combined_repo_group_value as metric_value\n  from\n    sprs_labels l,\n    tall_combined_repo_groups r\n  where\n    $__timeFilter(l.time)\n    and r.all_combined_repo_group_name != 'All repos combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels l\non\n  l.series = 'prlbl' || s.metric_value || '[[label]]'                     \n  and l.time = s.time\norder by\n  time",
            "refId": "A",
            "resultFormat": "time_series",
            "measurement": "prs_kubernetes_kubernetes_d",
            "orderByTime": "ASC",
            "query": "select /: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ]
          }
        ],
        "timeShift": null,
        "transparent": true,
        "timeRegions": [],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "points": false,
        "steppedLine": false,
        "title": "PRs with [[label_name]] labels from all repos",
        "type": "graph",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "datasource": "psql",
        "decimals": 0,
        "description": "",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 16
        },
        "percentage": false,
        "stack": true,
        "options": {
          "dataLinks": []
        },
        "seriesOverrides": [],
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        }
      },
      {
        "fill": 2,
        "stack": true,
        "legend": {
          "min": true,
          "sort": "avg",
          "total": false,
          "show": true,
          "sortDesc": true,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "max": true,
          "rightSide": true
        },
        "targets": [
          {
            "groupBy": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "measurement": "prs_kubernetes_kubernetes_d",
            "resultFormat": "time_series",
            "tags": [],
            "policy": "default",
            "rawQuery": true,
            "rawSql": "with series as (\n  select distinct l.time as time,\n    lt.pr_labels_tags_name as metric_name,\n    lt.pr_labels_tags_value as metric_value\n  from\n    sprs_labels l,\n    tpr_labels_tags lt\n  where\n    $__timeFilter(l.time)\n    and lt.pr_labels_tags_name != 'All labels combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels l\non\n  l.series = 'prlbl[[repogroup]]' || s.metric_value           \n  and l.time = s.time\norder by\n  time",
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "orderByTime": "ASC",
            "query": "select /^[[repogroups]]: / FROM \"prs_labelled_d\" WHERE $timeFilter",
            "refId": "A"
          }
        ],
        "timeFrom": null,
        "bars": false,
        "dashLength": 10,
        "dashes": false,
        "decimals": 0,
        "percentage": false,
        "renderer": "flot",
        "timeRegions": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "fillGradient": 0,
        "pointradius": 5,
        "points": false,
        "title": "PRs from [[repogroup_name]] repo group (having at least one of specified labels)",
        "transparent": true,
        "links": [],
        "yaxes": [
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "PRs"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "description": "",
        "gridPos": {
          "x": 0,
          "y": 29,
          "h": 13,
          "w": 24
        },
        "id": 7,
        "options": {
          "dataLinks": []
        },
        "steppedLine": false,
        "type": "graph",
        "datasource": "psql",
        "linewidth": 1,
        "nullPointMode": "null as zero",
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "hiddenSeries": false,
        "lines": true,
        "seriesOverrides": [],
        "spaceLength": 10,
        "thresholds": [],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        }
      },
      {
        "aliasColors": {
          
        },
        "description": "",
        "nullPointMode": "null as zero",
        "options": {
          "dataLinks": []
        },
        "points": false,
        "seriesOverrides": [],
        "targets": [
          {
            "dsType": "influxdb",
            "format": "time_series",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "timeColumn": "time",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "policy": "default",
            "rawSql": "with series as (\n  select distinct l.time as time,\n    r.all_combined_repo_group_name as metric_name,\n    r.all_combined_repo_group_value as metric_value\n  from\n    sprs_labels l,\n    tall_combined_repo_groups r\n  where\n    $__timeFilter(l.time)\n    and r.all_combined_repo_group_name != 'All repos combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels l\non\n  l.series = 'prlbl' || s.metric_value || '[[label]]'                     \n  and l.time = s.time\norder by\n  time",
            "refId": "A",
            "alias": "",
            "group": [],
            "groupBy": [],
            "metricColumn": "none",
            "measurement": "prs_kubernetes_kubernetes_d",
            "query": "select /: [[labels]]$/ FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawQuery": true,
            "tags": []
          }
        ],
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "logBase": 1,
            "max": null,
            "min": null,
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "decimals": 0,
        "hiddenSeries": false,
        "stack": true,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "type": "graph",
        "xaxis": {
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "dashLength": 10,
        "transparent": true,
        "bars": false,
        "fill": 2,
        "id": 6,
        "lines": true,
        "percentage": true,
        "renderer": "flot",
        "steppedLine": false,
        "title": "PRs with [[label_name]] labels from all repos",
        "dashes": false,
        "datasource": "psql",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "spaceLength": 10,
        "timeFrom": null,
        "fillGradient": 0,
        "legend": {
          "total": false,
          "alignAsTable": true,
          "avg": true,
          "max": true,
          "rightSide": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "current": true,
          "min": true,
          "values": true
        },
        "links": [],
        "pointradius": 5,
        "linewidth": 1,
        "thresholds": [],
        "timeRegions": [],
        "timeShift": null
      },
      {
        "points": false,
        "stack": true,
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "rightSide": true,
          "show": true,
          "values": true,
          "current": true,
          "max": true,
          "min": true,
          "sort": "avg",
          "sortDesc": true,
          "total": false
        },
        "nullPointMode": "null as zero",
        "linewidth": 1,
        "links": [],
        "timeFrom": null,
        "tooltip": {
          "sort": 2,
          "value_type": "individual",
          "shared": true
        },
        "transparent": true,
        "datasource": "psql",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 55
        },
        "seriesOverrides": [],
        "spaceLength": 10,
        "thresholds": [],
        "timeShift": null,
        "fillGradient": 0,
        "percentage": true,
        "dashes": false,
        "id": 8,
        "title": "PRs from [[repogroup_name]] repo group (having at least one of specified labels)",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "hiddenSeries": false,
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": null,
            "show": true
          }
        ],
        "description": "",
        "renderer": "flot",
        "decimals": 0,
        "fill": 2,
        "targets": [
          {
            "refId": "A",
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "prs_kubernetes_kubernetes_d",
            "metricColumn": "none",
            "policy": "default",
            "query": "select /^[[repogroups]]: / FROM \"prs_labelled_d\" WHERE $timeFilter",
            "rawQuery": true,
            "group": [],
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "format": "time_series",
            "tags": [],
            "rawSql": "with series as (\n  select distinct l.time as time,\n    lt.pr_labels_tags_name as metric_name,\n    lt.pr_labels_tags_value as metric_value\n  from\n    sprs_labels l,\n    tpr_labels_tags lt\n  where\n    $__timeFilter(l.time)\n    and lt.pr_labels_tags_name != 'All labels combined'\n)\nselect\n  s.time as time,\n  s.metric_name as metric,\n  coalesce(l.value, 0) as value\nfrom\n  series s\nleft join\n  sprs_labels l\non\n  l.series = 'prlbl[[repogroup]]' || s.metric_value           \n  and l.time = s.time\norder by\n  time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "timeRegions": [],
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [],
          "buckets": null
        },
        "bars": false,
        "dashLength": 10,
        "pointradius": 5,
        "steppedLine": false,
        "type": "graph",
        "lines": true,
        "options": {
          "dataLinks": []
        }
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 68
        },
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null,
        "id": 5,
        "links": [],
        "mode": "html",
        "options": {
          
        }
      }
    ],
    "templating": {
      "list": [
        {
          "includeAll": false,
          "multi": false,
          "refresh": 1,
          "tagValuesQuery": "",
          "useTags": false,
          "hide": 0,
          "definition": "",
          "regex": "",
          "type": "query",
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "label": "Repository group",
          "name": "repogroup_name",
          "options": [],
          "query": "select all_combined_repo_group_name from tall_combined_repo_groups order by 1",
          "tags": [],
          "datasource": "psql",
          "skipUrlSync": false,
          "sort": 0,
          "tagsQuery": "",
          "allValue": ""
        },
        {
          "type": "query",
          "allValue": null,
          "current": {
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "definition": "",
          "multi": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "regex": "",
          "useTags": false,
          "includeAll": false,
          "name": "full_name",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "tags": [],
          "hide": 2,
          "label": null,
          "refresh": 1,
          "sort": 0
        },
        {
          "tagsQuery": "",
          "type": "query",
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "useTags": false,
          "current": {
            "value": "needs-rebase",
            "text": "needs-rebase"
          },
          "includeAll": false,
          "query": "select pr_labels_tags_name from tpr_labels_tags order by 1",
          "datasource": "psql",
          "multi": false,
          "name": "label_name",
          "label": "Label",
          "options": [],
          "refresh": 1,
          "tags": [],
          "allValue": null,
          "definition": "",
          "hide": 0
        },
        {
          "includeAll": false,
          "label": "",
          "query": "select all_combined_repo_group_value from tall_combined_repo_groups where all_combined_repo_group_name = '[[repogroup_name]]'",
          "regex": "",
          "sort": 0,
          "hide": 2,
          "current": {
            "text": "kubernetes",
            "value": "kubernetes"
          },
          "multi": false,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "allValue": "",
          "definition": "",
          "name": "repogroup",
          "options": [],
          "refresh": 1,
          "datasource": "psql",
          "skipUrlSync": true
        },
        {
          "multi": false,
          "name": "label",
          "query": "select pr_labels_tags_value from tpr_labels_tags where pr_labels_tags_name = '[[label_name]]'",
          "useTags": false,
          "allValue": null,
          "label": "",
          "definition": "",
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "tags": [],
          "current": {
            "value": "needsrebase",
            "text": "needsrebase"
          },
          "datasource": "psql",
          "tagsQuery": "",
          "type": "query",
          "regex": "",
          "sort": 0,
          "tagValuesQuery": "",
          "hide": 2,
          "includeAll": false
        },
        {
          "includeAll": false,
          "label": null,
          "multi": false,
          "name": "docs",
          "options": [],
          "sort": 0,
          "current": {
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PR labels 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/prs_labels.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_labels\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-labels-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 how many PRs have a specified label(s) in a given repository group(s).\u003c/li\u003e\n\u003cli\u003eList of labels is hardcoded. It contains PR merge blocker labels.\u003c/li\u003e\n\u003cli\u003eYou can select any of labels from given set or choose \u003ccode\u003eAll labels combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them \u003ccode\u003eAll repos combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThere are multiple charts that show summaries for all repo groups and/or for all labels.\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 PR labels 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/prs_labels.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_labels\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-labels-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 how many PRs have a specified label(s) in a given repository group(s).\u003c/li\u003e\n\u003cli\u003eList of labels is hardcoded. It contains PR merge blocker labels.\u003c/li\u003e\n\u003cli\u003eYou can select any of labels from given set or choose \u003ccode\u003eAll labels combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them \u003ccode\u003eAll repos combined\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThere are multiple charts that show summaries for all repo groups and/or for all labels.\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"
          },
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'pr_labels_docs_html'",
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "definition": "",
          "refresh": 1,
          "regex": "",
          "type": "query",
          "datasource": "psql",
          "skipUrlSync": true,
          "tagValuesQuery": ""
        }
      ]
    },
    "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": "",
    "uid": "47",
    "gnetId": null,
    "schemaVersion": 21,
    "tags": [
      "dashboard",
      "kubernetes",
      "PRs",
      "repogroups"
    ]
  }


slug: prs-mergers-table
title: PRs Mergers Table
created: 2023-09-13 22:35:06.909901034+00:00
updated: 2023-09-13 22:35:06.909901264+00:00
uid: 75
data:
  {
    "gnetId": null,
    "schemaVersion": 19,
    "style": "dark",
    "tags": [
      "dashboard",
      "kubernetes",
      "table"
    ],
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "title": "PRs Mergers Table",
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        }
      ]
    },
    "editable": true,
    "graphTooltip": 0,
    "id": 35,
    "refresh": false,
    "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"
      ]
    },
    "timezone": "",
    "uid": "75",
    "version": 2,
    "iteration": 1568187921383,
    "links": [],
    "panels": [
      {
        "pageSize": 1000,
        "sort": {
          "col": 2,
          "desc": true
        },
        "type": "table",
        "targets": [
          {
            "rawSql": "select\n  row_number() over (order by value desc) as \"Rank\",\n  name,\n  value\nfrom\n  shpr_mergers\nwhere\n  series = 'hpr_mergers[[repogroup]]'\n  and period = '[[period]]'",
            "resultFormat": "table",
            "timeColumn": "time",
            "dsType": "influxdb",
            "group": [],
            "policy": "default",
            "query": "",
            "rawQuery": true,
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "refId": "A",
            "alias": "",
            "metricColumn": "none",
            "format": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "title": "[[full_name]] PRs mergers (Repository group: [[repogroup_name]], Range: [[period_name]])",
        "transform": "table",
        "columns": [],
        "scroll": true,
        "showHeader": true,
        "links": [],
        "options": {
          
        },
        "styles": [
          {
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null,
            "pattern": "Time",
            "type": "hidden"
          },
          {
            "thresholds": [],
            "type": "string",
            "colorMode": null,
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "name",
            "preserveFormat": false,
            "unit": "short",
            "alias": "Developer",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2
          },
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 0,
            "pattern": "value",
            "thresholds": [],
            "type": "number",
            "alias": "Merged PRs",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "unit": "none"
          },
          {
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "/.*/",
            "thresholds": [],
            "type": "string",
            "unit": "short",
            "alias": ""
          }
        ],
        "description": "Shows PRs mergers",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "interval": "",
        "id": 1,
        "datasource": "psql",
        "fontSize": "90%",
        "hideTimeOverride": true
      },
      {
        "options": {
          
        },
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 26,
          "h": 11
        },
        "id": 11,
        "links": [],
        "mode": "html"
      }
    ],
    "templating": {
      "list": [
        {
          "multi": false,
          "regex": "",
          "type": "query",
          "useTags": false,
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "refresh": 1,
          "allValue": null,
          "current": {
            "text": "Last decade",
            "value": "Last decade"
          },
          "definition": "",
          "hide": 0,
          "label": "Range",
          "datasource": "psql",
          "includeAll": false,
          "name": "period_name",
          "options": [],
          "tags": []
        },
        {
          "definition": "",
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagsQuery": "",
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "refresh": 1,
          "regex": "",
          "tags": [],
          "type": "query",
          "allValue": null,
          "datasource": "psql",
          "includeAll": false,
          "name": "full_name",
          "options": [],
          "skipUrlSync": true,
          "label": null,
          "multi": false,
          "sort": 0,
          "tagValuesQuery": "",
          "useTags": false
        },
        {
          "options": [],
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "name": "period",
          "skipUrlSync": true,
          "allValue": null,
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "regex": "",
          "tagValuesQuery": "",
          "hide": 2,
          "label": null,
          "refresh": 1,
          "useTags": false,
          "current": {
            "text": "y10",
            "value": "y10"
          },
          "definition": "",
          "multi": false
        },
        {
          "includeAll": false,
          "name": "repogroup_name",
          "sort": 0,
          "type": "query",
          "current": {
            "text": "All",
            "value": "All"
          },
          "definition": "",
          "hide": 0,
          "label": "Repository group",
          "multi": false,
          "skipUrlSync": false,
          "allValue": null,
          "refresh": 1,
          "regex": "",
          "tags": [],
          "useTags": false,
          "datasource": "psql",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "options": []
        },
        {
          "includeAll": false,
          "label": "",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tagValuesQuery": "",
          "type": "query",
          "allValue": null,
          "current": {
            "text": "all",
            "value": "all"
          },
          "hide": 2,
          "skipUrlSync": true,
          "tagsQuery": "",
          "useTags": false,
          "definition": "",
          "tags": [],
          "options": [],
          "refresh": 1,
          "regex": "",
          "sort": 0,
          "datasource": "psql",
          "multi": false,
          "name": "repogroup"
        },
        {
          "name": "docs",
          "options": [],
          "query": "select value_s from gha_vars where name = 'pr_mergers_docs_html'",
          "tagsQuery": "",
          "current": {
            
          },
          "multi": false,
          "useTags": false,
          "includeAll": false,
          "label": null,
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "sort": 0,
          "tags": [],
          "type": "query",
          "allValue": null,
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "refresh": 1
        }
      ]
    }
  }


slug: prs-opened-by-sig
title: PRs opened by SIG
created: 2023-09-13 22:35:06.928505588+00:00
updated: 2023-09-13 22:35:06.928505658+00:00
uid: 69
data:
  {
    "editable": true,
    "schemaVersion": 27,
    "templating": {
      "list": [
        {
          "skipUrlSync": false,
          "type": "custom",
          "includeAll": false,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "description": null,
          "error": null,
          "hide": 0,
          "label": "Period",
          "multi": false,
          "name": "period",
          "allValue": null,
          "query": "d,d7,w,m,q,y",
          "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"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ]
        },
        {
          "label": "Repository",
          "name": "repo_name",
          "query": "select repo_name from trepos order by 1",
          "skipUrlSync": false,
          "type": "query",
          "allValue": null,
          "current": {
            "selected": true,
            "text": "kubernetes/kubernetes",
            "value": "kubernetes/kubernetes"
          },
          "includeAll": false,
          "regex": "",
          "useTags": false,
          "datasource": null,
          "error": null,
          "multi": false,
          "options": [],
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "definition": "select repo_name from trepos order by 1",
          "description": null,
          "hide": 0,
          "refresh": 1
        },
        {
          "regex": "",
          "sort": 0,
          "tagsQuery": "",
          "definition": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "includeAll": false,
          "label": null,
          "query": "select repo_value from trepos where repo_name = '[[repo_name]]'",
          "description": null,
          "multi": false,
          "name": "repo",
          "type": "query",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "kuberneteskubernetes",
            "value": "kuberneteskubernetes"
          },
          "error": null,
          "tagValuesQuery": "",
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "tags": [],
          "allValue": null,
          "datasource": null,
          "hide": 2
        },
        {
          "current": {
            "selected": true,
            "text": [
              "All"
            ],
            "value": [
              "$__all"
            ]
          },
          "label": "SIG",
          "query": "select '\"' || sig_mentions_labels_name || '\"' from tsig_mentions_labels order by 1",
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "includeAll": true,
          "multi": true,
          "options": [],
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "allValue": "",
          "definition": "",
          "description": null,
          "error": null,
          "hide": 0,
          "name": "sigs",
          "tagsQuery": "",
          "datasource": "psql",
          "refresh": 1,
          "type": "query"
        },
        {
          "description": null,
          "error": null,
          "includeAll": false,
          "label": null,
          "name": "full_name",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "hide": 2,
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "definition": "",
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "Kubernetes",
            "value": "Kubernetes"
          },
          "type": "query"
        },
        {
          "description": null,
          "label": null,
          "query": "select value_s from gha_vars where name = 'prs_open_by_sig_docs_html'",
          "regex": "",
          "type": "query",
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eKubernetes PRs opened 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/prs_open_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\u003eprs_open_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-opened-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.\u003c/li\u003e\n\u003cli\u003eWe're counting PRs that were opened in given periods.\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 PRs opened 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/prs_open_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\u003eprs_open_by_sig\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/prs-opened-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.\u003c/li\u003e\n\u003cli\u003eWe're counting PRs that were opened in given periods.\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,
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "hide": 2,
          "tags": [],
          "definition": "select value_s from gha_vars where name = 'prs_open_by_sig_docs_html'",
          "error": null,
          "multi": false,
          "name": "docs",
          "options": []
        }
      ]
    },
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true
        },
        {
          "datasource": "psql",
          "showIn": 0,
          "titleColumn": "[[full_name]] release",
          "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)",
          "tagsColumn": "title,description",
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "textColumn": "",
          "type": "alert"
        }
      ]
    },
    "gnetId": null,
    "iteration": 1621418133601,
    "timezone": "",
    "title": "PRs opened by SIG",
    "version": 3,
    "graphTooltip": 0,
    "links": [],
    "refresh": false,
    "tags": [
      "dashboard",
      "kubernetes",
      "SIGs",
      "PRs",
      "repos"
    ],
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "uid": "69",
    "id": 47,
    "panels": [
      {
        "title": "PRs opened by SIG",
        "nullPointMode": "null as zero",
        "renderer": "flot",
        "targets": [
          {
            "format": "time_series",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "measurement": "notused",
            "policy": "default",
            "rawQuery": true,
            "tags": [],
            "dsType": "influxdb",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "group": [],
            "groupBy": [],
            "metricColumn": "none",
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_prs_open\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "A"
          }
        ],
        "linewidth": 0,
        "stack": true,
        "percentage": false,
        "timeFrom": null,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "id": 2,
        "interval": "",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "fillGradient": 0,
        "hiddenSeries": false,
        "pointradius": 5,
        "seriesOverrides": [],
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs opened",
            "logBase": 1
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "dashLength": 10,
        "datasource": "psql",
        "lines": true,
        "pluginVersion": "7.5.6",
        "spaceLength": 10,
        "transparent": true,
        "gridPos": {
          "y": 0,
          "h": 21,
          "w": 24,
          "x": 0
        },
        "legend": {
          "rightSide": true,
          "sort": "avg",
          "sortDesc": true,
          "total": false,
          "max": true,
          "avg": true,
          "current": true,
          "min": true,
          "show": true,
          "values": true,
          "alignAsTable": true
        },
        "thresholds": [],
        "type": "graph",
        "dashes": false,
        "decimals": 0,
        "steppedLine": false,
        "timeRegions": [],
        "timeShift": null,
        "aliasColors": {
          
        },
        "description": "PRs opened by SIG",
        "links": [],
        "options": {
          "alertThreshold": true
        },
        "points": false,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "bars": false,
        "fill": 6
      },
      {
        "timeFrom": null,
        "yaxes": [
          {
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs opened"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "description": "PRs opened by SIG",
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 21
        },
        "seriesOverrides": [],
        "links": [],
        "percentage": true,
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "legend": {
          "total": false,
          "avg": true,
          "max": true,
          "rightSide": true,
          "show": true,
          "sort": "avg",
          "alignAsTable": true,
          "current": true,
          "min": true,
          "sortDesc": true,
          "values": true
        },
        "steppedLine": false,
        "timeShift": null,
        "dashes": false,
        "linewidth": 0,
        "pluginVersion": "7.5.6",
        "dashLength": 10,
        "hiddenSeries": false,
        "title": "PRs opened by SIG",
        "timeRegions": [],
        "interval": "",
        "points": false,
        "stack": true,
        "options": {
          "alertThreshold": true
        },
        "thresholds": [],
        "bars": false,
        "decimals": 0,
        "id": 11,
        "renderer": "flot",
        "transparent": true,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "aliasColors": {
          
        },
        "fill": 6,
        "lines": true,
        "spaceLength": 10,
        "targets": [
          {
            "rawQuery": true,
            "refId": "A",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_prs_open\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "group": [],
            "groupBy": [],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "policy": "default",
            "format": "time_series",
            "measurement": "notused",
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "alias": "",
            "dsType": "influxdb",
            "resultFormat": "time_series",
            "tags": []
          }
        ],
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "type": "graph",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "fillGradient": 0,
        "nullPointMode": "null as zero",
        "pointradius": 5
      },
      {
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "dashes": false,
        "fillGradient": 0,
        "linewidth": 0,
        "spaceLength": 10,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "title": "PRs opened by SIG for [[repo_name]] repository",
        "type": "graph",
        "yaxes": [
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs opened"
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "interval": "",
        "links": [],
        "stack": true,
        "transparent": true,
        "targets": [
          {
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "alias": "",
            "format": "time_series",
            "resultFormat": "time_series",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_prs_open_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'sig_prs_open[[repo]]'\norder by\n  time",
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "notused",
            "metricColumn": "none"
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "datasource": "psql",
        "hiddenSeries": false,
        "pluginVersion": "7.5.6",
        "timeFrom": null,
        "decimals": 0,
        "fill": 6,
        "pointradius": 5,
        "points": false,
        "steppedLine": false,
        "timeRegions": [],
        "gridPos": {
          "x": 0,
          "y": 42,
          "h": 21,
          "w": 24
        },
        "nullPointMode": "null as zero",
        "renderer": "flot",
        "seriesOverrides": [],
        "legend": {
          "avg": true,
          "max": true,
          "show": true,
          "sort": "avg",
          "total": false,
          "values": true,
          "alignAsTable": true,
          "min": true,
          "rightSide": true,
          "sortDesc": true,
          "current": true
        },
        "lines": true,
        "options": {
          "alertThreshold": true
        },
        "percentage": false,
        "bars": false,
        "dashLength": 10,
        "description": "PRs opened by SIG for [[repo_name]] repository",
        "id": 12,
        "thresholds": [],
        "timeShift": null
      },
      {
        "timeFrom": null,
        "seriesOverrides": [],
        "thresholds": [],
        "datasource": "psql",
        "fill": 6,
        "interval": "",
        "lines": true,
        "renderer": "flot",
        "timeRegions": [],
        "timeShift": null,
        "type": "graph",
        "bars": false,
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        },
        "legend": {
          "avg": true,
          "current": true,
          "min": true,
          "rightSide": true,
          "total": false,
          "values": true,
          "alignAsTable": true,
          "max": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true
        },
        "options": {
          "alertThreshold": true
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "steppedLine": false,
        "transparent": true,
        "aliasColors": {
          
        },
        "percentage": true,
        "pluginVersion": "7.5.6",
        "spaceLength": 10,
        "nullPointMode": "null as zero",
        "pointradius": 5,
        "title": "PRs opened by SIG for [[repo_name]] repository",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "decimals": 0,
        "fillGradient": 0,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 63
        },
        "id": 13,
        "linewidth": 0,
        "links": [],
        "stack": true,
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "PRs opened",
            "logBase": 1,
            "max": "100",
            "min": "0"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "format": "time_series",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${sigs:csv}\nfrom\n  ssig_prs_open_repos\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'sig_prs_open[[repo]]'\norder by\n  time",
            "dsType": "influxdb",
            "measurement": "notused",
            "orderByTime": "ASC",
            "tags": [],
            "query": "SELECT /^[[sigs]]$/ FROM \"sig_pr_workload_absolute_workload_d\" WHERE $timeFilter",
            "refId": "A",
            "group": [],
            "groupBy": [],
            "metricColumn": "none",
            "policy": "default",
            "resultFormat": "time_series",
            "timeColumn": "time"
          }
        ],
        "tooltip": {
          "sort": 2,
          "value_type": "individual",
          "shared": true
        },
        "points": false,
        "dashLength": 10,
        "dashes": false,
        "description": "PRs opened by SIG for [[repo_name]] repository",
        "hiddenSeries": false
      },
      {
        "datasource": null,
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "id": 10,
        "links": [],
        "pluginVersion": "7.5.6",
        "gridPos": {
          "x": 0,
          "y": 84,
          "h": 11,
          "w": 24
        },
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "style": "dark",
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    }
  }


