# dashboard

slug: developer-activity-counts-by-companies
title: Developer Activity Counts by Companies
created: 2024-10-23 04:16:57.41049953+00:00
updated: 2024-10-23 04:16:57.41049964+00:00
uid: 66
data:
  {
    "description": "",
    "editable": true,
    "schemaVersion": 36,
    "style": "dark",
    "weekStart": "",
    "fiscalYearStartMonth": 0,
    "version": 2,
    "graphTooltip": 0,
    "iteration": 1692344289412,
    "links": [],
    "panels": [
      {
        "description": "",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 20
        },
        "transformations": [
          {
            "options": {
              "reducers": []
            },
            "id": "merge"
          }
        ],
        "hideTimeOverride": true,
        "links": [],
        "options": {
          "footer": {
            "reducer": [
              "sum"
            ],
            "show": false,
            "fields": ""
          },
          "showHeader": true,
          "sortBy": [
            {
              "desc": false,
              "displayName": "Rank"
            }
          ]
        },
        "title": "[[full_name]] Developers statistics ([[metric]], Range: [[period_name]], Repository group: [[repogroup_name]]), bots excluded",
        "interval": "",
        "targets": [
          {
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "refId": "A",
            "query": "SELECT \"name\", \"value\" FROM \"developers_hist_[[metric]]_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "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",
            "tags": [],
            "dsType": "influxdb",
            "format": "table",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "rawQuery": true,
            "group": [],
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time"
          }
        ],
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "fieldConfig": {
          "defaults": {
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green",
                  "value": null
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            },
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "align": "auto",
              "displayMode": "auto",
              "inspect": false
            }
          },
          "overrides": [
            {
              "matcher": {
                "options": "Time",
                "id": "byName"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "Time"
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "name"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "GitHub login"
                },
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "value"
              },
              "properties": [
                {
                  "value": "Number",
                  "id": "displayName"
                },
                {
                  "id": "unit",
                  "value": "none"
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "options": "",
                "id": "byName"
              },
              "properties": [
                {
                  "value": "short",
                  "id": "unit"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "options": "Rank",
                "id": "byName"
              },
              "properties": [
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "custom.align"
                },
                {
                  "value": 90,
                  "id": "custom.width"
                },
                {
                  "value": "none",
                  "id": "unit"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Number"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 153
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "GitHub login"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 659
                }
              ]
            }
          ]
        },
        "id": 1,
        "pluginVersion": "8.5.27",
        "type": "table"
      },
      {
        "id": 3,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.27",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 20
        }
      }
    ],
    "refresh": false,
    "tags": [
      "dashboard",
      "all",
      "repogroups",
      "table",
      "companies"
    ],
    "templating": {
      "list": [
        {
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "label": "Range",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "refresh": 1,
          "sort": 0,
          "current": {
            "selected": true,
            "text": "Last decade",
            "value": "Last decade"
          },
          "multi": false,
          "name": "period_name",
          "options": [],
          "definition": "",
          "includeAll": false,
          "regex": "",
          "skipUrlSync": false,
          "tagsQuery": "",
          "hide": 0,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false
        },
        {
          "skipUrlSync": false,
          "type": "custom",
          "hide": 0,
          "label": "Metric",
          "multi": false,
          "name": "metric",
          "options": [
            {
              "selected": false,
              "text": "Comments",
              "value": "comments"
            },
            {
              "selected": false,
              "text": "Commit comments",
              "value": "commit_comments"
            },
            {
              "selected": false,
              "text": "Commits",
              "value": "commits"
            },
            {
              "text": "GitHub Events",
              "value": "events",
              "selected": false
            },
            {
              "value": "pushes",
              "selected": false,
              "text": "GitHub pushes"
            },
            {
              "text": "Issue comments",
              "value": "issue_comments",
              "selected": false
            },
            {
              "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"
            },
            {
              "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",
          "current": {
            "selected": false,
            "text": "Contributions",
            "value": "contributions"
          },
          "includeAll": false
        },
        {
          "name": "period",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "y10",
            "value": "y10"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "refresh": 1,
          "sort": 0,
          "type": "query",
          "hide": 2,
          "includeAll": false,
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "definition": "",
          "options": [],
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'"
        },
        {
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "hide": 2,
          "sort": 0,
          "multi": false,
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagValuesQuery": "",
          "type": "query",
          "includeAll": false,
          "regex": "",
          "skipUrlSync": true,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "options": [],
          "refresh": 1,
          "tagsQuery": "",
          "useTags": false
        },
        {
          "sort": 0,
          "skipUrlSync": false,
          "includeAll": false,
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "regex": "",
          "hide": 0,
          "label": "Repository group",
          "options": [],
          "type": "query",
          "useTags": false,
          "current": {
            "value": "All",
            "selected": false,
            "text": "All"
          },
          "definition": "",
          "name": "repogroup_name",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          }
        },
        {
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "multi": false,
          "options": [],
          "type": "query",
          "useTags": false,
          "definition": "",
          "includeAll": false,
          "skipUrlSync": true,
          "tagsQuery": "",
          "hide": 2,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "tagValuesQuery": "",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "label": "",
          "name": "repogroup",
          "regex": "",
          "sort": 0
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "regex": "",
          "tagsQuery": "",
          "type": "query",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "useTags": false,
          "definition": "select value_s from gha_vars where name = 'developer_company_stats_docs_html'",
          "hide": 2,
          "multi": false,
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'developer_company_stats_docs_html'",
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF Developer Activity Counts by Companies 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/project_developer_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eDeveloper summary\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/developer-activity-counts-by-companies.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=\"dashboard-header\"\u003eAll CNCF Developer Activity Counts by Companies 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/project_developer_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eDeveloper summary\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/developer-activity-counts-by-companies.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",
            "selected": false
          },
          "includeAll": false,
          "options": [],
          "refresh": 1,
          "sort": 0
        },
        {
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "name": "country",
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "definition": "",
          "label": "",
          "multi": false,
          "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",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "includeAll": false,
          "hide": 2,
          "regex": "",
          "sort": 0
        },
        {
          "skipUrlSync": false,
          "allValue": "all",
          "includeAll": false,
          "name": "country_name",
          "options": [],
          "refresh": 1,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "definition": "",
          "label": "Country",
          "type": "query",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": 0,
          "sort": 0,
          "tagValuesQuery": "",
          "multi": false,
          "query": "select 'All' union select country_name from tcountries order by 1",
          "regex": "",
          "tagsQuery": "",
          "useTags": false
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "options": [],
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "allValue": "null",
          "label": "Companies",
          "multi": true,
          "refresh": 1,
          "current": {
            "selected": false,
            "text": [
              "All"
            ],
            "value": [
              "$__all"
            ]
          },
          "definition": "select companies_name from tcompanies order by time",
          "regex": "",
          "hide": 0,
          "includeAll": true,
          "name": "companies",
          "query": "select companies_name from tcompanies order by time",
          "sort": 0,
          "type": "query"
        }
      ]
    },
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "timepicker": {
      "hidden": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "",
    "title": "Developer Activity Counts by Companies",
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "target": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          },
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "uid": "grafana",
            "type": "datasource"
          },
          "enable": true
        }
      ]
    },
    "id": 12,
    "liveNow": false,
    "uid": "66"
  }


slug: developer-activity-counts-by-repository-group-table
title: Developer Activity Counts by Repository Group Table
created: 2024-10-23 04:16:57.419811157+00:00
updated: 2024-10-23 04:16:57.419811428+00:00
uid: 9
data:
  {
    "links": [],
    "style": "dark",
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "timezone": "",
    "title": "Developer Activity Counts by Repository Group Table",
    "version": 3,
    "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": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          }
        }
      ]
    },
    "id": 13,
    "weekStart": "",
    "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
    },
    "templating": {
      "list": [
        {
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "hide": 0,
          "options": [],
          "label": "Range",
          "multi": false,
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "refresh": 1,
          "useTags": false,
          "current": {
            "selected": true,
            "text": "Last decade",
            "value": "Last decade"
          },
          "includeAll": false,
          "name": "period_name",
          "regex": "",
          "type": "query",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": ""
        },
        {
          "label": "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"
            },
            {
              "value": "review_comments",
              "selected": false,
              "text": "Review comments"
            },
            {
              "text": "Reviews submitted",
              "value": "reviews",
              "selected": false
            },
            {
              "value": "contributions",
              "selected": true,
              "text": "Contributions"
            },
            {
              "selected": false,
              "text": "Active repositories",
              "value": "active_repos"
            }
          ],
          "skipUrlSync": false,
          "type": "custom",
          "current": {
            "text": "Contributions",
            "value": "contributions",
            "selected": false
          },
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "name": "metric",
          "query": "comments,commit_comments,commits,events,pushes,contributions,issue_comments,issues,prs,merged_prs,review_comments,active_repos,reviews"
        },
        {
          "name": "period",
          "sort": 0,
          "tagsQuery": "",
          "definition": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "y10",
            "value": "y10"
          },
          "hide": 2,
          "includeAll": false,
          "multi": false,
          "options": [],
          "refresh": 1,
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "regex": "",
          "type": "query",
          "useTags": false
        },
        {
          "multi": false,
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "tagsQuery": "",
          "useTags": false,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "hide": 2,
          "options": [],
          "type": "query",
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "includeAll": false
        },
        {
          "multi": false,
          "name": "repogroup_name",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "current": {
            "text": "All",
            "value": "All",
            "selected": false
          },
          "refresh": 1,
          "regex": "",
          "tagValuesQuery": "",
          "type": "query",
          "includeAll": false,
          "sort": 0,
          "tagsQuery": "",
          "skipUrlSync": false,
          "useTags": false,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "hide": 0,
          "label": "Repository group",
          "options": []
        },
        {
          "definition": "",
          "hide": 2,
          "label": "",
          "sort": 0,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "tagsQuery": "",
          "useTags": false,
          "multi": false,
          "name": "repogroup",
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "includeAll": false,
          "type": "query"
        },
        {
          "type": "query",
          "definition": "",
          "hide": 2,
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'developers_summary_docs_html'",
          "refresh": 1,
          "sort": 0,
          "current": {
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF Developer Activity Counts by Repository Group Table 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/project_developer_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eDeveloper summary\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/developer-activity-counts-by-repository-group-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows 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",
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF Developer Activity Counts by Repository Group Table 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/project_developer_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eDeveloper summary\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/developer-activity-counts-by-repository-group-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows 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": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "tagValuesQuery": "",
          "useTags": false,
          "name": "docs",
          "regex": "",
          "skipUrlSync": true,
          "multi": false,
          "options": [],
          "tagsQuery": ""
        },
        {
          "name": "country",
          "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,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "label": "",
          "hide": 2,
          "regex": "",
          "useTags": false,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "includeAll": false,
          "multi": false,
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "options": [],
          "definition": ""
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "type": "query",
          "hide": 0,
          "options": [],
          "query": "select 'All' union select country_name from tcountries order by 1",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "useTags": false,
          "allValue": "all",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "refresh": 1,
          "sort": 0,
          "regex": "",
          "skipUrlSync": false,
          "includeAll": false,
          "label": "Country",
          "multi": false,
          "name": "country_name"
        }
      ]
    },
    "panels": [
      {
        "id": 1,
        "links": [],
        "type": "table",
        "description": "",
        "gridPos": {
          "y": 0,
          "h": 22,
          "w": 24,
          "x": 0
        },
        "targets": [
          {
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "resultFormat": "table",
            "format": "table",
            "query": "SELECT \"name\", \"value\" FROM \"developers_hist_[[metric]]_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "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",
            "timeColumn": "time",
            "dsType": "influxdb",
            "group": [],
            "refId": "A",
            "tags": []
          }
        ],
        "transformations": [
          {
            "id": "merge",
            "options": {
              "reducers": []
            }
          }
        ],
        "fieldConfig": {
          "defaults": {
            "decimals": 0,
            "displayName": "",
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green",
                  "value": null
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            },
            "unit": "short",
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "displayMode": "auto",
              "inspect": false
            }
          },
          "overrides": [
            {
              "matcher": {
                "id": "byName",
                "options": "Time"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "Time"
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "name"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "GitHub login"
                },
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "value": 2,
                  "id": "decimals"
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "value"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "Number"
                },
                {
                  "id": "unit",
                  "value": "none"
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "properties": [
                {
                  "value": 98,
                  "id": "custom.width"
                },
                {
                  "id": "unit",
                  "value": "none"
                }
              ],
              "matcher": {
                "id": "byName",
                "options": "Rank"
              }
            },
            {
              "matcher": {
                "id": "byName",
                "options": "GitHub login"
              },
              "properties": [
                {
                  "value": 1944,
                  "id": "custom.width"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Number"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 104
                }
              ]
            }
          ]
        },
        "hideTimeOverride": true,
        "pluginVersion": "8.5.27",
        "title": "[[full_name]] Developers statistics ([[metric]], Range: [[period_name]], Repository group: [[repogroup_name]]), bots excluded",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "interval": "",
        "options": {
          "footer": {
            "fields": "",
            "reducer": [
              "sum"
            ],
            "show": false
          },
          "showHeader": true,
          "sortBy": [
            {
              "desc": false,
              "displayName": "Rank"
            }
          ]
        }
      },
      {
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.27",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "x": 0,
          "y": 22,
          "h": 12,
          "w": 24
        },
        "id": 3,
        "links": []
      }
    ],
    "schemaVersion": 36,
    "graphTooltip": 0,
    "iteration": 1692344188883,
    "liveNow": false,
    "refresh": false,
    "tags": [
      "dashboard",
      "all",
      "repogroups",
      "table"
    ],
    "uid": "9",
    "editable": true,
    "fiscalYearStartMonth": 0
  }


slug: documentation-committers-in-repository-groups
title: Documentation Committers in Repository Groups
created: 2024-10-23 04:16:57.42744118+00:00
updated: 2024-10-23 04:16:57.42744126+00:00
uid: 61
data:
  {
    "panels": [
      {
        "lines": true,
        "stack": false,
        "thresholds": [],
        "xaxis": {
          "mode": "time",
          "show": true,
          "values": [
            "total"
          ]
        },
        "aliasColors": {
          
        },
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "points": false,
        "targets": [
          {
            "groupBy": [],
            "hide": false,
            "query": "",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "Number of companies commiting to documentation",
            "tags": [],
            "orderByTime": "ASC",
            "dsType": "influxdb",
            "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",
            "policy": "autogen",
            "measurement": "reviewers_d"
          },
          {
            "policy": "autogen",
            "rawQuery": true,
            "resultFormat": "time_series",
            "tags": [],
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "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",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "Number of documentation committers",
            "refId": "B",
            "hide": false,
            "measurement": "reviewers_d",
            "query": "",
            "groupBy": []
          }
        ],
        "seriesOverrides": [
          {
            "alias": "Number of documentation committers",
            "yaxis": 2
          }
        ],
        "yaxis": {
          "align": false
        },
        "legend": {
          "values": true,
          "hideZero": false,
          "rightSide": false,
          "total": false,
          "hideEmpty": false,
          "max": true,
          "min": true,
          "show": true,
          "alignAsTable": true,
          "avg": true,
          "current": true
        },
        "options": {
          "alertThreshold": true
        },
        "pointradius": 1,
        "renderer": "flot",
        "linewidth": 1,
        "pluginVersion": "8.5.15",
        "timeRegions": [],
        "yaxes": [
          {
            "format": "none",
            "label": "Companies",
            "logBase": 1,
            "min": "0",
            "show": true
          },
          {
            "format": "none",
            "label": "Developers",
            "logBase": 1,
            "min": "0",
            "show": true
          }
        ],
        "dashLength": 10,
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "description": "",
        "fill": 1,
        "percentage": false,
        "type": "graph",
        "bars": false,
        "dashes": false,
        "fillGradient": 0,
        "links": [],
        "decimals": 0,
        "spaceLength": 10,
        "title": "Documentation committers: companies and developers ([[repogroup_name]], [[period]])",
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "transparent": true,
        "hiddenSeries": false,
        "id": 1,
        "nullPointMode": "null",
        "steppedLine": false
      },
      {
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "x": 0,
          "y": 22,
          "h": 12,
          "w": 24
        },
        "id": 11,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.15",
        "title": "Dashboard documentation"
      }
    ],
    "graphTooltip": 0,
    "iteration": 1671190590216,
    "links": [],
    "time": {
      "from": "now-3y",
      "to": "now"
    },
    "title": "Documentation Committers in Repository Groups",
    "version": 2,
    "fiscalYearStartMonth": 0,
    "refresh": false,
    "style": "dark",
    "tags": [
      "companies",
      "dashboard",
      "all"
    ],
    "templating": {
      "list": [
        {
          "type": "custom",
          "options": [
            {
              "value": "d7",
              "selected": true,
              "text": "7 Days MA"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "value": "q",
              "selected": false,
              "text": "Quarter"
            }
          ],
          "hide": 0,
          "includeAll": false,
          "label": "Period",
          "multi": false,
          "name": "period",
          "query": "d7,w,m,q",
          "skipUrlSync": false,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          }
        },
        {
          "name": "full_name",
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "includeAll": false,
          "options": [],
          "skipUrlSync": true,
          "sort": 0,
          "type": "query",
          "useTags": false,
          "definition": "",
          "hide": 2
        },
        {
          "regex": "",
          "useTags": false,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "includeAll": false,
          "skipUrlSync": false,
          "tagsQuery": "",
          "type": "query",
          "options": [],
          "refresh": 1,
          "sort": 0,
          "current": {
            "selected": true,
            "text": "All",
            "value": "All"
          },
          "definition": "",
          "hide": 0,
          "multi": false,
          "name": "repogroup_name",
          "label": "Repository group",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tagValuesQuery": ""
        },
        {
          "options": [],
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "tagsQuery": "",
          "current": {
            "text": "all",
            "value": "all",
            "selected": false
          },
          "hide": 2,
          "label": "",
          "useTags": false,
          "multi": false,
          "name": "repogroup",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "type": "query",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "includeAll": false,
          "sort": 0,
          "tagValuesQuery": ""
        },
        {
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF documentation committers 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/doc_committers.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\u003edoc_committers\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/documentation-committers-in-repository-groups.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows how many companies and developers are commiting documentation in a given repository group.\u003c/li\u003e\n\u003cli\u003eDocumentation commiter is someone who commited anything changing \u003ccode\u003e.md\u003c/code\u003e file(s).\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\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\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=\"dashboard-header\"\u003eAll CNCF documentation committers 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/doc_committers.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\u003edoc_committers\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/documentation-committers-in-repository-groups.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows how many companies and developers are commiting documentation in a given repository group.\u003c/li\u003e\n\u003cli\u003eDocumentation commiter is someone who commited anything changing \u003ccode\u003e.md\u003c/code\u003e file(s).\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\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\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"
          },
          "multi": false,
          "name": "docs",
          "tagValuesQuery": "",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "hide": 2,
          "useTags": false,
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'documentation_committers_docs_html'",
          "type": "query",
          "options": [],
          "regex": "",
          "tagsQuery": ""
        }
      ]
    },
    "timezone": "",
    "uid": "61",
    "editable": true,
    "id": 14,
    "liveNow": false,
    "weekStart": "",
    "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": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          }
        },
        {
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "type": "alert",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description"
        }
      ]
    },
    "schemaVersion": 36,
    "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: elephant-bus-factor-in-repository-groups
title: Elephant/Bus Factor in Repository Groups
created: 2024-10-23 04:16:57.43406182+00:00
updated: 2024-10-23 04:16:57.43406191+00:00
uid: 84
data:
  {
    "fiscalYearStartMonth": 0,
    "iteration": 1692692761672,
    "links": [],
    "panels": [
      {
        "type": "table",
        "id": 1,
        "pluginVersion": "8.5.27",
        "title": "[[full_name]] [[typ]] [[metric]] [[period_name]] Elephant/Bus Factor stats",
        "links": [],
        "transformations": [
          {
            "id": "merge",
            "options": {
              "reducers": []
            }
          }
        ],
        "interval": "",
        "options": {
          "sortBy": [
            {
              "desc": false,
              "displayName": "Project/Repository Group"
            }
          ],
          "footer": {
            "reducer": [
              "sum"
            ],
            "show": false,
            "fields": ""
          },
          "showHeader": true
        },
        "targets": [
          {
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "table",
            "datasource": {
              "type": "postgres",
              "uid": "P172949F98CB31475"
            },
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "query": "SELECT \"name\", \"value\" FROM \"top_commenters_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "orderByTime": "ASC",
            "tags": [],
            "rawSql": "select\n  split_part(name, '$$', 1) as \"Project/Repository Group\",\n  value as \"BF\",\n  split_part(name, '$$', 2)::numeric as \"BF%\",\n  split_part(name, '$$', 3) as \"Bus/Elephant Factor [[typ:text]]\",\n  split_part(name, '$$', 4)::numeric as \"Oth. #\",\n  split_part(name, '$$', 5)::numeric as \"Oth. %\",\n  -- split_part(name, '$$', 6) as \"Top 10\",\n  split_part(name, '$$', 7)::numeric as \"Top 10 %\",\n  split_part(name, '$$', 8) as \"Top [[typ:text]]\",\n  split_part(name, '$$', 9)::numeric as \"Rem. #\",\n  split_part(name, '$$', 10)::numeric as \"Rem. %\"\nfrom\n  shbf\nwhere\n  series = 'hbus[[typ]][[metric]]'\n  and period = '[[period]]'\norder by\n  1",
            "timeColumn": "time",
            "alias": "",
            "dsType": "influxdb",
            "metricColumn": "none",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ]
          }
        ],
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 25,
          "w": 24
        },
        "hideTimeOverride": true,
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "description": "Shows [[full_name]] [[typ:text]] [[metric:text]] [[period_name]] Elephant/Bus Factor stats",
        "fieldConfig": {
          "defaults": {
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "align": "auto",
              "displayMode": "auto",
              "inspect": false
            },
            "decimals": 0,
            "displayName": "",
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "value": null,
                  "color": "green"
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            },
            "unit": "none"
          },
          "overrides": [
            {
              "properties": [
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.width",
                  "value": 56
                }
              ],
              "matcher": {
                "options": "BF%",
                "id": "byName"
              }
            },
            {
              "matcher": {
                "options": "Oth. %",
                "id": "byName"
              },
              "properties": [
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.width",
                  "value": 71
                }
              ]
            },
            {
              "properties": [
                {
                  "value": 2,
                  "id": "decimals"
                },
                {
                  "id": "custom.width",
                  "value": 87
                }
              ],
              "matcher": {
                "options": "Top 10 %",
                "id": "byName"
              }
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Rem. %"
              },
              "properties": [
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.width",
                  "value": 80
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "BF"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 38
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Bus/Elephant Factor Organizations"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 553
                }
              ]
            },
            {
              "matcher": {
                "options": "Oth. #",
                "id": "byName"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 73
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Rem. #"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 76
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Project/Repository Group"
              },
              "properties": [
                {
                  "value": 337,
                  "id": "custom.width"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Top Organizations"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 770
                }
              ]
            },
            {
              "matcher": {
                "options": "Bus/Elephant Factor Users",
                "id": "byName"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 553
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Top Users"
              },
              "properties": [
                {
                  "value": 770,
                  "id": "custom.width"
                }
              ]
            }
          ]
        }
      },
      {
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.27",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "h": 18,
          "w": 24,
          "x": 0,
          "y": 25
        },
        "id": 11,
        "links": []
      }
    ],
    "refresh": false,
    "schemaVersion": 36,
    "templating": {
      "list": [
        {
          "includeAll": false,
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "Last decade",
            "value": "Last decade"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "name": "period_name",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "definition": "",
          "hide": 0,
          "label": "Range",
          "tagValuesQuery": "",
          "multi": false,
          "regex": "",
          "type": "query",
          "useTags": false
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "includeAll": false,
          "multi": false,
          "options": [],
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "y10",
            "value": "y10"
          },
          "definition": "",
          "skipUrlSync": true,
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "hide": 2,
          "name": "period",
          "refresh": 1,
          "regex": "",
          "sort": 0
        },
        {
          "useTags": false,
          "hide": 2,
          "multi": false,
          "tagsQuery": "",
          "includeAll": false,
          "options": [],
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "definition": ""
        },
        {
          "query": "select value_s from gha_vars where name = 'bus_factor_docs_html'",
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "definition": "select value_s from gha_vars where name = 'bus_factor_docs_html'",
          "includeAll": false,
          "multi": false,
          "name": "docs",
          "options": [],
          "tagValuesQuery": "",
          "type": "query",
          "sort": 0,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF Elephant/Bus factor in Repository Groups dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/bus_factor.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/all/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003ebus_factor\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/elephant-bus-factor-in-repository-groups.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard show elephant/bus factor and top 10 companies/contributors data for a given repository group and metric combination.\u003c/li\u003e\n\u003cli\u003eYou can choose between organizations/companies and users/contributors elephant/bus factor/top 10 stats.\u003c/li\u003e\n\u003cli\u003eBus factor value for a selected repository group/project is a minimal number of companies/contributors that contribute to \u003e50% of all contributions of given type.\u003c/li\u003e\n\u003cli\u003eWhen calculating for companies, we name it \"elephant\" factor, while for contributors we name it \"bus\" factor.\u003c/li\u003e\n\u003cli\u003eIt also displays companies/users who contribute to a bus factor and top 10 and percentage value of those contributions plus percentage and counts of the remaining contributors/organizations.\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\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eProject/Repository Group\u003c/code\u003e: CNCF project name (in case of All CNCF DevStats instance).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBF\u003c/code\u003e: Bus Factor value - the smallest number of users/organizations who contribute over 50% of a given metric type in a selected time range.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBF %\u003c/code\u003e: Percent value of contributions for bus factor number of top organizations/users.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBus Factor\u003c/code\u003e: List of organizations/users which belong to the calculated bus factor.\u003c/li\u003e\n\u003cli\u003eThis is truncated at 10, so if the bus factor is \u003e 10 then only 1st 10 will show (otherwise cell value will be too long, as is quite rare to have a bus factor \u003e 10, so not a big limitation, and I can eventually change it if needed).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOth. #\u003c/code\u003e: Count of the remaining users/organizations (those not in the bus factor, the remaining tail length).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOth. %\u003c/code\u003e: Percent of remaining contributions.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTop 10 %\u003c/code\u003e: How many percent contributions are coming from the top 10 organizations/users (if this is 100% then it can be from less than 10 - it can happen that only 4 organizations contribute to a project in a given time period for example).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTop\u003c/code\u003e: Top 10 companies/users listed (there can be less than 10).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRem. #\u003c/code\u003e: Count of the remaining companies/users outside of top 10 (can be 0).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRem. %\u003c/code\u003e: Percent of contributions from companies/users outside of top 10.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF Elephant/Bus factor in Repository Groups dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/bus_factor.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/all/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003ebus_factor\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/elephant-bus-factor-in-repository-groups.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard show elephant/bus factor and top 10 companies/contributors data for a given repository group and metric combination.\u003c/li\u003e\n\u003cli\u003eYou can choose between organizations/companies and users/contributors elephant/bus factor/top 10 stats.\u003c/li\u003e\n\u003cli\u003eBus factor value for a selected repository group/project is a minimal number of companies/contributors that contribute to \u003e50% of all contributions of given type.\u003c/li\u003e\n\u003cli\u003eWhen calculating for companies, we name it \"elephant\" factor, while for contributors we name it \"bus\" factor.\u003c/li\u003e\n\u003cli\u003eIt also displays companies/users who contribute to a bus factor and top 10 and percentage value of those contributions plus percentage and counts of the remaining contributors/organizations.\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\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eProject/Repository Group\u003c/code\u003e: CNCF project name (in case of All CNCF DevStats instance).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBF\u003c/code\u003e: Bus Factor value - the smallest number of users/organizations who contribute over 50% of a given metric type in a selected time range.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBF %\u003c/code\u003e: Percent value of contributions for bus factor number of top organizations/users.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eBus Factor\u003c/code\u003e: List of organizations/users which belong to the calculated bus factor.\u003c/li\u003e\n\u003cli\u003eThis is truncated at 10, so if the bus factor is \u003e 10 then only 1st 10 will show (otherwise cell value will be too long, as is quite rare to have a bus factor \u003e 10, so not a big limitation, and I can eventually change it if needed).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOth. #\u003c/code\u003e: Count of the remaining users/organizations (those not in the bus factor, the remaining tail length).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eOth. %\u003c/code\u003e: Percent of remaining contributions.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTop 10 %\u003c/code\u003e: How many percent contributions are coming from the top 10 organizations/users (if this is 100% then it can be from less than 10 - it can happen that only 4 organizations contribute to a project in a given time period for example).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTop\u003c/code\u003e: Top 10 companies/users listed (there can be less than 10).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRem. #\u003c/code\u003e: Count of the remaining companies/users outside of top 10 (can be 0).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRem. %\u003c/code\u003e: Percent of contributions from companies/users outside of top 10.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": 2,
          "skipUrlSync": true,
          "useTags": false
        },
        {
          "multi": false,
          "name": "metric",
          "queryValue": "",
          "type": "custom",
          "current": {
            "selected": false,
            "text": "Contributions",
            "value": "contributions"
          },
          "includeAll": false,
          "label": "Metric",
          "options": [
            {
              "selected": false,
              "text": "Comments",
              "value": "comments"
            },
            {
              "selected": false,
              "text": "Commit comments",
              "value": "commitcomments"
            },
            {
              "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": "issuecomments"
            },
            {
              "selected": false,
              "text": "Issues",
              "value": "issues"
            },
            {
              "selected": false,
              "text": "PRs",
              "value": "prs"
            },
            {
              "selected": false,
              "text": "Merged PRs",
              "value": "mergedprs"
            },
            {
              "selected": false,
              "text": "Review comments",
              "value": "reviewcomments"
            },
            {
              "selected": false,
              "text": "Reviews submitted",
              "value": "reviews"
            },
            {
              "selected": true,
              "text": "Contributions",
              "value": "contributions"
            },
            {
              "selected": false,
              "text": "Active repositories",
              "value": "activerepos"
            }
          ],
          "query": "comments,commitcomments,commits,events,pushes,contributions,issuecomments,issues,prs,mergedprs,reviewcomments,activerepos,reviews",
          "skipUrlSync": false,
          "hide": 0
        },
        {
          "type": "custom",
          "hide": 0,
          "multi": false,
          "name": "typ",
          "options": [
            {
              "selected": true,
              "text": "Organizations",
              "value": "org"
            },
            {
              "selected": false,
              "text": "Users",
              "value": "usr"
            }
          ],
          "queryValue": "",
          "current": {
            "selected": true,
            "text": "Organizations",
            "value": "org"
          },
          "includeAll": false,
          "label": "Type",
          "query": "org,usr",
          "skipUrlSync": false
        }
      ]
    },
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "target": {
            "tags": [],
            "type": "dashboard",
            "limit": 100,
            "matchAny": false
          },
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "type": "datasource",
            "uid": "grafana"
          },
          "enable": true
        }
      ]
    },
    "id": 16,
    "style": "dark",
    "timezone": "",
    "title": "Elephant/Bus Factor in Repository Groups",
    "graphTooltip": 0,
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "timepicker": {
      "hidden": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "version": 2,
    "weekStart": "",
    "editable": true,
    "liveNow": false,
    "tags": [
      "companies",
      "dashboard",
      "table",
      "all"
    ],
    "uid": "84"
  }


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


slug: home
title: Home
created: 2024-10-23 04:16:57.452261373+00:00
updated: 2024-10-23 04:16:57.452261443+00:00
uid: 62
data:
  {
    "gnetId": null,
    "graphTooltip": 2,
    "iteration": 1561540804599,
    "links": [],
    "panels": [
      {
        "tableColumn": "",
        "valueName": "last_time",
        "cacheTimeout": null,
        "colorBackground": false,
        "description": "Time of the last event.",
        "rangeMaps": [
          {
            "text": "N/A",
            "to": "null",
            "from": "null"
          }
        ],
        "colors": [
          "#299c46",
          "rgba(237, 129, 40, 0.89)",
          "#d44a3a"
        ],
        "id": 4,
        "valueFontSize": "50%",
        "sparkline": {
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)"
        },
        "targets": [
          {
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "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-%'])",
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "group": [],
            "metricColumn": "none",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumnType": "timestamp"
          }
        ],
        "valueMaps": [],
        "mappingType": 1,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "maxDataPoints": 100,
        "nullPointMode": "connected",
        "interval": "1h",
        "postfix": "",
        "prefixFontSize": "30%",
        "decimals": null,
        "format": "dateTimeAsUS",
        "gauge": {
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false
        },
        "gridPos": {
          "y": 0,
          "h": 1,
          "w": 4,
          "x": 0
        },
        "transparent": true,
        "postfixFontSize": "50%",
        "prefix": "Last event:",
        "timeFrom": null,
        "title": "",
        "colorValue": false,
        "nullText": null,
        "timeShift": null,
        "type": "singlestat",
        "links": [],
        "options": {
          
        },
        "thresholds": ""
      },
      {
        "colorPrefix": true,
        "decimals": 1,
        "gauge": {
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false
        },
        "options": {
          
        },
        "prefixFontSize": "30%",
        "targets": [
          {
            "format": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "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",
            "refId": "A",
            "timeColumnType": "timestamp",
            "group": [],
            "select": [
              [
                {
                  "type": "column",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "thresholds": "-20,20",
        "colorBackground": false,
        "title": "",
        "links": [],
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "tableColumn": "",
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 0
        },
        "maxDataPoints": 100,
        "prefix": "Commits change",
        "timeFrom": null,
        "colorPostfix": true,
        "id": 5,
        "postfix": "%",
        "sparkline": {
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)"
        },
        "transparent": true,
        "format": "none",
        "colors": [
          "#C4162A",
          "#FFF899",
          "#56A64B"
        ],
        "description": "The number of commits for the last month compared to the previous month.",
        "type": "singlestat",
        "valueFontSize": "50%",
        "valueName": "current",
        "cacheTimeout": null,
        "interval": "1h",
        "postfixFontSize": "30%",
        "timeShift": null,
        "valueMaps": [],
        "colorValue": true,
        "nullText": null,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "nullPointMode": "connected",
        "mappingType": 1
      },
      {
        "thresholds": "5,50,500",
        "circleMinSize": "2",
        "tableQueryOptions": {
          "queryType": "geohash",
          "geohashField": "country",
          "labelField": "country",
          "latitudeField": "latitude",
          "longitudeField": "longitude",
          "metricField": "value"
        },
        "valueName": "current",
        "initialZoom": 1,
        "title": "Last month contributions",
        "id": 7,
        "interval": "1h",
        "stickyLabels": false,
        "timeFrom": null,
        "unitSingular": "contribution",
        "circleMaxSize": "20",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "#FFEE52",
          "rgba(50, 172, 45, 0.97)"
        ],
        "type": "grafana-worldmap-panel",
        "hideZero": false,
        "targets": [
          {
            "format": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "group": [],
            "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",
            "table": "sall_prs_merged",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "transparent": true,
        "maxDataPoints": 1,
        "mouseWheelZoom": true,
        "showLegend": false,
        "timeShift": null,
        "unitPlural": "contributions",
        "unitSingle": "",
        "esMetric": "Count",
        "mapCenterLatitude": "30",
        "mapCenter": "custom",
        "options": {
          
        },
        "hideEmpty": false,
        "links": [],
        "locationData": "countries",
        "mapCenterLongitude": 0,
        "decimals": 0,
        "gridPos": {
          "w": 7,
          "x": 9,
          "y": 0,
          "h": 8
        }
      },
      {
        "unitPlural": "contributors",
        "decimals": 0,
        "type": "grafana-worldmap-panel",
        "maxDataPoints": 1,
        "stickyLabels": false,
        "circleMinSize": 2,
        "hideZero": false,
        "tableQueryOptions": {
          "geohashField": "country",
          "labelField": "country",
          "latitudeField": "latitude",
          "longitudeField": "longitude",
          "metricField": "value",
          "queryType": "geohash"
        },
        "timeShift": null,
        "transparent": true,
        "unitSingle": "",
        "colors": [
          "rgba(245, 54, 54, 0.9)",
          "rgba(237, 129, 40, 0.89)",
          "#FFEE52",
          "rgba(50, 172, 45, 0.97)"
        ],
        "mapCenterLongitude": 0,
        "id": 9,
        "initialZoom": 1,
        "options": {
          
        },
        "title": "Last month contributors",
        "circleMaxSize": "20",
        "description": "Number of active contributors during the last month.",
        "esMetric": "Count",
        "mouseWheelZoom": true,
        "timeFrom": null,
        "valueName": "current",
        "locationData": "countries",
        "mapCenter": "custom",
        "links": [],
        "mapCenterLatitude": "30",
        "gridPos": {
          "y": 0,
          "h": 8,
          "w": 7,
          "x": 16
        },
        "hideEmpty": false,
        "thresholds": "2,5,10",
        "unitSingular": "contributor",
        "showLegend": false,
        "targets": [
          {
            "metricColumn": "none",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "format": "time_series",
            "rawQuery": true,
            "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",
            "table": "sall_prs_merged",
            "timeColumnType": "timestamp",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "group": []
          }
        ]
      },
      {
        "title": "Percent repositories active",
        "gridPos": {
          "x": 0,
          "y": 1,
          "h": 7,
          "w": 4
        },
        "timeFrom": null,
        "interval": "1h",
        "links": [],
        "options": {
          "orientation": "auto",
          "showThresholdLabels": true,
          "showThresholdMarkers": true,
          "fieldOptions": {
            "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,
            "calcs": [
              "last"
            ],
            "defaults": {
              "max": 100,
              "min": 0,
              "title": "Last month vs last year",
              "decimals": 1
            }
          }
        },
        "pluginVersion": "6.2.4",
        "targets": [
          {
            "group": [],
            "rawQuery": true,
            "timeColumnType": "timestamp",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "format": "time_series",
            "metricColumn": "none",
            "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"
          }
        ],
        "timeShift": null,
        "description": "Percent of repositories active during the last month compared to the number of repositories active during the last year.",
        "id": 2,
        "transparent": true,
        "type": "gauge"
      },
      {
        "colorPrefix": true,
        "colorValue": true,
        "nullPointMode": "connected",
        "type": "singlestat",
        "valueFontSize": "50%",
        "colorBackground": false,
        "colorPostfix": true,
        "links": [],
        "nullText": null,
        "title": "",
        "description": "Percent of PRs opened during the last month compared to the number of PRs opened during the previous month.",
        "mappingType": 1,
        "postfixFontSize": "30%",
        "valueMaps": [],
        "transparent": true,
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "interval": "1h",
        "prefixFontSize": "30%",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "targets": [
          {
            "metricColumn": "none",
            "select": [
              [
                {
                  "type": "column",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "refId": "A",
            "table": "sall_prs_merged",
            "timeColumnType": "timestamp",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "format": "time_series",
            "group": [],
            "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"
          }
        ],
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 1
        },
        "options": {
          
        },
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "timeShift": null,
        "id": 10,
        "pluginVersion": "6.2.4",
        "postfix": "%",
        "thresholds": "-20,20",
        "timeFrom": null,
        "cacheTimeout": null,
        "colors": [
          "#C4162A",
          "#FFEE52",
          "#37872D"
        ],
        "format": "none",
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "prefix": "Opened PRs change",
        "decimals": 1,
        "maxDataPoints": 100,
        "tableColumn": "",
        "valueName": "current"
      },
      {
        "mappingType": 1,
        "nullText": null,
        "targets": [
          {
            "format": "time_series",
            "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.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",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "group": [],
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "colorPostfix": true,
        "decimals": 1,
        "gauge": {
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100,
          "minValue": 0
        },
        "interval": "1h",
        "maxDataPoints": 100,
        "prefix": "Merged PRs change",
        "thresholds": "-20,20",
        "colorBackground": false,
        "id": 11,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "transparent": true,
        "type": "singlestat",
        "valueMaps": [],
        "cacheTimeout": null,
        "format": "none",
        "nullPointMode": "connected",
        "prefixFontSize": "30%",
        "timeShift": null,
        "valueFontSize": "50%",
        "colors": [
          "#C4162A",
          "#FFF899",
          "#56A64B"
        ],
        "description": "Percent of PRs merged during the last month compared to the number of PRs merged during the previous month.",
        "postfix": "%",
        "postfixFontSize": "30%",
        "title": "",
        "valueName": "current",
        "colorPrefix": true,
        "gridPos": {
          "y": 2,
          "h": 1,
          "w": 5,
          "x": 4
        },
        "sparkline": {
          "lineColor": "rgb(31, 120, 193)",
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false
        },
        "timeFrom": null,
        "tableColumn": "",
        "colorValue": true,
        "links": [],
        "options": {
          
        },
        "rangeMaps": [
          {
            "text": "N/A",
            "to": "null",
            "from": "null"
          }
        ]
      },
      {
        "thresholds": "-20,20",
        "colors": [
          "#C4162A",
          "#FFF899",
          "#56A64B"
        ],
        "description": "Median time to merge PRs during the last month.",
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 3
        },
        "options": {
          
        },
        "postfixFontSize": "30%",
        "tableColumn": "value",
        "colorBackground": false,
        "links": [],
        "maxDataPoints": 100,
        "valueMaps": [],
        "mappingType": 1,
        "nullPointMode": "connected",
        "prefix": "Median time to merge PR",
        "sparkline": {
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)",
          "show": false
        },
        "format": "none",
        "postfix": "",
        "cacheTimeout": null,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "transparent": true,
        "type": "singlestat",
        "valueFontSize": "50%",
        "colorPostfix": false,
        "decimals": null,
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "id": 12,
        "targets": [
          {
            "metricColumn": "none",
            "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",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "table",
            "rawQuery": true,
            "timeColumnType": "timestamp",
            "group": []
          }
        ],
        "title": "",
        "colorPrefix": false,
        "nullText": null,
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "valueName": "current",
        "colorValue": false,
        "interval": "1h",
        "prefixFontSize": "30%",
        "timeFrom": null,
        "timeShift": null
      },
      {
        "colorPrefix": false,
        "nullText": null,
        "targets": [
          {
            "format": "table",
            "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",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "cacheTimeout": null,
        "decimals": null,
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 4
        },
        "options": {
          
        },
        "postfixFontSize": "30%",
        "sparkline": {
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)"
        },
        "thresholds": "-20,20",
        "colorValue": false,
        "prefix": "Previous time to merge PR",
        "title": "",
        "valueName": "current",
        "colorPostfix": false,
        "timeFrom": null,
        "transparent": true,
        "type": "singlestat",
        "valueFontSize": "50%",
        "colors": [
          "#C4162A",
          "#FFF899",
          "#56A64B"
        ],
        "format": "none",
        "gauge": {
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true,
          "maxValue": 100
        },
        "links": [],
        "mappingType": 1,
        "maxDataPoints": 100,
        "valueMaps": [],
        "colorBackground": false,
        "postfix": "",
        "prefixFontSize": "30%",
        "rangeMaps": [
          {
            "from": "null",
            "text": "N/A",
            "to": "null"
          }
        ],
        "nullPointMode": "connected",
        "id": 14,
        "interval": "1h",
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "tableColumn": "value",
        "timeShift": null,
        "description": "Median time to merge PRs during the previous month."
      },
      {
        "id": 13,
        "postfix": "%",
        "prefixFontSize": "30%",
        "sparkline": {
          "show": false,
          "fillColor": "rgba(31, 118, 189, 0.18)",
          "full": false,
          "lineColor": "rgb(31, 120, 193)"
        },
        "timeFrom": null,
        "decimals": 1,
        "gauge": {
          "maxValue": 100,
          "minValue": 0,
          "show": false,
          "thresholdLabels": false,
          "thresholdMarkers": true
        },
        "thresholds": "-20,20",
        "valueFontSize": "50%",
        "colorValue": true,
        "gridPos": {
          "h": 1,
          "w": 5,
          "x": 4,
          "y": 5
        },
        "nullPointMode": "connected",
        "nullText": null,
        "prefix": "Avg merge time change",
        "title": "",
        "colorPrefix": true,
        "maxDataPoints": 100,
        "mappingType": 1,
        "postfixFontSize": "30%",
        "valueMaps": [],
        "valueName": "current",
        "colorPostfix": true,
        "description": "Change of the median time to merge PRs this month vs. previous month.",
        "rangeMaps": [
          {
            "text": "N/A",
            "to": "null",
            "from": "null"
          }
        ],
        "transparent": true,
        "colors": [
          "#56A64B",
          "#FFF899",
          "#C4162A"
        ],
        "options": {
          
        },
        "links": [],
        "targets": [
          {
            "metricColumn": "none",
            "refId": "A",
            "timeColumn": "\"time\"",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "rawQuery": true,
            "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",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "timeColumnType": "timestamp",
            "format": "table"
          }
        ],
        "timeShift": null,
        "cacheTimeout": null,
        "colorBackground": false,
        "mappingTypes": [
          {
            "name": "value to text",
            "value": 1
          },
          {
            "name": "range to text",
            "value": 2
          }
        ],
        "tableColumn": "value",
        "type": "singlestat",
        "format": "none",
        "interval": "1h"
      },
      {
        "links": [],
        "refreshSettings": {
          "syncWithDashboard": false
        },
        "timezone": null,
        "countdownSettings": {
          "customFormat": null,
          "endCountdownTime": "2019-06-26T11:41:00.000Z",
          "endText": "00:00:00"
        },
        "id": 24,
        "interval": "1h",
        "clockType": "12 hour",
        "timeSettings": {
          "customFormat": "HH:mm:ss",
          "fontSize": "16px",
          "fontWeight": "normal"
        },
        "type": "grafana-clock-panel",
        "bgColor": "rgba(20, 33, 46, 0)",
        "description": "",
        "mode": "time",
        "targets": [
          {
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "shpr_comps",
            "timeColumnType": "timestamp",
            "group": [],
            "metricColumn": "none",
            "rawSql": "select 1",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "rawQuery": true,
            "timeColumn": "\"time\""
          }
        ],
        "timeFrom": null,
        "timeShift": null,
        "timezoneSettings": {
          "zoneFormat": "offsetAbbv",
          "fontSize": "12px",
          "fontWeight": "normal",
          "showTimezone": false
        },
        "title": "",
        "dateSettings": {
          "dateFormat": "MM/DD/YYYY",
          "fontSize": "16px",
          "fontWeight": "normal",
          "showDate": true
        },
        "gridPos": {
          "h": 2,
          "w": 5,
          "x": 4,
          "y": 6
        },
        "options": {
          
        },
        "transparent": true
      },
      {
        "links": [],
        "options": {
          
        },
        "transparent": true,
        "type": "neocat-cal-heatmap-panel",
        "config": {
          "cellSize": "15",
          "label": {
            "position": "bottom",
            "rotate": "null",
            "width": 60
          },
          "subDomainTitleFormat": {
            "empty": "{date}",
            "filled": {
              
            }
          },
          "cellRadius": "0",
          "hoverDecimals": 0,
          "itemName": [
            "short",
            "short"
          ],
          "legendColors": {
            "base": "transparent",
            "empty": "rgb(0, 0, 0)",
            "max": "#37872D",
            "min": "rgb(0, 0, 0)"
          },
          "legendTitleFormat": {
            "inner": {
              
            },
            "lower": {
              
            },
            "upper": {
              
            }
          },
          "linkTemplate": "",
          "subDomain": "hour",
          "displayLegend": true,
          "domainGutter": 2,
          "legendStr": "",
          "verticalOrientation": true,
          "colLimit": "24",
          "cellPadding": "-1",
          "domain": "day",
          "hoverUnitFormat": "short",
          "rowLimit": "1",
          "animationDuration": 0
        },
        "description": "Commits per day of month and hour.",
        "gridPos": {
          "x": 0,
          "y": 8,
          "h": 16,
          "w": 5
        },
        "id": 26,
        "interval": "1h",
        "targets": [
          {
            "format": "time_series",
            "rawQuery": true,
            "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",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "sha"
                  ],
                  "type": "column"
                },
                {
                  "params": [
                    "count"
                  ],
                  "type": "aggregate"
                },
                {
                  "type": "alias",
                  "params": [
                    "author_id"
                  ]
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [
              {
                "params": [
                  "1h",
                  "none"
                ],
                "type": "time"
              }
            ],
            "metricColumn": "none",
            "table": "gha_commits",
            "timeColumn": "dup_created_at",
            "timeColumnType": "timestamp"
          }
        ],
        "timeFrom": null,
        "timeShift": null,
        "title": "Last month commits per day and hour"
      },
      {
        "aliasColors": {
          
        },
        "breakPoint": "50%",
        "cacheTimeout": null,
        "description": "Top 50 repositories by the number of contributions, all having less than 1% merged into 'Others'.",
        "format": "short",
        "id": 16,
        "nullPointMode": "connected",
        "decimals": null,
        "interval": "1h",
        "links": [],
        "strokeWidth": "1",
        "targets": [
          {
            "refId": "A",
            "table": "sall_prs_merged",
            "timeColumn": "\"time\"",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "timeColumnType": "timestamp",
            "format": "time_series",
            "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",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ]
          }
        ],
        "timeFrom": null,
        "timeShift": null,
        "title": "Top 50 repositories",
        "transparent": true,
        "type": "grafana-piechart-panel",
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "fontSize": "60%",
        "gridPos": {
          "h": 11,
          "w": 6,
          "x": 5,
          "y": 8
        },
        "legend": {
          "percentage": true,
          "percentageDecimals": 1,
          "show": true,
          "sideWidth": 140,
          "values": true,
          "header": ""
        },
        "legendType": "On graph",
        "pieType": "donut",
        "maxDataPoints": 3,
        "options": {
          
        },
        "valueName": "current"
      },
      {
        "pieType": "donut",
        "cacheTimeout": null,
        "decimals": null,
        "fontSize": "60%",
        "format": "short",
        "legendType": "On graph",
        "links": [],
        "nullPointMode": "connected",
        "strokeWidth": "1",
        "timeShift": null,
        "breakPoint": "50%",
        "id": 17,
        "options": {
          
        },
        "timeFrom": null,
        "transparent": true,
        "valueName": "current",
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "interval": "1h",
        "legend": {
          "values": true,
          "header": "",
          "percentage": true,
          "percentageDecimals": 1,
          "show": true,
          "sideWidth": 140
        },
        "maxDataPoints": 3,
        "type": "grafana-piechart-panel",
        "aliasColors": {
          
        },
        "description": "Top 50 contributing companies, all companies having less than 1% merged into 'Others'.",
        "gridPos": {
          "h": 10,
          "w": 6,
          "x": 11,
          "y": 8
        },
        "targets": [
          {
            "format": "time_series",
            "group": [],
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "sall_prs_merged",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "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",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp"
          }
        ],
        "title": "Top 50 contributing companies"
      },
      {
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "group": [],
            "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",
            "refId": "A",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "rawQuery": true,
            "table": "sall_prs_merged",
            "timeColumn": "\"time\""
          }
        ],
        "valueName": "current",
        "cacheTimeout": null,
        "description": "Top 50 contributors, all contributors having less than 1% merged into 'Others'.",
        "fontSize": "60%",
        "format": "short",
        "maxDataPoints": 3,
        "strokeWidth": "1",
        "timeShift": null,
        "title": "Top 50 contributors",
        "legendType": "On graph",
        "nullPointMode": "connected",
        "aliasColors": {
          
        },
        "breakPoint": "50%",
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "gridPos": {
          "w": 6,
          "x": 17,
          "y": 8,
          "h": 10
        },
        "id": 20,
        "legend": {
          "header": "",
          "percentage": true,
          "percentageDecimals": 1,
          "show": true,
          "sideWidth": 140,
          "values": true
        },
        "timeFrom": null,
        "transparent": true,
        "decimals": null,
        "interval": "1h",
        "links": [],
        "options": {
          
        },
        "pieType": "donut",
        "type": "grafana-piechart-panel"
      },
      {
        "aliasColors": {
          
        },
        "breakPoint": "50%",
        "id": 21,
        "links": [],
        "maxDataPoints": 3,
        "strokeWidth": "1",
        "targets": [
          {
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "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",
            "group": [],
            "rawQuery": true,
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp"
          }
        ],
        "type": "grafana-piechart-panel",
        "gridPos": {
          "h": 10,
          "w": 6,
          "x": 11,
          "y": 18
        },
        "interval": "1h",
        "legendType": "On graph",
        "decimals": null,
        "legend": {
          "show": true,
          "sideWidth": 140,
          "values": true,
          "header": "",
          "percentage": true,
          "percentageDecimals": 1
        },
        "nullPointMode": "connected",
        "pieType": "donut",
        "timeShift": null,
        "transparent": true,
        "valueName": "current",
        "cacheTimeout": null,
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "description": "Top 50 committing companies, all companies having less than 1% merged into 'Others'.",
        "fontSize": "60%",
        "format": "short",
        "options": {
          
        },
        "timeFrom": null,
        "title": "Top 50 committing companies"
      },
      {
        "aliasColors": {
          
        },
        "breakPoint": "50%",
        "decimals": null,
        "gridPos": {
          "h": 10,
          "w": 6,
          "x": 17,
          "y": 18
        },
        "targets": [
          {
            "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",
            "timeColumn": "\"time\"",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "type": "column",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "timeColumnType": "timestamp"
          }
        ],
        "timeFrom": null,
        "transparent": true,
        "valueName": "current",
        "cacheTimeout": null,
        "format": "short",
        "legend": {
          "values": true,
          "header": "",
          "percentage": true,
          "percentageDecimals": 1,
          "show": true,
          "sideWidth": 140
        },
        "legendType": "On graph",
        "links": [],
        "pieType": "donut",
        "title": "Top 50 committers",
        "combine": {
          "label": "Others",
          "threshold": "0.01"
        },
        "description": "Top 50 committers, all contributors having less than 1% merged into 'Others'.",
        "interval": "1h",
        "nullPointMode": "connected",
        "options": {
          
        },
        "strokeWidth": "1",
        "fontSize": "60%",
        "id": 22,
        "maxDataPoints": 3,
        "timeShift": null,
        "type": "grafana-piechart-panel"
      },
      {
        "interval": "1h",
        "links": [],
        "options": {
          
        },
        "targets": [
          {
            "format": "time_series",
            "hide": false,
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "table": "sall_prs_merged",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "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\"",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp"
          }
        ],
        "timeShift": null,
        "title": "",
        "bgColor": "rgba(0, 0, 0, 0)",
        "gridPos": {
          "h": 9,
          "w": 6,
          "x": 5,
          "y": 19
        },
        "id": 19,
        "description": "Contributions graph",
        "radarSettings": {
          "scaleStep": "5",
          "fontSize": 14,
          "ignoreTimeInfluxDB": false,
          "legendType": "top",
          "fontColor": "#C0D8FF",
          "limitAspectRatio": true,
          "seriesAlias": "A=Contributions;",
          "aspectRatio": 2,
          "autoScale": true,
          "gridColor": "gray",
          "scaleMin": "1",
          "animationDurationMs": "1",
          "drawTicksBackground": false,
          "scaleMax": "10"
        },
        "timeFrom": null,
        "transparent": true,
        "type": "snuids-radar-panel"
      },
      {
        "pointradius": 2,
        "transparent": true,
        "dashes": false,
        "legend": {
          "avg": false,
          "current": false,
          "max": false,
          "min": false,
          "show": false,
          "total": false,
          "values": false
        },
        "links": [],
        "description": "Contributions over time",
        "lines": true,
        "title": "",
        "thresholds": [],
        "nullPointMode": "null",
        "renderer": "flot",
        "targets": [
          {
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "metricColumn": "none",
            "rawQuery": true,
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "shpr_comps",
            "timeColumnType": "timestamp",
            "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",
            "timeColumn": "\"time\""
          }
        ],
        "timeFrom": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "bars": false,
        "type": "graph",
        "seriesOverrides": [],
        "stack": false,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": false,
          "values": []
        },
        "fill": 0,
        "interval": "1h",
        "points": false,
        "percentage": false,
        "spaceLength": 10,
        "yaxes": [
          {
            "format": "short",
            "label": null,
            "logBase": 1,
            "max": null,
            "min": null,
            "show": false
          },
          {
            "format": "short",
            "label": null,
            "logBase": 1,
            "max": null,
            "min": null,
            "show": false
          }
        ],
        "dashLength": 10,
        "gridPos": {
          "x": 0,
          "y": 24,
          "h": 4,
          "w": 5
        },
        "linewidth": 1,
        "timeRegions": [],
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "id": 28,
        "options": {
          
        },
        "steppedLine": false
      }
    ],
    "schemaVersion": 18,
    "style": "dark",
    "tags": [
      "all",
      "dashboard"
    ],
    "timezone": "",
    "uid": "62",
    "templating": {
      "list": [
        {
          "includeAll": true,
          "multi": true,
          "tags": [],
          "refresh": 1,
          "skipUrlSync": false,
          "useTags": false,
          "query": "select distinct repo_group from gha_repos where repo_group is not null order by 1",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "allValue": null,
          "current": {
            "tags": [],
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "datasource": "psql",
          "options": [],
          "regex": "",
          "sort": 0,
          "type": "query",
          "definition": "select distinct repo_group from gha_repos where repo_group is not null order by 1",
          "hide": 0,
          "label": "Repository groups",
          "name": "repogroups"
        },
        {
          "includeAll": true,
          "label": "Contributors",
          "options": [],
          "useTags": false,
          "allValue": "null",
          "multi": true,
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "current": {
            "tags": [],
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "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,
          "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": [],
          "type": "query",
          "datasource": "psql",
          "name": "contributors",
          "skipUrlSync": false,
          "tagValuesQuery": ""
        }
      ]
    },
    "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"
      ]
    },
    "title": "Home",
    "annotations": {
      "list": [
        {
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1
        }
      ]
    },
    "id": 14,
    "refresh": "15m",
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "description": "Replicate git analytics data",
    "editable": true,
    "version": 4
  }


slug: home2
title: Home2
created: 2024-10-23 04:16:57.461005115+00:00
updated: 2024-10-23 04:16:57.461005195+00:00
uid: 63
data:
  {
    "iteration": 1561708084581,
    "title": "Home2",
    "version": 7,
    "panels": [
      {
        "cacheTimeout": null,
        "columns": [],
        "links": [],
        "options": {
          
        },
        "transparent": true,
        "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.",
        "pageSize": null,
        "sort": {
          "col": 0,
          "desc": true
        },
        "styles": [
          {
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": "cell",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "decimals": 1,
            "pattern": "Average LOC added",
            "thresholds": [
              "200",
              "2000"
            ]
          },
          {
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "mappingType": 1,
            "type": "number",
            "unit": "none",
            "alias": "",
            "colorMode": "cell",
            "decimals": 1,
            "pattern": "Max LOC added",
            "thresholds": [
              "1000",
              "100000"
            ]
          },
          {
            "colorMode": "cell",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "pattern": "Median LOC added",
            "thresholds": [
              "10",
              "200"
            ],
            "unit": "none",
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "mappingType": 1,
            "type": "number"
          },
          {
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "decimals": 1,
            "mappingType": 1,
            "thresholds": [
              "1",
              "5"
            ],
            "type": "number",
            "alias": "",
            "colorMode": "cell",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "15th perc. LOC added",
            "unit": "none"
          },
          {
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "#C4162A"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "colorMode": "cell",
            "mappingType": 1,
            "pattern": "85th perc. LOC added",
            "thresholds": [
              "100",
              "2000"
            ],
            "type": "number",
            "unit": "none"
          },
          {
            "mappingType": 1,
            "pattern": "Average LOC removed",
            "colorMode": "cell",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "type": "number",
            "unit": "none",
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "thresholds": [
              "100",
              "2000"
            ]
          },
          {
            "type": "number",
            "alias": "",
            "colorMode": "cell",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "unit": "none",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "Max LOC removed",
            "thresholds": [
              "1000",
              "100000"
            ]
          },
          {
            "thresholds": [
              "5",
              "100"
            ],
            "type": "number",
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "pattern": "Median LOC removed",
            "colorMode": "cell",
            "mappingType": 1,
            "unit": "none"
          },
          {
            "colorMode": "cell",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "15th perc. LOC removed",
            "thresholds": [
              "1",
              "5"
            ],
            "unit": "none",
            "alias": "",
            "type": "number",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ]
          },
          {
            "alias": "",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "mappingType": 1,
            "pattern": "85th perc. LOC removed",
            "thresholds": [
              "50",
              "2000"
            ],
            "type": "number",
            "colorMode": "cell",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "unit": "none"
          },
          {
            "alias": "",
            "colorMode": "cell",
            "pattern": "Average files ch.",
            "type": "number",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "mappingType": 1,
            "thresholds": [
              "2",
              "20"
            ],
            "unit": "none"
          },
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "type": "number",
            "alias": "",
            "colorMode": "cell",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "thresholds": [
              "50",
              "1000"
            ],
            "unit": "none",
            "decimals": 1,
            "mappingType": 1,
            "pattern": "Max files ch."
          },
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "Median files ch.",
            "thresholds": [
              "2",
              "5"
            ],
            "unit": "none",
            "type": "number",
            "alias": "",
            "colorMode": "cell",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "decimals": 1,
            "mappingType": 1
          },
          {
            "alias": "",
            "mappingType": 1,
            "type": "number",
            "unit": "none",
            "colorMode": "cell",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "pattern": "15th perc. files ch.",
            "thresholds": [
              "1",
              "2"
            ]
          },
          {
            "type": "number",
            "mappingType": 1,
            "colorMode": "cell",
            "colors": [
              "#1F60C4",
              "#37872D",
              "rgba(245, 54, 54, 0.9)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 1,
            "pattern": "85th perc. files ch.",
            "thresholds": [
              "5",
              "20"
            ],
            "unit": "none",
            "alias": ""
          }
        ],
        "type": "table",
        "interval": "1h",
        "showHeader": true,
        "targets": [
          {
            "format": "table",
            "metricColumn": "none",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "shpr_comps",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "group": [],
            "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",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "timeFrom": null,
        "title": "Last month LOC statistics",
        "fontSize": "80%",
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 3,
          "w": 24
        },
        "id": 4,
        "scroll": false,
        "timeShift": null,
        "transform": "table"
      },
      {
        "links": [],
        "maxDataPoints": 3,
        "pieType": "donut",
        "targets": [
          {
            "metricColumn": "none",
            "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"
                }
              ]
            ],
            "timeColumn": "\"time\"",
            "format": "time_series",
            "group": [],
            "rawQuery": true,
            "refId": "A",
            "table": "shpr_comps",
            "timeColumnType": "timestamp",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ]
          }
        ],
        "breakPoint": "50%",
        "cacheTimeout": null,
        "interval": "1h",
        "legendType": "On graph",
        "transparent": true,
        "fontSize": "60%",
        "nullPointMode": "connected",
        "options": {
          
        },
        "timeFrom": null,
        "legend": {
          "percentage": true,
          "percentageDecimals": 1,
          "show": true,
          "values": true
        },
        "type": "grafana-piechart-panel",
        "description": "Number of distinct commits modifying files with a given extension during the last month",
        "format": "short",
        "gridPos": {
          "x": 0,
          "y": 3,
          "h": 15,
          "w": 6
        },
        "id": 2,
        "title": "Last month top commits files extensions",
        "valueName": "current",
        "aliasColors": {
          
        },
        "combine": {
          "threshold": "0.01",
          "label": "Others"
        },
        "strokeWidth": 1,
        "timeShift": null
      },
      {
        "thresholds": [],
        "options": {
          
        },
        "percentage": false,
        "type": "graph",
        "linewidth": 2,
        "links": [],
        "nullPointMode": "null as zero",
        "stack": false,
        "decimals": null,
        "description": "Chart for all LOC statistics for all days during the last month. Displays 30th and 70th percentiles.",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "points": true,
        "renderer": "flot",
        "targets": [
          {
            "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\"",
            "format": "time_series",
            "group": [],
            "rawQuery": true,
            "table": "shpr_comps",
            "timeColumn": "\"time\"",
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ]
          },
          {
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "table": "shpr_comps",
            "timeColumn": "\"time\"",
            "format": "time_series",
            "group": [],
            "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",
            "timeColumnType": "timestamp",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ]
          },
          {
            "timeColumnType": "timestamp",
            "format": "time_series",
            "metricColumn": "none",
            "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\"",
            "refId": "C",
            "table": "shpr_comps",
            "timeColumn": "\"time\"",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ]
          }
        ],
        "title": "LOC statistics chart",
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": null,
            "logBase": 2,
            "max": null,
            "min": null
          },
          {
            "label": null,
            "logBase": 1,
            "max": null,
            "min": null,
            "show": true,
            "format": "short"
          }
        ],
        "dashes": false,
        "id": 6,
        "legend": {
          "current": true,
          "min": true,
          "avg": false,
          "max": true,
          "rightSide": false,
          "show": true,
          "total": false,
          "values": true,
          "alignAsTable": true
        },
        "lines": true,
        "spaceLength": 10,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "dashLength": 10,
        "interval": "1h",
        "gridPos": {
          "h": 15,
          "w": 18,
          "x": 6,
          "y": 3
        },
        "seriesOverrides": [
          {
            "alias": "70th percentile files changed daily",
            "color": "#3274D9",
            "fill": 2,
            "linewidth": 0,
            "steppedLine": true,
            "yaxis": 2
          },
          {
            "alias": "70th percentile LOC added daily",
            "color": "#56A64B"
          },
          {
            "alias": "70th percentile LOC removed daily",
            "color": "#C4162A"
          },
          {
            "linewidth": 0,
            "steppedLine": true,
            "yaxis": 2,
            "alias": "30th percentile files changed daily",
            "color": "rgb(77, 99, 115)",
            "fill": 4
          },
          {
            "alias": "30th percentile LOC added daily",
            "color": "#37872D"
          },
          {
            "alias": "30th percentile LOC removed daily",
            "color": "#E02F44"
          }
        ],
        "timeFrom": null,
        "timeRegions": [],
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "bars": false,
        "fill": 0,
        "timeShift": null,
        "transparent": true,
        "pointradius": 2,
        "steppedLine": false
      },
      {
        "id": 8,
        "interval": "1h",
        "showHeader": true,
        "timeShift": null,
        "columns": [],
        "links": [],
        "styles": [
          {
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "pattern": "Time",
            "type": "date"
          },
          {
            "thresholds": [],
            "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": "/.*/"
          }
        ],
        "type": "table",
        "targets": [
          {
            "table": "shpr_comps",
            "timeColumn": "\"time\"",
            "group": [],
            "metricColumn": "none",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "column"
                }
              ]
            ],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "table",
            "rawQuery": true,
            "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",
            "timeColumnType": "timestamp"
          }
        ],
        "title": "Throughput",
        "transform": "table",
        "description": "Throughput measures the amount of productive code written by a developer. By that we mean new lines of code written.",
        "fontSize": "80%",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 18
        },
        "scroll": true,
        "sort": {
          "col": 1,
          "desc": true
        },
        "transparent": true,
        "options": {
          
        },
        "pageSize": 200,
        "timeFrom": null
      }
    ],
    "timezone": "",
    "id": 15,
    "style": "dark",
    "gnetId": null,
    "graphTooltip": 0,
    "links": [],
    "refresh": "15m",
    "schemaVersion": 18,
    "tags": [
      "all",
      "dashboard"
    ],
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        }
      ]
    },
    "editable": true,
    "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"
      ]
    },
    "uid": "63",
    "templating": {
      "list": [
        {
          "name": "repogroups",
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "current": {
            "text": "All",
            "value": "$__all"
          },
          "datasource": "psql",
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "includeAll": true,
          "multi": true,
          "tags": [],
          "label": "Repository  groups",
          "skipUrlSync": false,
          "hide": 0,
          "options": [],
          "query": "select distinct repo_group from gha_repos where repo_group is not null order by 1",
          "useTags": false,
          "allValue": null,
          "definition": "select distinct repo_group from gha_repos where repo_group is not null order by 1"
        },
        {
          "datasource": "psql",
          "name": "contributors",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "allValue": "null",
          "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",
          "multi": true,
          "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",
          "regex": "",
          "sort": 0,
          "current": {
            "text": "All",
            "value": "$__all"
          },
          "hide": 0,
          "options": [],
          "refresh": 1,
          "tagsQuery": "",
          "useTags": false,
          "includeAll": true
        }
      ]
    },
    "time": {
      "from": "now-1M",
      "to": "now"
    }
  }


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


slug: issues-opened-closed-by-repository-group
title: Issues Opened/Closed by Repository Group
created: 2024-10-23 04:16:57.472334055+00:00
updated: 2024-10-23 04:16:57.472334135+00:00
uid: 12
data:
  {
    "gnetId": null,
    "schemaVersion": 19,
    "tags": [
      "dashboard",
      "all"
    ],
    "timezone": "",
    "version": 4,
    "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": "Issues Opened/Closed by Repository Group",
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true
        },
        {
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "enable": true,
          "limit": 100,
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "tagsColumn": "title,description",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "type": "alert"
        }
      ]
    },
    "graphTooltip": 0,
    "links": [],
    "style": "dark",
    "templating": {
      "list": [
        {
          "includeAll": false,
          "skipUrlSync": true,
          "type": "query",
          "label": null,
          "refresh": 1,
          "sort": 0,
          "definition": "",
          "hide": 2,
          "multi": false,
          "name": "full_name",
          "allValue": null,
          "current": {
            "text": "Istio",
            "value": "Istio"
          },
          "datasource": "psql",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "useTags": false
        },
        {
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,w,m,q,y",
          "skipUrlSync": false,
          "type": "custom",
          "allValue": null,
          "hide": 0,
          "label": "Period",
          "multi": false,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "includeAll": false,
          "name": "period"
        },
        {
          "sort": 0,
          "allValue": "",
          "options": [],
          "tags": [],
          "name": "repogroup_name",
          "skipUrlSync": false,
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "useTags": false,
          "current": {
            "text": "All",
            "value": "All"
          },
          "datasource": "psql",
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "definition": "",
          "label": "Repository group"
        },
        {
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "type": "query",
          "includeAll": false,
          "multi": false,
          "sort": 0,
          "tagsQuery": "",
          "hide": 2,
          "definition": "",
          "useTags": false,
          "datasource": "psql",
          "current": {
            "text": "all",
            "value": "all"
          },
          "label": "",
          "name": "repogroup",
          "tags": [],
          "allValue": ""
        },
        {
          "label": null,
          "options": [],
          "regex": "",
          "type": "query",
          "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"
          },
          "datasource": "psql",
          "multi": false,
          "allValue": null,
          "definition": "",
          "name": "docs",
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "useTags": false,
          "hide": 2,
          "includeAll": false,
          "skipUrlSync": true,
          "query": "select value_s from gha_vars where name = 'issues_docs_html'",
          "refresh": 1
        }
      ]
    },
    "iteration": 1567416900696,
    "panels": [
      {
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 9
        },
        "linewidth": 1,
        "links": [],
        "seriesOverrides": [],
        "stack": true,
        "steppedLine": false,
        "title": "Issues Repository group: [[repogroup_name]] ([[period]])",
        "fillGradient": 0,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "description": "Show Issues opened/closed for given repository group",
        "options": {
          "dataLinks": []
        },
        "bars": true,
        "legend": {
          "hideZero": false,
          "max": true,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "min": true,
          "rightSide": false,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "total": true,
          "current": true,
          "hideEmpty": false
        },
        "lines": false,
        "nullPointMode": "null as zero",
        "pointradius": 5,
        "spaceLength": 10,
        "timeShift": null,
        "transparent": true,
        "dashes": false,
        "datasource": "psql",
        "points": false,
        "thresholds": [],
        "dashLength": 10,
        "id": 3,
        "percentage": false,
        "renderer": "flot",
        "yaxes": [
          {
            "format": "short",
            "label": "Issues",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "fill": 1,
        "aliasColors": {
          
        },
        "targets": [
          {
            "format": "time_series",
            "resultFormat": "time_series",
            "tags": [],
            "alias": "",
            "groupBy": [],
            "measurement": "sig_federation_d",
            "orderByTime": "ASC",
            "rawQuery": true,
            "dsType": "influxdb",
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "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"
          },
          {
            "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",
            "resultFormat": "time_series",
            "alias": "",
            "tags": [],
            "format": "time_series",
            "groupBy": [],
            "measurement": "sig_federation_d",
            "orderByTime": "ASC",
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_closed_[[period]]\" WHERE $timeFilter"
          }
        ],
        "timeRegions": [],
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "decimals": 2,
        "type": "graph",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "timeFrom": null
      },
      {
        "decimals": 2,
        "gridPos": {
          "x": 0,
          "y": 9,
          "h": 9,
          "w": 24
        },
        "spaceLength": 10,
        "transparent": true,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "legend": {
          "hideEmpty": false,
          "show": true,
          "alignAsTable": true,
          "current": true,
          "hideZero": false,
          "max": true,
          "min": true,
          "rightSide": false,
          "sort": "avg",
          "sortDesc": true,
          "avg": true,
          "values": true,
          "total": true
        },
        "options": {
          "dataLinks": []
        },
        "percentage": false,
        "renderer": "flot",
        "timeRegions": [],
        "fillGradient": 0,
        "nullPointMode": "null as zero",
        "type": "graph",
        "lines": false,
        "timeShift": null,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "description": "Show PRs opened/closed for given repository group",
        "fill": 1,
        "stack": true,
        "thresholds": [],
        "id": 13,
        "linewidth": 1,
        "links": [],
        "points": false,
        "title": "PRs Repository group: [[repogroup_name]] ([[period]])",
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "bars": true,
        "dashLength": 10,
        "datasource": "psql",
        "seriesOverrides": [],
        "targets": [
          {
            "alias": "",
            "groupBy": [],
            "metricColumn": "none",
            "policy": "default",
            "rawQuery": true,
            "resultFormat": "time_series",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "dsType": "influxdb",
            "format": "time_series",
            "group": [],
            "measurement": "sig_federation_d",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"PRs opened\"\nfrom\n  spropened\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "timeColumn": "time",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_opened_[[period]]\" WHERE $timeFilter",
            "refId": "A"
          },
          {
            "measurement": "sig_federation_d",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_closed_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "format": "time_series",
            "groupBy": [],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "tags": [],
            "timeColumn": "time",
            "dsType": "influxdb",
            "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",
            "resultFormat": "time_series",
            "group": [],
            "rawQuery": true,
            "refId": "B",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashes": false,
        "pointradius": 5,
        "steppedLine": false,
        "timeFrom": null
      },
      {
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "linewidth": 1,
        "timeShift": null,
        "id": 12,
        "lines": true,
        "title": "Issues Repository group: [[repogroup_name]] ([[period]])",
        "decimals": 2,
        "gridPos": {
          "h": 9,
          "w": 24,
          "x": 0,
          "y": 18
        },
        "timeRegions": [],
        "description": "Show Issues opened/closed for given repository group",
        "seriesOverrides": [],
        "percentage": false,
        "renderer": "flot",
        "thresholds": [],
        "bars": false,
        "legend": {
          "hideZero": false,
          "max": true,
          "min": true,
          "show": true,
          "sort": "avg",
          "values": true,
          "hideEmpty": false,
          "avg": true,
          "current": true,
          "rightSide": false,
          "sortDesc": true,
          "total": true,
          "alignAsTable": true
        },
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Issues",
            "logBase": 1,
            "max": null
          },
          {
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null
          }
        ],
        "dashes": false,
        "nullPointMode": "null as zero",
        "points": false,
        "spaceLength": 10,
        "stack": false,
        "timeFrom": null,
        "type": "graph",
        "fillGradient": 0,
        "pointradius": 5,
        "options": {
          "dataLinks": []
        },
        "steppedLine": false,
        "targets": [
          {
            "alias": "",
            "groupBy": [],
            "orderByTime": "ASC",
            "dsType": "influxdb",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_opened_[[period]]\" WHERE $timeFilter",
            "tags": [],
            "format": "time_series",
            "group": [],
            "policy": "default",
            "resultFormat": "time_series",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "measurement": "sig_federation_d",
            "metricColumn": "none",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Issues opened\"\nfrom\n  siopened\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time"
          },
          {
            "group": [],
            "refId": "B",
            "alias": "",
            "dsType": "influxdb",
            "policy": "default",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "tags": [],
            "groupBy": [],
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Issues closed\"\nfrom\n  siclosed\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_closed_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "measurement": "sig_federation_d",
            "metricColumn": "none"
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "transparent": true,
        "datasource": "psql",
        "links": [],
        "fill": 0,
        "aliasColors": {
          
        },
        "dashLength": 10
      },
      {
        "aliasColors": {
          
        },
        "legend": {
          "avg": true,
          "hideEmpty": false,
          "hideZero": false,
          "max": true,
          "min": true,
          "show": true,
          "sort": "avg",
          "alignAsTable": true,
          "values": true,
          "rightSide": false,
          "sortDesc": true,
          "total": true,
          "current": true
        },
        "links": [],
        "dashLength": 10,
        "steppedLine": false,
        "timeShift": null,
        "dashes": false,
        "lines": true,
        "linewidth": 1,
        "renderer": "flot",
        "timeRegions": [],
        "transparent": true,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "datasource": "psql",
        "decimals": 2,
        "fillGradient": 0,
        "gridPos": {
          "h": 9,
          "w": 24,
          "x": 0,
          "y": 27
        },
        "nullPointMode": "null as zero",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "stack": false,
        "id": 14,
        "pointradius": 5,
        "seriesOverrides": [],
        "spaceLength": 10,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "type": "graph",
        "yaxes": [
          {
            "format": "short",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "bars": false,
        "description": "Show PRs opened/closed for given repository group",
        "fill": 0,
        "percentage": false,
        "targets": [
          {
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"PRs opened\"\nfrom\n  spropened\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "groupBy": [],
            "measurement": "sig_federation_d",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_opened_[[period]]\" WHERE $timeFilter",
            "dsType": "influxdb",
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "orderByTime": "ASC",
            "refId": "A",
            "format": "time_series",
            "group": [],
            "metricColumn": "none",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "timeColumn": "time",
            "alias": "",
            "policy": "default",
            "rawQuery": true
          },
          {
            "metricColumn": "none",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"PRs closed\"\nfrom\n  sprclosed\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "timeColumn": "time",
            "alias": "",
            "groupBy": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "group": [],
            "measurement": "sig_federation_d",
            "query": "SELECT /^[[repogroup]]$/ FROM \"issues_closed_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "resultFormat": "time_series",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "format": "time_series",
            "orderByTime": "ASC",
            "policy": "default",
            "refId": "B"
          }
        ],
        "thresholds": [],
        "title": "PRs Repository group: [[repogroup_name]] ([[period]])",
        "options": {
          "dataLinks": []
        },
        "points": false,
        "timeFrom": null
      },
      {
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 36,
          "h": 11
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "options": {
          
        },
        "title": "Dashboard documentation"
      }
    ],
    "refresh": false,
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "uid": "12",
    "editable": true,
    "id": 15
  }


slug: last-updated
title: Last updated
created: 2024-10-23 04:16:57.477227724+00:00
updated: 2024-10-23 04:16:57.477227834+00:00
uid: 82
data:
  {
    "id": 25,
    "liveNow": false,
    "panels": [
      {
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 22,
          "w": 24
        },
        "hideTimeOverride": false,
        "links": [],
        "targets": [
          {
            "alias": "",
            "datasource": {
              "type": "postgres",
              "uid": "P172949F98CB31475"
            },
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "metricColumn": "none",
            "timeColumn": "time",
            "dsType": "influxdb",
            "format": "table",
            "policy": "default",
            "rawQuery": true,
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "group": [],
            "orderByTime": "ASC",
            "query": "",
            "rawSql": "select\n  metric as \"Metric name\",\n  dt as \"Finished at\",\n  start_dt as \"Started at\",\n  took_as_str as \"Took\",\n  took as \"Milliseconds\",\n  command as \"Command\"\nfrom\n  gha_last_computed\norder by\n  dt desc",
            "refId": "A"
          }
        ],
        "title": "[[full_name]] metrics last calculation dates",
        "type": "table",
        "datasource": {
          "uid": "P172949F98CB31475",
          "type": "postgres"
        },
        "description": "[[full_name]] metrics last calculation dates",
        "fieldConfig": {
          "defaults": {
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "displayMode": "auto",
              "inspect": false,
              "align": "auto"
            },
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "value": null,
                  "color": "green"
                },
                {
                  "value": 80,
                  "color": "red"
                }
              ]
            }
          },
          "overrides": [
            {
              "matcher": {
                "id": "byName",
                "options": "Last calculated date"
              },
              "properties": [
                {
                  "value": 185,
                  "id": "custom.width"
                }
              ]
            },
            {
              "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": [
                {
                  "value": 172,
                  "id": "custom.width"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "Started at"
              },
              "properties": [
                {
                  "value": 183,
                  "id": "custom.width"
                }
              ]
            },
            {
              "matcher": {
                "options": "Milliseconds",
                "id": "byName"
              },
              "properties": [
                {
                  "id": "custom.width",
                  "value": 101
                }
              ]
            }
          ]
        },
        "id": 1,
        "interval": "",
        "options": {
          "footer": {
            "enablePagination": true,
            "fields": "",
            "reducer": [
              "sum"
            ],
            "show": false
          },
          "showHeader": true,
          "sortBy": [
            {
              "desc": true,
              "displayName": "Finished at"
            }
          ]
        },
        "pluginVersion": "8.5.20",
        "transformations": [
          {
            "id": "merge",
            "options": {
              "reducers": []
            }
          }
        ]
      },
      {
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 3,
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.20",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "targets": [
          {
            "datasource": {
              "type": "postgres",
              "uid": "P172949F98CB31475"
            },
            "format": "time_series",
            "rawQuery": false,
            "rawSql": "",
            "refId": "A",
            "select": [],
            "where": [],
            "group": [],
            "metricColumn": "none",
            "table": "",
            "timeColumn": "",
            "timeColumnType": ""
          }
        ],
        "title": "Dashboard documentation",
        "description": ""
      }
    ],
    "refresh": false,
    "tags": [
      "dashboard",
      "all"
    ],
    "uid": "82",
    "version": 4,
    "iteration": 1674835364311,
    "schemaVersion": 36,
    "timezone": "",
    "title": "Last updated",
    "graphTooltip": 0,
    "links": [],
    "time": {
      "from": "now-7d",
      "to": "now"
    },
    "timepicker": {
      "hidden": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "weekStart": "",
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "target": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          },
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "type": "datasource",
            "uid": "grafana"
          },
          "enable": true,
          "hide": true
        }
      ]
    },
    "editable": true,
    "fiscalYearStartMonth": 0,
    "style": "dark",
    "templating": {
      "list": [
        {
          "sort": 0,
          "useTags": false,
          "name": "full_name",
          "regex": "",
          "skipUrlSync": true,
          "includeAll": false,
          "tagValuesQuery": "",
          "type": "query",
          "current": {
            "value": "Kubernetes",
            "selected": false,
            "text": "Kubernetes"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "hide": 2,
          "multi": false,
          "tagsQuery": ""
        },
        {
          "regex": "",
          "hide": 2,
          "includeAll": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'last_updated_docs_html'",
          "refresh": 1,
          "multi": false,
          "skipUrlSync": false,
          "definition": "select value_s from gha_vars where name = 'last_updated_docs_html'",
          "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"
          },
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "name": "docs",
          "sort": 0,
          "type": "query"
        }
      ]
    }
  }


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


slug: new-and-episodic-issue-creators
title: New and Episodic Issue Creators
created: 2024-10-23 04:16:57.492436482+00:00
updated: 2024-10-23 04:16:57.492436582+00:00
uid: 13
data:
  {
    "panels": [
      {
        "dashes": false,
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "renderer": "flot",
        "spaceLength": 10,
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "fill": 1,
        "transparent": true,
        "type": "graph",
        "percentage": false,
        "aliasColors": {
          
        },
        "decimals": 0,
        "id": 1,
        "nullPointMode": "null",
        "pointradius": 1,
        "points": false,
        "title": "New/episodic issues ([[repogroup_name]], [[period]])",
        "xaxis": {
          "mode": "time",
          "show": true,
          "values": [
            "total"
          ]
        },
        "fillGradient": 0,
        "lines": true,
        "options": {
          "alertThreshold": true
        },
        "pluginVersion": "8.5.21",
        "seriesOverrides": [
          {
            "alias": "New contributors",
            "yaxis": 2
          },
          {
            "alias": "Episodic contributors",
            "yaxis": 2
          }
        ],
        "steppedLine": false,
        "yaxis": {
          "align": false
        },
        "bars": false,
        "links": [],
        "targets": [
          {
            "format": "time_series",
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"new_contributors_[[repogroup]]_prs_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "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",
            "refId": "A",
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "hide": false,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": []
          },
          {
            "alias": "",
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "hide": false,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "policy": "autogen",
            "rawQuery": true,
            "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",
            "refId": "B",
            "format": "time_series",
            "groupBy": [],
            "query": "SELECT \"value\" FROM \"new_contributors_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "resultFormat": "time_series",
            "tags": []
          },
          {
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "hide": false,
            "rawQuery": true,
            "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",
            "resultFormat": "time_series",
            "groupBy": [],
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"episodic_contributors_[[repogroup]]_prs_[[period]]\" WHERE $timeFilter",
            "refId": "C",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "policy": "autogen"
          },
          {
            "query": "SELECT \"value\" FROM \"episodic_contributors_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "policy": "autogen",
            "dsType": "influxdb",
            "resultFormat": "time_series",
            "alias": "",
            "hide": false,
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "tags": [],
            "format": "time_series",
            "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",
            "refId": "D",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": []
          }
        ],
        "timeRegions": [],
        "yaxes": [
          {
            "format": "none",
            "label": "Issues",
            "logBase": 1,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "none",
            "label": "Issue creators",
            "logBase": 1,
            "min": "0"
          }
        ],
        "dashLength": 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.",
        "hiddenSeries": false,
        "legend": {
          "min": true,
          "rightSide": false,
          "show": true,
          "alignAsTable": false,
          "current": true,
          "hideEmpty": false,
          "total": false,
          "values": true,
          "avg": true,
          "hideZero": false,
          "max": true
        },
        "linewidth": 1,
        "thresholds": [],
        "stack": false,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        }
      },
      {
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.21",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "style": "dark",
    "templating": {
      "list": [
        {
          "multi": false,
          "name": "period",
          "options": [
            {
              "selected": true,
              "text": "28 Days MA",
              "value": "d28"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "value": "m",
              "selected": false,
              "text": "Month"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,w,m,q,y",
          "skipUrlSync": false,
          "label": "Period",
          "hide": 0,
          "includeAll": false,
          "type": "custom",
          "current": {
            "selected": false,
            "text": "28 Days MA",
            "value": "d28"
          }
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "skipUrlSync": true,
          "multi": false,
          "options": [],
          "regex": "",
          "tagValuesQuery": "",
          "useTags": false,
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "definition": "",
          "hide": 2,
          "name": "full_name",
          "refresh": 1,
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "type": "query"
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "includeAll": false,
          "multi": false,
          "tagsQuery": "",
          "definition": "",
          "name": "repogroup_name",
          "hide": 0,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "skipUrlSync": false,
          "type": "query",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "label": "Repository group",
          "options": [],
          "refresh": 1,
          "regex": "",
          "sort": 1,
          "tagValuesQuery": "",
          "useTags": false
        },
        {
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "definition": "",
          "multi": false,
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tagsQuery": "",
          "type": "query",
          "name": "repogroup",
          "skipUrlSync": true,
          "sort": 0,
          "tagValuesQuery": "",
          "hide": 2,
          "includeAll": false,
          "regex": "",
          "useTags": false,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "refresh": 1
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "multi": false,
          "name": "docs",
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF new and episodic issue creators dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_issues.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/episodic_issues.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\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 and episodic issue creators\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/new-and-episodic-issue-creators.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows statistics about new and episodic issues and issue creators.\u003c/li\u003e\n\u003cli\u003eNew issue creator is someone who haven't created any issue before given period.\u003c/li\u003e\n\u003cli\u003eNew issue is an issue created by new issue creator\u003c/li\u003e\n\u003cli\u003eEpisodic issue creator is someone who haven't created any issue in 3 months before given project and haven't created more than 12 issues overall.\u003c/li\u003e\n\u003cli\u003eEpisodic issue is an issue created by episodic issue creator.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate statistics in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF new and episodic issue creators dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_issues.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic issues metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/episodic_issues.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\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 and episodic issue creators\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/new-and-episodic-issue-creators.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows statistics about new and episodic issues and issue creators.\u003c/li\u003e\n\u003cli\u003eNew issue creator is someone who haven't created any issue before given period.\u003c/li\u003e\n\u003cli\u003eNew issue is an issue created by new issue creator\u003c/li\u003e\n\u003cli\u003eEpisodic issue creator is someone who haven't created any issue in 3 months before given project and haven't created more than 12 issues overall.\u003c/li\u003e\n\u003cli\u003eEpisodic issue is an issue created by episodic issue creator.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate statistics in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "options": [],
          "type": "query",
          "sort": 0,
          "tagValuesQuery": "",
          "useTags": false,
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'new_and_episodic_issues_docs_html'",
          "regex": "",
          "skipUrlSync": true,
          "tagsQuery": "",
          "definition": "",
          "hide": 2,
          "refresh": 1
        }
      ]
    },
    "uid": "13",
    "graphTooltip": 0,
    "iteration": 1678427361376,
    "tags": [
      "dashboard",
      "all",
      "PRs"
    ],
    "weekStart": "",
    "editable": true,
    "schemaVersion": 36,
    "refresh": false,
    "timezone": "",
    "version": 2,
    "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": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          }
        },
        {
          "showIn": 0,
          "tagsColumn": "title,description",
          "textColumn": "",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "name": "Releases",
          "titleColumn": "Release",
          "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)",
          "type": "alert"
        }
      ]
    },
    "links": [],
    "liveNow": false,
    "time": {
      "from": "now-4y",
      "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"
      ]
    },
    "title": "New and Episodic Issue Creators",
    "fiscalYearStartMonth": 0,
    "id": 22
  }


slug: new-and-episodic-pr-contributors
title: New and Episodic PR Contributors
created: 2024-10-23 04:16:57.500128552+00:00
updated: 2024-10-23 04:16:57.500128652+00:00
uid: 14
data:
  {
    "schemaVersion": 36,
    "tags": [
      "dashboard",
      "all",
      "issues"
    ],
    "uid": "14",
    "editable": true,
    "graphTooltip": 0,
    "iteration": 1678427388294,
    "templating": {
      "list": [
        {
          "label": "Period",
          "multi": false,
          "current": {
            "selected": false,
            "text": "28 Days MA",
            "value": "d28"
          },
          "hide": 0,
          "includeAll": false,
          "name": "period",
          "options": [
            {
              "selected": true,
              "text": "28 Days MA",
              "value": "d28"
            },
            {
              "value": "w",
              "selected": false,
              "text": "Week"
            },
            {
              "text": "Month",
              "value": "m",
              "selected": false
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "value": "y",
              "selected": false,
              "text": "Year"
            }
          ],
          "query": "d,w,m,q,y",
          "skipUrlSync": false,
          "type": "custom"
        },
        {
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "refresh": 1,
          "options": [],
          "name": "full_name",
          "definition": "",
          "hide": 2,
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "includeAll": false,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          }
        },
        {
          "hide": 0,
          "includeAll": false,
          "label": "Repository group",
          "skipUrlSync": false,
          "type": "query",
          "definition": "",
          "multi": false,
          "name": "repogroup_name",
          "refresh": 1,
          "useTags": false,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "options": [],
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "regex": "",
          "sort": 1,
          "tagsQuery": "",
          "tagValuesQuery": ""
        },
        {
          "refresh": 1,
          "skipUrlSync": true,
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "hide": 2,
          "name": "repogroup",
          "sort": 0,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "includeAll": false,
          "definition": "",
          "tagValuesQuery": "",
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "regex": "",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "multi": false
        },
        {
          "multi": false,
          "query": "select value_s from gha_vars where name = 'new_and_episodic_prs_docs_html'",
          "regex": "",
          "tagValuesQuery": "",
          "sort": 0,
          "type": "query",
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "hide": 2,
          "name": "docs",
          "refresh": 1,
          "skipUrlSync": true,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF new and episodic PR contributors dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew contributors metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic contributors metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/episodic_contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eNew and episodic PR contributors\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/new-and-episodic-pr-contributors.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows statistics about new and episodic PRs and contributors (PR creators).\u003c/li\u003e\n\u003cli\u003eNew contributor (PR creator) is someone who haven't created any PR before given period.\u003c/li\u003e\n\u003cli\u003eNew PR is a PR created by new contributor\u003c/li\u003e\n\u003cli\u003eEpisodic contributor (PR creator) is someone who haven't created any PR in 3 months before given project and haven't created more than 12 PRs overall.\u003c/li\u003e\n\u003cli\u003eEpisodic PR is a PR created by episodic contributor.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate statistics in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF new and episodic PR contributors dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew contributors metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEpisodic contributors metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/episodic_contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eNew and episodic PR contributors\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/new-and-episodic-pr-contributors.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows statistics about new and episodic PRs and contributors (PR creators).\u003c/li\u003e\n\u003cli\u003eNew contributor (PR creator) is someone who haven't created any PR before given period.\u003c/li\u003e\n\u003cli\u003eNew PR is a PR created by new contributor\u003c/li\u003e\n\u003cli\u003eEpisodic contributor (PR creator) is someone who haven't created any PR in 3 months before given project and haven't created more than 12 PRs overall.\u003c/li\u003e\n\u003cli\u003eEpisodic PR is a PR created by episodic contributor.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate statistics in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "definition": "",
          "includeAll": false,
          "options": [],
          "tagsQuery": "",
          "useTags": false
        }
      ]
    },
    "title": "New and Episodic PR Contributors",
    "weekStart": "",
    "id": 23,
    "refresh": false,
    "time": {
      "from": "now-4y",
      "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"
      ]
    },
    "version": 2,
    "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": {
            "type": "dashboard",
            "limit": 100,
            "matchAny": false,
            "tags": []
          }
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "limit": 100,
          "showIn": 0,
          "textColumn": "",
          "titleColumn": "Release",
          "type": "alert",
          "enable": true,
          "hide": false,
          "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)",
          "tagsColumn": "title,description"
        }
      ]
    },
    "fiscalYearStartMonth": 0,
    "links": [],
    "liveNow": false,
    "panels": [
      {
        "nullPointMode": "null",
        "points": false,
        "id": 1,
        "legend": {
          "avg": true,
          "current": true,
          "hideZero": false,
          "max": true,
          "values": true,
          "alignAsTable": false,
          "hideEmpty": false,
          "min": true,
          "rightSide": false,
          "show": true,
          "total": false
        },
        "links": [],
        "targets": [
          {
            "format": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "rawQuery": true,
            "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",
            "refId": "A",
            "groupBy": [],
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "orderByTime": "ASC",
            "alias": "",
            "dsType": "influxdb",
            "hide": false,
            "policy": "autogen",
            "resultFormat": "time_series",
            "tags": []
          },
          {
            "groupBy": [],
            "orderByTime": "ASC",
            "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",
            "resultFormat": "time_series",
            "tags": [],
            "alias": "",
            "format": "time_series",
            "hide": false,
            "policy": "autogen",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "refId": "B"
          },
          {
            "alias": "",
            "refId": "C",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "hide": false,
            "measurement": "reviewers_d",
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "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",
            "resultFormat": "time_series"
          },
          {
            "format": "time_series",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "tags": [],
            "measurement": "reviewers_d",
            "policy": "autogen",
            "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",
            "resultFormat": "time_series",
            "alias": "",
            "hide": false,
            "refId": "D",
            "groupBy": []
          }
        ],
        "yaxis": {
          "align": false
        },
        "dashes": false,
        "renderer": "flot",
        "type": "graph",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "title": "[[full_name]] New/episodic PRs ([[repogroup_name]], [[period]])",
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 0
        },
        "fill": 1,
        "hiddenSeries": false,
        "options": {
          "alertThreshold": true
        },
        "linewidth": 1,
        "percentage": false,
        "pointradius": 1,
        "steppedLine": false,
        "aliasColors": {
          
        },
        "fillGradient": 0,
        "lines": true,
        "seriesOverrides": [
          {
            "alias": "New issue creators",
            "yaxis": 2
          },
          {
            "alias": "Episodic issue creators",
            "yaxis": 2
          }
        ],
        "stack": false,
        "timeRegions": [],
        "transparent": true,
        "xaxis": {
          "mode": "time",
          "show": true,
          "values": [
            "total"
          ]
        },
        "bars": false,
        "dashLength": 10,
        "pluginVersion": "8.5.21",
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "format": "none",
            "label": "PRs",
            "logBase": 1
          },
          {
            "format": "none",
            "label": "PR creators",
            "logBase": 1,
            "min": "0",
            "show": true
          }
        ],
        "spaceLength": 10,
        "thresholds": [],
        "decimals": 0,
        "description": "Displays the number of new/episodic issues and the number of new/episodic issues authors.\nThe episodic author is defined as someone who hasn't created issue in the last 3 months and no more than 12 issues overall.",
        "gridPos": {
          "y": 0,
          "h": 22,
          "w": 24,
          "x": 0
        }
      },
      {
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.21",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        }
      }
    ],
    "style": "dark",
    "timezone": ""
  }


slug: new-contributors-table
title: New Contributors Table
created: 2024-10-23 04:16:57.507023672+00:00
updated: 2024-10-23 04:16:57.507023752+00:00
uid: 52
data:
  {
    "panels": [
      {
        "description": "",
        "links": [],
        "pluginVersion": "8.2.1",
        "timeFrom": null,
        "targets": [
          {
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "rawQuery": true,
            "tags": [],
            "format": "table",
            "group": [],
            "orderByTime": "ASC",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none",
            "policy": "default",
            "rawSql": "select str, dt from \"snew_contributors_data\" where $__timeFilter(dt) and series = 'ncd[[repogroup]]' and period = 'd'",
            "dsType": "influxdb",
            "query": "",
            "refId": "A",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time"
          }
        ],
        "timeShift": null,
        "type": "table",
        "hideTimeOverride": false,
        "options": {
          "showHeader": true,
          "sortBy": [
            {
              "desc": true,
              "displayName": "First contribution"
            }
          ]
        },
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green",
                  "value": null
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            },
            "unit": "short",
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "displayMode": "auto",
              "align": null
            },
            "decimals": 0,
            "displayName": ""
          },
          "overrides": [
            {
              "matcher": {
                "id": "byName",
                "options": "str"
              },
              "properties": [
                {
                  "value": "Contributor",
                  "id": "displayName"
                },
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align",
                  "value": null
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "dt"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "First contribution"
                },
                {
                  "id": "unit",
                  "value": "none"
                },
                {
                  "id": "unit",
                  "value": "time: MM/DD/YY h:mm:ss a"
                },
                {
                  "id": "custom.align",
                  "value": null
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": ""
              },
              "properties": [
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align",
                  "value": null
                }
              ]
            }
          ]
        },
        "gridPos": {
          "y": 0,
          "h": 25,
          "w": 24,
          "x": 0
        },
        "id": 1,
        "title": "[[full_name]] New contributors table (Repository group [[repogroup_name]])",
        "transformations": [
          {
            "options": {
              "reducers": []
            },
            "id": "seriesToRows"
          }
        ]
      },
      {
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 25
        },
        "id": 11,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.2.1",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null
      }
    ],
    "schemaVersion": 31,
    "version": 2,
    "liveNow": false,
    "tags": [
      "dashboard",
      "all",
      "table"
    ],
    "templating": {
      "list": [
        {
          "definition": "",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "hide": 2,
          "skipUrlSync": true,
          "type": "query",
          "error": null,
          "label": null,
          "multi": false,
          "name": "full_name",
          "options": [],
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "description": null,
          "includeAll": false,
          "regex": ""
        },
        {
          "allValue": null,
          "includeAll": false,
          "skipUrlSync": false,
          "sort": 0,
          "type": "query",
          "useTags": false,
          "description": null,
          "hide": 0,
          "label": "Repository group",
          "options": [],
          "refresh": 1,
          "regex": "",
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "datasource": "psql",
          "definition": "",
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "error": null,
          "name": "repogroup_name",
          "tagsQuery": ""
        },
        {
          "label": "",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "regex": "",
          "error": null,
          "hide": 2,
          "includeAll": false,
          "multi": false,
          "options": [],
          "refresh": 1,
          "sort": 0,
          "allValue": null,
          "datasource": "psql",
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "description": null,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "definition": "",
          "name": "repogroup"
        },
        {
          "allValue": null,
          "datasource": "psql",
          "definition": "",
          "description": null,
          "hide": 2,
          "name": "docs",
          "tagValuesQuery": "",
          "error": null,
          "includeAll": false,
          "label": null,
          "tagsQuery": "",
          "type": "query",
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF new contributors table dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew contributors metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_contributors_data.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eNew contributors table\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/new-contributors-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows statistics about new PR contributors.\u003c/li\u003e\n\u003cli\u003eNew contributor (PR creator) is someone whose PR was merged for the first time.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select date range to show new contributors for this period.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF new contributors table dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNew contributors metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/new_contributors_data.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eNew contributors table\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/new-contributors-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows statistics about new PR contributors.\u003c/li\u003e\n\u003cli\u003eNew contributor (PR creator) is someone whose PR was merged for the first time.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can select date range to show new contributors for this period.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "multi": false,
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "useTags": false,
          "query": "select value_s from gha_vars where name = 'new_contributors_docs_html'",
          "regex": "",
          "sort": 0
        }
      ]
    },
    "timezone": "",
    "annotations": {
      "list": [
        {
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "target": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          }
        }
      ]
    },
    "editable": true,
    "id": 23,
    "links": [],
    "title": "New Contributors Table",
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "hidden": false,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "uid": "52",
    "fiscalYearStartMonth": 0,
    "gnetId": null,
    "iteration": 1634287251177,
    "style": "dark",
    "graphTooltip": 0,
    "refresh": false,
    "time": {
      "from": "now-1M",
      "to": "now"
    }
  }


slug: new-prs-in-repository-groups
title: New PRs in Repository Groups
created: 2024-10-23 04:16:57.514861468+00:00
updated: 2024-10-23 04:16:57.514861538+00:00
uid: 15
data:
  {
    "links": [],
    "style": "dark",
    "uid": "15",
    "version": 2,
    "gnetId": null,
    "tags": [
      "dashboard",
      "all"
    ],
    "timezone": "",
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        },
        {
          "type": "alert",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "tagsColumn": "title,description",
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "hide": false,
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0
        }
      ]
    },
    "graphTooltip": 0,
    "refresh": false,
    "schemaVersion": 21,
    "templating": {
      "list": [
        {
          "label": "Period",
          "name": "period",
          "options": [
            {
              "value": "d7",
              "selected": false,
              "text": "7 Days MA"
            },
            {
              "text": "Day",
              "value": "d",
              "selected": false
            },
            {
              "selected": true,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "value": "q",
              "selected": false,
              "text": "Quarter"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ],
          "skipUrlSync": false,
          "type": "custom",
          "includeAll": false,
          "current": {
            "tags": [],
            "text": "Week",
            "value": "w"
          },
          "hide": 0,
          "multi": false,
          "query": "d,d7,w,m,q,y",
          "allValue": null
        },
        {
          "name": "full_name",
          "options": [],
          "refresh": 1,
          "sort": 0,
          "allValue": null,
          "label": null,
          "multi": false,
          "useTags": false,
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "definition": "",
          "includeAll": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "type": "query",
          "regex": "",
          "skipUrlSync": true,
          "tags": []
        },
        {
          "refresh": 1,
          "sort": 0,
          "useTags": false,
          "datasource": "psql",
          "definition": "",
          "label": "Repository group",
          "multi": false,
          "name": "repogroup_name",
          "tagValuesQuery": "",
          "allValue": null,
          "hide": 0,
          "options": [],
          "tagsQuery": "",
          "type": "query",
          "current": {
            "tags": [],
            "text": "All",
            "value": "All"
          },
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "regex": "",
          "skipUrlSync": false,
          "tags": [],
          "includeAll": false
        },
        {
          "tagsQuery": "",
          "type": "query",
          "multi": false,
          "regex": "",
          "sort": 0,
          "name": "repogroup",
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tags": [],
          "current": {
            "text": "all",
            "value": "all"
          },
          "definition": "",
          "hide": 2,
          "label": "",
          "refresh": 1,
          "tagValuesQuery": "",
          "allValue": null,
          "datasource": "psql",
          "includeAll": false,
          "skipUrlSync": true,
          "useTags": false
        },
        {
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "type": "query",
          "allValue": null,
          "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"
          },
          "label": null,
          "options": [],
          "refresh": 1,
          "tags": [],
          "datasource": "psql",
          "definition": "",
          "multi": false,
          "name": "docs",
          "sort": 0,
          "hide": 2,
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'new_prs_docs_html'",
          "regex": "",
          "useTags": false,
          "tagsQuery": ""
        }
      ]
    },
    "time": {
      "from": "now-3y",
      "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"
      ]
    },
    "title": "New PRs in Repository Groups",
    "editable": true,
    "id": 23,
    "iteration": 1579677884548,
    "panels": [
      {
        "renderer": "flot",
        "seriesOverrides": [
          {
            "lines": true,
            "alias": "/including bots/",
            "bars": false,
            "fill": 0
          }
        ],
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "points": false,
        "stack": false,
        "fillGradient": 0,
        "legend": {
          "alignAsTable": true,
          "hideEmpty": false,
          "hideZero": false,
          "min": true,
          "show": true,
          "total": true,
          "avg": true,
          "current": true,
          "max": true,
          "rightSide": false,
          "values": true
        },
        "linewidth": 1,
        "percentage": false,
        "thresholds": [],
        "title": "New PRs created in [[repogroup_name]] repository group ([[period]])",
        "yaxes": [
          {
            "min": "0",
            "show": true,
            "format": "none",
            "label": "New PRs",
            "logBase": 1,
            "max": null
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "none",
            "label": "",
            "logBase": 1
          }
        ],
        "dashLength": 10,
        "description": "Number of new pull requests created in [[repogroup]] repository group.",
        "fill": 1,
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 22,
          "w": 24
        },
        "timeFrom": null,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "id": 1,
        "lines": false,
        "links": [],
        "nullPointMode": "null",
        "timeRegions": [],
        "timeShift": null,
        "aliasColors": {
          
        },
        "bars": true,
        "dashes": false,
        "targets": [
          {
            "dsType": "influxdb",
            "rawQuery": true,
            "alias": "",
            "policy": "autogen",
            "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",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "measurement": "reviewers_d",
            "query": "",
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "group": [],
            "groupBy": [],
            "hide": false,
            "metricColumn": "none",
            "orderByTime": "ASC",
            "timeColumn": "time"
          },
          {
            "resultFormat": "time_series",
            "policy": "autogen",
            "refId": "B",
            "timeColumn": "time",
            "format": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "hide": false,
            "metricColumn": "none",
            "orderByTime": "ASC",
            "rawQuery": true,
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "reviewers_d",
            "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": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "alias": "",
            "group": []
          }
        ],
        "steppedLine": false,
        "type": "graph",
        "datasource": "psql",
        "options": {
          "dataLinks": []
        },
        "pointradius": 5,
        "spaceLength": 10,
        "decimals": 0,
        "hiddenSeries": false
      },
      {
        "links": [],
        "mode": "html",
        "options": {
          
        },
        "content": "${docs:raw}",
        "datasource": null,
        "id": 11,
        "gridPos": {
          "h": 10,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "title": "Dashboard documentation",
        "type": "text"
      }
    ]
  }


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


slug: opened-to-merged
title: Opened to Merged
created: 2024-10-23 04:16:57.528445859+00:00
updated: 2024-10-23 04:16:57.528445939+00:00
uid: 16
data:
  {
    "schemaVersion": 36,
    "style": "dark",
    "tags": [
      "dashboard",
      "all"
    ],
    "time": {
      "from": "now-3y",
      "to": "now"
    },
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "target": {
            "tags": [],
            "type": "dashboard",
            "limit": 100,
            "matchAny": false
          },
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "type": "datasource",
            "uid": "grafana"
          },
          "enable": true
        },
        {
          "showIn": 0,
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "name": "Releases",
          "tagsColumn": "title,description",
          "type": "alert",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": false,
          "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)"
        }
      ]
    },
    "editable": true,
    "liveNow": false,
    "panels": [
      {
        "description": "Median, 15th and 85th percentile of number of hours from open to merging for PR",
        "fill": 0,
        "targets": [
          {
            "query": "SELECT \"value\" FROM \"opened_to_merged_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "refId": "A",
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "format": "time_series",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "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",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "groupBy": []
          },
          {
            "policy": "default",
            "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",
            "resultFormat": "time_series",
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"opened_to_merged_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": ""
          },
          {
            "alias": "",
            "orderByTime": "ASC",
            "policy": "default",
            "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",
            "refId": "C",
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "query": "SELECT \"value\" FROM \"opened_to_merged_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": []
          }
        ],
        "dashLength": 10,
        "decimals": 2,
        "percentage": false,
        "seriesOverrides": [
          {
            "alias": "15th percentile time opened to merged (in hours)",
            "yaxis": 2
          }
        ],
        "steppedLine": false,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "fillGradient": 0,
        "hiddenSeries": false,
        "id": 2,
        "links": [],
        "renderer": "flot",
        "dashes": false,
        "thresholds": [],
        "legend": {
          "values": true,
          "max": true,
          "min": true,
          "rightSide": false,
          "show": true,
          "total": false,
          "alignAsTable": true,
          "avg": true,
          "current": true
        },
        "nullPointMode": "null",
        "spaceLength": 10,
        "stack": false,
        "timeRegions": [],
        "bars": false,
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "pluginVersion": "8.5.21",
        "pointradius": 5,
        "points": false,
        "yaxis": {
          "align": false
        },
        "lines": true,
        "options": {
          "alertThreshold": true
        },
        "title": "Time from open to merge ([[repogroup_name]], [[period]])",
        "yaxes": [
          {
            "format": "h",
            "label": "Opened to merged (median \u0026 85th percentile)",
            "logBase": 10,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "short",
            "label": "Opened to merged (15th percentile)",
            "logBase": 1,
            "min": "0"
          }
        ],
        "aliasColors": {
          
        },
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "linewidth": 1,
        "type": "graph",
        "xaxis": {
          "mode": "time",
          "show": true,
          "values": []
        }
      },
      {
        "showHeader": true,
        "sort": {
          "col": 0,
          "desc": true
        },
        "transform": "timeseries_to_rows",
        "columns": [],
        "description": "Time PRs from open to merge",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 13
        },
        "id": 3,
        "links": [],
        "fontSize": "90%",
        "title": "Time from open to merge ([[repogroup_name]], [[period]])",
        "scroll": true,
        "targets": [
          {
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "rawQuery": true,
            "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",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"opened_to_merged_[[repogroup]]_percentile_15_[[period]]\" WHERE $timeFilter",
            "tags": []
          },
          {
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"descr\" FROM \"opened_to_merged_[[repogroup]]_median_[[period]]\" WHERE $timeFilter",
            "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",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "type": "mean",
                  "params": []
                }
              ]
            ],
            "alias": "",
            "format": "table",
            "rawQuery": true,
            "refId": "B",
            "resultFormat": "time_series",
            "tags": [],
            "dsType": "influxdb"
          },
          {
            "rawQuery": true,
            "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",
            "alias": "",
            "dsType": "influxdb",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "query": "SELECT \"descr\" FROM \"opened_to_merged_[[repogroup]]_percentile_85_[[period]]\" WHERE $timeFilter",
            "refId": "C",
            "resultFormat": "time_series"
          }
        ],
        "datasource": {
          "uid": "P172949F98CB31475",
          "type": "postgres"
        },
        "pageSize": 10,
        "styles": [
          {
            "dateFormat": "MM/DD/YYYY",
            "pattern": "Time",
            "type": "date",
            "alias": "Time",
            "align": "auto"
          },
          {
            "unit": "short",
            "alias": "",
            "align": "auto",
            "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"
          }
        ],
        "type": "table-old"
      },
      {
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 24,
          "h": 10
        },
        "id": 11,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.21",
        "title": "Dashboard documentation"
      }
    ],
    "uid": "16",
    "graphTooltip": 0,
    "id": 27,
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "weekStart": "",
    "fiscalYearStartMonth": 0,
    "iteration": 1678427492020,
    "timezone": "",
    "title": "Opened to Merged",
    "version": 2,
    "links": [],
    "templating": {
      "list": [
        {
          "query": "d7,w,m,q,y",
          "current": {
            "text": "7 Days MA",
            "value": "d7",
            "selected": false
          },
          "label": "Period",
          "multi": false,
          "name": "period",
          "options": [
            {
              "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"
            }
          ],
          "skipUrlSync": false,
          "type": "custom",
          "hide": 0,
          "includeAll": false
        },
        {
          "hide": 2,
          "includeAll": false,
          "options": [],
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "refresh": 1,
          "skipUrlSync": true,
          "useTags": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "definition": "",
          "name": "full_name",
          "sort": 0,
          "type": "query",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "regex": "",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "multi": false
        },
        {
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "current": {
            "text": "All",
            "value": "All",
            "selected": false
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": 0,
          "multi": false,
          "refresh": 1,
          "regex": "",
          "sort": 0,
          "type": "query",
          "useTags": false,
          "includeAll": false,
          "label": "Repository group",
          "options": [],
          "tagValuesQuery": "",
          "tagsQuery": "",
          "definition": "",
          "name": "repogroup_name",
          "skipUrlSync": false
        },
        {
          "includeAll": false,
          "multi": false,
          "options": [],
          "type": "query",
          "regex": "",
          "sort": 0,
          "useTags": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "definition": "",
          "hide": 2,
          "label": "",
          "name": "repogroup",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tagsQuery": ""
        },
        {
          "type": "query",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF opened to merged 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/opened_to_merged.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\u003eopened_to_merged\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/opened-to-merged.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows median, 15th and 85th percentiles of the time from open to merge for PRs opened in given periods.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate percentiles 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 opened to merged 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/opened_to_merged.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\u003eopened_to_merged\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/opened-to-merged.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows median, 15th and 85th percentiles of the time from open to merge for PRs opened in given periods.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate percentiles 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": [],
          "regex": "",
          "sort": 0,
          "tagsQuery": "",
          "definition": "",
          "query": "select value_s from gha_vars where name = 'opened_to_merged_docs_html'",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": 2,
          "refresh": 1,
          "tagValuesQuery": "",
          "includeAll": false,
          "name": "docs",
          "skipUrlSync": true
        }
      ]
    }
  }


slug: overall-project-statistics-table
title: Overall Project Statistics Table
created: 2024-10-23 04:16:57.533465066+00:00
updated: 2024-10-23 04:16:57.533465167+00:00
uid: 18
data:
  {
    "schemaVersion": 36,
    "tags": [
      "dashboard",
      "all",
      "table"
    ],
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "title": "Overall Project Statistics Table",
    "uid": "18",
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "target": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          },
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "type": "datasource",
            "uid": "grafana"
          },
          "enable": true,
          "hide": true
        }
      ]
    },
    "editable": true,
    "iteration": 1679902275701,
    "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"
      ],
      "hidden": true
    },
    "graphTooltip": 0,
    "id": 28,
    "links": [],
    "weekStart": "",
    "style": "dark",
    "timezone": "",
    "version": 2,
    "templating": {
      "list": [
        {
          "hide": 0,
          "label": "Range",
          "multi": false,
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "tagsQuery": "",
          "current": {
            "selected": true,
            "text": "Last decade",
            "value": "Last decade"
          },
          "type": "query",
          "useTags": false,
          "definition": "",
          "name": "period_name",
          "sort": 0,
          "tagValuesQuery": "",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "includeAll": false,
          "options": [],
          "refresh": 1,
          "regex": "",
          "skipUrlSync": false
        },
        {
          "tagValuesQuery": "",
          "includeAll": false,
          "hide": 2,
          "options": [],
          "skipUrlSync": true,
          "sort": 0,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "multi": false,
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "refresh": 1,
          "regex": "",
          "tagsQuery": "",
          "type": "query",
          "definition": ""
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "sort": 0,
          "includeAll": false,
          "name": "period",
          "options": [],
          "type": "query",
          "multi": false,
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "y10",
            "value": "y10"
          },
          "definition": "",
          "hide": 2,
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "tagValuesQuery": "",
          "useTags": false
        },
        {
          "name": "repogroup_name",
          "regex": "",
          "definition": "",
          "label": "Repository group",
          "multi": false,
          "skipUrlSync": false,
          "type": "query",
          "hide": 0,
          "options": [],
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "sort": 0,
          "tagsQuery": "",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "includeAll": false,
          "refresh": 1,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "tagValuesQuery": ""
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "hide": 2,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "includeAll": false,
          "label": "",
          "multi": false,
          "refresh": 1,
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "name": "repogroup",
          "options": [],
          "current": {
            "text": "all",
            "value": "all",
            "selected": false
          },
          "regex": "",
          "sort": 0
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "options": [],
          "tagsQuery": "",
          "definition": "",
          "query": "select value_s from gha_vars where name = 'projects_stats_docs_html'",
          "sort": 0,
          "useTags": false,
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF project statistics dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMain metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/project_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eproject_stats\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/project-statistics.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows various project metrics.\u003c/li\u003e\n\u003cli\u003eContributor is defined as somebody who made a review, comment, commit or created PR or issue.\u003c/li\u003e\n\u003cli\u003ePusher is somebody who pushed the commit into the repository, committer is somebody who made/authored a commit/PR pushed by the pusher, this can be the same person or not.\u003c/li\u003e\n\u003cli\u003eStargazers/Watchers are calculated as sum of distinct actors who performed a watch action on any of repositories that belong to a selected repository group.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week etc. range or date range between releases, for example \u003ccode\u003ev1.9 - v1.10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots when calculating statistics, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF project statistics dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMain metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/project_stats.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eproject_stats\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/project-statistics.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows various project metrics.\u003c/li\u003e\n\u003cli\u003eContributor is defined as somebody who made a review, comment, commit or created PR or issue.\u003c/li\u003e\n\u003cli\u003ePusher is somebody who pushed the commit into the repository, committer is somebody who made/authored a commit/PR pushed by the pusher, this can be the same person or not.\u003c/li\u003e\n\u003cli\u003eStargazers/Watchers are calculated as sum of distinct actors who performed a watch action on any of repositories that belong to a selected repository group.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week etc. range or date range between releases, for example \u003ccode\u003ev1.9 - v1.10\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots when calculating statistics, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "hide": 2,
          "includeAll": false,
          "multi": false,
          "name": "docs",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "type": "query"
        }
      ]
    },
    "fiscalYearStartMonth": 0,
    "liveNow": false,
    "panels": [
      {
        "targets": [
          {
            "rawSql": "select name, value from \"spstat\" where series = 'pstat[[repogroup]]' and period = '[[period]]'",
            "refId": "A",
            "tags": [],
            "dsType": "influxdb",
            "format": "table",
            "policy": "default",
            "query": "SELECT \"name\", \"value\" FROM \"project_stats_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "rawQuery": true
          }
        ],
        "title": "[[full_name]] Project statistics (Repository group [[repogroup_name]], Range: [[period_name]]), bots excluded",
        "fieldConfig": {
          "defaults": {
            "custom": {
              "displayMode": "auto",
              "inspect": false
            },
            "decimals": 0,
            "displayName": "",
            "mappings": [],
            "thresholds": {
              "steps": [
                {
                  "color": "green",
                  "value": null
                },
                {
                  "color": "red",
                  "value": 80
                }
              ],
              "mode": "absolute"
            },
            "unit": "short",
            "color": {
              "mode": "thresholds"
            }
          },
          "overrides": [
            {
              "matcher": {
                "id": "byName",
                "options": "Time"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "Time"
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "name"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "Metric name"
                },
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "value"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "Metric value"
                },
                {
                  "id": "unit",
                  "value": "none"
                },
                {
                  "id": "custom.align"
                }
              ]
            }
          ]
        },
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "links": [],
        "pluginVersion": "8.5.22",
        "transformations": [
          {
            "options": {
              "reducers": []
            },
            "id": "merge"
          }
        ],
        "type": "table",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "description": "",
        "hideTimeOverride": true,
        "options": {
          "footer": {
            "show": false,
            "fields": "",
            "reducer": [
              "sum"
            ]
          },
          "showHeader": true
        }
      },
      {
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "options": {
          "mode": "html",
          "content": "${docs:raw}"
        },
        "pluginVersion": "8.5.22",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        }
      }
    ]
  }


