# dashboard

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


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


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


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


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


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


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


slug: licenses-and-programming-languages
title: Licenses and programming languages
created: 2024-04-12 08:40:37.507944531+00:00
updated: 2024-04-12 08:40:37.507944601+00:00
uid: 67
data:
  {
    "graphTooltip": 0,
    "refresh": false,
    "templating": {
      "list": [
        {
          "tagValuesQuery": "",
          "tagsQuery": "",
          "skipUrlSync": true,
          "hide": 2,
          "regex": "",
          "type": "query",
          "definition": "",
          "current": {
            "value": "All CNCF",
            "text": "All CNCF"
          },
          "datasource": "psql",
          "label": null,
          "multi": false,
          "sort": 0,
          "useTags": false,
          "allValue": null,
          "name": "full_name",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "tags": [],
          "includeAll": false
        },
        {
          "skipUrlSync": true,
          "tags": [],
          "sort": 0,
          "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'",
          "refresh": 1,
          "regex": "",
          "multi": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'licenses_docs_html'",
          "type": "query",
          "datasource": "psql",
          "hide": 2,
          "includeAll": false,
          "label": null,
          "useTags": false,
          "allValue": null,
          "name": "docs",
          "tagValuesQuery": "",
          "tagsQuery": ""
        },
        {
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "datasource": "psql",
          "includeAll": true,
          "refresh": 1,
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "allValue": "null",
          "label": "Repository groups",
          "query": "select repo_group_name from trepo_groups order by 1",
          "regex": "",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "useTags": false,
          "definition": "select repo_group_name from trepo_groups order by 1",
          "hide": 0,
          "multi": true,
          "name": "repogroups",
          "options": []
        },
        {
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "query": "select license_name from tlicenses order by 1",
          "definition": "select license_name from tlicenses order by 1",
          "multi": true,
          "sort": 0,
          "tags": [],
          "useTags": false,
          "allValue": "null",
          "datasource": "psql",
          "name": "licenses",
          "refresh": 1,
          "tagsQuery": "",
          "type": "query",
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "includeAll": true,
          "label": "Licenses",
          "options": [],
          "regex": "",
          "hide": 0
        },
        {
          "multi": true,
          "name": "languages",
          "refresh": 1,
          "tagsQuery": "",
          "options": [],
          "sort": 0,
          "type": "query",
          "useTags": false,
          "regex": "",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "current": {
            "tags": [],
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "datasource": "psql",
          "definition": "select lang_name from tlanguages order by 1",
          "label": "Programming languages",
          "query": "select lang_name from tlanguages order by 1",
          "allValue": "null",
          "hide": 0,
          "includeAll": true,
          "tags": []
        }
      ]
    },
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "timezone": "",
    "version": 3,
    "panels": [
      {
        "id": 15,
        "interval": "",
        "links": [],
        "showHeader": true,
        "datasource": "psql",
        "gridPos": {
          "h": 3,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "sort": {
          "col": 2,
          "desc": true
        },
        "title": "Summary for all data",
        "type": "table",
        "columns": [],
        "pageSize": 2,
        "timeFrom": null,
        "timeShift": null,
        "transform": "table",
        "transparent": true,
        "description": "Summary for all [[full_name]] data. It includes data from repositories with unknown licenses and/or unknown programming languages.",
        "styles": [],
        "options": {
          
        },
        "scroll": true,
        "targets": [
          {
            "query": "",
            "refId": "A",
            "resultFormat": "table",
            "alias": "",
            "dsType": "influxdb",
            "rawQuery": true,
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "where": [
              {
                "type": "macro",
                "name": "$__timeFilter",
                "params": []
              }
            ],
            "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"
                }
              ]
            ],
            "tags": [],
            "timeColumn": "time",
            "format": "table",
            "group": [],
            "metricColumn": "none",
            "orderByTime": "ASC"
          }
        ],
        "fontSize": "100%",
        "hideTimeOverride": false
      },
      {
        "id": 1,
        "interval": "",
        "scroll": true,
        "showHeader": true,
        "timeFrom": null,
        "datasource": "psql",
        "gridPos": {
          "w": 5,
          "x": 0,
          "y": 3,
          "h": 15
        },
        "links": [],
        "options": {
          
        },
        "sort": {
          "col": 1,
          "desc": true
        },
        "targets": [
          {
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "refId": "A",
            "resultFormat": "table",
            "alias": "",
            "format": "table",
            "rawQuery": true,
            "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;",
            "tags": [],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "query": "",
            "dsType": "influxdb",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time"
          }
        ],
        "title": "Licenses summary",
        "columns": [],
        "hideTimeOverride": false,
        "transform": "table",
        "fontSize": "90%",
        "styles": [],
        "timeShift": null,
        "type": "table",
        "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.",
        "pageSize": 16
      },
      {
        "styles": [],
        "gridPos": {
          "h": 15,
          "w": 8,
          "x": 5,
          "y": 3
        },
        "links": [],
        "pageSize": 16,
        "targets": [
          {
            "metricColumn": "none",
            "policy": "default",
            "query": "",
            "where": [
              {
                "params": [],
                "type": "macro",
                "name": "$__timeFilter"
              }
            ],
            "alias": "",
            "format": "table",
            "group": [],
            "tags": [],
            "rawQuery": true,
            "rawSql": "select \n  rl.lang_name as \"Language\",\n  count(distinct r.alias) as \"Repositories\",\n  sum(rl.lang_loc) as \"BOC\"\nfrom\n  gha_repos r,\n  gha_repo_groups rg,\n  gha_repos_langs rl\nwhere\n  r.id = rg.id\n  and r.name = rg.name\n  and r.name = rl.repo_name\n  and ('[[repogroups:csv]]' = 'null' or rg.repo_group in ([[repogroups]]))\n  and ('[[licenses:csv]]' = 'null' or r.license_name in ([[licenses]]))\n  and ('[[languages:csv]]' = 'null' or rl.lang_name in ([[languages]]))\n  and rl.lang_name is not null and rl.lang_name not in ('', 'unknown')\n  and (r.name, r.id) = (\n    select i.name,\n      i.id\n    from\n      gha_repos i\n    where\n      i.alias = r.alias\n      and i.name like '%_/_%'\n      and i.name not like '%/%/%'\n    limit 1\n  )\ngroup by\n  rl.lang_name\n;",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "orderByTime": "ASC",
            "refId": "A",
            "dsType": "influxdb",
            "timeColumn": "time"
          }
        ],
        "timeFrom": null,
        "title": "Programming languages summary",
        "columns": [],
        "datasource": "psql",
        "type": "table",
        "options": {
          
        },
        "scroll": true,
        "showHeader": true,
        "transform": "table",
        "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.",
        "interval": "",
        "id": 13,
        "sort": {
          "col": 2,
          "desc": true
        },
        "timeShift": null,
        "fontSize": "90%",
        "hideTimeOverride": false
      },
      {
        "timeFrom": null,
        "timeShift": null,
        "transform": "table",
        "type": "table",
        "columns": [],
        "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.",
        "gridPos": {
          "h": 15,
          "w": 11,
          "x": 13,
          "y": 3
        },
        "interval": "",
        "links": [],
        "scroll": true,
        "targets": [
          {
            "format": "table",
            "timeColumn": "time",
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "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": [],
            "alias": "",
            "metricColumn": "none",
            "refId": "A",
            "dsType": "influxdb",
            "policy": "default",
            "query": "",
            "rawQuery": true,
            "resultFormat": "table",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "hideTimeOverride": false,
        "id": 14,
        "options": {
          
        },
        "pageSize": 16,
        "sort": {
          "col": 2,
          "desc": true
        },
        "styles": [],
        "datasource": "psql",
        "fontSize": "90%",
        "showHeader": true,
        "title": "Licenses and programming languages"
      },
      {
        "columns": [],
        "hideTimeOverride": false,
        "pageSize": 30,
        "options": {
          
        },
        "scroll": true,
        "timeFrom": null,
        "type": "table",
        "description": "Display license types and programming languages split per repository. Includes data for repositories with unknown licenses and/or unidentified programming languages.",
        "gridPos": {
          "h": 23,
          "w": 24,
          "x": 0,
          "y": 18
        },
        "id": 12,
        "interval": "",
        "showHeader": true,
        "styles": [
          {
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "type": "number",
            "thresholds": [],
            "unit": "short",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 3,
            "mappingType": 1,
            "pattern": "Language percent"
          }
        ],
        "targets": [
          {
            "group": [],
            "orderByTime": "ASC",
            "refId": "A",
            "policy": "default",
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "table",
            "metricColumn": "none",
            "rawQuery": true,
            "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;",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ]
          }
        ],
        "timeShift": null,
        "transform": "table",
        "datasource": "psql",
        "fontSize": "80%",
        "links": [],
        "sort": {
          "col": 4,
          "desc": true
        },
        "title": "Repository licenses and programming languages details for [[full_name]]"
      },
      {
        "content": "${docs:raw}",
        "datasource": null,
        "id": 11,
        "options": {
          
        },
        "title": "Dashboard documentation",
        "gridPos": {
          "x": 0,
          "y": 41,
          "h": 10,
          "w": 24
        },
        "links": [],
        "mode": "html",
        "type": "text"
      }
    ],
    "uid": "67",
    "editable": true,
    "gnetId": null,
    "id": 19,
    "links": [],
    "style": "dark",
    "timepicker": {
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "hidden": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ]
    },
    "title": "Licenses and programming languages",
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        }
      ]
    },
    "iteration": 1581599788116,
    "schemaVersion": 21,
    "tags": [
      "krustlet",
      "dashboard",
      "table"
    ]
  }


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


slug: new-and-episodic-pr-contributors
title: New and Episodic PR Contributors
created: 2024-04-12 08:40:37.519033902+00:00
updated: 2024-04-12 08:40:37.519033962+00:00
uid: 14
data:
  {
    "graphTooltip": 0,
    "iteration": 1586176671106,
    "style": "dark",
    "title": "New and Episodic PR Contributors",
    "panels": [
      {
        "datasource": "psql",
        "nullPointMode": "null",
        "lines": true,
        "linewidth": 1,
        "renderer": "flot",
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "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.",
        "id": 1,
        "fill": 1,
        "title": "New/episodic PRs ([[repogroup_name]], [[period]])",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ]
        },
        "aliasColors": {
          
        },
        "decimals": 0,
        "dashes": false,
        "timeShift": null,
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 22,
          "w": 24
        },
        "legend": {
          "hideZero": false,
          "min": true,
          "rightSide": false,
          "alignAsTable": false,
          "avg": true,
          "current": true,
          "hideEmpty": false,
          "max": true,
          "show": true,
          "total": false,
          "values": true
        },
        "links": [],
        "pointradius": 1,
        "points": false,
        "seriesOverrides": [
          {
            "alias": "New issue creators",
            "yaxis": 2
          },
          {
            "alias": "Episodic issue creators",
            "yaxis": 2
          }
        ],
        "bars": false,
        "dashLength": 10,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "thresholds": [],
        "transparent": true,
        "steppedLine": false,
        "percentage": false,
        "spaceLength": 10,
        "stack": false,
        "targets": [
          {
            "alias": "",
            "groupBy": [],
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "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",
            "dsType": "influxdb",
            "policy": "autogen",
            "rawQuery": true,
            "tags": [],
            "format": "time_series",
            "hide": false,
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter"
          },
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "hide": false,
            "orderByTime": "ASC",
            "policy": "autogen",
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "format": "time_series",
            "groupBy": [],
            "measurement": "reviewers_d",
            "rawQuery": true,
            "refId": "B",
            "tags": [],
            "query": "SELECT \"value\" FROM \"new_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "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"
          },
          {
            "alias": "",
            "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",
            "refId": "C",
            "tags": [],
            "dsType": "influxdb",
            "groupBy": [],
            "hide": false,
            "policy": "autogen",
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_issues_[[period]]\" WHERE $timeFilter",
            "format": "time_series",
            "orderByTime": "ASC",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "measurement": "reviewers_d",
            "rawQuery": true
          },
          {
            "dsType": "influxdb",
            "hide": false,
            "query": "SELECT \"value\" FROM \"episodic_issues_[[repogroup]]_contributors_[[period]]\" WHERE $timeFilter",
            "alias": "",
            "rawQuery": true,
            "refId": "D",
            "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",
            "tags": [],
            "format": "time_series",
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": [],
            "policy": "autogen",
            "resultFormat": "time_series"
          }
        ],
        "timeFrom": null,
        "yaxes": [
          {
            "format": "none",
            "label": "PRs",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "none",
            "label": "PR creators"
          }
        ],
        "fillGradient": 0,
        "options": {
          "dataLinks": []
        },
        "type": "graph",
        "hiddenSeries": false,
        "timeRegions": []
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "h": 13,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "links": [],
        "title": "Dashboard documentation",
        "datasource": null,
        "id": 11,
        "mode": "html",
        "options": {
          
        },
        "type": "text"
      }
    ],
    "templating": {
      "list": [
        {
          "allValue": null,
          "type": "query",
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "name": "full_name",
          "refresh": 1,
          "skipUrlSync": true,
          "sort": 0,
          "multi": false,
          "regex": "",
          "tagsQuery": "",
          "current": {
            
          },
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "includeAll": false,
          "label": null,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'"
        },
        {
          "allValue": null,
          "includeAll": false,
          "name": "period",
          "options": [
            {
              "selected": true,
              "text": "28 Days MA",
              "value": "d28"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "value": "y",
              "selected": false,
              "text": "Year"
            }
          ],
          "query": "d,w,m,q,y",
          "type": "custom",
          "current": {
            "tags": [],
            "text": "28 Days MA",
            "value": "d28"
          },
          "hide": 0,
          "label": "Period",
          "multi": false,
          "skipUrlSync": false
        },
        {
          "multi": false,
          "tagValuesQuery": "",
          "useTags": false,
          "definition": "",
          "hide": 0,
          "regex": "",
          "skipUrlSync": false,
          "tagsQuery": "",
          "label": "Repository group",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "sort": 1,
          "datasource": "psql",
          "includeAll": false,
          "name": "repogroup_name",
          "options": [],
          "refresh": 1,
          "tags": [],
          "type": "query",
          "allValue": null,
          "current": {
            
          }
        },
        {
          "includeAll": false,
          "label": null,
          "name": "repogroup",
          "refresh": 1,
          "useTags": false,
          "definition": "",
          "hide": 2,
          "datasource": "psql",
          "current": {
            
          },
          "multi": false,
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "allValue": null,
          "type": "query",
          "tagsQuery": "",
          "skipUrlSync": true,
          "regex": ""
        },
        {
          "label": null,
          "name": "docs",
          "skipUrlSync": true,
          "tags": [],
          "tagsQuery": "",
          "definition": "",
          "hide": 2,
          "includeAll": false,
          "regex": "",
          "tagValuesQuery": "",
          "datasource": "psql",
          "current": {
            
          },
          "multi": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'new_and_episodic_prs_docs_html'",
          "type": "query",
          "allValue": null,
          "sort": 0,
          "useTags": false,
          "refresh": 1
        }
      ]
    },
    "time": {
      "from": "now-1y",
      "to": "now-1M"
    },
    "timezone": "",
    "version": 2,
    "refresh": false,
    "schemaVersion": 21,
    "tags": [
      "dashboard",
      "krustlet",
      "issues"
    ],
    "uid": "14",
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        },
        {
          "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)",
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "type": "alert",
          "name": "Releases",
          "showIn": 0,
          "textColumn": "",
          "enable": true
        }
      ]
    },
    "editable": true,
    "gnetId": null,
    "id": 19,
    "links": [],
    "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: new-contributors-table
title: New Contributors Table
created: 2024-04-12 08:40:37.524183041+00:00
updated: 2024-04-12 08:40:37.524183091+00:00
uid: 52
data:
  {
    "liveNow": false,
    "panels": [
      {
        "description": "",
        "fieldConfig": {
          "defaults": {
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green",
                  "value": null
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            },
            "unit": "short",
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "displayMode": "auto",
              "inspect": false
            },
            "decimals": 0,
            "displayName": "",
            "mappings": []
          },
          "overrides": [
            {
              "matcher": {
                "id": "byName",
                "options": "str"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "Contributor"
                },
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "properties": [
                {
                  "id": "displayName",
                  "value": "First contribution"
                },
                {
                  "id": "unit",
                  "value": "none"
                },
                {
                  "id": "unit",
                  "value": "time: MM/DD/YY h:mm:ss a"
                },
                {
                  "id": "custom.align"
                }
              ],
              "matcher": {
                "id": "byName",
                "options": "dt"
              }
            },
            {
              "properties": [
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ],
              "matcher": {
                "id": "byName",
                "options": ""
              }
            }
          ]
        },
        "gridPos": {
          "h": 25,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "hideTimeOverride": false,
        "targets": [
          {
            "tags": [],
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "query": "",
            "rawSql": "select str, dt from \"snew_contributors_data\" where $__timeFilter(dt) and series = 'ncd[[repogroup]]' and period = 'd'",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "table"
          }
        ],
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "links": [],
        "options": {
          "footer": {
            "fields": "",
            "reducer": [
              "sum"
            ],
            "show": false
          },
          "showHeader": true
        },
        "pluginVersion": "8.5.27",
        "title": "[[full_name]] New contributors table (Repository group [[repogroup_name]])",
        "transformations": [
          {
            "id": "seriesToRows",
            "options": {
              "reducers": []
            }
          }
        ],
        "type": "table",
        "id": 1
      },
      {
        "pluginVersion": "8.5.27",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 25
        },
        "id": 11,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        }
      }
    ],
    "schemaVersion": 36,
    "timezone": "",
    "version": 2,
    "weekStart": "",
    "fiscalYearStartMonth": 0,
    "links": [],
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "uid": "52",
    "id": 21,
    "style": "dark",
    "tags": [
      "dashboard",
      "krustlet",
      "table"
    ],
    "timepicker": {
      "hidden": false,
      "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": [
        {
          "name": "Annotations \u0026 Alerts",
          "target": {
            "tags": [],
            "type": "dashboard",
            "limit": 100,
            "matchAny": false
          },
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "type": "datasource",
            "uid": "grafana"
          },
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        }
      ]
    },
    "graphTooltip": 0,
    "refresh": false,
    "templating": {
      "list": [
        {
          "definition": "",
          "tagValuesQuery": "",
          "name": "full_name",
          "tagsQuery": "",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "sort": 0,
          "current": {
            "value": "Krustlet",
            "selected": false,
            "text": "Krustlet"
          },
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": 2,
          "refresh": 1,
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "includeAll": false,
          "multi": false,
          "options": []
        },
        {
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "sort": 0,
          "tagsQuery": "",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "options": [],
          "refresh": 1,
          "regex": "",
          "skipUrlSync": false,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "hide": 0,
          "includeAll": false,
          "label": "Repository group",
          "name": "repogroup_name",
          "useTags": false,
          "multi": false,
          "tagValuesQuery": "",
          "type": "query"
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "refresh": 1,
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "hide": 2,
          "includeAll": false,
          "sort": 0,
          "label": "",
          "multi": false,
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "regex": "",
          "tagsQuery": "",
          "name": "repogroup",
          "skipUrlSync": true,
          "type": "query",
          "useTags": false
        },
        {
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "hide": 2,
          "multi": false,
          "sort": 0,
          "includeAll": false,
          "tagsQuery": "",
          "definition": "",
          "name": "docs",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "useTags": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'new_contributors_docs_html'",
          "tagValuesQuery": "",
          "type": "query"
        }
      ]
    },
    "title": "New Contributors Table",
    "editable": true,
    "iteration": 1702017941269
  }


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


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


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


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


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


slug: pr-reviews-by-contributor
title: PR Reviews by Contributor
created: 2024-04-12 08:40:37.552566038+00:00
updated: 2024-04-12 08:40:37.552566118+00:00
uid: 29
data:
  {
    "time": {
      "from": "now-3y",
      "to": "now"
    },
    "timezone": "",
    "version": 2,
    "iteration": 1626326573627,
    "panels": [
      {
        "timeFrom": null,
        "timeRegions": [],
        "type": "graph",
        "yaxes": [
          {
            "show": true,
            "format": "short",
            "label": "Number of PR review comments",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "decimals": null,
        "fillGradient": 0,
        "hiddenSeries": false,
        "options": {
          "alertThreshold": true
        },
        "targets": [
          {
            "groupBy": [],
            "measurement": "sig_federation_d",
            "rawSql": "select\n  time,\n  ${reviewers:csv}\nfrom\n  suser_reviews\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'rev_per_usr[[repo]]'\norder by\n  time",
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ],
            "alias": "",
            "format": "time_series",
            "policy": "default",
            "rawQuery": true,
            "resultFormat": "time_series",
            "orderByTime": "ASC",
            "tags": [],
            "dsType": "influxdb",
            "query": "SELECT /^[[reviewers]]$/ FROM \"reviews_per_user_[[repo]]_[[period]]\" WHERE $timeFilter"
          }
        ],
        "transparent": true,
        "renderer": "flot",
        "spaceLength": 10,
        "title": "Reviews per user/repo ([[repo_name]], [[period]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "percentage": false,
        "pointradius": 5,
        "stack": true,
        "description": "Shows review counts for given users and repository.",
        "lines": false,
        "pluginVersion": "8.0.3",
        "thresholds": [],
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "bars": true,
        "nullPointMode": "null as zero",
        "seriesOverrides": [],
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "hideTimeOverride": false,
        "id": 1,
        "points": false,
        "legend": {
          "max": true,
          "sortDesc": true,
          "alignAsTable": true,
          "rightSide": true,
          "sort": "avg",
          "total": true,
          "avg": true,
          "current": true,
          "hideZero": false,
          "min": true,
          "show": true,
          "sideWidth": null,
          "values": true,
          "hideEmpty": false
        },
        "links": [],
        "aliasColors": {
          
        },
        "dashLength": 10,
        "fill": 1,
        "linewidth": 1,
        "steppedLine": false,
        "dashes": false,
        "datasource": "psql",
        "fieldConfig": {
          "defaults": {
            "links": []
          },
          "overrides": []
        }
      },
      {
        "id": 11,
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.0.3",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null,
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 22
        }
      }
    ],
    "schemaVersion": 30,
    "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": [
        {
          "$$hashKey": "object:25",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        },
        {
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "enable": true,
          "limit": 100,
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "tagsColumn": "title,description",
          "textColumn": "",
          "$$hashKey": "object:26",
          "datasource": "psql",
          "name": "Releases"
        }
      ]
    },
    "editable": true,
    "links": [],
    "style": "dark",
    "tags": [
      "dashboard",
      "krustlet"
    ],
    "title": "PR Reviews by Contributor",
    "graphTooltip": 0,
    "id": 26,
    "uid": "29",
    "gnetId": null,
    "templating": {
      "list": [
        {
          "hide": 0,
          "includeAll": false,
          "label": "Period",
          "name": "period",
          "options": [
            {
              "text": "Day",
              "value": "d",
              "selected": false
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "text": "Month",
              "value": "m",
              "selected": false
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "text": "Year",
              "value": "y",
              "selected": false
            }
          ],
          "query": "d,w,d7,m,q,y",
          "current": {
            "selected": true,
            "text": "7 Days MA",
            "value": "d7"
          },
          "description": null,
          "type": "custom",
          "multi": false,
          "skipUrlSync": false,
          "allValue": null,
          "error": null
        },
        {
          "includeAll": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "error": null,
          "name": "repo_name",
          "useTags": false,
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "definition": "",
          "hide": 0,
          "multi": false,
          "refresh": 1,
          "skipUrlSync": false,
          "allValue": null,
          "datasource": "psql",
          "description": null,
          "label": "Repository",
          "options": [],
          "query": "select top_repos_name_with_all from ttop_repos_with_all order by 1",
          "regex": "",
          "sort": 0
        },
        {
          "current": {
            "selected": false,
            "text": "all",
            "value": "all"
          },
          "type": "query",
          "useTags": false,
          "definition": "",
          "query": "select top_repos_value_with_all from ttop_repos_with_all where top_repos_name_with_all = '[[repo_name]]'",
          "refresh": 1,
          "tagsQuery": "",
          "multi": false,
          "regex": "",
          "sort": 0,
          "tagValuesQuery": "",
          "datasource": "psql",
          "error": null,
          "hide": 2,
          "includeAll": false,
          "options": [],
          "skipUrlSync": true,
          "allValue": null,
          "description": null,
          "label": "",
          "name": "repo"
        },
        {
          "error": null,
          "includeAll": false,
          "multi": true,
          "name": "reviewers",
          "refresh": 1,
          "regex": "",
          "type": "query",
          "current": {
            "value": [
              "\"thomastaylor312\"",
              "\"kate-goldenring\"",
              "\"kesselborn\"",
              "\"kflansburg\"",
              "\"bacongobbler\"",
              "\"alexeldeib\"",
              "\"radu-matei\"",
              "\"sladyn98\"",
              "\"ereslibre\"",
              "\"VishnuJin\"",
              "\"tot0\""
            ],
            "selected": true,
            "text": [
              "\"thomastaylor312\"",
              "\"kate-goldenring\"",
              "\"kesselborn\"",
              "\"kflansburg\"",
              "\"bacongobbler\"",
              "\"alexeldeib\"",
              "\"radu-matei\"",
              "\"sladyn98\"",
              "\"ereslibre\"",
              "\"VishnuJin\"",
              "\"tot0\""
            ]
          },
          "definition": "",
          "hide": 0,
          "label": "Reviewer",
          "options": [],
          "query": "select '\"' || reviewers_name || '\"' from treviewers",
          "tagsQuery": "",
          "useTags": false,
          "datasource": "psql",
          "description": null,
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "allValue": ""
        },
        {
          "datasource": "psql",
          "error": null,
          "hide": 2,
          "label": null,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "tagsQuery": "",
          "allValue": null,
          "current": {
            "selected": false,
            "text": "Krustlet",
            "value": "Krustlet"
          },
          "definition": "",
          "includeAll": false,
          "name": "full_name",
          "skipUrlSync": true,
          "sort": 0,
          "options": [],
          "tagValuesQuery": "",
          "description": null,
          "regex": "",
          "type": "query",
          "useTags": false
        },
        {
          "options": [],
          "regex": "",
          "current": {
            "selected": false,
            "text": "\u003ch1 id=\"dashboard-header\"\u003eKrustlet user reviews dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/reviews_per_user.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003ereviews_per_user\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/krustlet/user-reviews.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of PR reviews most active reviewers.\u003c/li\u003e\n\u003cli\u003eReview means user added PR review comment.\u003c/li\u003e\n\u003cli\u003eYou can select reviewer from the reviewers drop-down, it shows top active reviewers from last 3 months.\u003c/li\u003e\n\u003cli\u003eTo find top active reviewers we sum number of reviews per user.\u003c/li\u003e\n\u003cli\u003eYou can select single repository or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can filter by period and choose multiple reviewers to stack their data.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show reviews in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eKrustlet user reviews dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/reviews_per_user.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003ereviews_per_user\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/krustlet/user-reviews.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of PR reviews most active reviewers.\u003c/li\u003e\n\u003cli\u003eReview means user added PR review comment.\u003c/li\u003e\n\u003cli\u003eYou can select reviewer from the reviewers drop-down, it shows top active reviewers from last 3 months.\u003c/li\u003e\n\u003cli\u003eTo find top active reviewers we sum number of reviews per user.\u003c/li\u003e\n\u003cli\u003eYou can select single repository or summary for all of them.\u003c/li\u003e\n\u003cli\u003eYou can filter by period and choose multiple reviewers to stack their data.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show reviews in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "label": null,
          "query": "select value_s from gha_vars where name = 'user_reviews_docs_html'",
          "refresh": 1,
          "error": null,
          "name": "docs",
          "description": null,
          "hide": 2,
          "includeAll": false,
          "multi": false,
          "datasource": "psql",
          "definition": "",
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "allValue": null,
          "skipUrlSync": true
        }
      ]
    }
  }


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


slug: prs-approval-repository-groups
title: PRs Approval Repository Groups
created: 2024-04-12 08:40:37.561580164+00:00
updated: 2024-04-12 08:40:37.561580244+00:00
uid: 20
data:
  {
    "templating": {
      "list": [
        {
          "tags": [],
          "useTags": false,
          "definition": "",
          "hide": 2,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "includeAll": false,
          "regex": "",
          "type": "query",
          "sort": 0,
          "multi": false,
          "name": "full_name",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "tagsQuery": "",
          "allValue": null,
          "current": {
            
          },
          "datasource": "psql",
          "label": null
        },
        {
          "current": {
            "value": "d7",
            "tags": [],
            "text": "7 Days MA"
          },
          "includeAll": false,
          "query": "d,w,m,q,y",
          "type": "custom",
          "name": "period",
          "options": [
            {
              "selected": true,
              "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,
          "allValue": null,
          "hide": 0,
          "label": "Period",
          "multi": false
        },
        {
          "name": "repogroup_name",
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "label": "Repository group",
          "hide": 0,
          "multi": false,
          "options": [],
          "refresh": 1,
          "allValue": "",
          "current": {
            
          },
          "definition": "",
          "skipUrlSync": false,
          "tagsQuery": "",
          "useTags": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "regex": "",
          "sort": 0
        },
        {
          "datasource": "psql",
          "definition": "",
          "hide": 2,
          "tagValuesQuery": "",
          "useTags": false,
          "includeAll": false,
          "label": "",
          "skipUrlSync": true,
          "type": "query",
          "current": {
            
          },
          "multi": false,
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "allValue": "",
          "name": "repogroup",
          "refresh": 1,
          "regex": ""
        },
        {
          "options": [],
          "sort": 0,
          "tags": [],
          "datasource": "psql",
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'prs_approval_docs_html'",
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "current": {
            
          },
          "label": null,
          "multi": false,
          "refresh": 1,
          "tagValuesQuery": "",
          "useTags": false,
          "definition": "",
          "hide": 2,
          "includeAll": false,
          "regex": "",
          "skipUrlSync": true
        }
      ]
    },
    "gnetId": null,
    "links": [],
    "refresh": false,
    "style": "dark",
    "panels": [
      {
        "stack": true,
        "timeRegions": [],
        "aliasColors": {
          
        },
        "bars": false,
        "description": "Number of PRs",
        "fillGradient": 0,
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "links": [],
        "type": "graph",
        "fill": 5,
        "points": false,
        "seriesOverrides": [],
        "steppedLine": true,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "decimals": 2,
        "nullPointMode": "null as zero",
        "thresholds": [],
        "timeFrom": null,
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "pointradius": 5,
        "title": "PRs approved and awaiting approval ([[repogroup]], [[period]])",
        "hiddenSeries": false,
        "timeShift": null,
        "id": 2,
        "linewidth": 0,
        "percentage": false,
        "spaceLength": 10,
        "lines": true,
        "options": {
          "dataLinks": []
        },
        "renderer": "flot",
        "targets": [
          {
            "alias": "Approved",
            "dsType": "influxdb",
            "query": "SELECT /^[[repogroup]]$/ FROM \"prs_approve_state_approved_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Approved\"\nfrom\n  spr_apprappr\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "groupBy": [],
            "measurement": "",
            "orderByTime": "ASC",
            "policy": "default",
            "refId": "A",
            "tags": []
          },
          {
            "alias": "Awaiting approval",
            "groupBy": [],
            "query": "SELECT /^[[repogroup]]$/ FROM \"prs_approve_state_awaiting_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  \"[[repogroup]]\" as \"Awaiting approval\"\nfrom\n  spr_apprwait\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "B",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "dsType": "influxdb",
            "measurement": "",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "tags": []
          }
        ],
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "dashes": false,
        "datasource": "psql",
        "legend": {
          "min": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "total": true,
          "values": true,
          "avg": true,
          "max": true,
          "rightSide": false,
          "alignAsTable": true,
          "current": true
        },
        "yaxes": [
          {
            "format": "short",
            "label": "Pull requests",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": ""
          }
        ]
      },
      {
        "mode": "html",
        "options": {
          
        },
        "type": "text",
        "title": "Dashboard documentation",
        "content": "${docs:raw}",
        "datasource": null,
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": []
      }
    ],
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "",
    "graphTooltip": 0,
    "iteration": 1586176683509,
    "tags": [
      "dashboard",
      "krustlet"
    ],
    "version": 2,
    "title": "PRs Approval Repository Groups",
    "uid": "20",
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true
        },
        {
          "showIn": 0,
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "enable": true,
          "hide": false,
          "limit": 100,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "datasource": "psql",
          "iconColor": "rgba(255, 96, 96, 1)",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "tagsColumn": "title,description",
          "textColumn": ""
        }
      ]
    },
    "editable": true,
    "id": 28,
    "schemaVersion": 21
  }


slug: prs-authors-companies-table
title: PRs Authors Companies Table
created: 2024-04-12 08:40:37.565937988+00:00
updated: 2024-04-12 08:40:37.565938058+00:00
uid: 21
data:
  {
    "graphTooltip": 0,
    "panels": [
      {
        "datasource": "psql",
        "links": [],
        "columns": [],
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 0,
          "h": 22
        },
        "pageSize": 1000,
        "sort": {
          "col": 0,
          "desc": false
        },
        "targets": [
          {
            "rawQuery": true,
            "tags": [],
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "table",
            "group": [],
            "resultFormat": "table",
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"name\", \"value\" FROM \"hist_pr_companies_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  row_number() over (order by value desc, name asc) as \"Rank\",\n  name,\n  value\nfrom\n  shpr_comps\nwhere\n  series = 'hpr_comps[[repogroup]]'\n  and period = '[[period]]'",
            "alias": "",
            "metricColumn": "none"
          }
        ],
        "transform": "table",
        "hideTimeOverride": true,
        "showHeader": true,
        "styles": [
          {
            "type": "hidden",
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null,
            "pattern": "Time"
          },
          {
            "colorMode": null,
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "preserveFormat": false,
            "thresholds": [],
            "unit": "short",
            "alias": "Company",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "name",
            "type": "string"
          },
          {
            "pattern": "value",
            "type": "number",
            "alias": "Opened PRs",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 0,
            "thresholds": [],
            "unit": "none"
          },
          {
            "type": "string",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "/.*/",
            "thresholds": []
          }
        ],
        "description": "Shows PRs authors companies",
        "fontSize": "90%",
        "id": 1,
        "interval": "",
        "options": {
          
        },
        "scroll": true,
        "title": "[[full_name]] PRs authors companies (Repository group: [[repogroup_name]], Range: [[period_name]])",
        "type": "table"
      },
      {
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "options": {
          
        },
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}"
      }
    ],
    "refresh": false,
    "style": "dark",
    "id": 33,
    "schemaVersion": 19,
    "templating": {
      "list": [
        {
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "multi": false,
          "refresh": 1,
          "tags": [],
          "type": "query",
          "tagsQuery": "",
          "useTags": false,
          "allValue": null,
          "current": {
            "text": "Last decade",
            "value": "Last decade"
          },
          "includeAll": false,
          "label": "Range",
          "options": [],
          "regex": "",
          "sort": 0,
          "datasource": "psql",
          "definition": "",
          "hide": 0,
          "name": "period_name"
        },
        {
          "query": "select value_s from gha_vars where name = 'full_name'",
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "allValue": null,
          "datasource": "psql",
          "multi": false,
          "name": "full_name",
          "useTags": false,
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "includeAll": false,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "hide": 2,
          "label": null,
          "regex": "",
          "definition": "",
          "options": [],
          "refresh": 1,
          "type": "query"
        },
        {
          "includeAll": false,
          "label": null,
          "multi": false,
          "options": [],
          "tagValuesQuery": "",
          "current": {
            "value": "y10",
            "text": "y10"
          },
          "sort": 0,
          "tags": [],
          "type": "query",
          "refresh": 1,
          "definition": "",
          "hide": 2,
          "tagsQuery": "",
          "datasource": "psql",
          "name": "period",
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "regex": "",
          "skipUrlSync": true,
          "useTags": false,
          "allValue": null
        },
        {
          "refresh": 1,
          "allValue": null,
          "current": {
            "text": "All",
            "value": "All"
          },
          "label": "Repository group",
          "name": "repogroup_name",
          "options": [],
          "regex": "",
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "tags": [],
          "useTags": false,
          "datasource": "psql",
          "definition": "",
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "skipUrlSync": false,
          "tagsQuery": ""
        },
        {
          "allValue": null,
          "current": {
            "text": "all",
            "value": "all"
          },
          "datasource": "psql",
          "definition": "",
          "multi": false,
          "options": [],
          "sort": 0,
          "tagsQuery": "",
          "includeAll": false,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "type": "query",
          "hide": 2,
          "label": "",
          "regex": "",
          "tags": [],
          "name": "repogroup",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "useTags": false
        },
        {
          "current": {
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF PRs authors companies histogram 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/hist_pr_companies.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\u003ehist_pr_companies\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/prs-authors-companies-histogram.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of PRs created by contributors groupped by company in the selected period.\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/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",
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF PRs authors companies histogram 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/hist_pr_companies.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\u003ehist_pr_companies\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/prs-authors-companies-histogram.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of PRs created by contributors groupped by company in the selected period.\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/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"
          },
          "label": null,
          "multi": false,
          "tagsQuery": "",
          "tagValuesQuery": "",
          "tags": [],
          "datasource": "psql",
          "definition": "",
          "includeAll": false,
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "type": "query",
          "useTags": false,
          "hide": 2,
          "name": "docs",
          "allValue": null,
          "options": [],
          "query": "select value_s from gha_vars where name = 'pr_companies_docs_html'",
          "refresh": 1
        }
      ]
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "hidden": true
    },
    "timezone": "",
    "version": 2,
    "editable": true,
    "iteration": 1568187917472,
    "links": [],
    "tags": [
      "companies",
      "dashboard",
      "krustlet",
      "table"
    ],
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "title": "PRs Authors Companies Table",
    "uid": "21",
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        }
      ]
    },
    "gnetId": null
  }


slug: prs-authors-repository-groups
title: PRs Authors Repository Groups
created: 2024-04-12 08:40:37.571837523+00:00
updated: 2024-04-12 08:40:37.571837603+00:00
uid: 23
data:
  {
    "refresh": false,
    "templating": {
      "list": [
        {
          "multi": false,
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "text": "7 Days MA",
              "value": "d7",
              "selected": true
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,d7,w,m,q,y",
          "skipUrlSync": false,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "hide": 0,
          "includeAll": false,
          "label": "Period",
          "type": "custom",
          "allValue": null,
          "name": "period"
        },
        {
          "tagValuesQuery": "",
          "type": "query",
          "current": {
            "text": "All",
            "value": "All"
          },
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "useTags": false,
          "allValue": null,
          "definition": "",
          "name": "repogroup_name",
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "skipUrlSync": false,
          "datasource": "psql",
          "hide": 0,
          "includeAll": false,
          "label": "Repository group",
          "options": [],
          "regex": ""
        },
        {
          "sort": 0,
          "tagsQuery": "",
          "multi": false,
          "datasource": "psql",
          "label": "",
          "name": "repogroup",
          "options": [],
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "current": {
            "text": "all",
            "value": "all"
          },
          "includeAll": false,
          "regex": "",
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "hide": 2,
          "definition": "",
          "refresh": 1,
          "skipUrlSync": true,
          "useTags": false,
          "allValue": null
        },
        {
          "datasource": "psql",
          "includeAll": false,
          "name": "full_name",
          "refresh": 1,
          "allValue": null,
          "definition": "",
          "hide": 2,
          "skipUrlSync": true,
          "current": {
            "text": "ChubaoFS",
            "value": "ChubaoFS"
          },
          "useTags": false,
          "regex": "",
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "label": null,
          "multi": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tagsQuery": "",
          "type": "query"
        },
        {
          "options": [],
          "regex": "",
          "type": "query",
          "useTags": false,
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eChubaoFS PRs authors dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/prs_authors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eprs_authors\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/chubaofs/prs-authors.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows the number of unique PR authors created in given periods.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate authors in those periods.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eChubaoFS PRs authors dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/prs_authors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eprs_authors\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/chubaofs/prs-authors.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows the number of unique PR authors created in given periods.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will calculate authors in those periods.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary for all of them.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "definition": "",
          "name": "docs",
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "hide": 2,
          "includeAll": false,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'prs_authors_chart_docs_html'",
          "refresh": 1,
          "allValue": null,
          "label": null,
          "skipUrlSync": true,
          "tags": []
        }
      ]
    },
    "title": "PRs Authors Repository Groups",
    "tags": [
      "dashboard",
      "krustlet"
    ],
    "uid": "23",
    "version": 2,
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        },
        {
          "textColumn": "",
          "datasource": "psql",
          "enable": true,
          "hide": false,
          "limit": 100,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "tagsColumn": "title,description",
          "iconColor": "rgba(255, 96, 96, 1)",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "titleColumn": "[[full_name]] release",
          "type": "alert"
        }
      ]
    },
    "editable": true,
    "iteration": 1586176689126,
    "links": [],
    "schemaVersion": 21,
    "gnetId": null,
    "id": 30,
    "timezone": "",
    "graphTooltip": 0,
    "panels": [
      {
        "hiddenSeries": false,
        "lines": false,
        "linewidth": 1,
        "stack": false,
        "timeRegions": [],
        "timeShift": null,
        "description": "Number of unique PR authors in [[repogroup_name]] repository group.",
        "fill": 1,
        "spaceLength": 10,
        "fillGradient": 0,
        "id": 1,
        "links": [],
        "renderer": "flot",
        "title": "Number of unique PRs authors in [[repogroup_name]] repository group ([[period]])",
        "aliasColors": {
          
        },
        "dashLength": 10,
        "decimals": 0,
        "type": "graph",
        "tooltip": {
          "shared": false,
          "sort": 0,
          "value_type": "individual"
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashes": false,
        "datasource": "psql",
        "seriesOverrides": [],
        "nullPointMode": "null",
        "pointradius": 5,
        "thresholds": [],
        "bars": true,
        "gridPos": {
          "y": 0,
          "h": 22,
          "w": 24,
          "x": 0
        },
        "legend": {
          "hideEmpty": false,
          "max": true,
          "show": true,
          "values": true,
          "current": true,
          "avg": true,
          "hideZero": false,
          "min": true,
          "rightSide": false,
          "total": true,
          "alignAsTable": true
        },
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null
        },
        "yaxes": [
          {
            "format": "short",
            "label": "Unique PRs authors",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "steppedLine": false,
        "targets": [
          {
            "measurement": "reviewers_d",
            "query": "SELECT \"value\" FROM \"autogen\".\"prs_authors_[[repogroup]]_[[period]][[aggregate]]\" WHERE $timeFilter",
            "refId": "A",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "format": "time_series",
            "hide": false,
            "orderByTime": "ASC",
            "tags": [],
            "policy": "autogen",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Unique PR authors\"\nfrom\n  spr_auth\nwhere\n  $__timeFilter(time)\n  and series = 'pr_auth[[repogroup]]'\n  and period = '[[period]]'\norder by\n  time",
            "dsType": "influxdb",
            "groupBy": []
          }
        ],
        "timeFrom": null,
        "options": {
          "dataLinks": []
        },
        "percentage": false,
        "points": false
      },
      {
        "mode": "html",
        "options": {
          
        },
        "title": "Dashboard documentation",
        "links": [],
        "type": "text",
        "content": "${docs:raw}",
        "datasource": null,
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11
      }
    ],
    "style": "dark",
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    }
  }


slug: prs-authors-table
title: PRs Authors Table
created: 2024-04-12 08:40:37.576083726+00:00
updated: 2024-04-12 08:40:37.576083796+00:00
uid: 22
data:
  {
    "style": "dark",
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "uid": "22",
    "graphTooltip": 0,
    "id": 35,
    "schemaVersion": 19,
    "timezone": "",
    "title": "PRs Authors Table",
    "gnetId": null,
    "iteration": 1568187921383,
    "templating": {
      "list": [
        {
          "multi": false,
          "name": "period_name",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "tagsQuery": "",
          "allValue": null,
          "definition": "",
          "hide": 0,
          "current": {
            "text": "Last decade",
            "value": "Last decade"
          },
          "options": [],
          "skipUrlSync": false,
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "refresh": 1,
          "tagValuesQuery": "",
          "useTags": false,
          "label": "Range",
          "regex": "",
          "sort": 0
        },
        {
          "label": null,
          "options": [],
          "skipUrlSync": true,
          "tagsQuery": "",
          "datasource": "psql",
          "hide": 2,
          "regex": "",
          "definition": "",
          "includeAll": false,
          "name": "full_name",
          "tags": [],
          "allValue": null,
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false
        },
        {
          "skipUrlSync": true,
          "label": null,
          "definition": "",
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "regex": "",
          "tagValuesQuery": "",
          "type": "query",
          "useTags": false,
          "current": {
            "text": "y10",
            "value": "y10"
          },
          "includeAll": false,
          "multi": false,
          "options": [],
          "refresh": 1,
          "sort": 0,
          "tagsQuery": "",
          "allValue": null,
          "hide": 2,
          "name": "period",
          "tags": [],
          "datasource": "psql"
        },
        {
          "useTags": false,
          "definition": "",
          "options": [],
          "refresh": 1,
          "skipUrlSync": false,
          "regex": "",
          "current": {
            "text": "All",
            "value": "All"
          },
          "includeAll": false,
          "multi": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "allValue": null,
          "tagsQuery": "",
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "hide": 0,
          "label": "Repository group",
          "name": "repogroup_name"
        },
        {
          "current": {
            "text": "all",
            "value": "all"
          },
          "hide": 2,
          "multi": false,
          "useTags": false,
          "includeAll": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "options": [],
          "tagsQuery": "",
          "name": "repogroup",
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "allValue": null,
          "definition": "",
          "label": "",
          "tagValuesQuery": ""
        },
        {
          "query": "select value_s from gha_vars where name = 'pr_authors_docs_html'",
          "regex": "",
          "sort": 0,
          "refresh": 1,
          "includeAll": false,
          "name": "docs",
          "options": [],
          "label": null,
          "useTags": false,
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF PRs authors histogram 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/hist_pr_authors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003ehist_pr_authors\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/prs-authors-histogram.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of PRs created by contributors in the selected period.\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/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eAll CNCF PRs authors histogram 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/hist_pr_authors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003ehist_pr_authors\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/prs-authors-histogram.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of PRs created by contributors in the selected period.\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/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "datasource": "psql",
          "definition": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "hide": 2,
          "multi": false
        }
      ]
    },
    "timepicker": {
      "hidden": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "panels": [
      {
        "hideTimeOverride": true,
        "targets": [
          {
            "group": [],
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "metricColumn": "none",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"name\", \"value\" FROM \"hist_pr_authors_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "rawSql": "select\n  row_number() over (order by value desc, name asc) as \"Rank\",\n  name,\n  value\nfrom\n  shpr_auth\nwhere\n  series = 'hpr_auth[[repogroup]]'\n  and period = '[[period]]'",
            "resultFormat": "table",
            "tags": [],
            "timeColumn": "time",
            "dsType": "influxdb",
            "format": "table",
            "rawQuery": true,
            "refId": "A",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ]
          }
        ],
        "title": "[[full_name]] PRs authors (Repository group: [[repogroup_name]], Range: [[period_name]])",
        "transform": "table",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "interval": "",
        "scroll": true,
        "styles": [
          {
            "pattern": "Time",
            "type": "hidden",
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null
          },
          {
            "decimals": 2,
            "thresholds": [],
            "pattern": "name",
            "preserveFormat": false,
            "type": "string",
            "unit": "short",
            "alias": "Developer",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss"
          },
          {
            "alias": "Opened PRs",
            "colorMode": null,
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "thresholds": [],
            "type": "number",
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0,
            "pattern": "value",
            "unit": "none"
          },
          {
            "thresholds": [],
            "type": "string",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "/.*/"
          }
        ],
        "showHeader": true,
        "type": "table",
        "datasource": "psql",
        "description": "Shows PRs authors",
        "fontSize": "90%",
        "links": [],
        "options": {
          
        },
        "columns": [],
        "pageSize": 1000,
        "sort": {
          "col": 0,
          "desc": false
        }
      },
      {
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 22,
          "h": 11
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "options": {
          
        },
        "title": "Dashboard documentation"
      }
    ],
    "refresh": false,
    "tags": [
      "dashboard",
      "krustlet",
      "table"
    ],
    "version": 2,
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        }
      ]
    },
    "editable": true,
    "links": []
  }


slug: prs-merged-repository-groups
title: PRs Merged Repository Groups
created: 2024-04-12 08:40:37.581338415+00:00
updated: 2024-04-12 08:40:37.581338475+00:00
uid: 24
data:
  {
    "panels": [
      {
        "id": 2,
        "options": {
          "dataLinks": []
        },
        "pointradius": 5,
        "timeShift": null,
        "tooltip": {
          "value_type": "individual",
          "shared": true,
          "sort": 2
        },
        "description": "Number of PRs merged in given repository group",
        "spaceLength": 10,
        "stack": true,
        "thresholds": [],
        "nullPointMode": "null as zero",
        "points": false,
        "steppedLine": true,
        "title": "PRs merged per repository groups ([[repogroups]], [[period]])",
        "datasource": "psql",
        "hiddenSeries": false,
        "lines": false,
        "renderer": "flot",
        "yaxes": [
          {
            "label": "Pull requests merged",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashes": false,
        "gridPos": {
          "h": 15,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "seriesOverrides": [],
        "targets": [
          {
            "alias": "$col",
            "dsType": "influxdb",
            "measurement": "notused",
            "query": "SELECT /^[[repogroups]]$/ FROM \"group_prs_merged_[[period]]\" WHERE $timeFilter",
            "rawSql": "select\n  time,\n  ${repogroups:csv}\nfrom\n  sgrp_pr_merg\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "A",
            "tags": [],
            "groupBy": [],
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "timeRegions": [],
        "type": "graph",
        "decimals": 0,
        "fill": 3,
        "percentage": false,
        "timeFrom": null,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "aliasColors": {
          
        },
        "dashLength": 10,
        "legend": {
          "min": true,
          "rightSide": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "total": true,
          "alignAsTable": true,
          "avg": true,
          "current": true,
          "max": true,
          "values": true
        },
        "linewidth": 0,
        "bars": true,
        "fillGradient": 0,
        "links": []
      },
      {
        "dashes": false,
        "pointradius": 5,
        "timeFrom": null,
        "datasource": "psql",
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 15
        },
        "links": [],
        "title": "PRs merged in all [[full_name]] repositories ([[period]])",
        "description": "PRs merged in all [[full_name]] repositories",
        "id": 3,
        "targets": [
          {
            "tags": [],
            "alias": "PRs merged",
            "orderByTime": "ASC",
            "policy": "default",
            "rawSql": "select\n  time,\n  \"value\" as \"All PRs merged\"\nfrom\n  sall_prs_merged\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\norder by\n  time",
            "refId": "A",
            "resultFormat": "time_series",
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "all_prs_merged_h",
            "query": "SELECT \"value\" FROM \"all_prs_merged_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "timeShift": null,
        "yaxes": [
          {
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "PRs merged",
            "logBase": 1
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "decimals": 0,
        "linewidth": 1,
        "nullPointMode": "null as zero",
        "renderer": "flot",
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "fill": 5,
        "percentage": false,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "type": "graph",
        "bars": true,
        "dashLength": 10,
        "hiddenSeries": false,
        "legend": {
          "current": true,
          "min": true,
          "rightSide": true,
          "show": true,
          "alignAsTable": true,
          "avg": true,
          "max": true,
          "total": true,
          "values": true
        },
        "points": false,
        "seriesOverrides": [],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "fillGradient": 0,
        "options": {
          "dataLinks": []
        },
        "stack": false,
        "timeRegions": [],
        "lines": false,
        "spaceLength": 10,
        "steppedLine": false,
        "thresholds": []
      },
      {
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null,
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 27
        },
        "id": 11,
        "options": {
          
        },
        "content": "${docs:raw}"
      }
    ],
    "schemaVersion": 21,
    "tags": [
      "dashboard",
      "krustlet"
    ],
    "version": 2,
    "iteration": 1586176689282,
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "timezone": "",
    "uid": "24",
    "editable": true,
    "gnetId": null,
    "graphTooltip": 0,
    "id": 32,
    "annotations": {
      "list": [
        {
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --"
        },
        {
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "hide": false,
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "tagsColumn": "title,description",
          "datasource": "psql",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100
        }
      ]
    },
    "refresh": false,
    "style": "dark",
    "templating": {
      "list": [
        {
          "regex": "",
          "type": "query",
          "multi": false,
          "options": [],
          "useTags": false,
          "allValue": null,
          "current": {
            "text": "ChubaoFS",
            "value": "ChubaoFS"
          },
          "datasource": "psql",
          "refresh": 1,
          "tags": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "sort": 0,
          "definition": "",
          "hide": 2,
          "includeAll": false,
          "label": null,
          "name": "full_name",
          "tagValuesQuery": "",
          "tagsQuery": ""
        },
        {
          "query": "d,w,m,q,y",
          "allValue": null,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "includeAll": false,
          "label": "Period",
          "skipUrlSync": false,
          "type": "custom",
          "hide": 0,
          "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"
            },
            {
              "text": "Month",
              "value": "m",
              "selected": false
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ]
        },
        {
          "label": "Repository group",
          "options": [],
          "type": "query",
          "datasource": "psql",
          "hide": 0,
          "name": "repogroups",
          "query": "select '\"' || repo_group_name || '\"' from trepo_groups order by 1",
          "current": {
            "value": "$__all",
            "selected": false,
            "text": "All"
          },
          "definition": "",
          "multi": true,
          "refresh": 1,
          "tagsQuery": "",
          "useTags": false,
          "allValue": "",
          "includeAll": true,
          "regex": "",
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tags": []
        },
        {
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eChubaoFS PRs merged repository groups dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/prs_merged_groups.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e (repo groups).\u003c/li\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/all_prs_merged.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e (all PRs merged).\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\u003eprs_merged_groups\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/chubaofs/prs-merged-repository-groups.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of PRs merged in given periods in selected repository groups.\u003c/li\u003e\n\u003cli\u003eOne panel shows stacked number of PRs merged in selected repositories. Second panel shows chart for all PRs merged in all repository groups.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show PRs merged in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eChubaoFS PRs merged repository groups dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/prs_merged_groups.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e (repo groups).\u003c/li\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/all_prs_merged.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e (all PRs merged).\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\u003eprs_merged_groups\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/chubaofs/prs-merged-repository-groups.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of PRs merged in given periods in selected repository groups.\u003c/li\u003e\n\u003cli\u003eOne panel shows stacked number of PRs merged in selected repositories. Second panel shows chart for all PRs merged in all repository groups.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show PRs merged in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "datasource": "psql",
          "label": null,
          "name": "docs",
          "options": [],
          "refresh": 1,
          "skipUrlSync": true,
          "allValue": null,
          "tagsQuery": "",
          "sort": 0,
          "hide": 2,
          "multi": false,
          "tagValuesQuery": "",
          "definition": "",
          "tags": [],
          "regex": "",
          "query": "select value_s from gha_vars where name = 'prs_merged_docs_html'",
          "type": "query",
          "useTags": false,
          "includeAll": 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"
      ]
    },
    "title": "PRs Merged Repository Groups",
    "links": []
  }


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


slug: repository-commenters
title: Repository Commenters
created: 2024-04-12 08:40:37.591573452+00:00
updated: 2024-04-12 08:40:37.591573542+00:00
uid: 25
data:
  {
    "id": 33,
    "links": [],
    "panels": [
      {
        "nullPointMode": "null",
        "xaxis": {
          "mode": "time",
          "name": null,
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "type": "graph",
        "dashLength": 10,
        "links": [],
        "spaceLength": 10,
        "thresholds": [],
        "yaxes": [
          {
            "format": "short",
            "label": "Unique commenters",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "show": true,
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0"
          }
        ],
        "fillGradient": 0,
        "id": 1,
        "lines": false,
        "decimals": 0,
        "tooltip": {
          "shared": false,
          "sort": 0,
          "value_type": "individual"
        },
        "aliasColors": {
          
        },
        "dashes": false,
        "datasource": "psql",
        "pointradius": 5,
        "fill": 1,
        "hiddenSeries": false,
        "linewidth": 1,
        "title": "[[repogroup_name]] unique commenters ([[period]])",
        "options": {
          "dataLinks": []
        },
        "percentage": false,
        "timeShift": null,
        "legend": {
          "current": true,
          "hideEmpty": false,
          "max": true,
          "show": true,
          "alignAsTable": true,
          "avg": true,
          "rightSide": false,
          "total": false,
          "values": true,
          "hideZero": false,
          "min": true
        },
        "targets": [
          {
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "alias": "",
            "hide": false,
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Unique commenters\"\nfrom\n  srcommenters\nwhere\n  $__timeFilter(time)\n  and series = 'rcommenters[[repogroup]]'\n  and period = '[[period]]'\norder by\n  time",
            "refId": "A",
            "format": "time_series",
            "groupBy": [],
            "query": "SELECT \"value\" FROM \"autogen\".\"repo_commenters_[[repogroup]]_[[period]][[aggregate]]\" WHERE $timeFilter",
            "dsType": "influxdb",
            "measurement": "reviewers_d",
            "orderByTime": "ASC",
            "policy": "autogen",
            "resultFormat": "time_series",
            "tags": []
          }
        ],
        "timeFrom": null,
        "timeRegions": [],
        "bars": true,
        "description": "Number of unique commenters.",
        "gridPos": {
          "y": 0,
          "h": 22,
          "w": 24,
          "x": 0
        },
        "stack": false,
        "steppedLine": false,
        "points": false,
        "renderer": "flot",
        "seriesOverrides": []
      },
      {
        "mode": "html",
        "datasource": null,
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "options": {
          
        },
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}"
      }
    ],
    "schemaVersion": 21,
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description",
          "textColumn": "",
          "datasource": "psql",
          "enable": true,
          "hide": false,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "titleColumn": "[[full_name]] release",
          "type": "alert"
        }
      ]
    },
    "graphTooltip": 0,
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "version": 2,
    "timezone": "",
    "iteration": 1586176689614,
    "refresh": false,
    "style": "dark",
    "tags": [
      "dashboard",
      "krustlet"
    ],
    "templating": {
      "list": [
        {
          "multi": false,
          "name": "period",
          "hide": 0,
          "includeAll": false,
          "label": "Period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "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,
          "type": "custom",
          "allValue": null,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          }
        },
        {
          "hide": 0,
          "label": "Repository group",
          "name": "repogroup_name",
          "refresh": 1,
          "skipUrlSync": false,
          "regex": "",
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "allValue": null,
          "datasource": "psql",
          "definition": "",
          "includeAll": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "current": {
            "text": "All",
            "value": "All"
          },
          "multi": false,
          "options": [],
          "sort": 0,
          "tagValuesQuery": ""
        },
        {
          "refresh": 1,
          "tags": [],
          "type": "query",
          "definition": "",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "tagsQuery": "",
          "options": [],
          "regex": "",
          "datasource": "psql",
          "includeAll": false,
          "skipUrlSync": true,
          "sort": 0,
          "allValue": null,
          "current": {
            "text": "all",
            "value": "all"
          },
          "multi": false,
          "name": "repogroup",
          "tagValuesQuery": "",
          "useTags": false,
          "hide": 2,
          "label": ""
        },
        {
          "current": {
            "text": "ChubaoFS",
            "value": "ChubaoFS"
          },
          "hide": 2,
          "name": "full_name",
          "tagValuesQuery": "",
          "useTags": false,
          "datasource": "psql",
          "multi": false,
          "options": [],
          "skipUrlSync": true,
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "definition": "",
          "label": null,
          "refresh": 1,
          "tags": [],
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "sort": 0
        },
        {
          "hide": 2,
          "includeAll": false,
          "options": [],
          "tags": [],
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "definition": "",
          "datasource": "psql",
          "label": null,
          "name": "docs",
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eChubaoFS repository commenters 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/repo_commenters.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\u003erepo_commenters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/chubaofs/repository-commenters.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows the number of unique commenters on a given repository group or all of them combined.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show unique commenters in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eChubaoFS repository commenters 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/repo_commenters.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\u003erepo_commenters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/chubaofs/repository-commenters.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows the number of unique commenters on a given repository group or all of them combined.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show unique commenters in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "allValue": null,
          "query": "select value_s from gha_vars where name = 'repo_commenters_docs_html'",
          "regex": "",
          "sort": 0,
          "multi": 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"
      ]
    },
    "editable": true,
    "gnetId": null,
    "title": "Repository Commenters",
    "uid": "25"
  }


slug: repository-comments
title: Repository Comments
created: 2024-04-12 08:40:37.596068728+00:00
updated: 2024-04-12 08:40:37.596068798+00:00
uid: 26
data:
  {
    "editable": true,
    "id": 34,
    "links": [],
    "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": "Repository Comments",
    "graphTooltip": 0,
    "panels": [
      {
        "fillGradient": 0,
        "hiddenSeries": false,
        "options": {
          "dataLinks": []
        },
        "pointradius": 5,
        "fill": 1,
        "legend": {
          "show": true,
          "values": true,
          "avg": true,
          "rightSide": false,
          "hideEmpty": false,
          "hideZero": false,
          "max": true,
          "min": true,
          "total": false,
          "alignAsTable": true,
          "current": true
        },
        "renderer": "flot",
        "dashes": false,
        "linewidth": 1,
        "timeRegions": [],
        "seriesOverrides": [],
        "title": "[[repogroup_name]] comments ([[period]])",
        "aliasColors": {
          
        },
        "id": 1,
        "lines": false,
        "nullPointMode": "null",
        "type": "graph",
        "yaxes": [
          {
            "format": "short",
            "label": "Comments",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ],
        "decimals": 0,
        "description": "Number of comments for [[repogroup]] repository group.",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "spaceLength": 10,
        "datasource": "psql",
        "thresholds": [],
        "timeShift": null,
        "timeFrom": null,
        "bars": true,
        "percentage": false,
        "points": false,
        "targets": [
          {
            "resultFormat": "time_series",
            "orderByTime": "ASC",
            "rawSql": "select\n  time,\n  value as \"Comments\"\nfrom\n  srcomments\nwhere\n  $__timeFilter(time)\n  and series = 'rcomments[[repogroup]]'\n  and period = '[[period]]'\norder by\n  time",
            "hide": false,
            "measurement": "reviewers_d",
            "policy": "autogen",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "groupBy": [],
            "format": "time_series",
            "refId": "A",
            "rawQuery": true,
            "dsType": "influxdb",
            "query": "SELECT \"value\" FROM \"autogen\".\"repo_comments_[[repogroup]]_[[period]][[aggregate]]\" WHERE $timeFilter"
          }
        ],
        "tooltip": {
          "shared": false,
          "sort": 0,
          "value_type": "individual"
        },
        "xaxis": {
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "links": [],
        "stack": false,
        "steppedLine": false
      },
      {
        "content": "${docs:raw}",
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": null,
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "options": {
          
        }
      }
    ],
    "refresh": false,
    "schemaVersion": 21,
    "annotations": {
      "list": [
        {
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1
        },
        {
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "showIn": 0,
          "tagsColumn": "title,description",
          "textColumn": "",
          "type": "alert",
          "enable": true,
          "limit": 100,
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "titleColumn": "[[full_name]] release",
          "datasource": "psql",
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)"
        }
      ]
    },
    "gnetId": null,
    "iteration": 1586176692936,
    "time": {
      "from": "now-1y",
      "to": "now"
    },
    "version": 2,
    "style": "dark",
    "tags": [
      "dashboard",
      "krustlet"
    ],
    "templating": {
      "list": [
        {
          "multi": false,
          "name": "period",
          "query": "d,d7,w,m,q,y",
          "skipUrlSync": false,
          "type": "custom",
          "includeAll": false,
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "hide": 0,
          "label": "Period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "value": "w",
              "selected": false,
              "text": "Week"
            },
            {
              "value": "m",
              "selected": false,
              "text": "Month"
            },
            {
              "value": "q",
              "selected": false,
              "text": "Quarter"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "allValue": null
        },
        {
          "allValue": null,
          "regex": "",
          "tagValuesQuery": "",
          "useTags": false,
          "includeAll": false,
          "label": "Repository group",
          "options": [],
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "skipUrlSync": false,
          "sort": 0,
          "current": {
            "text": "All",
            "value": "All"
          },
          "name": "repogroup_name",
          "datasource": "psql",
          "definition": "",
          "hide": 0,
          "multi": false,
          "tags": [],
          "tagsQuery": "",
          "type": "query"
        },
        {
          "allValue": null,
          "options": [],
          "refresh": 1,
          "sort": 0,
          "tags": [],
          "type": "query",
          "useTags": false,
          "current": {
            "text": "all",
            "value": "all"
          },
          "definition": "",
          "label": "",
          "multi": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "datasource": "psql",
          "includeAll": false,
          "name": "repogroup",
          "tagsQuery": "",
          "hide": 2
        },
        {
          "datasource": "psql",
          "label": null,
          "multi": false,
          "options": [],
          "tags": [],
          "tagsQuery": "",
          "current": {
            "text": "ChubaoFS",
            "value": "ChubaoFS"
          },
          "regex": "",
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "allValue": null,
          "definition": "",
          "includeAll": false,
          "skipUrlSync": true,
          "hide": 2,
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "useTags": false
        },
        {
          "tagsQuery": "",
          "name": "docs",
          "options": [],
          "query": "select value_s from gha_vars where name = 'repo_comments_docs_html'",
          "tagValuesQuery": "",
          "regex": "",
          "useTags": false,
          "current": {
            "value": "\u003ch1 id=\"dashboard-header\"\u003eChubaoFS repository comments dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/repo_comments.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003erepo_comments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/chubaofs/repository-comments.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of comments for a selected repository group or for all of them combined.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show comments in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e",
            "text": "\u003ch1 id=\"dashboard-header\"\u003eChubaoFS repository comments dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMetric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/repo_comments.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003erepo_comments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/chubaofs/repository-comments.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows number of comments for a selected repository group or for all of them combined.\u003c/li\u003e\n\u003cli\u003eSelecting period (for example week) means that dashboard will show comments in those periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/periods.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about periods.\u003c/li\u003e\n\u003cli\u003eSee \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/repository_groups.md\" target=\"_blank\"\u003ehere\u003c/a\u003e for more informations about repository groups.\u003c/li\u003e\n\u003cli\u003eWe are skipping bots activity, see \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/excluding_bots.md\" target=\"_blank\"\u003eexcluding bots\u003c/a\u003e for details.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "hide": 2,
          "label": null,
          "refresh": 1,
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "skipUrlSync": true,
          "allValue": null,
          "definition": "",
          "sort": 0,
          "tags": []
        }
      ]
    },
    "timezone": "",
    "uid": "26"
  }


slug: repository-groups
title: Repository groups
created: 2024-04-12 08:40:37.600347031+00:00
updated: 2024-04-12 08:40:37.600347081+00:00
uid: 68
data:
  {
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true
        }
      ]
    },
    "editable": true,
    "links": [],
    "panels": [
      {
        "hideTimeOverride": false,
        "pageSize": 25,
        "transform": "table",
        "description": "[[full_name]] Repository Groups definitions",
        "showHeader": true,
        "sort": {
          "desc": false,
          "col": 1
        },
        "targets": [
          {
            "metricColumn": "none",
            "orderByTime": "ASC",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "timeColumn": "time",
            "alias": "",
            "group": [],
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "query": "",
            "resultFormat": "table",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "dsType": "influxdb",
            "format": "table",
            "policy": "default",
            "rawSql": "select\n  distinct coalesce(case repo_group when '' then 'Not specified' else repo_group end, 'Not specified') as \"Repository group\",\n  name as \"Repository\"\nfrom\n  gha_repo_groups\nwhere\n  name like '%_/_%'\n  and name not like '%/%/%'\n  and ('[[repogroups:csv]]' = 'null' or coalesce(case repo_group when '' then 'Not specified' else repo_group end, 'Not specified') in ([[repogroups]]))\n",
            "tags": [],
            "rawQuery": true
          }
        ],
        "links": [],
        "scroll": true,
        "timeShift": null,
        "columns": [],
        "fieldConfig": {
          "defaults": {
            
          },
          "overrides": []
        },
        "fontSize": "90%",
        "gridPos": {
          "h": 23,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "interval": "",
        "title": "[[full_name]] Repository Groups definitions",
        "datasource": "psql",
        "id": 1,
        "styles": [],
        "timeFrom": null,
        "type": "table-old"
      }
    ],
    "title": "Repository groups",
    "uid": "68",
    "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,
    "gnetId": null,
    "graphTooltip": 0,
    "schemaVersion": 27,
    "tags": [
      "dashboard",
      "krustlet",
      "table"
    ],
    "templating": {
      "list": [
        {
          "allValue": null,
          "multi": false,
          "refresh": 1,
          "useTags": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "skipUrlSync": true,
          "definition": "",
          "error": null,
          "label": null,
          "name": "full_name",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "Submariner",
            "value": "Submariner"
          },
          "datasource": "psql",
          "sort": 0,
          "type": "query",
          "description": null,
          "hide": 2,
          "includeAll": false,
          "tags": []
        },
        {
          "current": {
            "text": [
              "All"
            ],
            "value": [
              "$__all"
            ],
            "selected": true
          },
          "multi": true,
          "name": "repogroups",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "datasource": "psql",
          "description": null,
          "sort": 0,
          "type": "query",
          "refresh": 1,
          "definition": "select repo_group_name from trepo_groups union select 'Not specified' order by 1",
          "hide": 0,
          "includeAll": true,
          "label": "Repository groups",
          "options": [],
          "query": "select repo_group_name from trepo_groups union select 'Not specified' order by 1",
          "allValue": "null",
          "error": null,
          "regex": "",
          "tags": [],
          "useTags": false
        }
      ]
    },
    "time": {
      "from": "now-7d",
      "to": "now"
    },
    "id": 36,
    "iteration": 1620189343232,
    "refresh": false,
    "style": "dark",
    "timezone": ""
  }


