# dashboard

slug: developer-activity-counts-by-companies
title: Developer Activity Counts by Companies
created: 2024-04-09 11:23:33.004445889+00:00
updated: 2024-04-09 11:23:33.004445949+00:00
uid: 66
data:
  {
    "panels": [
      {
        "links": [],
        "sort": {
          "col": 0,
          "desc": false
        },
        "columns": [],
        "datasource": "psql",
        "gridPos": {
          "h": 20,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "hideTimeOverride": true,
        "id": 1,
        "interval": "",
        "targets": [
          {
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "refId": "A",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "metricColumn": "none",
            "policy": "default",
            "rawSql": "select \n  sub.\"Rank\",\n  split_part(sub.name, '$$$', 1) as name,\n  split_part(sub.name, '$$$', 2) as \"Company\",\n  sub.value \nfrom (\n  select row_number() over (order by value desc, name asc) as \"Rank\",\n    name,\n    value\n  from\n    shdev\n  where\n    series = 'hdev_[[metric]][[repogroup]][[country]]'\n    and period = '[[period]]'\n    and ('[[companies:csv]]' = 'null' or split_part(name, '$$$', 2) in ([[companies]]))\n) sub",
            "resultFormat": "table",
            "alias": "",
            "format": "table",
            "query": "SELECT \"name\", \"value\" FROM \"developers_hist_[[metric]]_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "tags": [],
            "timeColumn": "time"
          }
        ],
        "type": "table",
        "fontSize": "90%",
        "showHeader": true,
        "timeFrom": null,
        "description": "",
        "options": {
          
        },
        "scroll": true,
        "title": "[[full_name]] Developers statistics ([[metric]], Range: [[period_name]], Repository group: [[repogroup_name]]), bots excluded",
        "pageSize": 1000,
        "styles": [
          {
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null,
            "pattern": "Time",
            "type": "hidden"
          },
          {
            "alias": "GitHub login",
            "colorMode": null,
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 2,
            "preserveFormat": false,
            "thresholds": [],
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "pattern": "name",
            "type": "string",
            "unit": "short"
          },
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "thresholds": [],
            "type": "number",
            "alias": "Number",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0,
            "pattern": "value",
            "unit": "none",
            "colorMode": null
          },
          {
            "alias": "",
            "colorMode": null,
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 2,
            "pattern": "",
            "unit": "short",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "mappingType": 1,
            "thresholds": [],
            "type": "number"
          },
          {
            "pattern": "Rank",
            "thresholds": [],
            "type": "string",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0
          }
        ],
        "transform": "table"
      },
      {
        "mode": "html",
        "options": {
          
        },
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 20
        },
        "id": 3,
        "links": []
      }
    ],
    "schemaVersion": 19,
    "templating": {
      "list": [
        {
          "allValue": null,
          "options": [],
          "sort": 0,
          "includeAll": false,
          "regex": "",
          "useTags": false,
          "tagsQuery": "",
          "current": {
            "value": "Last decade",
            "text": "Last decade"
          },
          "definition": "",
          "label": "Range",
          "name": "period_name",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "skipUrlSync": false,
          "type": "query",
          "datasource": "psql",
          "hide": 0,
          "multi": false,
          "refresh": 1,
          "tagValuesQuery": "",
          "tags": []
        },
        {
          "hide": 0,
          "label": "Metric",
          "name": "metric",
          "skipUrlSync": false,
          "current": {
            "text": "Contributions",
            "value": "contributions",
            "selected": true
          },
          "includeAll": false,
          "multi": false,
          "options": [
            {
              "selected": false,
              "text": "Comments",
              "value": "comments"
            },
            {
              "selected": false,
              "text": "Commit comments",
              "value": "commit_comments"
            },
            {
              "selected": false,
              "text": "Commits",
              "value": "commits"
            },
            {
              "value": "events",
              "selected": false,
              "text": "GitHub Events"
            },
            {
              "selected": false,
              "text": "GitHub pushes",
              "value": "pushes"
            },
            {
              "selected": false,
              "text": "Issue comments",
              "value": "issue_comments"
            },
            {
              "selected": false,
              "text": "Issues",
              "value": "issues"
            },
            {
              "selected": false,
              "text": "PRs",
              "value": "prs"
            },
            {
              "selected": false,
              "text": "Merged PRs",
              "value": "merged_prs"
            },
            {
              "selected": false,
              "text": "Review comments",
              "value": "review_comments"
            },
            {
              "selected": false,
              "text": "Reviews submitted",
              "value": "reviews"
            },
            {
              "selected": true,
              "text": "Contributions",
              "value": "contributions"
            },
            {
              "text": "Active repositories",
              "value": "active_repos",
              "selected": false
            }
          ],
          "query": "comments,commit_comments,commits,events,pushes,contributions,issue_comments,issues,prs,merged_prs,review_comments,active_repos,reviews",
          "type": "custom",
          "allValue": null
        },
        {
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "refresh": 1,
          "tagValuesQuery": "",
          "useTags": false,
          "definition": "",
          "name": "period",
          "regex": "",
          "hide": 2,
          "label": null,
          "sort": 0,
          "type": "query",
          "allValue": null,
          "current": {
            "text": "y10",
            "value": "y10"
          },
          "multi": false,
          "options": [],
          "skipUrlSync": true,
          "tags": [],
          "tagsQuery": "",
          "datasource": "psql",
          "includeAll": false
        },
        {
          "hide": 2,
          "skipUrlSync": true,
          "useTags": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagsQuery": "",
          "allValue": null,
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "definition": "",
          "options": [],
          "sort": 0,
          "includeAll": false,
          "label": null,
          "multi": false,
          "regex": "",
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "name": "full_name",
          "refresh": 1,
          "tagValuesQuery": ""
        },
        {
          "sort": 0,
          "tags": [],
          "useTags": false,
          "name": "repogroup_name",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "hide": 0,
          "label": "Repository group",
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "current": {
            "text": "All",
            "value": "All"
          },
          "datasource": "psql",
          "regex": "",
          "tagsQuery": "",
          "definition": "",
          "multi": false,
          "type": "query",
          "allValue": null,
          "includeAll": false
        },
        {
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "definition": "",
          "label": "",
          "current": {
            "text": "all",
            "value": "all"
          },
          "name": "repogroup",
          "tagValuesQuery": "",
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "includeAll": false,
          "options": [],
          "refresh": 1,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "sort": 0,
          "useTags": false,
          "datasource": "psql",
          "hide": 2,
          "multi": false
        },
        {
          "current": {
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eAll CNCF Developer Activity Counts by Repository Group dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMain metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/project_developer_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApproves metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/hist_approvers.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReviews metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/hist_reviewers.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\u003eDeveloper activity\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/developer-activity-counts-by-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows various developer metrics groupped by their affiliated companies.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week etc. range or date range between releases, for example \u003ccode\u003ev1.9 - v1.10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select country from a drop-down or summary for all countries.\u003c/li\u003e\n\u003cli\u003eYou can select company/companies from a drop-down or all to display all companies.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots when calculating statistics, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003eWe are determining user's company affiliation from \u003ca href=\"https://github.com/cncf/devstats/blob/master/github_users.json\" target=\"_blank\"\u003ethis file\u003c/a\u003e, which is imported from \u003ccode\u003ecncf/gitdm\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eAll CNCF Developer Activity Counts by Repository Group dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMain metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/project_developer_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApproves metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/hist_approvers.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReviews metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/hist_reviewers.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\u003eDeveloper activity\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/developer-activity-counts-by-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows various developer metrics groupped by their affiliated companies.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week etc. range or date range between releases, for example \u003ccode\u003ev1.9 - v1.10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select country from a drop-down or summary for all countries.\u003c/li\u003e\n\u003cli\u003eYou can select company/companies from a drop-down or all to display all companies.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots when calculating statistics, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003eWe are determining user's company affiliation from \u003ca href=\"https://github.com/cncf/devstats/blob/master/github_users.json\" target=\"_blank\"\u003ethis file\u003c/a\u003e, which is imported from \u003ccode\u003ecncf/gitdm\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "label": null,
          "options": [],
          "query": "select value_s from gha_vars where name = 'developer_company_stats_docs_html'",
          "regex": "",
          "tagsQuery": "",
          "allValue": null,
          "hide": 2,
          "sort": 0,
          "definition": "select value_s from gha_vars where name = 'developer_company_stats_docs_html'",
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "name": "docs",
          "refresh": 1,
          "tagValuesQuery": "",
          "tags": []
        },
        {
          "tags": [],
          "tagsQuery": "",
          "datasource": "psql",
          "includeAll": false,
          "label": "",
          "multi": false,
          "options": [],
          "sort": 0,
          "useTags": false,
          "hide": 2,
          "tagValuesQuery": "",
          "allValue": null,
          "definition": "",
          "query": "select sub.value from (select country_value as value, 0 as ord from tcountries where country_name = '[[country_name]]' union select 'all', 1 as ord) sub order by sub.ord limit 1",
          "skipUrlSync": true,
          "type": "query",
          "current": {
            "value": "all",
            "text": "all"
          },
          "name": "country",
          "refresh": 1,
          "regex": ""
        },
        {
          "datasource": "psql",
          "definition": "",
          "includeAll": false,
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "sort": 0,
          "allValue": "all",
          "current": {
            "text": "All",
            "value": "All"
          },
          "hide": 0,
          "label": "Country",
          "name": "country_name",
          "options": [],
          "query": "select 'All' union select country_name from tcountries order by 1",
          "multi": false,
          "regex": "",
          "refresh": 1,
          "tags": [],
          "useTags": false
        },
        {
          "tags": [],
          "label": "Companies",
          "options": [],
          "refresh": 1,
          "tagValuesQuery": "",
          "query": "select companies_name from tcompanies order by time",
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "allValue": "null",
          "datasource": "psql",
          "hide": 0,
          "name": "companies",
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "definition": "select companies_name from tcompanies order by time",
          "useTags": false,
          "includeAll": true,
          "multi": true,
          "tagsQuery": "",
          "type": "query"
        }
      ]
    },
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "timezone": "",
    "uid": "66",
    "description": "",
    "gnetId": null,
    "links": [],
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        }
      ]
    },
    "editable": true,
    "id": 11,
    "iteration": 1568183350598,
    "refresh": false,
    "style": "dark",
    "graphTooltip": 0,
    "tags": [
      "dashboard",
      "cncf",
      "repogroups",
      "table",
      "companies"
    ],
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "hidden": true
    },
    "title": "Developer Activity Counts by Companies",
    "version": 2
  }


slug: developer-activity-counts-by-repository-group-table
title: Developer Activity Counts by Repository Group Table
created: 2024-04-09 11:23:33.01168301+00:00
updated: 2024-04-09 11:23:33.01168309+00:00
uid: 9
data:
  {
    "schemaVersion": 19,
    "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": "",
    "id": 12,
    "panels": [
      {
        "links": [],
        "scroll": true,
        "sort": {
          "col": 0,
          "desc": false
        },
        "type": "table",
        "interval": "",
        "pageSize": 1000,
        "showHeader": true,
        "fontSize": "90%",
        "datasource": "psql",
        "description": "",
        "gridPos": {
          "y": 0,
          "h": 22,
          "w": 24,
          "x": 0
        },
        "hideTimeOverride": true,
        "id": 1,
        "options": {
          
        },
        "transform": "table",
        "columns": [],
        "targets": [
          {
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "timeColumn": "time",
            "orderByTime": "ASC",
            "query": "SELECT \"name\", \"value\" FROM \"developers_hist_[[metric]]_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "resultFormat": "table",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "policy": "default",
            "refId": "A",
            "tags": [],
            "alias": "",
            "format": "table",
            "rawQuery": true,
            "rawSql": "select \n  sub.\"Rank\",\n  sub.name as name,\n  sub.value \nfrom (\n  select row_number() over (order by sum(value) desc, split_part(name, '$$$', 1) asc) as \"Rank\",\n    split_part(name, '$$$', 1) as name,\n    sum(value) as value\n  from\n    shdev\n  where\n    series = 'hdev_[[metric]][[repogroup]][[country]]'\n    and period = '[[period]]'\n  group by\n    split_part(name, '$$$', 1)\n) sub",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "type": "mean",
                  "params": []
                }
              ]
            ]
          }
        ],
        "title": "[[full_name]] Developers statistics ([[metric]], Range: [[period_name]], Repository group: [[repogroup_name]]), bots excluded",
        "styles": [
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null,
            "pattern": "Time",
            "type": "hidden",
            "alias": "Time"
          },
          {
            "colorMode": null,
            "decimals": 2,
            "pattern": "name",
            "type": "string",
            "alias": "GitHub login",
            "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",
            "preserveFormat": false,
            "thresholds": [],
            "unit": "short"
          },
          {
            "decimals": 0,
            "type": "number",
            "unit": "none",
            "alias": "Number",
            "colorMode": null,
            "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": "value",
            "thresholds": []
          },
          {
            "type": "string",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0,
            "pattern": "/.*/",
            "thresholds": []
          }
        ]
      },
      {
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "x": 0,
          "y": 22,
          "h": 12,
          "w": 24
        },
        "id": 3,
        "links": [],
        "mode": "html",
        "options": {
          
        }
      }
    ],
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "graphTooltip": 0,
    "links": [],
    "refresh": false,
    "tags": [
      "dashboard",
      "cncf",
      "repogroups",
      "table"
    ],
    "uid": "9",
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true
        }
      ]
    },
    "gnetId": null,
    "style": "dark",
    "templating": {
      "list": [
        {
          "skipUrlSync": false,
          "type": "query",
          "current": {
            "text": "Last decade",
            "value": "Last decade"
          },
          "name": "period_name",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "multi": false,
          "datasource": "psql",
          "hide": 0,
          "label": "Range",
          "tags": [],
          "tagsQuery": "",
          "definition": "",
          "refresh": 1,
          "tagValuesQuery": "",
          "regex": "",
          "sort": 0,
          "useTags": false,
          "allValue": null,
          "includeAll": false,
          "options": []
        },
        {
          "current": {
            "selected": false,
            "tags": [],
            "text": "Contributions",
            "value": "contributions"
          },
          "skipUrlSync": false,
          "allValue": null,
          "hide": 0,
          "includeAll": false,
          "label": "Metric",
          "multi": false,
          "name": "metric",
          "options": [
            {
              "selected": false,
              "text": "Comments",
              "value": "comments"
            },
            {
              "value": "commit_comments",
              "selected": false,
              "text": "Commit comments"
            },
            {
              "selected": false,
              "text": "Commits",
              "value": "commits"
            },
            {
              "selected": false,
              "text": "GitHub Events",
              "value": "events"
            },
            {
              "selected": false,
              "text": "GitHub pushes",
              "value": "pushes"
            },
            {
              "selected": false,
              "text": "Issue comments",
              "value": "issue_comments"
            },
            {
              "selected": false,
              "text": "Issues",
              "value": "issues"
            },
            {
              "selected": false,
              "text": "PRs",
              "value": "prs"
            },
            {
              "selected": false,
              "text": "Merged PRs",
              "value": "merged_prs"
            },
            {
              "selected": false,
              "text": "Review comments",
              "value": "review_comments"
            },
            {
              "text": "Reviews submitted",
              "value": "reviews",
              "selected": false
            },
            {
              "text": "Contributions",
              "value": "contributions",
              "selected": true
            },
            {
              "selected": false,
              "text": "Active repositories",
              "value": "active_repos"
            }
          ],
          "query": "comments,commit_comments,commits,events,pushes,contributions,issue_comments,issues,prs,merged_prs,review_comments,active_repos,reviews",
          "type": "custom"
        },
        {
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "current": {
            "text": "y10",
            "value": "y10"
          },
          "label": null,
          "datasource": "psql",
          "definition": "",
          "includeAll": false,
          "regex": "",
          "type": "query",
          "hide": 2,
          "name": "period",
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "sort": 0,
          "multi": false,
          "options": [],
          "refresh": 1
        },
        {
          "allValue": null,
          "datasource": "psql",
          "name": "full_name",
          "refresh": 1,
          "sort": 0,
          "definition": "",
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "useTags": false,
          "label": null,
          "multi": false,
          "options": [],
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "type": "query",
          "current": {
            "value": "All CNCF",
            "text": "All CNCF"
          },
          "hide": 2,
          "tagValuesQuery": "",
          "tagsQuery": ""
        },
        {
          "datasource": "psql",
          "definition": "",
          "hide": 0,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "skipUrlSync": false,
          "label": "Repository group",
          "name": "repogroup_name",
          "options": [],
          "regex": "",
          "multi": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "sort": 0,
          "tags": [],
          "useTags": false,
          "allValue": null,
          "current": {
            "text": "All",
            "value": "All"
          },
          "includeAll": false,
          "refresh": 1
        },
        {
          "tagValuesQuery": "",
          "hide": 2,
          "includeAll": false,
          "label": "",
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "sort": 0,
          "tagsQuery": "",
          "allValue": null,
          "current": {
            "text": "all",
            "value": "all"
          },
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "type": "query",
          "name": "repogroup",
          "datasource": "psql",
          "definition": "",
          "useTags": false
        },
        {
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "type": "query",
          "label": null,
          "query": "select value_s from gha_vars where name = 'developers_summary_docs_html'",
          "tagsQuery": "",
          "current": {
            "value": "\u003ch1 id=\"kubernetes-dashboard\"\u003eAll CNCF Developer Activity Counts by Repository Group dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMain metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/project_developer_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApproves metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/hist_approvers.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReviews metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/hist_reviewers.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\u003eDeveloper activity\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/developer-activity-counts-by-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows various developer metrics.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week etc. range or date range between releases, for example \u003ccode\u003ev1.9 - v1.10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select country from a drop-down or summary for all countries.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots when calculating statistics, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "text": "\u003ch1 id=\"kubernetes-dashboard\"\u003eAll CNCF Developer Activity Counts by Repository Group dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMain metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/project_developer_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApproves metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/hist_approvers.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReviews metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/kubernetes/hist_reviewers.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\u003eDeveloper activity\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/kubernetes/developer-activity-counts-by-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows various developer metrics.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week etc. range or date range between releases, for example \u003ccode\u003ev1.9 - v1.10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select country from a drop-down or summary for all countries.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots when calculating statistics, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "datasource": "psql",
          "multi": false,
          "name": "docs",
          "options": [],
          "regex": "",
          "sort": 0,
          "hide": 2,
          "includeAll": false,
          "tags": [],
          "useTags": false,
          "allValue": null,
          "definition": ""
        },
        {
          "query": "select sub.value from (select country_value as value, 0 as ord from tcountries where country_name = '[[country_name]]' union select 'all', 1 as ord) sub order by sub.ord limit 1",
          "refresh": 1,
          "tagValuesQuery": "",
          "current": {
            "text": "all",
            "value": "all"
          },
          "hide": 2,
          "options": [],
          "allValue": null,
          "label": "",
          "useTags": false,
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "name": "country",
          "tagsQuery": "",
          "definition": "",
          "multi": false,
          "sort": 0
        },
        {
          "datasource": "psql",
          "definition": "",
          "name": "country_name",
          "options": [],
          "tags": [],
          "current": {
            "text": "All",
            "value": "All"
          },
          "multi": false,
          "query": "select 'All' union select country_name from tcountries order by 1",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "hide": 0,
          "includeAll": false,
          "refresh": 1,
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "allValue": "all",
          "label": "Country",
          "useTags": false
        }
      ]
    },
    "title": "Developer Activity Counts by Repository Group Table",
    "version": 2,
    "editable": true,
    "iteration": 1568183301397
  }


slug: documentation-committers-in-repository-groups
title: Documentation Committers in Repository Groups
created: 2024-04-09 11:23:33.017419518+00:00
updated: 2024-04-09 11:23:33.017419578+00:00
uid: 61
data:
  {
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        },
        {
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "tagsColumn": "title,description",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "type": "alert",
          "enable": true,
          "hide": false,
          "name": "Releases"
        }
      ]
    },
    "id": 51,
    "panels": [
      {
        "linewidth": 1,
        "nullPointMode": "null",
        "timeShift": null,
        "legend": {
          "show": true,
          "total": false,
          "alignAsTable": true,
          "current": true,
          "hideEmpty": false,
          "rightSide": false,
          "values": true,
          "avg": true,
          "hideZero": false,
          "max": true,
          "min": true
        },
        "pointradius": 1,
        "renderer": "flot",
        "spaceLength": 10,
        "timeFrom": null,
        "dashLength": 10,
        "datasource": "psql",
        "fill": 1,
        "steppedLine": false,
        "targets": [
          {
            "query": "",
            "rawQuery": true,
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "policy": "autogen",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"Number of companies commiting to documentation\"\nfrom\n  sdoc_committers\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'docstats[[repogroup]]comps'\norder by\n  time",
            "hide": false,
            "measurement": "reviewers_d",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "refId": "A",
            "alias": "Number of companies commiting to documentation",
            "groupBy": []
          },
          {
            "resultFormat": "time_series",
            "alias": "Number of documentation committers",
            "groupBy": [],
            "policy": "autogen",
            "query": "",
            "tags": [],
            "hide": false,
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Number of documentation committers\"\nfrom\n  sdoc_committers\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'docstats[[repogroup]]devs'\norder by\n  time"
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "yaxes": [
          {
            "format": "none",
            "label": "Companies",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "none",
            "label": "Developers"
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashes": false,
        "decimals": 0,
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "percentage": false,
        "transparent": true,
        "aliasColors": {
          
        },
        "description": "",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "seriesOverrides": [
          {
            "alias": "Number of documentation committers",
            "yaxis": 2
          }
        ],
        "stack": false,
        "title": "Documentation committers: companies and developers ([[repogroup_name]], [[period]])",
        "points": false,
        "thresholds": [],
        "bars": false,
        "id": 1,
        "links": [],
        "lines": true,
        "type": "graph"
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "schemaVersion": 16,
    "style": "dark",
    "time": {
      "from": "now-3y",
      "to": "now"
    },
    "gnetId": null,
    "version": 2,
    "editable": true,
    "graphTooltip": 0,
    "title": "Documentation Committers in Repository Groups",
    "uid": "61",
    "timezone": "",
    "iteration": 1529598509540,
    "links": [],
    "refresh": false,
    "tags": [
      "companies",
      "dashboard",
      "cncf"
    ],
    "templating": {
      "list": [
        {
          "multi": false,
          "skipUrlSync": false,
          "allValue": null,
          "hide": 0,
          "includeAll": false,
          "label": "Period",
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            }
          ],
          "query": "d7,w,m,q",
          "type": "custom",
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          }
        },
        {
          "current": {
            
          },
          "name": "full_name",
          "options": [],
          "tags": [],
          "tagsQuery": "",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "skipUrlSync": true,
          "useTags": false,
          "allValue": null,
          "multi": false,
          "regex": "",
          "datasource": "psql",
          "hide": 2,
          "includeAll": false,
          "label": null,
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query"
        },
        {
          "skipUrlSync": false,
          "current": {
            
          },
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tagsQuery": "",
          "allValue": null,
          "datasource": "psql",
          "name": "repogroup_name",
          "tags": [],
          "type": "query",
          "useTags": false,
          "label": "Repository group",
          "sort": 0,
          "tagValuesQuery": "",
          "refresh": 1,
          "regex": "",
          "hide": 0,
          "includeAll": false,
          "options": []
        },
        {
          "type": "query",
          "includeAll": false,
          "label": "",
          "refresh": 1,
          "sort": 0,
          "current": {
            
          },
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tagsQuery": "",
          "datasource": "psql",
          "multi": false,
          "name": "repogroup",
          "skipUrlSync": true,
          "tags": [],
          "useTags": false,
          "allValue": null,
          "hide": 2,
          "regex": "",
          "tagValuesQuery": ""
        },
        {
          "multi": false,
          "name": "docs",
          "options": [],
          "allValue": null,
          "datasource": "psql",
          "sort": 0,
          "tagValuesQuery": "",
          "useTags": false,
          "label": null,
          "query": "select value_s from gha_vars where name = 'documentation_committers_docs_html'",
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "tagsQuery": "",
          "current": {
            
          },
          "hide": 2,
          "includeAll": false,
          "refresh": 1,
          "type": "query"
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    }
  }


slug: github-events
title: GitHub Events
created: 2024-04-09 11:23:33.02268462+00:00
updated: 2024-04-09 11:23:33.02268469+00:00
uid: 47
data:
  {
    "id": 63,
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "version": 3,
    "graphTooltip": 0,
    "refresh": false,
    "style": "dark",
    "tags": [
      "dashboard",
      "cncf"
    ],
    "title": "GitHub Events",
    "editable": true,
    "schemaVersion": 16,
    "uid": "47",
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "textColumn": "",
          "titleColumn": "[[full_name]] Release",
          "datasource": "psql",
          "enable": true,
          "hide": false,
          "limit": 100,
          "tagsColumn": "title,description",
          "type": "alert",
          "iconColor": "rgba(255, 96, 96, 1)",
          "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
        }
      ]
    },
    "gnetId": null,
    "iteration": 1533024842622,
    "links": [],
    "panels": [
      {
        "timeFrom": null,
        "spaceLength": 10,
        "timeShift": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": true,
        "dashLength": 10,
        "percentage": false,
        "points": false,
        "thresholds": [],
        "type": "graph",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "dashes": false,
        "decimals": null,
        "lines": false,
        "seriesOverrides": [],
        "aliasColors": {
          
        },
        "id": 2,
        "stack": true,
        "steppedLine": true,
        "nullPointMode": "null as zero",
        "renderer": "flot",
        "title": "[[full_name]] GitHub events ([[types]], [[period]])",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "description": "[[full_name]] GitHub events",
        "linewidth": 0,
        "links": [],
        "yaxes": [
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "GitHub Events"
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ],
        "pointradius": 5,
        "targets": [
          {
            "alias": "",
            "resultFormat": "time_series",
            "tags": [],
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${types:csv}\nfrom\n  sevent_types\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "format": "time_series",
            "groupBy": [],
            "measurement": "notused",
            "policy": "default",
            "query": "SELECT /^[[repogroups]]$/ FROM \"repo_group_activity_[[period]]\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "datasource": "psql",
        "fill": 3,
        "gridPos": {
          "y": 0,
          "h": 21,
          "w": 24,
          "x": 0
        },
        "legend": {
          "current": true,
          "max": true,
          "sort": "total",
          "total": true,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "show": true,
          "sortDesc": true,
          "min": true,
          "rightSide": true
        }
      },
      {
        "lines": true,
        "pointradius": 5,
        "renderer": "flot",
        "seriesOverrides": [],
        "dashes": false,
        "linewidth": 1,
        "stack": false,
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "type": "graph",
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "aliasColors": {
          
        },
        "dashLength": 10,
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 21,
          "h": 21
        },
        "legend": {
          "values": true,
          "max": true,
          "min": true,
          "show": true,
          "rightSide": true,
          "sort": "total",
          "sortDesc": true,
          "total": true,
          "alignAsTable": true,
          "avg": true,
          "current": true
        },
        "spaceLength": 10,
        "points": false,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "decimals": null,
        "description": "[[full_name]] GitHub events",
        "fill": 3,
        "links": [],
        "percentage": false,
        "title": "[[full_name]] GitHub events ([[types]], [[period]])",
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "GitHub Events",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "min": "0",
            "show": false,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null
          }
        ],
        "bars": false,
        "datasource": "psql",
        "steppedLine": false,
        "targets": [
          {
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${types:csv}\nfrom\n  sevent_types\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "resultFormat": "time_series",
            "tags": [],
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "measurement": "notused",
            "policy": "default",
            "query": "SELECT /^[[repogroups]]$/ FROM \"repo_group_activity_[[period]]\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "timeFrom": null,
        "id": 4,
        "nullPointMode": "null as zero",
        "thresholds": []
      },
      {
        "dashes": false,
        "timeFrom": null,
        "linewidth": 0,
        "stack": true,
        "targets": [
          {
            "alias": "",
            "groupBy": [],
            "rawSql": "select\n  time,\n  ${types:csv}\nfrom\n  sevent_types\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "orderByTime": "ASC",
            "policy": "default",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "refId": "A",
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series",
            "measurement": "notused",
            "query": "SELECT /^[[repogroups]]$/ FROM \"repo_group_activity_[[period]]\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "links": [],
        "timeShift": null,
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "yaxes": [
          {
            "label": "GitHub Events",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "percentage": true,
        "spaceLength": 10,
        "bars": true,
        "datasource": "psql",
        "decimals": null,
        "legend": {
          "avg": true,
          "current": true,
          "max": true,
          "min": true,
          "show": true,
          "sort": "total",
          "sortDesc": true,
          "alignAsTable": true,
          "rightSide": true,
          "total": true,
          "values": true
        },
        "lines": false,
        "nullPointMode": "null as zero",
        "thresholds": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "fill": 3,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "pointradius": 5,
        "renderer": "flot",
        "steppedLine": true,
        "description": "[[full_name]] GitHub events",
        "points": false,
        "seriesOverrides": [],
        "title": "[[full_name]] GitHub events ([[types]], [[period]])",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "id": 3,
        "type": "graph"
      },
      {
        "gridPos": {
          "h": 10,
          "w": 24,
          "x": 0,
          "y": 63
        },
        "id": 1,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}"
      }
    ],
    "templating": {
      "list": [
        {
          "includeAll": false,
          "options": [],
          "type": "query",
          "allValue": null,
          "current": {
            
          },
          "multi": false,
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "useTags": false,
          "tagValuesQuery": "",
          "tags": [],
          "datasource": "psql",
          "hide": 2,
          "label": null,
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "sort": 0
        },
        {
          "multi": false,
          "options": [
            {
              "selected": false,
              "text": "Hour",
              "value": "h"
            },
            {
              "selected": true,
              "text": "24 Hours MA",
              "value": "h24"
            },
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "value": "d7",
              "selected": false,
              "text": "7 Days MA"
            },
            {
              "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": "h,d,w,m,q,y",
          "current": {
            "tags": [],
            "text": "24 Hours MA",
            "value": "h24"
          },
          "includeAll": false,
          "label": "Period",
          "name": "period",
          "skipUrlSync": false,
          "type": "custom",
          "allValue": null,
          "hide": 0
        },
        {
          "tagsQuery": "",
          "label": "Event type",
          "multi": true,
          "query": "select '\"' || event_type_name || '\"' from tevent_types order by 1",
          "name": "types",
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "sort": 0,
          "datasource": "psql",
          "hide": 0,
          "includeAll": true,
          "tags": [],
          "type": "query",
          "allValue": "",
          "useTags": false,
          "current": {
            "text": "All",
            "value": "$__all"
          },
          "regex": "",
          "tagValuesQuery": ""
        },
        {
          "allValue": null,
          "options": [],
          "refresh": 1,
          "tags": [],
          "tagsQuery": "",
          "label": null,
          "sort": 0,
          "hide": 2,
          "name": "docs",
          "regex": "",
          "tagValuesQuery": "",
          "useTags": false,
          "type": "query",
          "current": {
            
          },
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'github_events_docs_html'",
          "skipUrlSync": true
        }
      ]
    },
    "time": {
      "from": "now-30d",
      "to": "now"
    },
    "timezone": ""
  }


slug: home
title: Home
created: 2024-04-09 11:23:33.028714135+00:00
updated: 2024-04-09 11:23:33.028714206+00:00
uid: 62
data:
  {
    "title": "Home",
    "graphTooltip": 2,
    "links": [],
    "panels": [
      {
        "cacheTimeout": null,
        "colors": [
          "#299c46",
          "rgba(237, 129, 40, 0.89)",
          "#d44a3a"
        ],
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "timeShift": null,
        "valueMaps": [],
        "colorBackground": false,
        "mappingType": 1,
        "nullPointMode": "connected",
        "tableColumn": "",
        "links": [],
        "maxDataPoints": 100,
        "postfixFontSize": "50%",
        "targets": [
          {
            "format": "time_series",
            "rawQuery": true,
            "rawSql": "select\n  max(e.created_at) as \"time\",\n  0 as value\nfrom\n  gha_events e,\n  gha_repos r\nwhere\n  e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(e.created_at)\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(e.dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])",
            "timeColumnType": "timestamp",
            "timeColumn": "\"time\"",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "metricColumn": "none",
            "refId": "A",
            "select": [
              [
                {
                  "type": "column",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "table": "sall_prs_merged"
          }
        ],
        "title": "",
        "format": "dateTimeAsUS",
        "gauge": {
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100
        },
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 1,
          "w": 4
        },
        "options": {
          
        },
        "timeFrom": null,
        "nullText": null,
        "prefixFontSize": "30%",
        "decimals": null,
        "description": "Time of the last event.",
        "id": 4,
        "transparent": true,
        "valueName": "last_time",
        "interval": "1h",
        "postfix": "",
        "prefix": "Last event:",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "thresholds": "",
        "colorValue": false,
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "type": "singlestat",
        "valueFontSize": "50%"
      },
      {
        "description": "The number of commits for the last month compared to the previous month.",
        "postfix": "%",
        "postfixFontSize": "30%",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "transparent": true,
        "valueName": "current",
        "cacheTimeout": null,
        "tableColumn": "",
        "valueFontSize": "50%",
        "colorPostfix": true,
        "mappingTypes": [
          {
            "value": 1,
            "name": "value to text"
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "colors": [
          "#C4162A",
          "#FFF899",
          "#56A64B"
        ],
        "format": "none",
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "mappingType": 1,
        "title": "",
        "interval": "1h",
        "maxDataPoints": 100,
        "options": {
          
        },
        "prefix": "Commits change",
        "timeFrom": null,
        "colorPrefix": true,
        "decimals": 1,
        "nullText": null,
        "targets": [
          {
            "refId": "A",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "rawSql": "select\n  sub.time as \"time\",\n  ((sub.current - sub.previous) * 100.0) / (case sub.previous when 0 then 1 else sub.previous end) as \"value\"\nfrom (\n  select\n    max(c.dup_created_at) as \"time\",\n    count(distinct c.sha) filter (where c.dup_created_at \u003e= now() - '2 months'::interval and c.dup_created_at \u003c now() - '1 month'::interval) as \"previous\",\n    count(distinct c.sha) filter (where $__timeFilter(c.dup_created_at)) as \"current\"\n  from\n    gha_commits c,\n    gha_repos r\n  where\n    c.dup_repo_id = r.id\n    and c.dup_repo_name = r.name\n    and r.repo_group in ([[repogroups]])\n    and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n    and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\n) sub",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "format": "time_series",
            "metricColumn": "none"
          }
        ],
        "type": "singlestat",
        "valueMaps": [],
        "colorBackground": false,
        "id": 5,
        "nullPointMode": "connected",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "thresholds": "-20,20",
        "colorValue": true,
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 0
        },
        "links": [],
        "prefixFontSize": "30%",
        "timeShift": null
      },
      {
        "hideEmpty": false,
        "interval": "1h",
        "mapCenter": "custom",
        "timeFrom": null,
        "title": "Last month contributions",
        "gridPos": {
          "h": 8,
          "w": 7,
          "x": 9,
          "y": 0
        },
        "links": [],
        "maxDataPoints": 1,
        "mouseWheelZoom": true,
        "showLegend": false,
        "targets": [
          {
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "metricColumn": "none",
            "rawSql": "select\n  now() as \"time\",\n  count(e.id) as \"value\",\n  coalesce(a.country_id, '') as \"name\"\nfrom\n  gha_actors a,\n  gha_events e,\n  gha_repos r\nwhere\n  e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and e.dup_actor_login = a.login\n  and e.type in ('IssuesEvent', 'PullRequestEvent', 'PushEvent', 'PullRequestReviewCommentEvent', 'IssueCommentEvent', 'CommitCommentEvent')\n  and $__timeFilter(e.created_at)\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(a.login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  a.country_id",
            "refId": "A",
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "group": [],
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ]
          }
        ],
        "circleMaxSize": "20",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "#FFEE52",
          "rgba(50, 172, 45, 0.97)"
        ],
        "stickyLabels": false,
        "transparent": true,
        "unitPlural": "contributions",
        "unitSingle": "",
        "esMetric": "Count",
        "id": 7,
        "initialZoom": 1,
        "locationData": "countries",
        "tableQueryOptions": {
          "longitudeField": "longitude",
          "metricField": "value",
          "queryType": "geohash",
          "geohashField": "country",
          "labelField": "country",
          "latitudeField": "latitude"
        },
        "valueName": "current",
        "circleMinSize": "2",
        "decimals": 0,
        "options": {
          
        },
        "hideZero": false,
        "mapCenterLongitude": 0,
        "type": "grafana-worldmap-panel",
        "mapCenterLatitude": "30",
        "thresholds": "5,50,500",
        "timeShift": null,
        "unitSingular": "contribution"
      },
      {
        "initialZoom": 1,
        "mapCenterLongitude": 0,
        "maxDataPoints": 1,
        "tableQueryOptions": {
          "labelField": "country",
          "latitudeField": "latitude",
          "longitudeField": "longitude",
          "metricField": "value",
          "queryType": "geohash",
          "geohashField": "country"
        },
        "unitPlural": "contributors",
        "circleMaxSize": "20",
        "gridPos": {
          "h": 8,
          "w": 7,
          "x": 16,
          "y": 0
        },
        "mapCenter": "custom",
        "mapCenterLatitude": "30",
        "unitSingular": "contributor",
        "decimals": 0,
        "esMetric": "Count",
        "id": 9,
        "type": "grafana-worldmap-panel",
        "unitSingle": "",
        "links": [],
        "mouseWheelZoom": true,
        "showLegend": false,
        "thresholds": "2,5,10",
        "title": "Last month contributors",
        "description": "Number of active contributors during the last month.",
        "transparent": true,
        "hideEmpty": false,
        "options": {
          
        },
        "timeFrom": null,
        "valueName": "current",
        "circleMinSize": 2,
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "#FFEE52",
          "rgba(50, 172, 45, 0.97)"
        ],
        "locationData": "countries",
        "hideZero": false,
        "stickyLabels": false,
        "targets": [
          {
            "refId": "A",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "rawQuery": true,
            "group": [],
            "metricColumn": "none",
            "rawSql": "select\n  now() as \"time\",\n  count(distinct a.login) as \"value\",\n  coalesce(a.country_id, '') as \"name\"\nfrom\n  gha_actors a,\n  gha_events e,\n  gha_repos r\nwhere\n  e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and e.dup_actor_login = a.login\n  and e.type in ('IssuesEvent', 'PullRequestEvent', 'PushEvent', 'PullRequestReviewCommentEvent', 'IssueCommentEvent', 'CommitCommentEvent')\n  and $__timeFilter(e.created_at)\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(a.login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  a.country_id",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "format": "time_series"
          }
        ],
        "timeShift": null
      },
      {
        "gridPos": {
          "x": 0,
          "y": 1,
          "h": 7,
          "w": 4
        },
        "id": 2,
        "transparent": true,
        "type": "gauge",
        "timeFrom": null,
        "timeShift": null,
        "description": "Percent of repositories active during the last month compared to the number of repositories active during the last year.",
        "interval": "1h",
        "links": [],
        "options": {
          "fieldOptions": {
            "calcs": [
              "last"
            ],
            "defaults": {
              "decimals": 1,
              "max": 100,
              "min": 0,
              "title": "Last month vs last year"
            },
            "mappings": [],
            "override": {
              
            },
            "thresholds": [
              {
                "color": "dark-red",
                "index": 0,
                "value": null
              },
              {
                "color": "light-yellow",
                "index": 1,
                "value": 30
              },
              {
                "color": "dark-green",
                "index": 2,
                "value": 70
              }
            ],
            "values": false
          },
          "orientation": "auto",
          "showThresholdLabels": true,
          "showThresholdMarkers": true
        },
        "pluginVersion": "6.2.4",
        "targets": [
          {
            "rawQuery": true,
            "rawSql": "select\n  sub.time,\n  (sub.recent * 100.0) / (case sub.all when 0 then 1 else sub.all end)\nfrom (\n  select\n    max(e.created_at) as time,\n    count(distinct e.repo_id) filter (where e.created_at \u003e= now() - '1 year'::interval) as all,\n    count(distinct e.repo_id) filter (where $__timeFilter(e.created_at)) as recent\n  from\n    gha_events e,\n    gha_repos r\n  where\n    e.repo_id = r.id\n    and e.dup_repo_name = r.name\n    and r.repo_group in ([[repogroups]])\n    and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n) sub",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumnType": "timestamp",
            "format": "time_series",
            "group": [],
            "metricColumn": "none",
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "title": "Percent repositories active"
      },
      {
        "timeShift": null,
        "valueMaps": [],
        "colorPrefix": true,
        "links": [],
        "nullPointMode": "connected",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "decimals": 1,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "valueFontSize": "50%",
        "cacheTimeout": null,
        "colorBackground": false,
        "options": {
          
        },
        "targets": [
          {
            "refId": "A",
            "table": "sall_prs_merged",
            "timeColumnType": "timestamp",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "metricColumn": "none",
            "rawQuery": true,
            "rawSql": "select\n  sub.time,\n  ((sub.current - sub.previous) * 100.0) / (case sub.previous when 0 then 1 else sub.previous end) as \"value\"\nfrom (\n  select\n    max(pr.created_at) as time,\n    count(distinct pr.id) filter (where pr.created_at \u003e= now() - '2 months'::interval and pr.created_at \u003c now() - '1 month'::interval) as previous,\n    count(distinct pr.id) filter (where $__timeFilter(pr.created_at)) as \"current\"\n  from\n    gha_pull_requests pr,\n    gha_repos r\n  where\n    pr.dup_repo_id = r.id\n    and pr.dup_repo_name = r.name\n    and r.repo_group in ([[repogroups]])\n    and (pr.dup_user_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n) sub",
            "timeColumn": "\"time\"",
            "format": "time_series",
            "group": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ]
          }
        ],
        "timeFrom": null,
        "valueName": "current",
        "colors": [
          "#C4162A",
          "#FFEE52",
          "#37872D"
        ],
        "mappingType": 1,
        "maxDataPoints": 100,
        "thresholds": "-20,20",
        "interval": "1h",
        "prefix": "Opened PRs change",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "type": "singlestat",
        "tableColumn": "",
        "title": "",
        "colorPostfix": true,
        "colorValue": true,
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 1
        },
        "postfixFontSize": "30%",
        "prefixFontSize": "30%",
        "description": "Percent of PRs opened during the last month compared to the number of PRs opened during the previous month.",
        "id": 10,
        "nullText": null,
        "postfix": "%",
        "format": "none",
        "gauge": {
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false
        },
        "pluginVersion": "6.2.4",
        "transparent": true
      },
      {
        "colorValue": true,
        "targets": [
          {
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "format": "time_series",
            "rawSql": "select\n  sub.time,\n  ((sub.current - sub.previous) * 100.0) / (case sub.previous when 0 then 1 else sub.previous end) as \"value\"\nfrom (\n  select\n    max(pr.created_at) as time,\n    count(distinct pr.id) filter (where pr.merged_at \u003e= now() - '2 months'::interval and pr.merged_at \u003c now() - '1 month'::interval) as previous,\n    count(distinct pr.id) filter (where $__timeFilter(pr.merged_at)) as \"current\"\n  from\n    gha_pull_requests pr,\n    gha_repos r\n  where\n    pr.dup_repo_id = r.id\n    and pr.dup_repo_name = r.name\n    and r.repo_group in ([[repogroups]])\n    and (pr.dup_user_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n) sub",
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ]
          }
        ],
        "title": "",
        "valueMaps": [],
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 2
        },
        "links": [],
        "thresholds": "-20,20",
        "type": "singlestat",
        "valueName": "current",
        "cacheTimeout": null,
        "postfixFontSize": "30%",
        "options": {
          
        },
        "description": "Percent of PRs merged during the last month compared to the number of PRs merged during the previous month.",
        "interval": "1h",
        "mappingType": 1,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "nullPointMode": "connected",
        "nullText": null,
        "postfix": "%",
        "timeFrom": null,
        "colors": [
          "#C4162A",
          "#FFF899",
          "#56A64B"
        ],
        "format": "none",
        "colorPrefix": true,
        "maxDataPoints": 100,
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "transparent": true,
        "valueFontSize": "50%",
        "colorBackground": false,
        "colorPostfix": true,
        "prefix": "Merged PRs change",
        "tableColumn": "",
        "decimals": 1,
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "timeShift": null,
        "id": 11,
        "prefixFontSize": "30%"
      },
      {
        "tableColumn": "value",
        "valueFontSize": "50%",
        "colorValue": false,
        "colors": [
          "#C4162A",
          "#FFF899",
          "#56A64B"
        ],
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "description": "Median time to merge PRs during the last month.",
        "prefixFontSize": "30%",
        "type": "singlestat",
        "cacheTimeout": null,
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 3
        },
        "links": [],
        "colorPrefix": false,
        "postfixFontSize": "30%",
        "timeShift": null,
        "gauge": {
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false
        },
        "nullPointMode": "connected",
        "thresholds": "-20,20",
        "nullText": null,
        "options": {
          
        },
        "targets": [
          {
            "group": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "format": "table",
            "rawQuery": true,
            "rawSql": "select\n  percentile_disc(0.5) within group (order by sub.time_to_merge asc) as \"value\"\nfrom (\n  select distinct\n    pr.id,\n    max(pr.merged_at) - max(pr.created_at) as time_to_merge\n  from\n    gha_pull_requests pr,\n    gha_repos r\n  where\n    pr.dup_repo_id = r.id\n    and pr.dup_repo_name = r.name\n    and r.repo_group in ([[repogroups]])\n    and pr.merged_at is not null\n    and pr.dup_type = 'PullRequestEvent'\n    and $__timeFilter(pr.merged_at)\n    and (pr.dup_user_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  group by\n    pr.id\n) sub",
            "refId": "A",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none"
          }
        ],
        "title": "",
        "colorPostfix": false,
        "decimals": null,
        "interval": "1h",
        "maxDataPoints": 100,
        "prefix": "Median time to merge PR",
        "transparent": true,
        "format": "none",
        "mappingType": 1,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "timeFrom": null,
        "valueMaps": [],
        "valueName": "current",
        "colorBackground": false,
        "id": 12,
        "postfix": ""
      },
      {
        "cacheTimeout": null,
        "colorValue": false,
        "nullText": null,
        "tableColumn": "value",
        "decimals": null,
        "gauge": {
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100
        },
        "gridPos": {
          "w": 5,
          "x": 4,
          "y": 4,
          "h": 1
        },
        "nullPointMode": "connected",
        "postfix": "",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "type": "singlestat",
        "colors": [
          "#C4162A",
          "#FFF899",
          "#56A64B"
        ],
        "targets": [
          {
            "group": [],
            "rawSql": "select\n  percentile_disc(0.5) within group (order by sub.time_to_merge asc) as \"value\"\nfrom (\n  select distinct\n    pr.id,\n    max(pr.merged_at) - max(pr.created_at) as time_to_merge\n  from\n    gha_pull_requests pr,\n    gha_repos r\n  where\n    pr.dup_repo_id = r.id\n    and pr.dup_repo_name = r.name\n    and r.repo_group in ([[repogroups]])\n    and pr.merged_at is not null\n    and pr.dup_type = 'PullRequestEvent'\n    and pr.merged_at \u003e= now() - '2 months'::interval\n    and pr.merged_at \u003c now() - '1 month'::interval\n    and (pr.dup_user_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  group by\n    pr.id\n) sub",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "table",
            "rawQuery": true,
            "timeColumn": "\"time\"",
            "metricColumn": "none"
          }
        ],
        "timeFrom": null,
        "transparent": true,
        "colorBackground": false,
        "description": "Median time to merge PRs during the previous month.",
        "prefixFontSize": "30%",
        "interval": "1h",
        "maxDataPoints": 100,
        "title": "",
        "valueMaps": [],
        "colorPrefix": false,
        "mappingType": 1,
        "prefix": "Previous time to merge PR",
        "timeShift": null,
        "valueFontSize": "50%",
        "colorPostfix": false,
        "format": "none",
        "options": {
          
        },
        "postfixFontSize": "30%",
        "id": 14,
        "links": [],
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "thresholds": "-20,20",
        "valueName": "current"
      },
      {
        "description": "Change of the median time to merge PRs this month vs. previous month.",
        "format": "none",
        "targets": [
          {
            "rawSql": "with curr as (\n  select\n    extract(epoch from percentile_disc(0.5) within group (order by sub.time_to_merge asc)) as \"value\"\n  from (\n    select distinct\n      pr.id,\n      max(pr.merged_at) - max(pr.created_at) as time_to_merge\n    from\n      gha_pull_requests pr,\n      gha_repos r\n    where\n      pr.dup_repo_id = r.id\n      and pr.dup_repo_name = r.name\n      and r.repo_group in ([[repogroups]])\n      and pr.merged_at is not null\n      and pr.dup_type = 'PullRequestEvent'\n      and $__timeFilter(pr.merged_at)\n      and (pr.dup_user_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n    group by\n      pr.id\n  ) sub\n), prev as (\n  select\n    extract(epoch from percentile_disc(0.5) within group (order by sub.time_to_merge asc)) as \"value\"\n  from (\n    select distinct\n      pr.id,\n      max(pr.merged_at) - max(pr.created_at) as time_to_merge\n    from\n      gha_pull_requests pr,\n      gha_repos r\n    where\n      pr.dup_repo_id = r.id\n      and pr.dup_repo_name = r.name\n      and r.repo_group in ([[repogroups]])\n      and pr.merged_at is not null\n      and pr.dup_type = 'PullRequestEvent'\n      and pr.merged_at \u003e= now() - '2 month'::interval\n      and pr.merged_at \u003c now() - '1 month'::interval\n      and (pr.dup_user_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n    group by\n      pr.id\n  ) sub\n)\nselect\n  ((curr.value - prev.value) * 100.0) / (case prev.value when 0 then 1 else prev.value end) as \"value\"\nfrom\n  prev,\n  curr",
            "table": "sall_prs_merged",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "timeColumnType": "timestamp",
            "format": "table",
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\""
          }
        ],
        "timeShift": null,
        "type": "singlestat",
        "valueMaps": [],
        "cacheTimeout": null,
        "colors": [
          "#56A64B",
          "#FFF899",
          "#C4162A"
        ],
        "nullText": null,
        "thresholds": "-20,20",
        "tableColumn": "value",
        "id": 13,
        "interval": "1h",
        "links": [],
        "mappingType": 1,
        "colorValue": true,
        "prefixFontSize": "30%",
        "timeFrom": null,
        "colorBackground": false,
        "colorPrefix": true,
        "gridPos": {
          "y": 5,
          "h": 1,
          "w": 5,
          "x": 4
        },
        "postfix": "%",
        "title": "",
        "transparent": true,
        "valueName": "current",
        "decimals": 1,
        "gauge": {
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false
        },
        "options": {
          
        },
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "prefix": "Avg merge time change",
        "sparkline": {
          "lineColor": "rgb(31, 120, 193)",
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false
        },
        "valueFontSize": "50%",
        "colorPostfix": true,
        "maxDataPoints": 100,
        "nullPointMode": "connected",
        "postfixFontSize": "30%"
      },
      {
        "options": {
          
        },
        "timezoneSettings": {
          "zoneFormat": "offsetAbbv",
          "fontSize": "12px",
          "fontWeight": "normal",
          "showTimezone": false
        },
        "title": "",
        "type": "grafana-clock-panel",
        "clockType": "12 hour",
        "links": [],
        "description": "",
        "mode": "time",
        "timeSettings": {
          "fontSize": "16px",
          "fontWeight": "normal",
          "customFormat": "HH:mm:ss"
        },
        "timeShift": null,
        "countdownSettings": {
          "customFormat": null,
          "endCountdownTime": "2019-06-26T11:41:00.000Z",
          "endText": "00:00:00"
        },
        "dateSettings": {
          "dateFormat": "MM/DD/YYYY",
          "fontSize": "16px",
          "fontWeight": "normal",
          "showDate": true
        },
        "interval": "1h",
        "timeFrom": null,
        "transparent": true,
        "bgColor": "rgba(20, 33, 46, 0)",
        "gridPos": {
          "h": 2,
          "w": 5,
          "x": 4,
          "y": 6
        },
        "targets": [
          {
            "group": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "format": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "rawSql": "select 1",
            "refId": "A",
            "table": "shpr_comps",
            "timeColumnType": "timestamp",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ]
          }
        ],
        "timezone": null,
        "id": 24,
        "refreshSettings": {
          "syncWithDashboard": false
        }
      },
      {
        "config": {
          "hoverDecimals": 0,
          "hoverUnitFormat": "short",
          "itemName": [
            "short",
            "short"
          ],
          "label": {
            "width": 60,
            "position": "bottom",
            "rotate": "null"
          },
          "legendTitleFormat": {
            "inner": {
              
            },
            "lower": {
              
            },
            "upper": {
              
            }
          },
          "cellPadding": "-1",
          "colLimit": "24",
          "domainGutter": 2,
          "rowLimit": "1",
          "domain": "day",
          "legendColors": {
            "empty": "rgb(0, 0, 0)",
            "max": "#37872D",
            "min": "rgb(0, 0, 0)",
            "base": "transparent"
          },
          "subDomainTitleFormat": {
            "empty": "{date}",
            "filled": {
              
            }
          },
          "animationDuration": 0,
          "cellSize": "15",
          "subDomain": "hour",
          "linkTemplate": "",
          "verticalOrientation": true,
          "cellRadius": "0",
          "displayLegend": true,
          "legendStr": ""
        },
        "options": {
          
        },
        "targets": [
          {
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "sha"
                  ],
                  "type": "column"
                },
                {
                  "params": [
                    "count"
                  ],
                  "type": "aggregate"
                },
                {
                  "params": [
                    "author_id"
                  ],
                  "type": "alias"
                }
              ]
            ],
            "timeColumn": "dup_created_at",
            "timeColumnType": "timestamp",
            "format": "time_series",
            "group": [
              {
                "params": [
                  "1h",
                  "none"
                ],
                "type": "time"
              }
            ],
            "metricColumn": "none",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "rawSql": "select\n  $__timeGroupAlias(c.dup_created_at,1h),\n  count(distinct c.sha) as \"commits\"\nfrom\n  gha_commits c,\n  gha_repos r\nwhere\n  c.dup_repo_id = r.id\n  and c.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(c.dup_created_at)\n  and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  1",
            "table": "gha_commits"
          }
        ],
        "timeFrom": null,
        "timeShift": null,
        "title": "Last month commits per day and hour",
        "description": "Commits per day of month and hour.",
        "gridPos": {
          "w": 5,
          "x": 0,
          "y": 8,
          "h": 16
        },
        "id": 26,
        "interval": "1h",
        "links": [],
        "transparent": true,
        "type": "neocat-cal-heatmap-panel"
      },
      {
        "options": {
          
        },
        "pieType": "donut",
        "timeShift": null,
        "transparent": true,
        "type": "grafana-piechart-panel",
        "valueName": "current",
        "breakPoint": "50%",
        "cacheTimeout": null,
        "fontSize": "60%",
        "format": "short",
        "gridPos": {
          "h": 11,
          "w": 6,
          "x": 5,
          "y": 8
        },
        "interval": "1h",
        "legend": {
          "percentageDecimals": 1,
          "show": true,
          "sideWidth": 140,
          "values": true,
          "header": "",
          "percentage": true
        },
        "links": [],
        "description": "Top 50 repositories by the number of contributions, all having less than 1% merged into 'Others'.",
        "targets": [
          {
            "format": "time_series",
            "metricColumn": "none",
            "table": "sall_prs_merged",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "rawQuery": true,
            "rawSql": "select\n  now() as \"time\",\n  count(distinct e.id) as \"value\",\n  e.dup_repo_name as \"name\"\nfrom\n  gha_events e,\n  gha_repos r\nwhere\n  e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(e.created_at)\n  and e.type in ('IssuesEvent', 'PullRequestEvent', 'PushEvent', 'PullRequestReviewCommentEvent', 'IssueCommentEvent', 'CommitCommentEvent')\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(e.dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  e.dup_repo_name\norder by\n  value desc\nlimit\n  50",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\""
          }
        ],
        "timeFrom": null,
        "title": "Top 50 repositories",
        "aliasColors": {
          
        },
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "decimals": null,
        "id": 16,
        "legendType": "On graph",
        "maxDataPoints": 3,
        "nullPointMode": "connected",
        "strokeWidth": "1"
      },
      {
        "cacheTimeout": null,
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "description": "Top 50 contributing companies, all companies having less than 1% merged into 'Others'.",
        "fontSize": "60%",
        "interval": "1h",
        "legendType": "On graph",
        "maxDataPoints": 3,
        "nullPointMode": "connected",
        "title": "Top 50 contributing companies",
        "pieType": "donut",
        "timeFrom": null,
        "format": "short",
        "gridPos": {
          "h": 10,
          "w": 6,
          "x": 11,
          "y": 8
        },
        "links": [],
        "options": {
          
        },
        "strokeWidth": "1",
        "transparent": true,
        "type": "grafana-piechart-panel",
        "aliasColors": {
          
        },
        "breakPoint": "50%",
        "decimals": null,
        "id": 17,
        "legend": {
          "sideWidth": 140,
          "values": true,
          "header": "",
          "percentage": true,
          "percentageDecimals": 1,
          "show": true
        },
        "targets": [
          {
            "timeColumnType": "timestamp",
            "format": "time_series",
            "group": [],
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "metricColumn": "none",
            "rawQuery": true,
            "rawSql": "select\n  now() as \"time\",\n  count(distinct e.id) as \"value\",\n  coalesce(affs.company_name, 'Unknown') as \"name\"\nfrom\n  gha_repos r,\n  gha_events e\nleft join\n  gha_actors_affiliations affs\non\n  e.actor_id = affs.actor_id\n  and affs.dt_from \u003c= e.created_at\n  and affs.dt_to \u003e e.created_at\nwhere\n  e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(e.created_at)\n  and e.type in ('IssuesEvent', 'PullRequestEvent', 'PushEvent', 'PullRequestReviewCommentEvent', 'IssueCommentEvent', 'CommitCommentEvent')\n  and affs.company_name is not null\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(e.dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  affs.company_name\norder by\n  value desc\nlimit\n  50",
            "table": "sall_prs_merged",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "timeShift": null,
        "valueName": "current"
      },
      {
        "gridPos": {
          "h": 10,
          "w": 6,
          "x": 17,
          "y": 8
        },
        "legendType": "On graph",
        "timeShift": null,
        "transparent": true,
        "cacheTimeout": null,
        "format": "short",
        "decimals": null,
        "interval": "1h",
        "type": "grafana-piechart-panel",
        "aliasColors": {
          
        },
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "nullPointMode": "connected",
        "pieType": "donut",
        "strokeWidth": "1",
        "description": "Top 50 contributors, all contributors having less than 1% merged into 'Others'.",
        "id": 20,
        "legend": {
          "sideWidth": 140,
          "values": true,
          "header": "",
          "percentage": true,
          "percentageDecimals": 1,
          "show": true
        },
        "links": [],
        "maxDataPoints": 3,
        "options": {
          
        },
        "targets": [
          {
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "format": "time_series",
            "metricColumn": "none",
            "rawSql": "select\n  now() as \"time\",\n  count(distinct e.id) as \"value\",\n  e.dup_actor_login as \"name\"\nfrom\n  gha_events e,\n  gha_repos r\nwhere\n  e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(e.created_at)\n  and e.type in ('IssuesEvent', 'PullRequestEvent', 'PushEvent', 'PullRequestReviewCommentEvent', 'IssueCommentEvent', 'CommitCommentEvent')\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(e.dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  e.dup_actor_login\norder by\n  value desc\nlimit\n  50"
          }
        ],
        "timeFrom": null,
        "breakPoint": "50%",
        "fontSize": "60%",
        "title": "Top 50 contributors",
        "valueName": "current"
      },
      {
        "cacheTimeout": null,
        "fontSize": "60%",
        "id": 21,
        "maxDataPoints": 3,
        "options": {
          
        },
        "targets": [
          {
            "metricColumn": "none",
            "rawSql": "select\n  now() as \"time\",\n  count(distinct c.sha) as \"value\",\n  coalesce(affs.company_name, 'Unknown') as \"name\"\nfrom\n  gha_repos r,\n  gha_commits c\nleft join\n  gha_actors_affiliations affs\non\n  c.author_id = affs.actor_id\n  and affs.dt_from \u003c= c.dup_created_at\n  and affs.dt_to \u003e c.dup_created_at\nwhere\n  c.dup_repo_id = r.id\n  and c.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(c.dup_created_at)\n  and affs.company_name is not null\n  and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  affs.company_name\norder by\n  value desc\nlimit\n  50",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "format": "time_series",
            "group": [],
            "timeColumnType": "timestamp",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "rawQuery": true,
            "timeColumn": "\"time\""
          }
        ],
        "timeFrom": null,
        "transparent": true,
        "legendType": "On graph",
        "nullPointMode": "connected",
        "pieType": "donut",
        "aliasColors": {
          
        },
        "breakPoint": "50%",
        "combine": {
          "threshold": "0.01",
          "label": "Others"
        },
        "decimals": null,
        "description": "Top 50 committing companies, all companies having less than 1% merged into 'Others'.",
        "strokeWidth": "1",
        "title": "Top 50 committing companies",
        "timeShift": null,
        "type": "grafana-piechart-panel",
        "valueName": "current",
        "format": "short",
        "gridPos": {
          "h": 10,
          "w": 6,
          "x": 11,
          "y": 18
        },
        "interval": "1h",
        "legend": {
          "values": true,
          "header": "",
          "percentage": true,
          "percentageDecimals": 1,
          "show": true,
          "sideWidth": 140
        },
        "links": []
      },
      {
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "links": [],
        "options": {
          
        },
        "transparent": true,
        "maxDataPoints": 3,
        "pieType": "donut",
        "targets": [
          {
            "format": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "group": [],
            "rawSql": "select\n  now() as \"time\",\n  count(distinct c.sha) as \"value\",\n  c.dup_author_login as \"name\"\nfrom\n  gha_commits c,\n  gha_repos r\nwhere\n  c.dup_repo_id = r.id\n  and c.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(c.dup_created_at)\n  and c.dup_author_login != ''\n  and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  c.dup_author_login\norder by\n  value desc\nlimit\n  50",
            "table": "sall_prs_merged",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "cacheTimeout": null,
        "description": "Top 50 committers, all contributors having less than 1% merged into 'Others'.",
        "fontSize": "60%",
        "interval": "1h",
        "legend": {
          "header": "",
          "percentage": true,
          "percentageDecimals": 1,
          "show": true,
          "sideWidth": 140,
          "values": true
        },
        "type": "grafana-piechart-panel",
        "timeFrom": null,
        "timeShift": null,
        "title": "Top 50 committers",
        "aliasColors": {
          
        },
        "breakPoint": "50%",
        "legendType": "On graph",
        "nullPointMode": "connected",
        "strokeWidth": "1",
        "decimals": null,
        "format": "short",
        "gridPos": {
          "x": 17,
          "y": 18,
          "h": 10,
          "w": 6
        },
        "id": 22,
        "valueName": "current"
      },
      {
        "description": "Contributions graph",
        "links": [],
        "title": "",
        "type": "snuids-radar-panel",
        "bgColor": "rgba(0, 0, 0, 0)",
        "options": {
          
        },
        "radarSettings": {
          "animationDurationMs": "1",
          "fontColor": "#C0D8FF",
          "gridColor": "gray",
          "scaleMin": "1",
          "scaleStep": "5",
          "seriesAlias": "A=Contributions;",
          "autoScale": true,
          "drawTicksBackground": false,
          "fontSize": 14,
          "ignoreTimeInfluxDB": false,
          "scaleMax": "10",
          "aspectRatio": 2,
          "legendType": "top",
          "limitAspectRatio": true
        },
        "timeFrom": null,
        "transparent": true,
        "gridPos": {
          "x": 5,
          "y": 19,
          "h": 9,
          "w": 6
        },
        "interval": "1h",
        "targets": [
          {
            "metricColumn": "none",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "hide": false,
            "rawSql": "select\n  now() as \"time\",\n  count(distinct pr.id) as \"value\",\n  'PRs' as \"metric\"\nfrom\n  gha_pull_requests pr,\n  gha_repos r\nwhere\n  pr.dup_repo_id = r.id\n  and pr.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and (pr.dup_user_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and pr.dup_type = 'PullRequestEvent'\n  and $__timeFilter(pr.created_at)\n  and lower(pr.dup_user_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\nunion select\n  now() as \"time\",\n  count(distinct i.id) as \"value\",\n  'Issues' as \"metric\"\nfrom\n  gha_issues i,\n  gha_repos r\nwhere\n  i.dup_repo_id = r.id\n  and i.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and i.dup_type = 'IssuesEvent'\n  and $__timeFilter(i.created_at)\n  and (i.dup_user_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(i.dup_user_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\nunion select\n  now() as \"time\",\n  count(distinct pr.event_id) as \"value\",\n  'Reviews' as \"metric\"\nfrom\n  gha_pull_requests pr,\n  gha_repos r\nwhere\n  pr.dup_repo_id = r.id\n  and pr.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and pr.dup_type = 'PullRequestReviewCommentEvent'\n  and $__timeFilter(pr.dup_created_at)\n  and (pr.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(pr.dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\nunion select\n  now() as \"time\",\n  count(distinct e.id) as \"value\",\n  'Comments' as \"metric\"\nfrom\n  gha_events e,\n  gha_repos r\nwhere\n  e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and e.type in ('IssueCommentEvent', 'CommitCommentEvent')\n  and $__timeFilter(e.created_at)\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(e.dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\nunion select\n  now() as \"time\",\n  count(distinct c.sha) as \"value\",\n  'Commits' as \"metric\"\nfrom\n  gha_commits c,\n  gha_repos r\nwhere\n  c.dup_repo_id = r.id\n  and c.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(c.dup_created_at)\n  and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\norder by\n  \"metric\"",
            "refId": "A",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "group": [],
            "rawQuery": true
          }
        ],
        "timeShift": null,
        "id": 19
      },
      {
        "title": "",
        "linewidth": 1,
        "percentage": false,
        "points": false,
        "timeShift": null,
        "type": "graph",
        "options": {
          
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "legend": {
          "avg": false,
          "current": false,
          "max": false,
          "min": false,
          "show": false,
          "total": false,
          "values": false
        },
        "pointradius": 2,
        "timeFrom": null,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "transparent": true,
        "yaxes": [
          {
            "label": null,
            "logBase": 1,
            "max": null,
            "min": null,
            "show": false,
            "format": "short"
          },
          {
            "format": "short",
            "label": null,
            "logBase": 1,
            "max": null,
            "min": null,
            "show": false
          }
        ],
        "id": 28,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": false,
          "values": []
        },
        "aliasColors": {
          
        },
        "fill": 0,
        "links": [],
        "renderer": "flot",
        "seriesOverrides": [],
        "steppedLine": false,
        "timeRegions": [],
        "dashLength": 10,
        "gridPos": {
          "w": 5,
          "x": 0,
          "y": 24,
          "h": 4
        },
        "interval": "1h",
        "lines": true,
        "spaceLength": 10,
        "stack": false,
        "bars": false,
        "dashes": false,
        "description": "Contributions over time",
        "nullPointMode": "null",
        "targets": [
          {
            "group": [],
            "rawSql": "select\n  $__timeGroupAlias(e.created_at,1h),\n  count(distinct e.id) as \"contributions\"\nfrom\n  gha_events e,\n  gha_repos r\nwhere\n  e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(e.created_at)\n  and e.type in ('IssuesEvent', 'PullRequestEvent', 'PushEvent', 'PullRequestReviewCommentEvent', 'IssueCommentEvent', 'CommitCommentEvent')\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(e.dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  1",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "shpr_comps",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "format": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ]
          }
        ],
        "thresholds": []
      }
    ],
    "style": "dark",
    "tags": [
      "cncf",
      "dashboard"
    ],
    "templating": {
      "list": [
        {
          "refresh": 1,
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "hide": 0,
          "name": "repogroups",
          "tagValuesQuery": "",
          "query": "select distinct repo_group from gha_repos where repo_group is not null order by 1",
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "current": {
            "tags": [],
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "includeAll": true,
          "label": "Repository groups",
          "options": [],
          "type": "query",
          "datasource": "psql",
          "definition": "select distinct repo_group from gha_repos where repo_group is not null order by 1",
          "multi": true,
          "tags": []
        },
        {
          "options": [],
          "query": "select sub.actor from (select e.dup_actor_login as actor, count(distinct e.id) as cnt from gha_events e, gha_repos r where $__timeFilter(e.created_at) and e.repo_id = r.id and e.dup_repo_name = r.name and r.repo_group in ($repogroups) and lower(dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%']) group by e.dup_actor_login order by cnt desc limit 200) sub",
          "sort": 0,
          "tags": [],
          "datasource": "psql",
          "definition": "select sub.actor from (select e.dup_actor_login as actor, count(distinct e.id) as cnt from gha_events e, gha_repos r where $__timeFilter(e.created_at) and e.repo_id = r.id and e.dup_repo_name = r.name and r.repo_group in ($repogroups) and lower(dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%']) group by e.dup_actor_login order by cnt desc limit 200) sub",
          "label": "Contributors",
          "refresh": 1,
          "useTags": false,
          "current": {
            "tags": [],
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "includeAll": true,
          "allValue": "null",
          "hide": 0,
          "multi": true,
          "name": "contributors",
          "regex": "",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query"
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "hidden": true
    },
    "version": 4,
    "editable": true,
    "iteration": 1561540804599,
    "schemaVersion": 18,
    "id": 14,
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "timezone": "",
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        }
      ]
    },
    "description": "Replicate git analytics data",
    "gnetId": null,
    "refresh": "15m",
    "uid": "62"
  }


slug: home2
title: Home2
created: 2024-04-09 11:23:33.034662566+00:00
updated: 2024-04-09 11:23:33.034662636+00:00
uid: 63
data:
  {
    "gnetId": null,
    "graphTooltip": 0,
    "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": "",
    "title": "Home2",
    "version": 7,
    "tags": [
      "cncf",
      "dashboard"
    ],
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        }
      ]
    },
    "editable": true,
    "id": 15,
    "iteration": 1561708084581,
    "panels": [
      {
        "options": {
          
        },
        "showHeader": true,
        "styles": [
          {
            "thresholds": [
              "200",
              "2000"
            ],
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": "cell",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "decimals": 1,
            "pattern": "Average LOC added"
          },
          {
            "colorMode": "cell",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "Max LOC added",
            "thresholds": [
              "1000",
              "100000"
            ],
            "type": "number",
            "unit": "none",
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ]
          },
          {
            "pattern": "Median LOC added",
            "thresholds": [
              "10",
              "200"
            ],
            "type": "number",
            "unit": "none",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "decimals": 1,
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "mappingType": 1,
            "alias": "",
            "colorMode": "cell"
          },
          {
            "colorMode": "cell",
            "unit": "none",
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "15th perc. LOC added",
            "thresholds": [
              "1",
              "5"
            ],
            "type": "number"
          },
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "85th perc. LOC added",
            "type": "number",
            "alias": "",
            "colorMode": "cell",
            "unit": "none",
            "colors": [
              "#1F60C4",
              "#37872D",
              "#C4162A"
            ],
            "thresholds": [
              "100",
              "2000"
            ]
          },
          {
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "mappingType": 1,
            "pattern": "Average LOC removed",
            "thresholds": [
              "100",
              "2000"
            ],
            "type": "number",
            "unit": "none",
            "alias": "",
            "colorMode": "cell",
            "decimals": 1
          },
          {
            "thresholds": [
              "1000",
              "100000"
            ],
            "colorMode": "cell",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "Max LOC removed",
            "type": "number",
            "unit": "none",
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss"
          },
          {
            "alias": "",
            "colorMode": "cell",
            "thresholds": [
              "5",
              "100"
            ],
            "unit": "none",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "Median LOC removed",
            "type": "number"
          },
          {
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "thresholds": [
              "1",
              "5"
            ],
            "type": "number",
            "unit": "none",
            "colorMode": "cell",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "15th perc. LOC removed"
          },
          {
            "alias": "",
            "decimals": 1,
            "pattern": "85th perc. LOC removed",
            "thresholds": [
              "50",
              "2000"
            ],
            "colorMode": "cell",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "mappingType": 1,
            "type": "number",
            "unit": "none"
          },
          {
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "mappingType": 1,
            "thresholds": [
              "2",
              "20"
            ],
            "type": "number",
            "unit": "none",
            "alias": "",
            "pattern": "Average files ch.",
            "colorMode": "cell"
          },
          {
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "decimals": 1,
            "thresholds": [
              "50",
              "1000"
            ],
            "alias": "",
            "colorMode": "cell",
            "pattern": "Max files ch.",
            "type": "number",
            "unit": "none",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "mappingType": 1
          },
          {
            "decimals": 1,
            "mappingType": 1,
            "thresholds": [
              "2",
              "5"
            ],
            "type": "number",
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "colorMode": "cell",
            "pattern": "Median files ch.",
            "unit": "none"
          },
          {
            "alias": "",
            "colorMode": "cell",
            "mappingType": 1,
            "pattern": "15th perc. files ch.",
            "thresholds": [
              "1",
              "2"
            ],
            "type": "number",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "unit": "none"
          },
          {
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "mappingType": 1,
            "colorMode": "cell",
            "pattern": "85th perc. files ch.",
            "thresholds": [
              "5",
              "20"
            ],
            "type": "number",
            "unit": "none"
          }
        ],
        "timeFrom": null,
        "cacheTimeout": null,
        "fontSize": "80%",
        "interval": "1h",
        "transform": "table",
        "transparent": true,
        "gridPos": {
          "y": 0,
          "h": 3,
          "w": 24,
          "x": 0
        },
        "scroll": false,
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "shpr_comps",
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "rawSql": "select\n  avg(sub.loc_added) filter (where sub.loc_added \u003e 0) as \"Average LOC added\",\n  max(sub.loc_added) as \"Max LOC added\",\n  percentile_cont(0.5) within group (order by sub.loc_added asc) filter (where sub.loc_added \u003e 0) as \"Median LOC added\",\n  percentile_cont(0.15) within group (order by sub.loc_added asc) filter (where sub.loc_added \u003e 0) as \"15th perc. LOC added\",\n  percentile_cont(0.85) within group (order by sub.loc_added asc) filter (where sub.loc_added \u003e 0) as \"85th perc. LOC added\",\n  avg(sub.loc_removed) filter (where sub.loc_removed \u003e 0) as \"Average LOC removed\",\n  max(sub.loc_removed) as \"Max LOC removed\",\n  percentile_cont(0.5) within group (order by sub.loc_removed asc) filter (where sub.loc_removed \u003e 0) as \"Median LOC removed\",\n  percentile_cont(0.15) within group (order by sub.loc_removed asc) filter (where sub.loc_removed \u003e 0) as \"15th perc. LOC removed\",\n  percentile_cont(0.85) within group (order by sub.loc_removed asc) filter (where sub.loc_removed \u003e 0) as \"85th perc. LOC removed\",\n  avg(sub.files_changed) filter (where sub.files_changed \u003e 0) as \"Average files ch.\",\n  max(sub.files_changed) as \"Max files ch.\",\n  percentile_cont(0.5) within group (order by sub.files_changed asc) filter (where sub.files_changed \u003e 0) as \"Median files ch.\",\n  percentile_cont(0.15) within group (order by sub.files_changed asc) filter (where sub.files_changed \u003e 0) as \"15th perc. files ch.\",\n  percentile_cont(0.85) within group (order by sub.files_changed asc) filter (where sub.files_changed \u003e 0) as \"85th perc. files ch.\"\nfrom (\n  select distinct\n    c.sha,\n    c.loc_added,\n    c.loc_removed,\n    c.files_changed\n  from\n    gha_commits c,\n    gha_repos r\n  where\n    c.dup_repo_id = r.id\n    and c.dup_repo_name = r.name\n    and r.repo_group in ([[repogroups]])\n    and c.loc_added is not null\n    and c.loc_removed is not null\n    and c.files_changed is not null\n    and c.files_changed \u003e 0\n    and (c.loc_added \u003e 0 or c.loc_removed \u003e 0)\n    and $__timeFilter(c.dup_created_at)\n    and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n    and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\n) sub",
            "refId": "A",
            "format": "table",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "title": "Last month LOC statistics",
        "links": [],
        "sort": {
          "col": 0,
          "desc": true
        },
        "timeShift": null,
        "pageSize": null,
        "type": "table",
        "columns": [],
        "description": "Shows average, median, 15th and 85th percentiles for commits lines added, lines removed and files changed. Alerts: green: OK, blue - value too low, red - value too high.",
        "id": 4
      },
      {
        "type": "grafana-piechart-panel",
        "valueName": "current",
        "aliasColors": {
          
        },
        "breakPoint": "50%",
        "legend": {
          "percentage": true,
          "percentageDecimals": 1,
          "show": true,
          "values": true
        },
        "pieType": "donut",
        "transparent": true,
        "links": [],
        "nullPointMode": "connected",
        "targets": [
          {
            "group": [],
            "rawSql": "select\n  now() as \"time\",\n  count(distinct ecf.sha) as \"value\",\n  ecf.ext as \"name\"\nfrom\n  gha_events_commits_files ecf,\n  gha_events e,\n  gha_repos r\nwhere\n  e.id = ecf.event_id\n  and e.repo_id = r.id\n  and e.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and $__timeFilter(e.created_at)\n  and ecf.ext not like '%/%'\n  and ecf.ext != ''\n  and (e.dup_actor_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(e.dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\ngroup by\n  ecf.ext\norder by\n  \"value\" desc\nlimit 50",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "shpr_comps",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A"
          }
        ],
        "cacheTimeout": null,
        "description": "Number of distinct commits modifying files with a given extension during the last month",
        "format": "short",
        "gridPos": {
          "y": 3,
          "h": 15,
          "w": 6,
          "x": 0
        },
        "legendType": "On graph",
        "timeFrom": null,
        "timeShift": null,
        "fontSize": "60%",
        "interval": "1h",
        "maxDataPoints": 3,
        "strokeWidth": 1,
        "title": "Last month top commits files extensions",
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "id": 2,
        "options": {
          
        }
      },
      {
        "links": [],
        "thresholds": [],
        "dashes": false,
        "fill": 0,
        "pointradius": 2,
        "stack": false,
        "steppedLine": false,
        "timeShift": null,
        "targets": [
          {
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "shpr_comps",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "rawQuery": true,
            "rawSql": "select\n  floor(extract(epoch from dup_created_at)/86400)*86400 AS \"time\",\n  percentile_cont(0.7) within group (order by loc_added asc) as \"70th percentile LOC added daily\",\n  percentile_cont(0.3) within group (order by loc_added asc) as \"30th percentile LOC added daily\"\nfrom\n  gha_commits c,\n  gha_repos r\nwhere\n  c.dup_repo_id = r.id\n  and c.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\n  and loc_added is not null\n  and loc_added \u003e 0\n  and $__timeFilter(dup_created_at)\ngroup by\n  \"time\"\norder by\n  \"time\"",
            "timeColumn": "\"time\"",
            "format": "time_series",
            "metricColumn": "none"
          },
          {
            "rawSql": "select\n  floor(extract(epoch from dup_created_at)/86400)*86400 AS \"time\",\n  percentile_cont(0.7) within group (order by loc_removed asc) as \"70th percentile LOC removed daily\",\n  percentile_cont(0.3) within group (order by loc_removed asc) as \"30th percentile LOC removed daily\"\nfrom\n  gha_commits c,\n  gha_repos r\nwhere\n  c.dup_repo_id = r.id\n  and c.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\n  and loc_removed is not null\n  and loc_removed \u003e 0\n  and $__timeFilter(dup_created_at)\ngroup by\n  \"time\"\norder by\n  \"time\"",
            "refId": "B",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "format": "time_series",
            "select": [
              [
                {
                  "type": "column",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "table": "shpr_comps"
          },
          {
            "metricColumn": "none",
            "refId": "C",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "group": [],
            "rawQuery": true,
            "rawSql": "select\n  floor(extract(epoch from dup_created_at)/86400)*86400 AS \"time\",\n  percentile_cont(0.7) within group (order by files_changed asc) as \"70th percentile files changed daily\",\n  percentile_cont(0.3) within group (order by files_changed asc) as \"30th percentile files changed daily\"\nfrom\n  gha_commits c,\n  gha_repos r\nwhere\n  c.dup_repo_id = r.id\n  and c.dup_repo_name = r.name\n  and r.repo_group in ([[repogroups]])\n  and (c.dup_author_login in ([[contributors]]) or '[[contributors:csv]]' = 'null')\n  and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\n  and files_changed is not null\n  and files_changed \u003e 0\n  and $__timeFilter(dup_created_at)\ngroup by\n  \"time\"\norder by\n  \"time\"",
            "table": "shpr_comps"
          }
        ],
        "title": "LOC statistics chart",
        "gridPos": {
          "x": 6,
          "y": 3,
          "h": 15,
          "w": 18
        },
        "interval": "1h",
        "linewidth": 2,
        "percentage": false,
        "type": "graph",
        "nullPointMode": "null as zero",
        "seriesOverrides": [
          {
            "steppedLine": true,
            "yaxis": 2,
            "alias": "70th percentile files changed daily",
            "color": "#3274D9",
            "fill": 2,
            "linewidth": 0
          },
          {
            "alias": "70th percentile LOC added daily",
            "color": "#56A64B"
          },
          {
            "alias": "70th percentile LOC removed daily",
            "color": "#C4162A"
          },
          {
            "fill": 4,
            "linewidth": 0,
            "steppedLine": true,
            "yaxis": 2,
            "alias": "30th percentile files changed daily",
            "color": "rgb(77, 99, 115)"
          },
          {
            "alias": "30th percentile LOC added daily",
            "color": "#37872D"
          },
          {
            "alias": "30th percentile LOC removed daily",
            "color": "#E02F44"
          }
        ],
        "timeRegions": [],
        "aliasColors": {
          
        },
        "dashLength": 10,
        "description": "Chart for all LOC statistics for all days during the last month. Displays 30th and 70th percentiles.",
        "legend": {
          "min": true,
          "rightSide": false,
          "show": true,
          "total": false,
          "alignAsTable": true,
          "max": true,
          "values": true,
          "avg": false,
          "current": true
        },
        "lines": true,
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "spaceLength": 10,
        "timeFrom": null,
        "yaxes": [
          {
            "logBase": 2,
            "max": null,
            "min": null,
            "show": true,
            "decimals": null,
            "format": "short",
            "label": null
          },
          {
            "label": null,
            "logBase": 1,
            "max": null,
            "min": null,
            "show": true,
            "format": "short"
          }
        ],
        "bars": false,
        "id": 6,
        "options": {
          
        },
        "points": true,
        "renderer": "flot",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "decimals": null,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "transparent": true
      },
      {
        "fontSize": "80%",
        "transform": "table",
        "interval": "1h",
        "options": {
          
        },
        "targets": [
          {
            "table": "shpr_comps",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "format": "table",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "rawSql": "select \n  sub2.\"Committer\",\n  sub2.\"Throughput\",\n  sub2.\"Previous Throughput\",\n  case sub2.\"Ratio\" \u003e 0 when true then '+' || round(sub2.\"Ratio\", 1)::text || '%' else round(sub2.\"Ratio\", 1)::text || '%' end as \"Change\"\nfrom (\n  select\n    sub.\"Committer\",\n    sub.\"Throughput\",\n    sub.\"Previous Throughput\",\n    100.0 * (sub.\"Throughput\" - sub.\"Previous Throughput\") / sub.\"Previous Throughput\" as \"Ratio\"\n  from (\n    select\n      c.dup_author_login as \"Committer\",\n      sum(c.loc_added) filter (where c.dup_created_at \u003e= now() - '1 month'::interval) as \"Throughput\",\n      sum(c.loc_added) filter (where c.dup_created_at \u003c now() - '1 month'::interval) as \"Previous Throughput\"\n    from\n      gha_commits c,\n      gha_repos r\n    where\n      c.dup_repo_id = r.id\n      and c.dup_repo_name = r.name\n      and r.repo_group in ([[repogroups]])\n      and lower(c.dup_author_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%'])\n      and c.loc_added is not null\n      and c.loc_added \u003e 0\n      and c.dup_created_at \u003e= now() - '2 months'::interval\n      and dup_author_login != ''\n    group by\n      c.dup_author_login\n  ) sub\n  where\n    sub.\"Throughput\" \u003e 0\n    and sub.\"Previous Throughput\" \u003e 0\n  order by\n    sub.\"Throughput\" desc\n) sub2\nlimit\n  200",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "group": [],
            "metricColumn": "none",
            "rawQuery": true
          }
        ],
        "transparent": true,
        "type": "table",
        "description": "Throughput measures the amount of productive code written by a developer. By that we mean new lines of code written.",
        "id": 8,
        "pageSize": 200,
        "scroll": true,
        "sort": {
          "col": 1,
          "desc": true
        },
        "styles": [
          {
            "type": "date",
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "Time"
          },
          {
            "type": "number",
            "unit": "none",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0,
            "pattern": "/.*/",
            "thresholds": []
          }
        ],
        "title": "Throughput",
        "columns": [],
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 18
        },
        "links": [],
        "showHeader": true,
        "timeFrom": null,
        "timeShift": null
      }
    ],
    "style": "dark",
    "schemaVersion": 18,
    "templating": {
      "list": [
        {
          "includeAll": true,
          "refresh": 1,
          "skipUrlSync": false,
          "useTags": false,
          "allValue": null,
          "current": {
            "text": "All",
            "value": "$__all"
          },
          "datasource": "psql",
          "hide": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "definition": "select distinct repo_group from gha_repos where repo_group is not null order by 1",
          "name": "repogroups",
          "query": "select distinct repo_group from gha_repos where repo_group is not null order by 1",
          "regex": "",
          "options": [],
          "sort": 0,
          "tags": [],
          "type": "query",
          "label": "Repository  groups",
          "multi": true
        },
        {
          "definition": "select sub.actor from (select e.dup_actor_login as actor, count(distinct e.id) as cnt from gha_events e, gha_repos r where $__timeFilter(e.created_at) and e.repo_id = r.id and e.dup_repo_name = r.name and r.repo_group in ($repogroups) and lower(dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%']) group by e.dup_actor_login order by cnt desc limit 200) sub",
          "hide": 0,
          "label": "Contributors",
          "options": [],
          "skipUrlSync": false,
          "sort": 0,
          "tagsQuery": "",
          "allValue": "null",
          "query": "select sub.actor from (select e.dup_actor_login as actor, count(distinct e.id) as cnt from gha_events e, gha_repos r where $__timeFilter(e.created_at) and e.repo_id = r.id and e.dup_repo_name = r.name and r.repo_group in ($repogroups) and lower(dup_actor_login) not like all(array['devstats-sync', 'googlebot', 'coveralls', 'rktbot', 'coreosbot', 'web-flow', 'prometheus-roobot', 'cncf-bot', 'kernelprbot', 'istio-testing', 'spinnakerbot', 'pikbot', 'spinnaker-release', 'docker-jenkins', 'golangcibot', 'opencontrail-ci-admin', 'k8s-%', '%-bot', '%-robot', 'bot-%', 'robot-%', '%[bot]%', '%-jenkins', '%-ci%bot', '%-testing', 'codecov-%', '%clabot%', '%cla-bot%', '%-gerrit', '%-bot-%']) group by e.dup_actor_login order by cnt desc limit 200) sub",
          "refresh": 1,
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "includeAll": true,
          "datasource": "psql",
          "multi": true,
          "name": "contributors",
          "regex": "",
          "type": "query",
          "current": {
            "text": "All",
            "value": "$__all"
          }
        }
      ]
    },
    "links": [],
    "refresh": "15m",
    "uid": "63"
  }


slug: issues-age-by-repository-group
title: Issues Age by Repository Group
created: 2024-04-09 11:23:33.039235612+00:00
updated: 2024-04-09 11:23:33.039235692+00:00
uid: 11
data:
  {
    "style": "dark",
    "timezone": "",
    "title": "Issues Age by Repository Group",
    "annotations": {
      "list": [
        {
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "tagsColumn": "title,description",
          "type": "alert",
          "showIn": 0,
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "enable": true,
          "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)"
        },
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "showIn": 0,
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "limit": 100,
          "type": "dashboard"
        }
      ]
    },
    "iteration": 1529597904325,
    "schemaVersion": 16,
    "uid": "11",
    "links": [],
    "panels": [
      {
        "id": 2,
        "interval": null,
        "prefix": "",
        "prefixFontSize": "50%",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "gridPos": {
          "w": 14,
          "x": 0,
          "y": 0,
          "h": 3
        },
        "colorBackground": false,
        "mappingType": 1,
        "tableColumn": "descr",
        "type": "singlestat",
        "colorValue": false,
        "links": [],
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "maxDataPoints": 100,
        "nullPointMode": "connected",
        "valueFontSize": "50%",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "datasource": "psql",
        "thresholds": "",
        "postfixFontSize": "50%",
        "targets": [
          {
            "alias": "",
            "orderByTime": "ASC",
            "rawSql": "select\n  descr\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]m'\norder by\n  time desc\nlimit 1",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "refId": "A",
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "valueName": "current",
        "description": "Current median closing time for recent issues.",
        "nullText": null,
        "postfix": "",
        "title": "Current median time to close for issues created last [[period]] for repository group [[repogroup_name]], Priority: [[prio_name]]",
        "cacheTimeout": null,
        "format": "none",
        "gauge": {
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false
        },
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        }
      },
      {
        "format": "none",
        "tableColumn": "descr",
        "valueName": "current",
        "cacheTimeout": null,
        "maxDataPoints": 100,
        "id": 4,
        "datasource": "psql",
        "links": [],
        "type": "singlestat",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "nullPointMode": "connected",
        "postfixFontSize": "50%",
        "title": "Number of closed issues opened last [[period]] for repository group [[repogroup_name]], Priority: [[prio_name]]",
        "valueMaps": [
          {
            "value": "null",
            "op": "=",
            "text": "N/A"
          }
        ],
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "prefixFontSize": "50%",
        "prefix": "",
        "description": "Number of closed issues opened recently",
        "interval": null,
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "thresholds": "",
        "colorValue": false,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "postfix": "",
        "rangeMaps": [
          {
            "text": "N/A",
            "to": "null",
            "from": "null"
          }
        ],
        "valueFontSize": "50%",
        "mappingType": 1,
        "gridPos": {
          "y": 0,
          "h": 3,
          "w": 10,
          "x": 14
        },
        "nullText": null,
        "targets": [
          {
            "dsType": "influxdb",
            "format": "time_series",
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time, value\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]n'\norder by\n  time desc\nlimit 1",
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "tags": []
          }
        ],
        "colorBackground": false
      },
      {
        "description": "Median time to close and number of issues created in [[repogroup]] repository group.",
        "fill": 3,
        "yaxes": [
          {
            "decimals": null,
            "format": "h",
            "label": "Median issue close time",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Average issues opened",
            "logBase": 1
          }
        ],
        "aliasColors": {
          
        },
        "stack": false,
        "timeShift": null,
        "decimals": 2,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 3
        },
        "linewidth": 0,
        "points": false,
        "seriesOverrides": [
          {
            "alias": "Median time to close issue",
            "fill": 2,
            "lines": true,
            "linewidth": 0,
            "yaxis": 1
          },
          {
            "lines": true,
            "linewidth": 1,
            "yaxis": 2,
            "alias": "Average number of issues opened",
            "fill": 0
          }
        ],
        "xaxis": {
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time"
        },
        "dashes": false,
        "pointradius": 1,
        "steppedLine": false,
        "targets": [
          {
            "rawSql": "select\n  time,\n  value as \"Average number of issues opened\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]n'\norder by\n  time",
            "dsType": "influxdb",
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "refId": "A",
            "tags": [],
            "alias": "",
            "orderByTime": "ASC",
            "format": "time_series",
            "groupBy": [],
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "hide": false,
            "policy": "autogen"
          },
          {
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "refId": "B",
            "format": "time_series",
            "rawSql": "select\n  time,\n  value as \"Median time to close issue\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]m'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "hide": false,
            "measurement": "reviewers_d",
            "rawQuery": true,
            "policy": "autogen"
          }
        ],
        "thresholds": [],
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "datasource": "psql",
        "id": 1,
        "nullPointMode": "null",
        "transparent": false,
        "legend": {
          "min": true,
          "rightSide": false,
          "sideWidth": null,
          "total": false,
          "alignAsTable": false,
          "max": true,
          "hideEmpty": false,
          "hideZero": false,
          "show": true,
          "values": true,
          "avg": true,
          "current": true
        },
        "lines": false,
        "percentage": false,
        "renderer": "flot",
        "spaceLength": 10,
        "timeFrom": null,
        "title": "Number/Median time to close of Issues in [[repogroup_name]] repository group ([[period]]), Priority: [[prio_name]]",
        "type": "graph",
        "bars": false,
        "dashLength": 10,
        "links": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "description": "Median time to close and the number​ of issues created in [[repogroup]] repository group.",
        "showHeader": true,
        "columns": [],
        "styles": [
          {
            "alias": "Time",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date"
          },
          {
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2
          }
        ],
        "transparent": false,
        "type": "table",
        "datasource": "psql",
        "id": 3,
        "sort": {
          "col": 0,
          "desc": true
        },
        "title": "Number/Median time to close of Issues in [[repogroup_name]] repository group ([[period]]), Priority: [[prio_name]]",
        "transform": "table",
        "fontSize": "90%",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 16
        },
        "links": [],
        "pageSize": 10,
        "scroll": true,
        "targets": [
          {
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "type": "mean",
                  "params": []
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median time to close issue\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]m'\norder by\n  time"
          },
          {
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "format": "table",
            "policy": "default",
            "rawSql": "select\n  time as \"Time\",\n  value as \"Average number of issues opened\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]n'\norder by\n  time",
            "resultFormat": "time_series",
            "dsType": "influxdb"
          }
        ]
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "tags": [
      "dashboard",
      "cncf"
    ],
    "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,
    "graphTooltip": 0,
    "templating": {
      "list": [
        {
          "includeAll": false,
          "label": null,
          "multi": false,
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "current": {
            
          },
          "useTags": false,
          "tags": [],
          "hide": 2,
          "regex": "",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "datasource": "psql",
          "options": [],
          "name": "full_name"
        },
        {
          "includeAll": false,
          "options": [
            {
              "value": "d",
              "selected": false,
              "text": "Day"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ],
          "skipUrlSync": false,
          "allValue": null,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "hide": 0,
          "label": "Period",
          "multi": false,
          "name": "period",
          "query": "d,d7,w,m,q,y",
          "type": "custom"
        },
        {
          "current": {
            
          },
          "includeAll": false,
          "regex": "",
          "options": [],
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "skipUrlSync": false,
          "type": "query",
          "useTags": false,
          "allValue": null,
          "label": "Repository group",
          "tags": [],
          "tagsQuery": "",
          "datasource": "psql",
          "hide": 0,
          "multi": false,
          "name": "repogroup_name",
          "sort": 0,
          "tagValuesQuery": ""
        },
        {
          "includeAll": false,
          "skipUrlSync": true,
          "tags": [],
          "allValue": null,
          "datasource": "psql",
          "tagsQuery": "",
          "useTags": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "regex": "",
          "type": "query",
          "current": {
            
          },
          "name": "repogroup",
          "multi": false,
          "options": [],
          "sort": 0,
          "tagValuesQuery": "",
          "hide": 2,
          "label": ""
        },
        {
          "tags": [],
          "tagsQuery": "",
          "current": {
            
          },
          "query": "select priority_labels_name_with_all from tpriority_labels_with_all order by 1",
          "refresh": 1,
          "regex": "",
          "type": "query",
          "useTags": false,
          "multi": false,
          "options": [],
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "sort": 0,
          "allValue": "",
          "datasource": "psql",
          "hide": 0,
          "includeAll": false,
          "label": "Priority",
          "name": "prio_name"
        },
        {
          "refresh": 1,
          "sort": 0,
          "tags": [],
          "allValue": "",
          "label": "Priority",
          "multi": false,
          "regex": "",
          "tagsQuery": "",
          "current": {
            
          },
          "name": "prio",
          "options": [],
          "query": "select priority_labels_value_with_all from tpriority_labels_with_all where priority_labels_name_with_all = '[[prio_name]]'",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "datasource": "psql",
          "hide": 2,
          "includeAll": false
        },
        {
          "refresh": 1,
          "sort": 0,
          "type": "query",
          "useTags": false,
          "current": {
            
          },
          "includeAll": false,
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'issues_age_docs_html'",
          "multi": false,
          "options": [],
          "regex": "",
          "skipUrlSync": true,
          "hide": 2,
          "tags": [],
          "tagsQuery": "",
          "allValue": null,
          "datasource": "psql",
          "label": null,
          "tagValuesQuery": ""
        }
      ]
    },
    "time": {
      "from": "now-1y",
      "to": "now-1w"
    },
    "version": 2,
    "gnetId": null,
    "id": 52,
    "refresh": false
  }


slug: issues-age-es
title: Issues age ES
created: 2024-04-09 11:23:33.043934848+00:00
updated: 2024-04-09 11:23:33.043934918+00:00
uid: 1011
data:
  {
    "uid": "1011",
    "editable": true,
    "graphTooltip": 0,
    "tags": [
      "dashboard",
      "cncf"
    ],
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "timezone": "",
    "id": 71,
    "iteration": 1540819157386,
    "links": [],
    "version": 5,
    "title": "Issues age ES",
    "annotations": {
      "list": [
        {
          "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": "",
          "textField": "title",
          "titleColumn": "[[full_name]] release",
          "datasource": "es",
          "enable": true,
          "limit": 100,
          "query": "type:sannotations",
          "showIn": 0,
          "tagsColumn": "title,description",
          "tagsField": "description",
          "timeField": "time",
          "type": "alert",
          "hide": false
        },
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "limit": 100,
          "showIn": 0,
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "name": "Annotations \u0026 Alerts"
        }
      ]
    },
    "panels": [
      {
        "tableColumn": "descr",
        "cacheTimeout": null,
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "postfixFontSize": "50%",
        "valueFontSize": "50%",
        "valueName": "current",
        "interval": null,
        "format": "none",
        "gauge": {
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false
        },
        "gridPos": {
          "y": 0,
          "h": 3,
          "w": 14,
          "x": 0
        },
        "mappingTypes": [
          {
            "value": 1,
            "name": "value to text"
          },
          {
            "value": 2,
            "name": "range to text"
          }
        ],
        "nullText": null,
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "title": "Current median time to close for issues created last [[period]] for repository group [[repogroup_name]], Priority: [[prio_name]]",
        "colorBackground": false,
        "id": 2,
        "links": [],
        "nullPointMode": "connected",
        "prefix": "",
        "prefixFontSize": "50%",
        "thresholds": "",
        "type": "singlestat",
        "datasource": "es",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "mappingType": 1,
        "targets": [
          {
            "timeField": "time",
            "alias": "",
            "rawSql": "select\n  descr\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]m'\norder by\n  time desc\nlimit 1",
            "resultFormat": "time_series",
            "policy": "default",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "format": "table",
            "metrics": [
              {
                "settings": {
                  
                },
                "type": "avg",
                "field": "ivalue",
                "id": "1",
                "meta": {
                  
                }
              }
            ],
            "orderByTime": "ASC",
            "bucketAggs": [
              {
                "field": "time",
                "id": "2",
                "settings": {
                  "interval": "auto",
                  "min_doc_count": 0,
                  "trimEdges": 0
                },
                "type": "date_histogram"
              }
            ],
            "dsType": "influxdb",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "query": "type:isissues_age AND period:[[period]] AND series:iage[[repogroup]][[prio]]m AND name:merged",
            "refId": "A"
          }
        ],
        "colorValue": false,
        "maxDataPoints": 100,
        "postfix": "",
        "description": "Current median closing time for recent issues."
      },
      {
        "prefixFontSize": "50%",
        "type": "singlestat",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "description": "Number of closed issues opened recently",
        "interval": null,
        "links": [],
        "nullText": null,
        "prefix": "",
        "targets": [
          {
            "alias": "",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series",
            "metrics": [
              {
                "type": "avg",
                "field": "ivalue",
                "id": "1",
                "meta": {
                  
                },
                "settings": {
                  
                }
              }
            ],
            "policy": "default",
            "rawQuery": true,
            "rawSql": "select\n  time, value\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]n'\norder by\n  time desc\nlimit 1",
            "bucketAggs": [
              {
                "field": "time",
                "id": "2",
                "settings": {
                  "interval": "[[es_period]]",
                  "min_doc_count": 0,
                  "trimEdges": 0
                },
                "type": "date_histogram"
              }
            ],
            "orderByTime": "ASC",
            "query": "type:isissues_age AND period:[[period]] AND series:iage[[repogroup]][[prio]]n AND name:merged",
            "timeField": "time"
          }
        ],
        "colorBackground": false,
        "format": "none",
        "title": "Number of closed issues opened last [[period]] for repository group [[repogroup_name]], Priority: [[prio_name]]",
        "valueName": "current",
        "mappingType": 1,
        "postfixFontSize": "50%",
        "thresholds": "",
        "cacheTimeout": null,
        "gauge": {
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false
        },
        "nullPointMode": "connected",
        "tableColumn": "descr",
        "valueFontSize": "50%",
        "colorValue": false,
        "id": 4,
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "valueMaps": [
          {
            "text": "N/A",
            "value": "null",
            "op": "="
          }
        ],
        "datasource": "es",
        "gridPos": {
          "h": 3,
          "w": 10,
          "x": 14,
          "y": 0
        },
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "maxDataPoints": 100,
        "postfix": "",
        "sparkline": {
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)"
        }
      },
      {
        "steppedLine": false,
        "thresholds": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "links": [],
        "points": false,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null
        },
        "pointradius": 1,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "stack": false,
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "hide": false,
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"Average number of issues opened\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]n'\norder by\n  time",
            "refId": "A",
            "tags": [],
            "groupBy": [],
            "format": "time_series",
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "alias": "",
            "rawQuery": true,
            "dsType": "influxdb"
          },
          {
            "alias": "",
            "orderByTime": "ASC",
            "tags": [],
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "format": "time_series",
            "policy": "autogen",
            "groupBy": [],
            "measurement": "reviewers_d",
            "resultFormat": "time_series",
            "refId": "B",
            "hide": false,
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"Median time to close issue\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]m'\norder by\n  time"
          }
        ],
        "timeFrom": null,
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "h",
            "label": "Median issue close time",
            "logBase": 1
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Average issues opened"
          }
        ],
        "percentage": false,
        "renderer": "flot",
        "description": "Median time to close and number of issues created in [[repogroup]] repository group.",
        "spaceLength": 10,
        "gridPos": {
          "x": 0,
          "y": 3,
          "h": 13,
          "w": 24
        },
        "linewidth": 0,
        "seriesOverrides": [
          {
            "alias": "Median time to close issue",
            "fill": 2,
            "lines": true,
            "linewidth": 0,
            "yaxis": 1
          },
          {
            "alias": "Average number of issues opened",
            "fill": 0,
            "lines": true,
            "linewidth": 1,
            "yaxis": 2
          }
        ],
        "aliasColors": {
          
        },
        "dashes": false,
        "nullPointMode": "null",
        "title": "Number/Median time to close of Issues in [[repogroup_name]] repository group ([[period]]), Priority: [[prio_name]]",
        "legend": {
          "alignAsTable": false,
          "min": true,
          "show": true,
          "sideWidth": null,
          "values": true,
          "rightSide": false,
          "total": false,
          "avg": true,
          "current": true,
          "hideEmpty": false,
          "hideZero": false,
          "max": true
        },
        "lines": false,
        "decimals": 2,
        "timeShift": null,
        "transparent": false,
        "type": "graph",
        "bars": false,
        "datasource": "psql",
        "id": 1,
        "dashLength": 10,
        "fill": 3
      },
      {
        "transparent": false,
        "datasource": "psql",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 16
        },
        "links": [],
        "scroll": true,
        "columns": [],
        "styles": [
          {
            "pattern": "Time",
            "type": "date",
            "alias": "Time",
            "dateFormat": "MM/DD/YYYY"
          },
          {
            "thresholds": [],
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "/.*/"
          }
        ],
        "transform": "table",
        "title": "Number/Median time to close of Issues in [[repogroup_name]] repository group ([[period]]), Priority: [[prio_name]]",
        "pageSize": 10,
        "showHeader": true,
        "sort": {
          "col": 0,
          "desc": true
        },
        "targets": [
          {
            "orderByTime": "ASC",
            "policy": "default",
            "refId": "A",
            "resultFormat": "time_series",
            "alias": "",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "query": "SELECT \"descr\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median time to close issue\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]m'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "format": "table"
          },
          {
            "alias": "",
            "format": "table",
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  value as \"Average number of issues opened\"\nfrom\n  sissues_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'iage[[repogroup]][[prio]]n'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"autogen\".\"issues_age_[[repogroup]]_[[prio]]_number_[[period]]\" WHERE $timeFilter",
            "refId": "B",
            "resultFormat": "time_series",
            "tags": []
          }
        ],
        "description": "Median time to close and the number​ of issues created in [[repogroup]] repository group.",
        "fontSize": "90%",
        "id": 3,
        "type": "table"
      },
      {
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 27
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}"
      }
    ],
    "refresh": false,
    "templating": {
      "list": [
        {
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "label": null,
          "name": "full_name",
          "query": "{ \"find\": \"terms\", \"field\": \"vvalue\", \"query\": \"type:tvars AND vname:full_name\" }",
          "refresh": 2,
          "skipUrlSync": true,
          "regex": "",
          "sort": 0,
          "hide": 2,
          "includeAll": false,
          "options": [],
          "tagsQuery": "",
          "allValue": null,
          "current": {
            "text": "CNCF",
            "value": "CNCF"
          },
          "datasource": "es",
          "multi": false,
          "type": "query"
        },
        {
          "current": {
            "text": "7 Days MA",
            "value": "d7",
            "selected": true
          },
          "hide": 0,
          "multi": false,
          "name": "period",
          "skipUrlSync": false,
          "type": "custom",
          "allValue": null,
          "includeAll": false,
          "label": "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"
            }
          ],
          "query": "d,d7,w,m,q,y"
        },
        {
          "current": {
            "text": "All",
            "value": "All"
          },
          "datasource": "es",
          "hide": 0,
          "multi": false,
          "tagValuesQuery": "",
          "useTags": false,
          "allValue": null,
          "regex": "",
          "sort": 0,
          "tagsQuery": "",
          "query": "{\"find\": \"terms\", \"field\": \"all_repo_group_name\", \"query\": \"type: tall_repo_groups\"}",
          "options": [],
          "skipUrlSync": false,
          "tags": [],
          "name": "repogroup_name",
          "label": "Repository group",
          "refresh": 2,
          "type": "query",
          "includeAll": false
        },
        {
          "multi": false,
          "name": "repogroup",
          "query": "{ \"find\": \"terms\", \"field\": \"all_repo_group_value\", \"query\": \"type: tall_repo_groups AND all_repo_group_name:[[repogroup_name]]\" } ",
          "tags": [],
          "allValue": null,
          "current": {
            "text": "all",
            "value": "all"
          },
          "datasource": "es",
          "regex": "",
          "skipUrlSync": true,
          "useTags": false,
          "includeAll": false,
          "tagsQuery": "",
          "type": "query",
          "refresh": 2,
          "sort": 0,
          "tagValuesQuery": "",
          "hide": 2,
          "label": "",
          "options": []
        },
        {
          "refresh": 2,
          "regex": "",
          "sort": 0,
          "allValue": "",
          "datasource": "es",
          "hide": 0,
          "options": [],
          "query": "{\"find\": \"terms\", \"field\": \"priority_labels_name_with_all\", \"query\": \"type: tpriority_labels_with_all\"}",
          "type": "query",
          "multi": false,
          "tagsQuery": "",
          "current": {
            "text": "All",
            "value": "All"
          },
          "tagValuesQuery": "",
          "useTags": false,
          "includeAll": false,
          "label": "Priority",
          "name": "prio_name",
          "skipUrlSync": false,
          "tags": []
        },
        {
          "sort": 0,
          "tagValuesQuery": "",
          "includeAll": false,
          "regex": "",
          "skipUrlSync": true,
          "current": {
            "value": "all",
            "selected": true,
            "text": "all"
          },
          "type": "query",
          "multi": false,
          "options": [],
          "useTags": false,
          "datasource": "es",
          "hide": 2,
          "label": "Priority",
          "refresh": 2,
          "tags": [],
          "tagsQuery": "",
          "allValue": "",
          "name": "prio",
          "query": "{ \"find\": \"terms\", \"field\": \"priority_labels_value_with_all\", \"query\": \"type: tpriority_labels_with_all AND priority_labels_name_with_all:[[prio_name]]\" } "
        },
        {
          "useTags": false,
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eCNCF issues age 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/issues_age.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eissues_age\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/cncf/issues-age.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 time to close issues opened in selected periods and average number of closed issues opened in those periods.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate data for issues opened in those periods.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select all issues or issues with a specific priority.\u003c/li\u003e\n\u003cli\u003eIssue priority is defined as a label \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/labels_priorities_tags_with_all.sql\" target=\"_blank\"\u003ehere\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eCNCF issues age 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/issues_age.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eissues_age\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/cncf/issues-age.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 time to close issues opened in selected periods and average number of closed issues opened in those periods.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate data for issues opened in those periods.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select all issues or issues with a specific priority.\u003c/li\u003e\n\u003cli\u003eIssue priority is defined as a label \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/labels_priorities_tags_with_all.sql\" target=\"_blank\"\u003ehere\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "multi": false,
          "label": null,
          "name": "docs",
          "options": [],
          "query": "{\"find\": \"terms\", \"field\": \"vvalue\", \"query\": \"type:tvars AND vname: issues_age_docs_html\"}",
          "refresh": 2,
          "skipUrlSync": true,
          "allValue": null,
          "datasource": "es",
          "tags": [],
          "includeAll": false,
          "tagValuesQuery": "",
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "hide": 2,
          "regex": ""
        },
        {
          "label": "",
          "name": "es_period",
          "options": [],
          "type": "query",
          "useTags": false,
          "refresh": 2,
          "skipUrlSync": true,
          "tagsQuery": "",
          "allValue": "",
          "current": {
            "text": "1d",
            "value": "1d"
          },
          "hide": 2,
          "multi": false,
          "regex": "",
          "sort": 0,
          "tags": [],
          "datasource": "es",
          "includeAll": false,
          "query": "{ \"find\": \"terms\", \"field\": \"es_period\", \"query\": \"type: tes_periods AND devstats_period:[[period]]\" } ",
          "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"
      ]
    },
    "gnetId": null,
    "schemaVersion": 16,
    "style": "dark"
  }


slug: issues-opened-closed-by-repository-group
title: Issues Opened/Closed by Repository Group
created: 2024-04-09 11:23:33.048812283+00:00
updated: 2024-04-09 11:23:33.048812363+00:00
uid: 12
data:
  {
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "textColumn": "",
          "datasource": "psql",
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)"
        }
      ]
    },
    "graphTooltip": 0,
    "schemaVersion": 19,
    "tags": [
      "dashboard",
      "cncf"
    ],
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "title": "Issues Opened/Closed by Repository Group",
    "editable": true,
    "style": "dark",
    "templating": {
      "list": [
        {
          "name": "full_name",
          "tagValuesQuery": "",
          "includeAll": false,
          "multi": false,
          "skipUrlSync": true,
          "useTags": false,
          "current": {
            "text": "Istio",
            "value": "Istio"
          },
          "datasource": "psql",
          "hide": 2,
          "regex": "",
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "definition": "",
          "label": null,
          "refresh": 1
        },
        {
          "options": [
            {
              "text": "Day",
              "value": "d",
              "selected": false
            },
            {
              "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"
            }
          ],
          "skipUrlSync": false,
          "allValue": null,
          "hide": 0,
          "includeAll": false,
          "name": "period",
          "type": "custom",
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "label": "Period",
          "multi": false,
          "query": "d,w,m,q,y"
        },
        {
          "definition": "",
          "hide": 0,
          "name": "repogroup_name",
          "refresh": 1,
          "tags": [],
          "allValue": "",
          "includeAll": false,
          "label": "Repository group",
          "multi": false,
          "regex": "",
          "tagsQuery": "",
          "useTags": false,
          "skipUrlSync": false,
          "current": {
            "text": "All",
            "value": "All"
          },
          "datasource": "psql",
          "options": [],
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query"
        },
        {
          "options": [],
          "tags": [],
          "type": "query",
          "label": "",
          "skipUrlSync": true,
          "sort": 0,
          "tagValuesQuery": "",
          "useTags": false,
          "allValue": "",
          "current": {
            "value": "all",
            "text": "all"
          },
          "datasource": "psql",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "regex": "",
          "hide": 2,
          "multi": false,
          "name": "repogroup",
          "tagsQuery": "",
          "definition": "",
          "includeAll": false,
          "refresh": 1
        },
        {
          "regex": "",
          "skipUrlSync": true,
          "allValue": null,
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eIstio issues repository group dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/issues_opened.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e (issues opened).\u003c/li\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/issues_closed.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e (issues closed).\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eIssues repository group\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/istio/issues-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows the number of issues opened and closed in a 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 data in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eIstio issues repository group dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/issues_opened.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e (issues opened).\u003c/li\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/issues_closed.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e (issues closed).\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eIssues repository group\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/istio/issues-repository-group.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows the number of issues opened and closed in a 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 data in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "multi": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'issues_docs_html'",
          "includeAll": false,
          "sort": 0,
          "tags": [],
          "type": "query",
          "useTags": false,
          "refresh": 1,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "label": null,
          "name": "docs"
        }
      ]
    },
    "timezone": "",
    "uid": "12",
    "id": 15,
    "iteration": 1567416900696,
    "links": [],
    "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"
      ]
    },
    "gnetId": null,
    "panels": [
      {
        "description": "Show Issues opened/closed for given repository group",
        "points": false,
        "renderer": "flot",
        "yaxes": [
          {
            "format": "short",
            "label": "Issues",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "percentage": false,
        "pointradius": 5,
        "timeFrom": null,
        "timeRegions": [],
        "bars": true,
        "fillGradient": 0,
        "gridPos": {
          "h": 9,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "links": [],
        "decimals": 2,
        "options": {
          "dataLinks": []
        },
        "lines": false,
        "linewidth": 1,
        "stack": true,
        "steppedLine": false,
        "aliasColors": {
          
        },
        "dashLength": 10,
        "datasource": "psql",
        "legend": {
          "hideZero": false,
          "rightSide": false,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "alignAsTable": true,
          "avg": true,
          "hideEmpty": false,
          "total": true,
          "values": true,
          "current": true,
          "max": true,
          "min": true
        },
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "thresholds": [],
        "transparent": true,
        "id": 3,
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "targets": [
          {
            "measurement": "sig_federation_d",
            "policy": "default",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_opened_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "groupBy": [],
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Issues opened\"\nfrom\n  siopened\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time"
          },
          {
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "sig_federation_d",
            "rawQuery": true,
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "orderByTime": "ASC",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_closed_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Issues closed\"\nfrom\n  siclosed\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "tags": [],
            "format": "time_series",
            "policy": "default",
            "resultFormat": "time_series"
          }
        ],
        "type": "graph",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "dashes": false,
        "fill": 1,
        "seriesOverrides": [],
        "title": "Issues Repository group: [[repogroup_name]] ([[period]])"
      },
      {
        "links": [],
        "stack": true,
        "targets": [
          {
            "dsType": "influxdb",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"PRs opened\"\nfrom\n  spropened\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "orderByTime": "ASC",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_opened_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "alias": "",
            "format": "time_series",
            "group": [],
            "groupBy": [],
            "metricColumn": "none",
            "tags": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "measurement": "sig_federation_d",
            "policy": "default",
            "refId": "A",
            "timeColumn": "time"
          },
          {
            "alias": "",
            "format": "time_series",
            "groupBy": [],
            "measurement": "sig_federation_d",
            "rawQuery": true,
            "resultFormat": "time_series",
            "group": [],
            "policy": "default",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"PRs closed\"\nfrom\n  sprclosed\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_closed_[[period]]\" WHERE $timeFilter",
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "dsType": "influxdb",
            "tags": []
          }
        ],
        "thresholds": [],
        "dashes": false,
        "bars": true,
        "decimals": 2,
        "points": false,
        "timeShift": null,
        "title": "PRs Repository group: [[repogroup_name]] ([[period]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "nullPointMode": "null as zero",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "type": "graph",
        "datasource": "psql",
        "percentage": false,
        "steppedLine": false,
        "id": 13,
        "fillGradient": 0,
        "gridPos": {
          "x": 0,
          "y": 9,
          "h": 9,
          "w": 24
        },
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "hideZero": false,
          "rightSide": false,
          "sort": "avg",
          "current": true,
          "hideEmpty": false,
          "max": true,
          "min": true,
          "show": true,
          "sortDesc": true,
          "total": true,
          "values": true
        },
        "linewidth": 1,
        "options": {
          "dataLinks": []
        },
        "pointradius": 5,
        "transparent": true,
        "dashLength": 10,
        "xaxis": {
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "timeRegions": [],
        "lines": false,
        "renderer": "flot",
        "fill": 1,
        "seriesOverrides": [],
        "spaceLength": 10,
        "timeFrom": null,
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "description": "Show PRs opened/closed for given repository group"
      },
      {
        "spaceLength": 10,
        "timeFrom": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "decimals": 2,
        "lines": true,
        "links": [],
        "fillGradient": 0,
        "percentage": false,
        "renderer": "flot",
        "pointradius": 5,
        "points": false,
        "transparent": true,
        "type": "graph",
        "tooltip": {
          "sort": 2,
          "value_type": "individual",
          "shared": true
        },
        "bars": false,
        "legend": {
          "rightSide": false,
          "total": true,
          "avg": true,
          "current": true,
          "max": true,
          "min": true,
          "sort": "avg",
          "sortDesc": true,
          "values": true,
          "alignAsTable": true,
          "hideEmpty": false,
          "hideZero": false,
          "show": true
        },
        "seriesOverrides": [],
        "title": "Issues Repository group: [[repogroup_name]] ([[period]])",
        "yaxes": [
          {
            "format": "short",
            "label": "Issues",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "dashes": false,
        "timeRegions": [],
        "timeShift": null,
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null
        },
        "steppedLine": false,
        "aliasColors": {
          
        },
        "datasource": "psql",
        "gridPos": {
          "h": 9,
          "w": 24,
          "x": 0,
          "y": 18
        },
        "linewidth": 1,
        "stack": false,
        "targets": [
          {
            "timeColumn": "time",
            "group": [],
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_opened_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Issues opened\"\nfrom\n  siopened\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "A",
            "alias": "",
            "groupBy": [],
            "measurement": "sig_federation_d",
            "tags": [],
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "dsType": "influxdb",
            "format": "time_series",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          },
          {
            "metricColumn": "none",
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "groupBy": [],
            "policy": "default",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Issues closed\"\nfrom\n  siclosed\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "alias": "",
            "measurement": "sig_federation_d",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "format": "time_series",
            "group": [],
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_closed_[[period]]\" WHERE $timeFilter"
          }
        ],
        "fill": 0,
        "id": 12,
        "nullPointMode": "null as zero",
        "options": {
          "dataLinks": []
        },
        "description": "Show Issues opened/closed for given repository group",
        "thresholds": []
      },
      {
        "linewidth": 1,
        "steppedLine": false,
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "dashLength": 10,
        "gridPos": {
          "h": 9,
          "w": 24,
          "x": 0,
          "y": 27
        },
        "nullPointMode": "null as zero",
        "renderer": "flot",
        "spaceLength": 10,
        "targets": [
          {
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_opened_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"PRs opened\"\nfrom\n  spropened\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "A",
            "format": "time_series",
            "groupBy": [],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "group": [],
            "measurement": "sig_federation_d",
            "rawQuery": true,
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "tags": []
          },
          {
            "rawQuery": true,
            "orderByTime": "ASC",
            "policy": "default",
            "groupBy": [],
            "measurement": "sig_federation_d",
            "refId": "B",
            "resultFormat": "time_series",
            "tags": [],
            "alias": "",
            "group": [],
            "timeColumn": "time",
            "format": "time_series",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"PRs closed\"\nfrom\n  sprclosed\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_closed_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "metricColumn": "none"
          }
        ],
        "decimals": 2,
        "links": [],
        "lines": true,
        "timeFrom": null,
        "bars": false,
        "id": 14,
        "type": "graph",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "points": false,
        "thresholds": [],
        "percentage": false,
        "title": "PRs Repository group: [[repogroup_name]] ([[period]])",
        "aliasColors": {
          
        },
        "legend": {
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "hideZero": false,
          "rightSide": false,
          "show": true,
          "sortDesc": true,
          "total": true,
          "hideEmpty": false,
          "max": true,
          "min": true,
          "sort": "avg",
          "values": true
        },
        "fillGradient": 0,
        "options": {
          "dataLinks": []
        },
        "seriesOverrides": [],
        "stack": false,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "datasource": "psql",
        "fill": 0,
        "description": "Show PRs opened/closed for given repository group",
        "timeRegions": [],
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "transparent": true,
        "dashes": false,
        "pointradius": 5
      },
      {
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 36
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "options": {
          
        },
        "title": "Dashboard documentation"
      }
    ],
    "version": 4
  }


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


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


slug: new-and-episodic-issue-creators
title: New and Episodic Issue Creators
created: 2024-04-09 11:23:33.063594852+00:00
updated: 2024-04-09 11:23:33.063594932+00:00
uid: 13
data:
  {
    "id": 50,
    "links": [],
    "style": "dark",
    "templating": {
      "list": [
        {
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "multi": false,
          "name": "full_name",
          "options": [],
          "allValue": null,
          "current": {
            
          },
          "datasource": "psql",
          "includeAll": false,
          "label": null,
          "tags": []
        },
        {
          "allValue": null,
          "current": {
            "tags": [],
            "text": "28 Days MA",
            "value": "d28"
          },
          "includeAll": false,
          "multi": false,
          "name": "period",
          "skipUrlSync": false,
          "type": "custom",
          "hide": 0,
          "label": "Period",
          "options": [
            {
              "selected": true,
              "text": "28 Days MA",
              "value": "d28"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,w,m,q,y"
        },
        {
          "allValue": null,
          "label": "Repository group",
          "refresh": 1,
          "skipUrlSync": false,
          "tags": [],
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "sort": 1,
          "tagValuesQuery": "",
          "type": "query",
          "current": {
            
          },
          "name": "repogroup_name",
          "options": [],
          "regex": "",
          "tagsQuery": "",
          "useTags": false,
          "datasource": "psql",
          "hide": 0,
          "includeAll": false
        },
        {
          "tagValuesQuery": "",
          "current": {
            
          },
          "hide": 2,
          "includeAll": false,
          "label": null,
          "name": "repogroup",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "tagsQuery": "",
          "datasource": "psql",
          "multi": false,
          "skipUrlSync": true,
          "regex": "",
          "type": "query",
          "allValue": null,
          "options": [],
          "sort": 0,
          "tags": [],
          "useTags": false
        },
        {
          "datasource": "psql",
          "multi": false,
          "options": [],
          "type": "query",
          "allValue": null,
          "hide": 2,
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'new_and_episodic_issues_docs_html'",
          "sort": 0,
          "tags": [],
          "current": {
            
          },
          "includeAll": false,
          "regex": "",
          "tagValuesQuery": "",
          "label": null,
          "refresh": 1,
          "skipUrlSync": true,
          "tagsQuery": "",
          "useTags": false
        }
      ]
    },
    "time": {
      "from": "now-2y",
      "to": "now-1M"
    },
    "timezone": "",
    "version": 2,
    "gnetId": null,
    "refresh": false,
    "iteration": 1529597907376,
    "panels": [
      {
        "aliasColors": {
          
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 22
        },
        "lines": true,
        "stack": false,
        "legend": {
          "avg": true,
          "current": true,
          "hideEmpty": false,
          "rightSide": false,
          "values": true,
          "alignAsTable": false,
          "hideZero": false,
          "max": true,
          "min": true,
          "show": true,
          "total": false
        },
        "timeFrom": null,
        "tooltip": {
          "sort": 0,
          "value_type": "individual",
          "shared": true
        },
        "yaxes": [
          {
            "show": true,
            "format": "none",
            "label": "Issues",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "label": "Issue creators",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "none"
          }
        ],
        "dashes": false,
        "seriesOverrides": [
          {
            "yaxis": 2,
            "alias": "New contributors"
          },
          {
            "alias": "Episodic contributors",
            "yaxis": 2
          }
        ],
        "targets": [
          {
            "format": "time_series",
            "groupBy": [],
            "tags": [],
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "measurement": "reviewers_d",
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"new_contributors_[[repogroup]]_prs_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "A",
            "alias": "",
            "rawSql": "select\n  time,\n  value as \"Number of issues from new contributors\"\nfrom\n  snew_issues\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_iss[[repogroup]]iss'\norder by\n  time",
            "hide": false,
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          },
          {
            "groupBy": [],
            "tags": [],
            "rawQuery": true,
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"new_contributors_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "measurement": "reviewers_d",
            "rawSql": "select\n  time,\n  value as \"New issue creators\"\nfrom\n  snew_issues\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_iss[[repogroup]]contrib'\norder by\n  time",
            "resultFormat": "time_series",
            "policy": "autogen",
            "alias": "",
            "format": "time_series",
            "hide": false
          },
          {
            "rawQuery": true,
            "format": "time_series",
            "groupBy": [],
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "hide": false,
            "refId": "C",
            "tags": [],
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"episodic_contributors_[[repogroup]]_prs_[[period]]\" WHERE $timeFilter",
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"Number of issues from episodic contributors\"\nfrom\n  sepisodic_issues\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_iss[[repogroup]]iss'\norder by\n  time",
            "alias": "",
            "dsType": "influxdb"
          },
          {
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"episodic_contributors_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "format": "time_series",
            "groupBy": [],
            "measurement": "reviewers_d",
            "rawQuery": true,
            "dsType": "influxdb",
            "hide": false,
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"Episodic issue creators\"\nfrom\n  sepisodic_issues\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_iss[[repogroup]]contrib'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "refId": "D"
          }
        ],
        "dashLength": 10,
        "fill": 1,
        "type": "graph",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "decimals": 0,
        "transparent": true,
        "spaceLength": 10,
        "description": "Displays number of new/episodic PRs and number of new/episodic PRs authors.\nThe episodic author is defined as someone who hasn't created PRs in the last 3 months and no more than 12 PRs overall.",
        "nullPointMode": "null",
        "percentage": false,
        "points": false,
        "renderer": "flot",
        "timeShift": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "datasource": "psql",
        "id": 1,
        "pointradius": 1,
        "steppedLine": false,
        "linewidth": 1,
        "links": [],
        "thresholds": [],
        "title": "New/episodic issues ([[repogroup_name]], [[period]])"
      },
      {
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11
      }
    ],
    "schemaVersion": 16,
    "uid": "13",
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        },
        {
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "tagsColumn": "title,description",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "hide": false,
          "enable": true,
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "type": "alert",
          "datasource": "psql"
        }
      ]
    },
    "editable": true,
    "graphTooltip": 0,
    "tags": [
      "dashboard",
      "cncf",
      "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": "New and Episodic Issue Creators"
  }


slug: new-and-episodic-pr-contributors
title: New and Episodic PR Contributors
created: 2024-04-09 11:23:33.068726661+00:00
updated: 2024-04-09 11:23:33.068726721+00:00
uid: 14
data:
  {
    "iteration": 1529597907745,
    "templating": {
      "list": [
        {
          "label": null,
          "multi": false,
          "datasource": "psql",
          "name": "full_name",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "hide": 2,
          "refresh": 1,
          "sort": 0,
          "tags": [],
          "current": {
            
          },
          "includeAll": false,
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "allValue": null
        },
        {
          "allValue": null,
          "current": {
            "tags": [],
            "text": "28 Days MA",
            "value": "d28"
          },
          "hide": 0,
          "name": "period",
          "type": "custom",
          "includeAll": false,
          "label": "Period",
          "multi": false,
          "options": [
            {
              "selected": true,
              "text": "28 Days MA",
              "value": "d28"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,w,m,q,y",
          "skipUrlSync": false
        },
        {
          "name": "repogroup_name",
          "regex": "",
          "sort": 1,
          "hide": 0,
          "includeAll": false,
          "label": "Repository group",
          "refresh": 1,
          "skipUrlSync": false,
          "type": "query",
          "datasource": "psql",
          "multi": false,
          "options": [],
          "current": {
            
          },
          "tagsQuery": "",
          "tags": [],
          "useTags": false,
          "allValue": null,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tagValuesQuery": ""
        },
        {
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tags": [],
          "tagsQuery": "",
          "multi": false,
          "datasource": "psql",
          "hide": 2,
          "name": "repogroup",
          "regex": "",
          "current": {
            
          },
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "options": [],
          "includeAll": false,
          "label": null,
          "allValue": null
        },
        {
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'new_and_episodic_prs_docs_html'",
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "datasource": "psql",
          "refresh": 1,
          "tagsQuery": "",
          "label": null,
          "multi": false,
          "skipUrlSync": true,
          "tags": [],
          "current": {
            
          },
          "includeAll": false,
          "name": "docs",
          "options": [],
          "regex": "",
          "allValue": null
        }
      ]
    },
    "time": {
      "from": "now-2y",
      "to": "now-1M"
    },
    "version": 2,
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        },
        {
          "showIn": 0,
          "datasource": "psql",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "enable": true,
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "tagsColumn": "title,description",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "type": "alert"
        }
      ]
    },
    "editable": true,
    "gnetId": null,
    "links": [],
    "schemaVersion": 16,
    "graphTooltip": 0,
    "id": 49,
    "panels": [
      {
        "lines": true,
        "points": false,
        "renderer": "flot",
        "spaceLength": 10,
        "steppedLine": false,
        "aliasColors": {
          
        },
        "bars": false,
        "legend": {
          "min": true,
          "avg": true,
          "hideEmpty": false,
          "max": true,
          "rightSide": false,
          "show": true,
          "total": false,
          "values": true,
          "alignAsTable": false,
          "current": true,
          "hideZero": false
        },
        "tooltip": {
          "sort": 0,
          "value_type": "individual",
          "shared": true
        },
        "linewidth": 1,
        "transparent": true,
        "type": "graph",
        "dashes": false,
        "description": "Displays the number of new/episodic issues and the number of new/episodic issues authors.\nThe episodic author is defined as someone who hasn't created issue in the last 3 months and no more than 12 issues overall.",
        "percentage": false,
        "targets": [
          {
            "format": "time_series",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "tags": [],
            "rawSql": "select\n  time,\n  value as \"Number of PRs from new contributors\"\nfrom\n  snew_contributors\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_contrib[[repogroup]]prs'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "hide": false,
            "policy": "autogen",
            "measurement": "reviewers_d",
            "rawQuery": true,
            "refId": "A"
          },
          {
            "alias": "",
            "dsType": "influxdb",
            "measurement": "reviewers_d",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "groupBy": [],
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"New contributors\"\nfrom\n  snew_contributors\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'new_contrib[[repogroup]]contrib'\norder by\n  time",
            "format": "time_series",
            "hide": false,
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "refId": "B"
          },
          {
            "alias": "",
            "format": "time_series",
            "orderByTime": "ASC",
            "refId": "C",
            "hide": false,
            "measurement": "reviewers_d",
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "resultFormat": "time_series",
            "tags": [],
            "dsType": "influxdb",
            "groupBy": [],
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Number of PRs from episodic contributors\"\nfrom\n  sepisodic_contributors\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_contrib[[repogroup]]prs'\norder by\n  time"
          },
          {
            "format": "time_series",
            "groupBy": [],
            "hide": false,
            "orderByTime": "ASC",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Episodic contributors\"\nfrom\n  sepisodic_contributors\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'epis_contrib[[repogroup]]contrib'\norder by\n  time",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "dsType": "influxdb",
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "measurement": "reviewers_d",
            "policy": "autogen",
            "refId": "D",
            "resultFormat": "time_series",
            "tags": [],
            "alias": ""
          }
        ],
        "thresholds": [],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "gridPos": {
          "y": 0,
          "h": 22,
          "w": 24,
          "x": 0
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "datasource": "psql",
        "links": [],
        "nullPointMode": "null",
        "timeShift": null,
        "dashLength": 10,
        "id": 1,
        "pointradius": 1,
        "title": "New/episodic PRs ([[repogroup_name]], [[period]])",
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "none",
            "label": "PRs",
            "logBase": 1
          },
          {
            "format": "none",
            "label": "PR creators",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "decimals": 0,
        "fill": 1,
        "seriesOverrides": [
          {
            "alias": "New issue creators",
            "yaxis": 2
          },
          {
            "alias": "Episodic issue creators",
            "yaxis": 2
          }
        ],
        "stack": false,
        "timeFrom": null
      },
      {
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation"
      }
    ],
    "tags": [
      "dashboard",
      "cncf",
      "issues"
    ],
    "refresh": false,
    "style": "dark",
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "timezone": "",
    "title": "New and Episodic PR Contributors",
    "uid": "14"
  }


slug: new-contributors-table
title: New Contributors Table
created: 2024-04-09 11:23:33.07375416+00:00
updated: 2024-04-09 11:23:33.073754221+00:00
uid: 52
data:
  {
    "gnetId": null,
    "links": [],
    "style": "dark",
    "title": "New Contributors Table",
    "version": 4,
    "editable": true,
    "id": 64,
    "tags": [
      "dashboard",
      "cncf",
      "table"
    ],
    "timezone": "",
    "uid": "52",
    "annotations": {
      "list": [
        {
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1
        }
      ]
    },
    "refresh": false,
    "templating": {
      "list": [
        {
          "useTags": false,
          "allValue": null,
          "refresh": 1,
          "regex": "",
          "current": {
            
          },
          "datasource": "psql",
          "type": "query",
          "multi": false,
          "name": "full_name",
          "options": [],
          "skipUrlSync": true,
          "tags": [],
          "hide": 2,
          "includeAll": false,
          "label": null,
          "tagsQuery": "",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "tagValuesQuery": ""
        },
        {
          "hide": 0,
          "sort": 0,
          "type": "query",
          "datasource": "psql",
          "refresh": 1,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "label": "Repository group",
          "options": [],
          "regex": "",
          "skipUrlSync": false,
          "allValue": null,
          "includeAll": false,
          "multi": false,
          "name": "repogroup_name",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tags": [],
          "current": {
            "value": "All",
            "text": "All"
          }
        },
        {
          "allValue": null,
          "hide": 2,
          "regex": "",
          "tagsQuery": "",
          "sort": 0,
          "includeAll": false,
          "label": "",
          "name": "repogroup",
          "options": [],
          "type": "query",
          "current": {
            "text": "all",
            "value": "all"
          },
          "multi": false,
          "refresh": 1,
          "skipUrlSync": true,
          "useTags": false,
          "datasource": "psql",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tagValuesQuery": "",
          "tags": []
        },
        {
          "current": {
            "isNone": true,
            "text": "None",
            "value": ""
          },
          "includeAll": false,
          "multi": false,
          "sort": 0,
          "type": "query",
          "allValue": null,
          "query": "select value_s from gha_vars where name = 'new_contributors_docs_html'",
          "refresh": 1,
          "regex": "",
          "hide": 2,
          "skipUrlSync": true,
          "tags": [],
          "tagsQuery": "",
          "tagValuesQuery": "",
          "useTags": false,
          "datasource": "psql",
          "label": null,
          "name": "docs",
          "options": []
        }
      ]
    },
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "graphTooltip": 0,
    "iteration": 1541500383578,
    "panels": [
      {
        "id": 1,
        "links": [],
        "pageSize": 30,
        "scroll": true,
        "styles": [
          {
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 2,
            "type": "string",
            "unit": "short",
            "alias": "Contributor",
            "pattern": "str",
            "preserveFormat": false,
            "thresholds": []
          },
          {
            "alias": "First contribution",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "colorMode": null,
            "dateFormat": "MM/DD/YY h:mm:ss a",
            "decimals": 0,
            "pattern": "dt",
            "thresholds": [],
            "type": "date",
            "unit": "none"
          },
          {
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 2,
            "mappingType": 1,
            "pattern": "",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "thresholds": [],
            "type": "number"
          },
          {
            "decimals": 0,
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ]
          }
        ],
        "targets": [
          {
            "policy": "default",
            "rawSql": "select str, dt from \"snew_contributors_data\" where $__timeFilter(dt) and series = 'ncd[[repogroup]]' and period = 'd'",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "query": "",
            "rawQuery": true,
            "refId": "A",
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "tags": []
          }
        ],
        "description": "",
        "fontSize": "90%",
        "sort": {
          "col": 1,
          "desc": false
        },
        "columns": [],
        "hideTimeOverride": false,
        "showHeader": true,
        "timeFrom": null,
        "transform": "table",
        "transparent": false,
        "type": "table",
        "datasource": "psql",
        "gridPos": {
          "y": 0,
          "h": 25,
          "w": 24,
          "x": 0
        },
        "timeShift": null,
        "title": "[[full_name]] New contributors table (Repository group [[repogroup_name]])"
      },
      {
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 25
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}"
      }
    ],
    "schemaVersion": 16,
    "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": false
    }
  }


slug: new-prs-in-repository-groups
title: New PRs in Repository Groups
created: 2024-04-09 11:23:33.078930473+00:00
updated: 2024-04-09 11:23:33.078930534+00:00
uid: 15
data:
  {
    "graphTooltip": 0,
    "refresh": false,
    "uid": "15",
    "timezone": "",
    "version": 2,
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "limit": 100,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "tagsColumn": "title,description",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "type": "alert",
          "datasource": "psql",
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)"
        }
      ]
    },
    "editable": true,
    "panels": [
      {
        "fill": 1,
        "id": 1,
        "legend": {
          "total": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "hideZero": false,
          "rightSide": false,
          "hideEmpty": false,
          "max": true,
          "min": true,
          "show": true,
          "values": true
        },
        "spaceLength": 10,
        "xaxis": {
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "timeShift": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": true,
        "datasource": "psql",
        "options": {
          "dataLinks": []
        },
        "renderer": "flot",
        "stack": false,
        "yaxes": [
          {
            "format": "none",
            "label": "New PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "none",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "hiddenSeries": false,
        "nullPointMode": "null",
        "pointradius": 5,
        "seriesOverrides": [
          {
            "alias": "/including bots/",
            "bars": false,
            "fill": 0,
            "lines": true
          }
        ],
        "title": "New PRs created in [[repogroup_name]] repository group ([[period]])",
        "timeRegions": [],
        "description": "Number of new pull requests created in [[repogroup]] repository group.",
        "fillGradient": 0,
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "linewidth": 1,
        "steppedLine": false,
        "timeFrom": null,
        "aliasColors": {
          
        },
        "dashLength": 10,
        "type": "graph",
        "dashes": false,
        "links": [],
        "percentage": false,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "decimals": 0,
        "lines": false,
        "points": false,
        "targets": [
          {
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "alias": "",
            "format": "time_series",
            "group": [],
            "measurement": "reviewers_d",
            "policy": "autogen",
            "timeColumn": "time",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [],
            "query": "",
            "rawSql": "select\n  time,\n  value as \"[[repogroup_name]] (excluding bots)\"\nfrom\n  snew_prs\nwhere\n  $__timeFilter(time)\n  and series = 'new_prs[[repogroup]]'\n  and period = '[[period]]'\norder by\n  time",
            "hide": false,
            "tags": []
          },
          {
            "group": [],
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "measurement": "reviewers_d",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "policy": "autogen",
            "refId": "B",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "alias": "",
            "query": "",
            "rawSql": "select\n  time,\n  value as \"[[repogroup_name]] (including bots)\"\nfrom\n  snew_prs\nwhere\n  $__timeFilter(time)\n  and series = 'new_prs_bots[[repogroup]]'\n  and period = '[[period]]'\norder by\n  time",
            "tags": [],
            "format": "time_series",
            "groupBy": [],
            "hide": false,
            "timeColumn": "time"
          }
        ],
        "thresholds": []
      },
      {
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 22,
          "h": 10
        },
        "links": [],
        "mode": "html",
        "content": "${docs:raw}",
        "datasource": null,
        "id": 11,
        "options": {
          
        },
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "schemaVersion": 21,
    "style": "dark",
    "time": {
      "from": "now-3y",
      "to": "now"
    },
    "id": 23,
    "iteration": 1579677884548,
    "links": [],
    "tags": [
      "dashboard",
      "cncf"
    ],
    "title": "New PRs in Repository Groups",
    "gnetId": null,
    "templating": {
      "list": [
        {
          "options": [
            {
              "selected": false,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "Week",
              "value": "w"
            },
            {
              "value": "m",
              "selected": false,
              "text": "Month"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ],
          "skipUrlSync": false,
          "allValue": null,
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "name": "period",
          "current": {
            "tags": [],
            "text": "Week",
            "value": "w"
          },
          "label": "Period",
          "query": "d,d7,w,m,q,y",
          "type": "custom"
        },
        {
          "includeAll": false,
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": "",
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "multi": false,
          "tagValuesQuery": "",
          "tags": [],
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "label": null,
          "refresh": 1,
          "useTags": false,
          "allValue": null,
          "name": "full_name",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "type": "query"
        },
        {
          "tagValuesQuery": "",
          "definition": "",
          "hide": 0,
          "label": "Repository group",
          "name": "repogroup_name",
          "options": [],
          "regex": "",
          "sort": 0,
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "refresh": 1,
          "skipUrlSync": false,
          "tagsQuery": "",
          "type": "query",
          "current": {
            "tags": [],
            "text": "All",
            "value": "All"
          },
          "includeAll": false,
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tags": []
        },
        {
          "allValue": null,
          "hide": 2,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tagValuesQuery": "",
          "type": "query",
          "datasource": "psql",
          "label": "",
          "options": [],
          "sort": 0,
          "name": "repogroup",
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "text": "all",
            "value": "all"
          },
          "definition": "",
          "includeAll": false,
          "multi": false,
          "skipUrlSync": true,
          "tags": []
        },
        {
          "allValue": null,
          "definition": "",
          "hide": 2,
          "multi": false,
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "includeAll": false,
          "options": [],
          "refresh": 1,
          "sort": 0,
          "tagValuesQuery": "",
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF new PRs 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/new_prs.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003enew_prs\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/new-prs.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 new PRs opened in a given repository group or in all repository groups.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will count opened PRs in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF new PRs 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/new_prs.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003enew_prs\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/new-prs.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 new PRs opened in a given repository group or in all repository groups.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will count opened PRs 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"
          },
          "query": "select value_s from gha_vars where name = 'new_prs_docs_html'",
          "regex": "",
          "datasource": "psql",
          "label": null,
          "name": "docs",
          "skipUrlSync": true,
          "useTags": false
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    }
  }


slug: open-pr-age-by-repository-group
title: Open PR Age by Repository Group
created: 2024-04-09 11:23:33.083284192+00:00
updated: 2024-04-09 11:23:33.083284242+00:00
uid: 19
data:
  {
    "schemaVersion": 16,
    "title": "Open PR Age by Repository Group",
    "graphTooltip": 0,
    "refresh": false,
    "uid": "19",
    "panels": [
      {
        "type": "singlestat",
        "valueName": "current",
        "mappingType": 1,
        "title": "Current median age of opened PRs in [[repogroup_name]] repository group ([[period]])",
        "colorValue": false,
        "format": "none",
        "gauge": {
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0
        },
        "interval": null,
        "postfixFontSize": "50%",
        "description": "Current median age of opened PRs.",
        "datasource": "psql",
        "tableColumn": "descr",
        "valueFontSize": "50%",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "rangeMaps": [
          {
            "to": "null",
            "from": "null",
            "text": "N/A"
          }
        ],
        "targets": [
          {
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "rawSql": "select\n  descr\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]]m'\norder by\n  time desc\nlimit 1",
            "tags": [],
            "alias": "",
            "orderByTime": "ASC",
            "query": "SELECT \"descr\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "format": "table"
          }
        ],
        "links": [],
        "nullPointMode": "connected",
        "prefixFontSize": "50%",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "cacheTimeout": null,
        "maxDataPoints": 100,
        "prefix": "",
        "thresholds": "",
        "colorBackground": false,
        "id": 2,
        "nullText": null,
        "postfix": "",
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 3,
          "w": 14
        }
      },
      {
        "nullText": null,
        "prefix": "",
        "targets": [
          {
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawSql": "select\n  time, value\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]]n'\norder by\n  time desc\nlimit 1",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": []
          }
        ],
        "thresholds": "",
        "datasource": "psql",
        "id": 4,
        "maxDataPoints": 100,
        "valueMaps": [
          {
            "op": "=",
            "text": "N/A",
            "value": "null"
          }
        ],
        "format": "none",
        "interval": null,
        "mappingType": 1,
        "title": "Current average number of opened PRs in [[repogroup_name]] repository group ([[period]])",
        "postfixFontSize": "50%",
        "prefixFontSize": "50%",
        "nullPointMode": "connected",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "valueFontSize": "50%",
        "colorValue": false,
        "gridPos": {
          "h": 3,
          "w": 10,
          "x": 14,
          "y": 0
        },
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "colorBackground": false,
        "links": [],
        "valueName": "current",
        "description": "Current average number of opened PRs.",
        "postfix": "",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "tableColumn": "descr",
        "type": "singlestat",
        "cacheTimeout": null,
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "rgba(50, 172, 45, 0.97)"
        ],
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        }
      },
      {
        "nullPointMode": "null",
        "pointradius": 1,
        "seriesOverrides": [
          {
            "alias": "Median age of opened PRs",
            "fill": 2,
            "lines": true,
            "linewidth": 0,
            "yaxis": 1
          },
          {
            "fill": 0,
            "lines": true,
            "linewidth": 1,
            "yaxis": 2,
            "alias": "Average number of PRs opened"
          }
        ],
        "stack": false,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "type": "graph",
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null
        },
        "timeShift": null,
        "fill": 3,
        "id": 1,
        "thresholds": [],
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 3,
          "h": 13
        },
        "percentage": false,
        "steppedLine": false,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "bars": false,
        "lines": false,
        "renderer": "flot",
        "spaceLength": 10,
        "targets": [
          {
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "alias": "",
            "groupBy": [],
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Average number of PRs opened\"\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]]n'\norder by\n  time",
            "format": "time_series",
            "policy": "autogen",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "hide": false,
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "tags": []
          },
          {
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "groupBy": [],
            "hide": false,
            "policy": "autogen",
            "rawQuery": true,
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"Median age of opened PRs\"\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]]m'\norder by\n  time",
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "resultFormat": "time_series"
          }
        ],
        "aliasColors": {
          
        },
        "description": "Median age and number of pull requests created in [[repogroup]] repository group.",
        "linewidth": 0,
        "transparent": false,
        "dashLength": 10,
        "dashes": false,
        "decimals": 2,
        "legend": {
          "hideEmpty": false,
          "min": true,
          "values": true,
          "max": true,
          "rightSide": false,
          "show": true,
          "sideWidth": null,
          "alignAsTable": false,
          "avg": true,
          "current": true,
          "hideZero": false,
          "total": false
        },
        "title": "Number/Age of Pull requests in [[repogroup_name]] repository group ([[period]])",
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "h",
            "label": "Median PRs age",
            "logBase": 1
          },
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Average opened PRs number",
            "logBase": 1,
            "max": null
          }
        ],
        "datasource": "psql",
        "links": [],
        "points": false,
        "timeFrom": null
      },
      {
        "transform": "table",
        "columns": [],
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 16
        },
        "id": 3,
        "showHeader": true,
        "sort": {
          "col": 0,
          "desc": true
        },
        "links": [],
        "scroll": true,
        "styles": [
          {
            "alias": "Time",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date"
          },
          {
            "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": "number",
            "unit": "short",
            "alias": ""
          }
        ],
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "type": "mean",
                  "params": []
                }
              ]
            ],
            "alias": "",
            "format": "table",
            "orderByTime": "ASC",
            "policy": "default",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median opened PRs age\"\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]]m'\norder by\n  time",
            "refId": "A",
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "query": "SELECT \"descr\" FROM \"autogen\".\"prs_age_[[repogroup]]_median_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawQuery": true,
            "resultFormat": "time_series",
            "tags": []
          },
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "format": "table",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_age_[[repogroup]]_number_[[period]][[aggregate]]\" WHERE $timeFilter",
            "rawSql": "select\n  time as \"Time\",\n  value as \"Average number of opened PRs\"\nfrom\n  sprs_age\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'prs_age[[repogroup]]n'\norder by\n  time",
            "refId": "B",
            "resultFormat": "time_series",
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true
          }
        ],
        "transparent": false,
        "type": "table",
        "datasource": "psql",
        "description": "Median age and number of pull requests created in [[repogroup]] repository group.",
        "fontSize": "90%",
        "pageSize": 10,
        "title": "Number/Age of Pull requests in [[repogroup_name]] repository group ([[period]])"
      },
      {
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 27
        }
      }
    ],
    "id": 44,
    "iteration": 1529597917208,
    "links": [],
    "style": "dark",
    "time": {
      "from": "now-1y",
      "to": "now-1w"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "",
    "gnetId": null,
    "version": 2,
    "editable": true,
    "tags": [
      "dashboard",
      "cncf"
    ],
    "templating": {
      "list": [
        {
          "includeAll": false,
          "multi": false,
          "skipUrlSync": false,
          "type": "custom",
          "hide": 0,
          "current": {
            "text": "7 Days MA",
            "value": "d7",
            "tags": []
          },
          "label": "Period",
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "text": "Month",
              "value": "m",
              "selected": false
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,d7,w,m,q,y",
          "allValue": null
        },
        {
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "includeAll": false,
          "label": "Repository group",
          "name": "repogroup_name",
          "type": "query",
          "multi": false,
          "regex": "",
          "useTags": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "sort": 0,
          "allValue": null,
          "current": {
            "text": "All",
            "value": "All"
          },
          "datasource": "psql",
          "hide": 0,
          "options": [],
          "tags": []
        },
        {
          "datasource": "psql",
          "label": "",
          "multi": false,
          "name": "repogroup",
          "type": "query",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tags": [],
          "useTags": false,
          "allValue": null,
          "hide": 2,
          "includeAll": false,
          "options": [],
          "refresh": 1,
          "tagValuesQuery": "",
          "current": {
            "text": "all",
            "value": "all"
          },
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": ""
        },
        {
          "datasource": "psql",
          "sort": 0,
          "tags": [],
          "options": [],
          "tagsQuery": "",
          "current": {
            
          },
          "label": null,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "useTags": false,
          "allValue": null,
          "hide": 2,
          "includeAll": false,
          "tagValuesQuery": "",
          "type": "query",
          "name": "full_name",
          "refresh": 1,
          "regex": ""
        },
        {
          "tagValuesQuery": "",
          "datasource": "psql",
          "includeAll": false,
          "options": [],
          "refresh": 1,
          "hide": 2,
          "multi": false,
          "useTags": false,
          "tags": [],
          "allValue": null,
          "current": {
            
          },
          "name": "docs",
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "label": null,
          "query": "select value_s from gha_vars where name = 'prs_age_docs_html'",
          "regex": "",
          "skipUrlSync": true
        }
      ]
    },
    "annotations": {
      "list": [
        {
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts"
        },
        {
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "tagsColumn": "title,description",
          "textColumn": "",
          "datasource": "psql",
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "type": "alert",
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "titleColumn": "[[full_name]] release"
        }
      ]
    }
  }


slug: opened-to-merged
title: Opened to Merged
created: 2024-04-09 11:23:33.087543612+00:00
updated: 2024-04-09 11:23:33.087543682+00:00
uid: 16
data:
  {
    "schemaVersion": 16,
    "time": {
      "from": "now-6M",
      "to": "now"
    },
    "timezone": "",
    "iteration": 1529597912442,
    "links": [],
    "panels": [
      {
        "points": false,
        "targets": [
          {
            "alias": "",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"85th percentile time opened to merged (in hours)\"\nfrom\n  sopened_to_merged\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'open2merge[[repogroup]]p85'\norder by\n  time",
            "resultFormat": "time_series",
            "tags": [],
            "format": "time_series",
            "groupBy": [],
            "policy": "default",
            "query": "SELECT \"value\" FROM \"opened_to_merged_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          },
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "orderByTime": "ASC",
            "rawQuery": true,
            "resultFormat": "time_series",
            "tags": [],
            "format": "time_series",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"opened_to_merged_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"Median time opened to merged (in hours)\"\nfrom\n  sopened_to_merged\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'open2merge[[repogroup]]med'\norder by\n  time",
            "refId": "B"
          },
          {
            "rawQuery": true,
            "refId": "C",
            "resultFormat": "time_series",
            "query": "SELECT \"value\" FROM \"opened_to_merged_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  value as \"15th percentile time opened to merged (in hours)\"\nfrom\n  sopened_to_merged\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'open2merge[[repogroup]]p15'\norder by\n  time",
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": []
          }
        ],
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "nullPointMode": "null",
        "timeFrom": null,
        "type": "graph",
        "bars": false,
        "decimals": 2,
        "description": "Median, 15th and 85th percentile of number of hours from open to merging for PR",
        "stack": false,
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "h",
            "label": "Opened to merged (median \u0026 85th percentile)",
            "logBase": 10
          },
          {
            "format": "short",
            "label": "Opened to merged (15th percentile)",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "percentage": false,
        "thresholds": [],
        "aliasColors": {
          
        },
        "lines": true,
        "links": [],
        "legend": {
          "max": true,
          "min": true,
          "show": true,
          "total": false,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "rightSide": false
        },
        "renderer": "flot",
        "spaceLength": 10,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 13,
          "w": 24
        },
        "id": 2,
        "steppedLine": false,
        "linewidth": 1,
        "dashLength": 10,
        "dashes": false,
        "datasource": "psql",
        "timeShift": null,
        "title": "Time from open to merge ([[repogroup_name]], [[period]])",
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 0
        },
        "fill": 0,
        "pointradius": 5,
        "seriesOverrides": [
          {
            "alias": "15th percentile time opened to merged (in hours)",
            "yaxis": 2
          }
        ]
      },
      {
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 13
        },
        "links": [],
        "showHeader": true,
        "targets": [
          {
            "rawSql": "select\n  time as \"Time\",\n  descr as \"Median\"\nfrom\n  sopened_to_merged\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'open2merge[[repogroup]]med'\norder by\n  time",
            "refId": "A",
            "resultFormat": "time_series",
            "format": "table",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"opened_to_merged_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "alias": "",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": []
          },
          {
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "refId": "B",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "rawQuery": true,
            "rawSql": "select\n  time as \"Time\",\n  descr as \"15th percentile\"\nfrom\n  sopened_to_merged\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'open2merge[[repogroup]]p15'\norder by\n  time",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"opened_to_merged_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "tags": []
          },
          {
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "refId": "C",
            "resultFormat": "time_series",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "query": "SELECT \"descr\" FROM \"opened_to_merged_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time as \"Time\",\n  descr as \"85th percentile\"\nfrom\n  sopened_to_merged\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'open2merge[[repogroup]]p85'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": []
          }
        ],
        "columns": [],
        "description": "Time PRs from open to merge",
        "fontSize": "90%",
        "pageSize": 10,
        "scroll": true,
        "datasource": "psql",
        "sort": {
          "col": 0,
          "desc": true
        },
        "transform": "table",
        "id": 3,
        "styles": [
          {
            "alias": "Time",
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date"
          },
          {
            "unit": "short",
            "alias": "",
            "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": "number"
          }
        ],
        "title": "Time from open to merge ([[repogroup_name]], [[period]])",
        "type": "table"
      },
      {
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "y": 22,
          "h": 10,
          "w": 24,
          "x": 0
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation"
      }
    ],
    "id": 47,
    "tags": [
      "dashboard",
      "cncf"
    ],
    "version": 3,
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        },
        {
          "showIn": 0,
          "enable": true,
          "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)",
          "limit": 100,
          "name": "Releases",
          "tagsColumn": "title,description",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "type": "alert"
        }
      ]
    },
    "graphTooltip": 0,
    "title": "Opened to Merged",
    "templating": {
      "list": [
        {
          "label": null,
          "includeAll": false,
          "current": {
            "text": "CNCF",
            "value": "CNCF"
          },
          "regex": "",
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "multi": false,
          "name": "full_name",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "hide": 2,
          "tagValuesQuery": "",
          "type": "query",
          "datasource": "psql"
        },
        {
          "multi": false,
          "allValue": null,
          "hide": 0,
          "includeAll": false,
          "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",
          "skipUrlSync": false,
          "type": "custom",
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "label": "Period",
          "name": "period"
        },
        {
          "allValue": null,
          "hide": 0,
          "name": "repogroup_name",
          "tags": [],
          "useTags": false,
          "tagValuesQuery": "",
          "type": "query",
          "current": {
            "text": "All",
            "value": "All"
          },
          "datasource": "psql",
          "options": [],
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "includeAll": false,
          "label": "Repository group",
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "skipUrlSync": false,
          "sort": 0
        },
        {
          "skipUrlSync": true,
          "current": {
            "value": "all",
            "text": "all"
          },
          "multi": false,
          "options": [],
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "hide": 2,
          "refresh": 1,
          "includeAll": false,
          "label": "",
          "regex": "",
          "sort": 0,
          "tags": [],
          "type": "query",
          "useTags": false,
          "allValue": null,
          "name": "repogroup",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'"
        },
        {
          "datasource": "psql",
          "refresh": 1,
          "tagsQuery": "",
          "regex": "",
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "current": {
            
          },
          "hide": 2,
          "includeAll": false,
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'opened_to_merged_docs_html'",
          "tagValuesQuery": "",
          "allValue": null,
          "label": null,
          "multi": false,
          "options": [],
          "sort": 0,
          "tags": []
        }
      ]
    },
    "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": "16",
    "editable": true,
    "gnetId": null,
    "style": "dark"
  }


slug: overall-project-statistics-table
title: Overall Project Statistics Table
created: 2024-04-09 11:23:33.09155015+00:00
updated: 2024-04-09 11:23:33.09155023+00:00
uid: 18
data:
  {
    "graphTooltip": 0,
    "id": 45,
    "iteration": 1529597917203,
    "panels": [
      {
        "title": "[[full_name]] Project statistics (Repository group [[repogroup_name]], Range: [[period_name]]), bots excluded",
        "links": [],
        "fontSize": "90%",
        "id": 1,
        "showHeader": true,
        "transform": "table",
        "description": "",
        "datasource": "psql",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "pageSize": 20,
        "scroll": true,
        "styles": [
          {
            "decimals": null,
            "pattern": "Time",
            "type": "hidden",
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss"
          },
          {
            "pattern": "name",
            "preserveFormat": false,
            "type": "string",
            "alias": "Metric name",
            "colorMode": null,
            "decimals": 2,
            "unit": "short",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "thresholds": []
          },
          {
            "decimals": 0,
            "pattern": "value",
            "alias": "Metric value",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "thresholds": [],
            "type": "number",
            "unit": "none"
          },
          {
            "decimals": 0,
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ]
          }
        ],
        "transparent": false,
        "columns": [],
        "sort": {
          "col": 0,
          "desc": true
        },
        "targets": [
          {
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"name\", \"value\" FROM \"project_stats_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select name, value from \"spstat\" where series = 'pstat[[repogroup]]' and period = '[[period]]'",
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "tags": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "refId": "A",
            "resultFormat": "table"
          }
        ],
        "type": "table",
        "hideTimeOverride": true
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "x": 0,
          "y": 22,
          "h": 11,
          "w": 24
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "style": "dark",
    "templating": {
      "list": [
        {
          "tagsQuery": "",
          "current": {
            "text": "CNCF",
            "value": "CNCF"
          },
          "includeAll": false,
          "regex": "",
          "sort": 0,
          "tags": [],
          "datasource": "psql",
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "type": "query",
          "hide": 2,
          "label": null,
          "multi": false,
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "useTags": false,
          "allValue": null,
          "tagValuesQuery": ""
        },
        {
          "label": "Range",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "regex": "",
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "current": {
            "tags": [],
            "text": "Last decade",
            "value": "Last decade"
          },
          "name": "period_name",
          "sort": 0,
          "datasource": "psql",
          "hide": 0,
          "type": "query",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "includeAll": false,
          "multi": false,
          "options": [],
          "refresh": 1
        },
        {
          "refresh": 1,
          "regex": "",
          "type": "query",
          "allValue": null,
          "includeAll": false,
          "multi": false,
          "name": "period",
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "text": "y10",
            "value": "y10"
          },
          "datasource": "psql",
          "label": null,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "hide": 2,
          "options": [],
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "tags": [],
          "useTags": false
        },
        {
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "refresh": 1,
          "type": "query",
          "useTags": false,
          "allValue": null,
          "hide": 0,
          "label": "Repository group",
          "name": "repogroup_name",
          "options": [],
          "current": {
            "value": "All",
            "text": "All"
          },
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "skipUrlSync": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "sort": 0,
          "tags": []
        },
        {
          "allValue": null,
          "hide": 2,
          "label": "",
          "multi": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "text": "all",
            "value": "all"
          },
          "name": "repogroup",
          "tags": [],
          "useTags": false,
          "refresh": 1,
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "options": [],
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": ""
        },
        {
          "tags": [],
          "allValue": null,
          "datasource": "psql",
          "query": "select value_s from gha_vars where name = 'projects_stats_docs_html'",
          "skipUrlSync": true,
          "sort": 0,
          "tagValuesQuery": "",
          "useTags": false,
          "includeAll": false,
          "options": [],
          "name": "docs",
          "refresh": 1,
          "tagsQuery": "",
          "hide": 2,
          "multi": false,
          "regex": "",
          "type": "query",
          "current": {
            
          },
          "label": null
        }
      ]
    },
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        }
      ]
    },
    "gnetId": null,
    "links": [],
    "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"
      ]
    },
    "editable": true,
    "schemaVersion": 16,
    "timezone": "",
    "version": 3,
    "refresh": false,
    "tags": [
      "dashboard",
      "cncf",
      "table"
    ],
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "title": "Overall Project Statistics Table",
    "uid": "18"
  }


slug: pr-comments
title: PR Comments
created: 2024-04-09 11:23:33.096930792+00:00
updated: 2024-04-09 11:23:33.096930842+00:00
uid: 17
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": "",
    "title": "PR Comments",
    "id": 46,
    "panels": [
      {
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "avg"
          ]
        },
        "aliasColors": {
          
        },
        "dashLength": 10,
        "description": "Median and 85th, 95th percentile of comments for PRs created in given period",
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "links": [],
        "points": false,
        "renderer": "flot",
        "legend": {
          "values": true,
          "alignAsTable": true,
          "current": true,
          "rightSide": false,
          "total": false,
          "avg": true,
          "max": true,
          "min": true,
          "show": true
        },
        "linewidth": 1,
        "nullPointMode": "null as zero",
        "stack": false,
        "id": 2,
        "pointradius": 5,
        "seriesOverrides": [],
        "spaceLength": 10,
        "targets": [
          {
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"pr_comments_percentile_95_[[period]]\" WHERE $timeFilter",
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "format": "time_series",
            "groupBy": [],
            "policy": "default",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"95th percentile for number of comments on PRs\"\nfrom\n  spr_comms_p95\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "dsType": "influxdb"
          },
          {
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"85th percentile for number of comments on PRs\"\nfrom\n  spr_comms_p85\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "B",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"pr_comments_percentile_85_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": []
          },
          {
            "format": "time_series",
            "groupBy": [],
            "policy": "default",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "tags": [],
            "refId": "C",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"pr_comments_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Median for number of comments on PRs\"\nfrom\n  spr_comms_med\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time"
          }
        ],
        "bars": true,
        "steppedLine": false,
        "timeShift": null,
        "title": "Median and 85th, 95th percentile of number of comments for PRs ([[period]])",
        "fill": 1,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "type": "graph",
        "dashes": false,
        "datasource": "psql",
        "lines": false,
        "thresholds": [],
        "timeFrom": null,
        "yaxes": [
          {
            "format": "none",
            "label": "Comments",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "none",
            "label": "",
            "logBase": 1
          }
        ],
        "decimals": 0,
        "percentage": false,
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 22,
          "h": 10
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "schemaVersion": 16,
    "time": {
      "from": "now-2y",
      "to": "now"
    },
    "annotations": {
      "list": [
        {
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1
        },
        {
          "enable": true,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "textColumn": "",
          "datasource": "psql",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description"
        }
      ]
    },
    "gnetId": null,
    "uid": "17",
    "graphTooltip": 0,
    "iteration": 1529597914191,
    "links": [],
    "tags": [
      "dashboard",
      "cncf"
    ],
    "editable": true,
    "style": "dark",
    "templating": {
      "list": [
        {
          "options": [],
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "includeAll": false,
          "label": null,
          "multi": false,
          "name": "full_name",
          "regex": "",
          "tagValuesQuery": "",
          "datasource": "psql",
          "hide": 2,
          "refresh": 1,
          "tags": [],
          "allValue": null,
          "current": {
            
          },
          "query": "select value_s from gha_vars where name = 'full_name'"
        },
        {
          "current": {
            "tags": [],
            "text": "Week",
            "value": "w"
          },
          "includeAll": false,
          "label": "Period",
          "query": "d,w,m,q,y",
          "skipUrlSync": false,
          "allValue": null,
          "hide": 0,
          "multi": false,
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": false,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "text": "Week",
              "value": "w",
              "selected": true
            },
            {
              "value": "m",
              "selected": false,
              "text": "Month"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "type": "custom"
        },
        {
          "name": "docs",
          "sort": 0,
          "useTags": false,
          "hide": 2,
          "multi": false,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "regex": "",
          "current": {
            
          },
          "datasource": "psql",
          "options": [],
          "refresh": 1,
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "includeAll": false,
          "label": null,
          "query": "select value_s from gha_vars where name = 'pr_comments_docs_html'"
        }
      ]
    },
    "version": 2
  }


slug: pr-reviews-by-contributor
title: PR Reviews by Contributor
created: 2024-04-09 11:23:33.101304579+00:00
updated: 2024-04-09 11:23:33.101304649+00:00
uid: 29
data:
  {
    "iteration": 1621495911345,
    "links": [],
    "schemaVersion": 27,
    "style": "dark",
    "uid": "29",
    "templating": {
      "list": [
        {
          "type": "custom",
          "allValue": null,
          "label": "Period",
          "multi": false,
          "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"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "skipUrlSync": false,
          "name": "period",
          "query": "d,w,d7,m,q,y",
          "current": {
            "selected": false,
            "text": "7 Days MA",
            "value": "d7"
          },
          "description": null,
          "error": null,
          "hide": 0,
          "includeAll": false
        },
        {
          "definition": "",
          "includeAll": false,
          "refresh": 1,
          "regex": "",
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "current": {
            "value": "All",
            "selected": false,
            "text": "All"
          },
          "error": null,
          "label": "Repository",
          "multi": false,
          "name": "repo_name",
          "useTags": false,
          "description": null,
          "options": [],
          "query": "select top_repos_name_with_all from ttop_repos_with_all order by 1",
          "skipUrlSync": false,
          "tagsQuery": "",
          "datasource": "psql",
          "hide": 0,
          "type": "query",
          "allValue": null
        },
        {
          "allValue": null,
          "includeAll": false,
          "query": "select top_repos_value_with_all from ttop_repos_with_all where top_repos_name_with_all = '[[repo_name]]'",
          "refresh": 1,
          "type": "query",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "name": "repo",
          "tagsQuery": "",
          "useTags": false,
          "sort": 0,
          "datasource": "psql",
          "error": null,
          "hide": 2,
          "multi": false,
          "options": [],
          "regex": "",
          "definition": "",
          "description": null,
          "label": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": []
        },
        {
          "definition": "",
          "includeAll": false,
          "multi": true,
          "name": "reviewers",
          "query": "select '\"' || reviewers_name || '\"' from treviewers",
          "datasource": "psql",
          "description": null,
          "error": null,
          "label": "Reviewer",
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "regex": "",
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "allValue": "",
          "current": {
            "selected": false,
            "text": [
              "\"ultrasaurus\"",
              "\"lukaszgryglicki\"",
              "\"caniszczyk\"",
              "\"mattklein123\"",
              "\"lizrice\"",
              "\"justaugustus\"",
              "\"RichiH\"",
              "\"SergeyKanzhelev\"",
              "\"jberkus\"",
              "\"lixuna\"",
              "\"taylor\"",
              "\"xmulligan\"",
              "\"salaboy\"",
              "\"TheFoxAtWork\"",
              "\"AlexsJones\"",
              "\"iawells\"",
              "\"erkist\"",
              "\"thschue\"",
              "\"electrocucaracha\"",
              "\"lumjjb\"",
              "\"carolynvs\"",
              "\"htuch\"",
              "\"jeffsaelens\"",
              "\"Jenniferstrej\"",
              "\"m-linner-ericsson\"",
              "\"markdroth\"",
              "\"afrittoli\"",
              "\"sishbi\"",
              "\"idvoretskyi\"",
              "\"vukg\"",
              "\"dims\"",
              "\"grzesuav\"",
              "\"CathPag\"",
              "\"agentpoyo\"",
              "\"e-backmark-ericsson\"",
              "\"geekygirldawn\"",
              "\"ashutosh-narkar\""
            ],
            "value": [
              "\"ultrasaurus\"",
              "\"lukaszgryglicki\"",
              "\"caniszczyk\"",
              "\"mattklein123\"",
              "\"lizrice\"",
              "\"justaugustus\"",
              "\"RichiH\"",
              "\"SergeyKanzhelev\"",
              "\"jberkus\"",
              "\"lixuna\"",
              "\"taylor\"",
              "\"xmulligan\"",
              "\"salaboy\"",
              "\"TheFoxAtWork\"",
              "\"AlexsJones\"",
              "\"iawells\"",
              "\"erkist\"",
              "\"thschue\"",
              "\"electrocucaracha\"",
              "\"lumjjb\"",
              "\"carolynvs\"",
              "\"htuch\"",
              "\"jeffsaelens\"",
              "\"Jenniferstrej\"",
              "\"m-linner-ericsson\"",
              "\"markdroth\"",
              "\"afrittoli\"",
              "\"sishbi\"",
              "\"idvoretskyi\"",
              "\"vukg\"",
              "\"dims\"",
              "\"grzesuav\"",
              "\"CathPag\"",
              "\"agentpoyo\"",
              "\"e-backmark-ericsson\"",
              "\"geekygirldawn\"",
              "\"ashutosh-narkar\""
            ]
          },
          "hide": 0,
          "sort": 0,
          "type": "query"
        },
        {
          "allValue": null,
          "description": null,
          "error": null,
          "refresh": 1,
          "useTags": false,
          "current": {
            "selected": false,
            "text": "CNCF",
            "value": "CNCF"
          },
          "definition": "",
          "hide": 2,
          "multi": false,
          "name": "full_name",
          "regex": "",
          "skipUrlSync": true,
          "includeAll": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "label": null,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "tags": [],
          "type": "query"
        },
        {
          "datasource": "psql",
          "label": null,
          "name": "docs",
          "options": [],
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "allValue": null,
          "useTags": false,
          "query": "select value_s from gha_vars where name = 'user_reviews_docs_html'",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "includeAll": false,
          "sort": 0,
          "hide": 2,
          "definition": "",
          "description": null,
          "error": null,
          "multi": false,
          "refresh": 1,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eCNCF user reviews 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/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/shared/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/cncf/user-reviews.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 PR reviews most active reviewers.\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 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 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\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eCNCF user reviews 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/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/shared/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/cncf/user-reviews.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 PR reviews most active reviewers.\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 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 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\u003c/ul\u003e"
          }
        }
      ]
    },
    "timezone": "",
    "title": "PR Reviews by Contributor",
    "version": 2,
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        },
        {
          "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)",
          "datasource": "psql",
          "enable": true,
          "limit": 100,
          "name": "Releases",
          "showIn": 0,
          "tagsColumn": "title,description",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "type": "alert"
        }
      ]
    },
    "gnetId": null,
    "id": 35,
    "tags": [
      "dashboard",
      "cncf"
    ],
    "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"
      ]
    },
    "editable": true,
    "graphTooltip": 0,
    "panels": [
      {
        "description": "Shows review counts for given users and repository.",
        "id": 1,
        "timeShift": null,
        "dashes": false,
        "pluginVersion": "7.5.6",
        "targets": [
          {
            "measurement": "sig_federation_d",
            "policy": "default",
            "query": "SELECT /^[[reviewers]]$/ FROM \"reviews_per_user_[[repo]]_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "groupBy": [],
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  ${reviewers:csv}\nfrom\n  suser_reviews\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'rev_per_usr[[repo]]'\norder by\n  time",
            "tags": [],
            "format": "time_series",
            "refId": "A"
          }
        ],
        "thresholds": [],
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "hiddenSeries": false,
        "links": [],
        "pointradius": 5,
        "renderer": "flot",
        "tooltip": {
          "sort": 2,
          "value_type": "individual",
          "shared": true
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "title": "Reviews per user/repo ([[repo_name]], [[period]])",
        "bars": true,
        "hideTimeOverride": false,
        "nullPointMode": "null as zero",
        "seriesOverrides": [],
        "spaceLength": 10,
        "steppedLine": false,
        "dashLength": 10,
        "stack": true,
        "timeFrom": null,
        "datasource": "psql",
        "decimals": null,
        "fill": 1,
        "legend": {
          "min": true,
          "sideWidth": null,
          "sortDesc": true,
          "total": true,
          "hideZero": false,
          "current": true,
          "hideEmpty": false,
          "rightSide": true,
          "sort": "avg",
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "show": true,
          "max": true
        },
        "timeRegions": [],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "lines": false,
        "percentage": false,
        "type": "graph",
        "yaxes": [
          {
            "label": "Number of PR review comments",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "transparent": true,
        "aliasColors": {
          
        },
        "fillGradient": 0,
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "linewidth": 1,
        "options": {
          "alertThreshold": true
        },
        "points": false
      },
      {
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null,
        "id": 11,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "7.5.6",
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        }
      }
    ]
  }


slug: pr-time-to-engagement
title: PR Time to Engagement
created: 2024-04-09 11:23:33.105633841+00:00
updated: 2024-04-09 11:23:33.105633901+00:00
uid: 10
data:
  {
    "title": "PR Time to Engagement",
    "uid": "10",
    "iteration": 1529597903251,
    "links": [],
    "templating": {
      "list": [
        {
          "tagsQuery": "",
          "type": "query",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "options": [],
          "regex": "",
          "tags": [],
          "allValue": null,
          "datasource": "psql",
          "includeAll": false,
          "label": null,
          "skipUrlSync": true,
          "current": {
            
          },
          "hide": 2,
          "refresh": 1,
          "tagValuesQuery": "",
          "useTags": false,
          "multi": false,
          "name": "full_name"
        },
        {
          "hide": 0,
          "label": "Period",
          "query": "d7,w,m,q,y",
          "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"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ],
          "type": "custom"
        },
        {
          "allValue": null,
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "current": {
            
          },
          "hide": 0,
          "label": "Repository group",
          "options": [],
          "type": "query",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "name": "repogroup_name",
          "useTags": false
        },
        {
          "datasource": "psql",
          "label": "",
          "name": "repogroup",
          "refresh": 1,
          "sort": 0,
          "allValue": null,
          "current": {
            
          },
          "hide": 2,
          "options": [],
          "regex": "",
          "tagsQuery": "",
          "type": "query",
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "includeAll": false,
          "multi": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "skipUrlSync": true
        },
        {
          "hide": 2,
          "options": [],
          "datasource": "psql",
          "label": null,
          "name": "docs",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "type": "query",
          "current": {
            
          },
          "useTags": false,
          "query": "select value_s from gha_vars where name = 'non_author_activity_docs_html'",
          "tagValuesQuery": "",
          "includeAll": false,
          "multi": false,
          "sort": 0,
          "tagsQuery": "",
          "allValue": null
        }
      ]
    },
    "time": {
      "from": "now-1y",
      "to": "now-2w"
    },
    "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,
    "graphTooltip": 0,
    "id": 53,
    "schemaVersion": 16,
    "version": 2,
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "type": "alert",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "enable": true,
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description",
          "textColumn": ""
        }
      ]
    },
    "panels": [
      {
        "bars": false,
        "links": [],
        "percentage": false,
        "thresholds": [],
        "aliasColors": {
          
        },
        "spaceLength": 10,
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "format": "time_series",
            "rawQuery": true,
            "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]]p85'\norder by\n  time",
            "refId": "A",
            "tags": []
          },
          {
            "refId": "B",
            "alias": "",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "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]]med'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "format": "time_series",
            "groupBy": [],
            "policy": "default",
            "rawQuery": true,
            "resultFormat": "time_series"
          },
          {
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "tags": [],
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "query": "SELECT \"value\" FROM \"non_author_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "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]]p15'\norder by\n  time",
            "refId": "C",
            "resultFormat": "time_series"
          }
        ],
        "type": "graph",
        "dashLength": 10,
        "datasource": "psql",
        "lines": true,
        "points": false,
        "seriesOverrides": [
          {
            "alias": "15th percentile time opened to merged (in hours)"
          }
        ],
        "decimals": 2,
        "fill": 0,
        "pointradius": 5,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "linewidth": 1,
        "timeFrom": null,
        "dashes": false,
        "id": 2,
        "nullPointMode": "null",
        "renderer": "flot",
        "steppedLine": false,
        "title": "Time before any comments or activities from someone other than the author ([[repogroup_name]], [[period]])",
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "yaxes": [
          {
            "format": "h",
            "label": "",
            "logBase": 2,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null
          }
        ],
        "description": "Time before any comments or activities from someone other than the author",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "legend": {
          "show": true,
          "total": false,
          "values": true,
          "current": true,
          "max": true,
          "min": true,
          "alignAsTable": true,
          "avg": true,
          "rightSide": false
        },
        "stack": false,
        "timeShift": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "gridPos": {
          "y": 13,
          "h": 11,
          "w": 24,
          "x": 0
        },
        "links": [],
        "styles": [
          {
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date",
            "alias": "Time"
          },
          {
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2
          }
        ],
        "title": "Time to first non-author activity ([[repogroup]], [[period]])",
        "targets": [
          {
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "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]]p15'\norder by\n  time",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "tags": [],
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "format": "table",
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter"
          },
          {
            "alias": "",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "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]]med'\norder by\n  time",
            "refId": "B",
            "tags": []
          },
          {
            "alias": "",
            "format": "table",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "groupBy": [
              {
                "type": "time",
                "params": [
                  "$__interval"
                ]
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "query": "SELECT \"descr\" FROM \"non_author_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "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]]p85'\norder by\n  time",
            "refId": "C",
            "tags": []
          }
        ],
        "transform": "table",
        "type": "table",
        "columns": [],
        "description": "Time to first non-author activity",
        "pageSize": 10,
        "scroll": true,
        "showHeader": true,
        "sort": {
          "col": 0,
          "desc": true
        },
        "datasource": "psql",
        "fontSize": "90%",
        "id": 3
      },
      {
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}"
      }
    ],
    "style": "dark",
    "timezone": "",
    "gnetId": null,
    "tags": [
      "dashboard",
      "cncf"
    ]
  }


