# migration_log

migration_id: create migration_log table
timestamp: 2024-01-10 12:03:54
sql:
  CREATE TABLE IF NOT EXISTS `migration_log` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `migration_id` TEXT NOT NULL
  , `sql` TEXT NOT NULL
  , `success` INTEGER NOT NULL
  , `error` TEXT NOT NULL
  , `timestamp` DATETIME NOT NULL
  );


migration_id: create user table
timestamp: 2024-01-10 12:03:54
sql:
  CREATE TABLE IF NOT EXISTS `user` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `version` INTEGER NOT NULL
  , `login` TEXT NOT NULL
  , `email` TEXT NOT NULL
  , `name` TEXT NULL
  , `password` TEXT NULL
  , `salt` TEXT NULL
  , `rands` TEXT NULL
  , `company` TEXT NULL
  , `account_id` INTEGER NOT NULL
  , `is_admin` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create user table v2
timestamp: 2024-01-10 12:03:54
sql:
  CREATE TABLE IF NOT EXISTS `user` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `version` INTEGER NOT NULL
  , `login` TEXT NOT NULL
  , `email` TEXT NOT NULL
  , `name` TEXT NULL
  , `password` TEXT NULL
  , `salt` TEXT NULL
  , `rands` TEXT NULL
  , `company` TEXT NULL
  , `org_id` INTEGER NOT NULL
  , `is_admin` INTEGER NOT NULL
  , `email_verified` INTEGER NULL
  , `theme` TEXT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: copy data_source v1 to v2
timestamp: 2024-01-10 12:03:54
sql:
  INSERT INTO `user` (`login`
  , `name`
  , `org_id`
  , `updated`
  , `id`
  , `version`
  , `email`
  , `password`
  , `salt`
  , `rands`
  , `company`
  , `is_admin`
  , `created`) SELECT `login`
  , `name`
  , `account_id`
  , `updated`
  , `id`
  , `version`
  , `email`
  , `password`
  , `salt`
  , `rands`
  , `company`
  , `is_admin`
  , `created` FROM `user_v1`


migration_id: Update is_service_account column to nullable
timestamp: 2024-01-10 12:03:54
sql:
  ALTER TABLE user ADD COLUMN tmp_service_account BOOLEAN DEFAULT 0;
  UPDATE user SET tmp_service_account = is_service_account;
  ALTER TABLE user DROP COLUMN is_service_account;
  ALTER TABLE user RENAME COLUMN tmp_service_account TO is_service_account;


migration_id: create temp user table v1-7
timestamp: 2024-01-10 12:03:54
sql:
  CREATE TABLE IF NOT EXISTS `temp_user` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  , `email` TEXT NOT NULL
  , `name` TEXT NULL
  , `role` TEXT NULL
  , `code` TEXT NOT NULL
  , `status` TEXT NOT NULL
  , `invited_by_user_id` INTEGER NULL
  , `email_sent` INTEGER NOT NULL
  , `email_sent_on` DATETIME NULL
  , `remote_addr` TEXT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create temp_user v2
timestamp: 2024-01-10 12:03:54
sql:
  CREATE TABLE IF NOT EXISTS `temp_user` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  , `email` TEXT NOT NULL
  , `name` TEXT NULL
  , `role` TEXT NULL
  , `code` TEXT NOT NULL
  , `status` TEXT NOT NULL
  , `invited_by_user_id` INTEGER NULL
  , `email_sent` INTEGER NOT NULL
  , `email_sent_on` DATETIME NULL
  , `remote_addr` TEXT NULL
  , `created` INTEGER NOT NULL DEFAULT 0
  , `updated` INTEGER NOT NULL DEFAULT 0
  );


migration_id: copy temp_user v1 to v2
timestamp: 2024-01-10 12:03:54
sql:
  INSERT INTO `temp_user` (`email_sent`
  , `remote_addr`
  , `id`
  , `email`
  , `name`
  , `role`
  , `code`
  , `invited_by_user_id`
  , `org_id`
  , `version`
  , `status`
  , `email_sent_on`) SELECT `email_sent`
  , `remote_addr`
  , `id`
  , `email`
  , `name`
  , `role`
  , `code`
  , `invited_by_user_id`
  , `org_id`
  , `version`
  , `status`
  , `email_sent_on` FROM `temp_user_tmp_qwerty`


migration_id: create star table
timestamp: 2024-01-10 12:03:54
sql:
  CREATE TABLE IF NOT EXISTS `star` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `user_id` INTEGER NOT NULL
  , `dashboard_id` INTEGER NOT NULL
  );


migration_id: create org table v1
timestamp: 2024-01-10 12:03:54
sql:
  CREATE TABLE IF NOT EXISTS `org` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `version` INTEGER NOT NULL
  , `name` TEXT NOT NULL
  , `address1` TEXT NULL
  , `address2` TEXT NULL
  , `city` TEXT NULL
  , `state` TEXT NULL
  , `zip_code` TEXT NULL
  , `country` TEXT NULL
  , `billing_email` TEXT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create org_user table v1
timestamp: 2024-01-10 12:03:54
sql:
  CREATE TABLE IF NOT EXISTS `org_user` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `user_id` INTEGER NOT NULL
  , `role` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create dashboard table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `version` INTEGER NOT NULL
  , `slug` TEXT NOT NULL
  , `title` TEXT NOT NULL
  , `data` TEXT NOT NULL
  , `account_id` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create dashboard_tag table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard_tag` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `dashboard_id` INTEGER NOT NULL
  , `term` TEXT NOT NULL
  );


migration_id: add unique index dashboard_tag.dasboard_id_term
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_dashboard_tag_dashboard_id_term` ON `dashboard_tag` (`dashboard_id`,`term`);


migration_id: create dashboard v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `version` INTEGER NOT NULL
  , `slug` TEXT NOT NULL
  , `title` TEXT NOT NULL
  , `data` TEXT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: copy dashboard v1 to v2
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO `dashboard` (`title`
  , `data`
  , `org_id`
  , `created`
  , `updated`
  , `id`
  , `version`
  , `slug`) SELECT `title`
  , `data`
  , `account_id`
  , `created`
  , `updated`
  , `id`
  , `version`
  , `slug` FROM `dashboard_v1`


migration_id: Add unique index for dashboard_org_id_title_folder_id
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_dashboard_org_id_folder_id_title` ON `dashboard` (`org_id`,`folder_id`,`title`);


migration_id: create dashboard_provisioning
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard_provisioning` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `dashboard_id` INTEGER NULL
  , `name` TEXT NOT NULL
  , `external_id` TEXT NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create dashboard_provisioning v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard_provisioning` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `dashboard_id` INTEGER NULL
  , `name` TEXT NOT NULL
  , `external_id` TEXT NOT NULL
  , `updated` INTEGER NOT NULL DEFAULT 0
  );


migration_id: create index IDX_dashboard_provisioning_dashboard_id - v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_dashboard_provisioning_dashboard_id` ON `dashboard_provisioning` (`dashboard_id`);


migration_id: create index IDX_dashboard_provisioning_dashboard_id_name - v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_dashboard_provisioning_dashboard_id_name` ON `dashboard_provisioning` (`dashboard_id`,`name`);


migration_id: copy dashboard_provisioning v1 to v2
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO `dashboard_provisioning` (`name`
  , `external_id`
  , `id`
  , `dashboard_id`) SELECT `name`
  , `external_id`
  , `id`
  , `dashboard_id` FROM `dashboard_provisioning_tmp_qwerty`


migration_id: create data_source table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `data_source` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `account_id` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  , `type` TEXT NOT NULL
  , `name` TEXT NOT NULL
  , `access` TEXT NOT NULL
  , `url` TEXT NOT NULL
  , `password` TEXT NULL
  , `user` TEXT NULL
  , `database` TEXT NULL
  , `basic_auth` INTEGER NOT NULL
  , `basic_auth_user` TEXT NULL
  , `basic_auth_password` TEXT NULL
  , `is_default` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create data_source table v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `data_source` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  , `type` TEXT NOT NULL
  , `name` TEXT NOT NULL
  , `access` TEXT NOT NULL
  , `url` TEXT NOT NULL
  , `password` TEXT NULL
  , `user` TEXT NULL
  , `database` TEXT NULL
  , `basic_auth` INTEGER NOT NULL
  , `basic_auth_user` TEXT NULL
  , `basic_auth_password` TEXT NULL
  , `is_default` INTEGER NOT NULL
  , `json_data` TEXT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: copy data_source v1 to v2
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO `data_source` (`basic_auth_user`
  , `basic_auth_password`
  , `is_default`
  , `id`
  , `name`
  , `basic_auth`
  , `updated`
  , `version`
  , `user`
  , `url`
  , `password`
  , `org_id`
  , `type`
  , `created`
  , `access`
  , `database`) SELECT `basic_auth_user`
  , `basic_auth_password`
  , `is_default`
  , `id`
  , `name`
  , `basic_auth`
  , `updated`
  , `version`
  , `user`
  , `url`
  , `password`
  , `account_id`
  , `type`
  , `created`
  , `access`
  , `database` FROM `data_source_v1`


migration_id: create api_key table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `api_key` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `account_id` INTEGER NOT NULL
  , `name` TEXT NOT NULL
  , `key` TEXT NOT NULL
  , `role` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create api_key table v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `api_key` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `name` TEXT NOT NULL
  , `key` TEXT NOT NULL
  , `role` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: copy api_key v1 to v2
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO `api_key` (`org_id`
  , `name`
  , `key`
  , `role`
  , `created`
  , `updated`
  , `id`) SELECT `account_id`
  , `name`
  , `key`
  , `role`
  , `created`
  , `updated`
  , `id` FROM `api_key_v1`


migration_id: create dashboard_snapshot table v4
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard_snapshot` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `name` TEXT NOT NULL
  , `key` TEXT NOT NULL
  , `dashboard` TEXT NOT NULL
  , `expires` DATETIME NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create dashboard_snapshot table v5 #2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard_snapshot` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `name` TEXT NOT NULL
  , `key` TEXT NOT NULL
  , `delete_key` TEXT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `user_id` INTEGER NOT NULL
  , `external` INTEGER NOT NULL
  , `external_url` TEXT NOT NULL
  , `dashboard` TEXT NOT NULL
  , `expires` DATETIME NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create quota table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `quota` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NULL
  , `user_id` INTEGER NULL
  , `target` TEXT NOT NULL
  , `limit` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create plugin_setting table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `plugin_setting` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NULL
  , `plugin_id` TEXT NOT NULL
  , `enabled` INTEGER NOT NULL
  , `pinned` INTEGER NOT NULL
  , `json_data` TEXT NULL
  , `secure_json_data` TEXT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create index UQE_plugin_setting_org_id_plugin_id - v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_plugin_setting_org_id_plugin_id` ON `plugin_setting` (`org_id`,`plugin_id`);


migration_id: create session table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `session` (
  `key` TEXT PRIMARY KEY NOT NULL
  , `data` BLOB NOT NULL
  , `expiry` INTEGER NOT NULL
  );


migration_id: create playlist table v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `playlist` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `name` TEXT NOT NULL
  , `interval` TEXT NOT NULL
  , `org_id` INTEGER NOT NULL
  );


migration_id: create playlist item table v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `playlist_item` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `playlist_id` INTEGER NOT NULL
  , `type` TEXT NOT NULL
  , `value` TEXT NOT NULL
  , `title` TEXT NOT NULL
  , `order` INTEGER NOT NULL
  );


migration_id: create preferences table v3
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `preferences` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `user_id` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  , `home_dashboard_id` INTEGER NOT NULL
  , `timezone` TEXT NOT NULL
  , `theme` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create alert table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `version` INTEGER NOT NULL
  , `dashboard_id` INTEGER NOT NULL
  , `panel_id` INTEGER NOT NULL
  , `org_id` INTEGER NOT NULL
  , `name` TEXT NOT NULL
  , `message` TEXT NOT NULL
  , `state` TEXT NOT NULL
  , `settings` TEXT NOT NULL
  , `frequency` INTEGER NOT NULL
  , `handler` INTEGER NOT NULL
  , `severity` TEXT NOT NULL
  , `silenced` INTEGER NOT NULL
  , `execution_error` TEXT NOT NULL
  , `eval_data` TEXT NULL
  , `eval_date` DATETIME NULL
  , `new_state_date` DATETIME NOT NULL
  , `state_changes` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: Create alert_rule_tag table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_rule_tag` (
  `alert_id` INTEGER NOT NULL
  , `tag_id` INTEGER NOT NULL
  );


migration_id: Create alert_rule_tag table v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_rule_tag` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `alert_id` INTEGER NOT NULL
  , `tag_id` INTEGER NOT NULL
  );


sql: CREATE UNIQUE INDEX `UQE_alert_rule_tag_alert_id_tag_id` ON `alert_rule_tag` (`alert_id`,`tag_id`);
timestamp: 2024-01-10 12:03:55
migration_id:
  create index UQE_alert_rule_tag_alert_id_tag_id - Add unique index alert_rule_tag.alert_id_tag_id V2


migration_id: copy alert_rule_tag v1 to v2
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO `alert_rule_tag` (`tag_id`
  , `alert_id`) SELECT `tag_id`
  , `alert_id` FROM `alert_rule_tag_v1`


migration_id: create alert_notification table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_notification` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `name` TEXT NOT NULL
  , `type` TEXT NOT NULL
  , `settings` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create notification_journal table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_notification_journal` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `alert_id` INTEGER NOT NULL
  , `notifier_id` INTEGER NOT NULL
  , `sent_at` INTEGER NOT NULL
  , `success` INTEGER NOT NULL
  );


migration_id: add index notification_journal org_id & alert_id & notifier_id
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_alert_notification_journal_org_id_alert_id_notifier_id` ON `alert_notification_journal` (`org_id`,`alert_id`,`notifier_id`);


migration_id: create alert_notification_state table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_notification_state` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `alert_id` INTEGER NOT NULL
  , `notifier_id` INTEGER NOT NULL
  , `state` TEXT NOT NULL
  , `version` INTEGER NOT NULL
  , `updated_at` INTEGER NOT NULL
  , `alert_rule_state_updated_version` INTEGER NOT NULL
  );


migration_id: add index alert_notification_state org_id & alert_id & notifier_id
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_alert_notification_state_org_id_alert_id_notifier_id` ON `alert_notification_state` (`org_id`,`alert_id`,`notifier_id`);


migration_id: create annotation table v5
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `annotation` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `alert_id` INTEGER NULL
  , `user_id` INTEGER NULL
  , `dashboard_id` INTEGER NULL
  , `panel_id` INTEGER NULL
  , `category_id` INTEGER NULL
  , `type` TEXT NOT NULL
  , `title` TEXT NOT NULL
  , `text` TEXT NOT NULL
  , `metric` TEXT NULL
  , `prev_state` TEXT NOT NULL
  , `new_state` TEXT NOT NULL
  , `data` TEXT NOT NULL
  , `epoch` INTEGER NOT NULL
  );


migration_id: add index annotation 3 v3
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_annotation_org_id_dashboard_id_panel_id_epoch` ON `annotation` (`org_id`,`dashboard_id`,`panel_id`,`epoch`);


migration_id: Create annotation_tag table v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `annotation_tag` (
  `annotation_id` INTEGER NOT NULL
  , `tag_id` INTEGER NOT NULL
  );


migration_id: Add unique index annotation_tag.annotation_id_tag_id
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_annotation_tag_annotation_id_tag_id` ON `annotation_tag` (`annotation_id`,`tag_id`);


migration_id: Create annotation_tag table v3
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `annotation_tag` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `annotation_id` INTEGER NOT NULL
  , `tag_id` INTEGER NOT NULL
  );


timestamp: 2024-01-10 12:03:55
migration_id:
  create index UQE_annotation_tag_annotation_id_tag_id - Add unique index annotation_tag.annotation_id_tag_id V3

sql:
  CREATE UNIQUE INDEX `UQE_annotation_tag_annotation_id_tag_id` ON `annotation_tag` (`annotation_id`,`tag_id`);


migration_id: copy annotation_tag v2 to v3
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO `annotation_tag` (`annotation_id`
  , `tag_id`) SELECT `annotation_id`
  , `tag_id` FROM `annotation_tag_v2`


migration_id: Add index for epoch_end
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_annotation_org_id_epoch_epoch_end` ON `annotation` (`org_id`,`epoch`,`epoch_end`);


migration_id: Add index for org_id_dashboard_id_epoch_end_epoch on annotation table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_annotation_org_id_dashboard_id_epoch_end_epoch` ON `annotation` (`org_id`,`dashboard_id`,`epoch_end`,`epoch`);


migration_id: Add index for org_id_epoch_end_epoch on annotation table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_annotation_org_id_epoch_end_epoch` ON `annotation` (`org_id`,`epoch_end`,`epoch`);


migration_id: create test_data table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `test_data` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `metric1` TEXT NULL
  , `metric2` TEXT NULL
  , `value_big_int` INTEGER NULL
  , `value_double` REAL NULL
  , `value_float` REAL NULL
  , `value_int` INTEGER NULL
  , `time_epoch` INTEGER NOT NULL
  , `time_date_time` DATETIME NOT NULL
  , `time_time_stamp` DATETIME NOT NULL
  );


migration_id: create dashboard_version table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard_version` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `dashboard_id` INTEGER NOT NULL
  , `parent_version` INTEGER NOT NULL
  , `restored_from` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `created_by` INTEGER NOT NULL
  , `message` TEXT NOT NULL
  , `data` TEXT NOT NULL
  );


migration_id: add unique index dashboard_version.dashboard_id and dashboard_version.version
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_dashboard_version_dashboard_id_version` ON `dashboard_version` (`dashboard_id`,`version`);


migration_id: save existing dashboard data in dashboard_version table v1
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO dashboard_version
  (
  	dashboard_id,
  	version,
  	parent_version,
  	restored_from,
  	created,
  	created_by,
  	message,
  	data
  )
  SELECT
  	dashboard.id,
  	dashboard.version,
  	dashboard.version,
  	dashboard.version,
  	dashboard.updated,
  	COALESCE(dashboard.updated_by, -1),
  	'',
  	dashboard.data
  FROM dashboard;


migration_id: create team table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `team` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `name` TEXT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create team member table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `team_member` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `team_id` INTEGER NOT NULL
  , `user_id` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: add unique index team_member_org_id_team_id_user_id
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_team_member_org_id_team_id_user_id` ON `team_member` (`org_id`,`team_id`,`user_id`);


migration_id: create dashboard acl table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `dashboard_acl` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `dashboard_id` INTEGER NOT NULL
  , `user_id` INTEGER NULL
  , `team_id` INTEGER NULL
  , `permission` INTEGER NOT NULL DEFAULT 4
  , `role` TEXT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: add unique index dashboard_acl_dashboard_id_user_id
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_dashboard_acl_dashboard_id_user_id` ON `dashboard_acl` (`dashboard_id`,`user_id`);


migration_id: add unique index dashboard_acl_dashboard_id_team_id
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_dashboard_acl_dashboard_id_team_id` ON `dashboard_acl` (`dashboard_id`,`team_id`);


migration_id: save default acl rules in dashboard_acl table
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO dashboard_acl
  	(
  		org_id,
  		dashboard_id,
  		permission,
  		role,
  		created,
  		updated
  	)
  	VALUES
  		(-1,-1, 1,'Viewer','2017-06-20','2017-06-20'),
  		(-1,-1, 2,'Editor','2017-06-20','2017-06-20')
  	


migration_id: delete acl rules for deleted dashboards and folders
timestamp: 2024-01-10 12:03:55
sql:
  DELETE FROM dashboard_acl WHERE dashboard_id NOT IN (SELECT id FROM dashboard) AND dashboard_id != -1


migration_id: create tag table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `tag` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `key` TEXT NOT NULL
  , `value` TEXT NOT NULL
  );


migration_id: create login attempt table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `login_attempt` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `username` TEXT NOT NULL
  , `ip_address` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  );


migration_id: create login_attempt v2
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `login_attempt` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `username` TEXT NOT NULL
  , `ip_address` TEXT NOT NULL
  , `created` INTEGER NOT NULL DEFAULT 0
  );


migration_id: copy login_attempt v1 to v2
timestamp: 2024-01-10 12:03:55
sql:
  INSERT INTO `login_attempt` (`id`
  , `username`
  , `ip_address`) SELECT `id`
  , `username`
  , `ip_address` FROM `login_attempt_tmp_qwerty`


migration_id: create user auth table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `user_auth` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `user_id` INTEGER NOT NULL
  , `auth_module` TEXT NOT NULL
  , `auth_id` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  );


migration_id: create server_lock table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `server_lock` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `operation_uid` TEXT NOT NULL
  , `version` INTEGER NOT NULL
  , `last_execution` INTEGER NOT NULL
  );


migration_id: create user auth token table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `user_auth_token` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `user_id` INTEGER NOT NULL
  , `auth_token` TEXT NOT NULL
  , `prev_auth_token` TEXT NOT NULL
  , `user_agent` TEXT NOT NULL
  , `client_ip` TEXT NOT NULL
  , `auth_token_seen` INTEGER NOT NULL
  , `seen_at` INTEGER NULL
  , `rotated_at` INTEGER NOT NULL
  , `created_at` INTEGER NOT NULL
  , `updated_at` INTEGER NOT NULL
  );


migration_id: create cache_data table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `cache_data` (
  `cache_key` TEXT PRIMARY KEY NOT NULL
  , `data` BLOB NOT NULL
  , `expires` INTEGER NOT NULL
  , `created_at` INTEGER NOT NULL
  );


migration_id: create short_url table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `short_url` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `uid` TEXT NOT NULL
  , `path` TEXT NOT NULL
  , `created_by` INTEGER NOT NULL
  , `created_at` INTEGER NOT NULL
  , `last_seen_at` INTEGER NULL
  );


migration_id: recreate alert_definition table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_definition` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `title` TEXT NOT NULL
  , `condition` TEXT NOT NULL
  , `data` TEXT NOT NULL
  , `updated` DATETIME NOT NULL
  , `interval_seconds` INTEGER NOT NULL DEFAULT 60
  , `version` INTEGER NOT NULL DEFAULT 0
  , `uid` TEXT NOT NULL DEFAULT 0
  );


migration_id: recreate alert_definition_version table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_definition_version` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `alert_definition_id` INTEGER NOT NULL
  , `alert_definition_uid` TEXT NOT NULL DEFAULT 0
  , `parent_version` INTEGER NOT NULL
  , `restored_from` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `title` TEXT NOT NULL
  , `condition` TEXT NOT NULL
  , `data` TEXT NOT NULL
  , `interval_seconds` INTEGER NOT NULL
  );


migration_id: add index in alert_definition_version table on alert_definition_id and version columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_alert_definition_version_alert_definition_id_version` ON `alert_definition_version` (`alert_definition_id`,`version`);


migration_id: add index in alert_definition_version table on alert_definition_uid and version columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_alert_definition_version_alert_definition_uid_version` ON `alert_definition_version` (`alert_definition_uid`,`version`);


migration_id: create alert_instance table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_instance` (
  `def_org_id` INTEGER NOT NULL
  , `def_uid` TEXT NOT NULL DEFAULT 0
  , `labels` TEXT NOT NULL
  , `labels_hash` TEXT NOT NULL
  , `current_state` TEXT NOT NULL
  , `current_state_since` INTEGER NOT NULL
  , `last_eval_time` INTEGER NOT NULL
  , PRIMARY KEY ( `def_org_id`,`def_uid`,`labels_hash` ));


migration_id: add index in alert_instance table on def_org_id, def_uid and current_state columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_alert_instance_def_org_id_def_uid_current_state` ON `alert_instance` (`def_org_id`,`def_uid`,`current_state`);


migration_id: add index in alert_instance table on def_org_id, current_state columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_alert_instance_def_org_id_current_state` ON `alert_instance` (`def_org_id`,`current_state`);


migration_id: add index rule_org_id, rule_uid, current_state on alert_instance
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_alert_instance_rule_org_id_rule_uid_current_state` ON `alert_instance` (`rule_org_id`,`rule_uid`,`current_state`);


migration_id: add index rule_org_id, current_state on alert_instance
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_alert_instance_rule_org_id_current_state` ON `alert_instance` (`rule_org_id`,`current_state`);


migration_id: create alert_rule table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_rule` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `title` TEXT NOT NULL
  , `condition` TEXT NOT NULL
  , `data` TEXT NOT NULL
  , `updated` DATETIME NOT NULL
  , `interval_seconds` INTEGER NOT NULL DEFAULT 60
  , `version` INTEGER NOT NULL DEFAULT 0
  , `uid` TEXT NOT NULL DEFAULT 0
  , `namespace_uid` TEXT NOT NULL
  , `rule_group` TEXT NOT NULL
  , `no_data_state` TEXT NOT NULL DEFAULT 'NoData'
  , `exec_err_state` TEXT NOT NULL DEFAULT 'Alerting'
  );


migration_id: add index in alert_rule on org_id, namespace_uid, group_uid columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_alert_rule_org_id_namespace_uid_rule_group` ON `alert_rule` (`org_id`,`namespace_uid`,`rule_group`);


migration_id: add index in alert_rule on org_id, namespase_uid and title columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_alert_rule_org_id_namespace_uid_title` ON `alert_rule` (`org_id`,`namespace_uid`,`title`);


migration_id: add index in alert_rule on org_id, dashboard_uid and panel_id columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_alert_rule_org_id_dashboard_uid_panel_id` ON `alert_rule` (`org_id`,`dashboard_uid`,`panel_id`);


migration_id: create alert_rule_version table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_rule_version` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `rule_org_id` INTEGER NOT NULL
  , `rule_uid` TEXT NOT NULL DEFAULT 0
  , `rule_namespace_uid` TEXT NOT NULL
  , `rule_group` TEXT NOT NULL
  , `parent_version` INTEGER NOT NULL
  , `restored_from` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `title` TEXT NOT NULL
  , `condition` TEXT NOT NULL
  , `data` TEXT NOT NULL
  , `interval_seconds` INTEGER NOT NULL
  , `no_data_state` TEXT NOT NULL DEFAULT 'NoData'
  , `exec_err_state` TEXT NOT NULL DEFAULT 'Alerting'
  );


migration_id: add index in alert_rule_version table on rule_org_id, rule_uid and version columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_alert_rule_version_rule_org_id_rule_uid_version` ON `alert_rule_version` (`rule_org_id`,`rule_uid`,`version`);


migration_id: add index in alert_rule_version table on rule_org_id, rule_namespace_uid and rule_group columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE INDEX `IDX_alert_rule_version_rule_org_id_rule_namespace_uid_rule_group` ON `alert_rule_version` (`rule_org_id`,`rule_namespace_uid`,`rule_group`);


migration_id: create_alert_configuration_table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `alert_configuration` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `alertmanager_configuration` TEXT NOT NULL
  , `configuration_version` TEXT NOT NULL
  , `created_at` INTEGER NOT NULL
  );


migration_id: add configuration_hash column to alert_configuration
timestamp: 2024-01-10 12:03:55
sql:
  alter table `alert_configuration` ADD COLUMN `configuration_hash` TEXT NOT NULL DEFAULT 'not-yet-calculated' 


migration_id: create_ngalert_configuration_table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `ngalert_configuration` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `alertmanagers` TEXT NULL
  , `created_at` INTEGER NOT NULL
  , `updated_at` INTEGER NOT NULL
  );


migration_id: create provenance_type table
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `provenance_type` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `record_key` TEXT NOT NULL
  , `record_type` TEXT NOT NULL
  , `provenance` TEXT NOT NULL
  );


migration_id: add index to uniquify (record_key, record_type, org_id) columns
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_provenance_type_record_type_record_key_org_id` ON `provenance_type` (`record_type`,`record_key`,`org_id`);


migration_id: create library_element table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `library_element` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `folder_id` INTEGER NOT NULL
  , `uid` TEXT NOT NULL
  , `name` TEXT NOT NULL
  , `kind` INTEGER NOT NULL
  , `type` TEXT NOT NULL
  , `description` TEXT NOT NULL
  , `model` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `created_by` INTEGER NOT NULL
  , `updated` DATETIME NOT NULL
  , `updated_by` INTEGER NOT NULL
  , `version` INTEGER NOT NULL
  );


migration_id: add index library_element org_id-folder_id-name-kind
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_library_element_org_id_folder_id_name_kind` ON `library_element` (`org_id`,`folder_id`,`name`,`kind`);


migration_id: create library_element_connection table v1
timestamp: 2024-01-10 12:03:55
sql:
  CREATE TABLE IF NOT EXISTS `library_element_connection` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `element_id` INTEGER NOT NULL
  , `kind` INTEGER NOT NULL
  , `connection_id` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `created_by` INTEGER NOT NULL
  );


migration_id: add index library_element_connection element_id-kind-connection_id
timestamp: 2024-01-10 12:03:55
sql:
  CREATE UNIQUE INDEX `UQE_library_element_connection_element_id_kind_connection_id` ON `library_element_connection` (`element_id`,`kind`,`connection_id`);


migration_id: create data_keys table
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `data_keys` (
  `name` TEXT PRIMARY KEY NOT NULL
  , `active` INTEGER NOT NULL
  , `scope` TEXT NOT NULL
  , `provider` TEXT NOT NULL
  , `encrypted_data` BLOB NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create kv_store table v1
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `kv_store` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `namespace` TEXT NOT NULL
  , `key` TEXT NOT NULL
  , `value` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create permission table
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `permission` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `role_id` INTEGER NOT NULL
  , `action` TEXT NOT NULL
  , `scope` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: add unique index role_id_action_scope
timestamp: 2024-01-10 12:03:56
sql:
  CREATE UNIQUE INDEX `UQE_permission_role_id_action_scope` ON `permission` (`role_id`,`action`,`scope`);


migration_id: create role table
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `role` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `name` TEXT NOT NULL
  , `description` TEXT NULL
  , `version` INTEGER NOT NULL
  , `org_id` INTEGER NOT NULL
  , `uid` TEXT NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: create team role table
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `team_role` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `team_id` INTEGER NOT NULL
  , `role_id` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  );


migration_id: add unique index team_role_org_id_team_id_role_id
timestamp: 2024-01-10 12:03:56
sql:
  CREATE UNIQUE INDEX `UQE_team_role_org_id_team_id_role_id` ON `team_role` (`org_id`,`team_id`,`role_id`);


migration_id: create user role table
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `user_role` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `user_id` INTEGER NOT NULL
  , `role_id` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  );


migration_id: add unique index user_role_org_id_user_id_role_id
timestamp: 2024-01-10 12:03:56
sql:
  CREATE UNIQUE INDEX `UQE_user_role_org_id_user_id_role_id` ON `user_role` (`org_id`,`user_id`,`role_id`);


migration_id: create builtin role table
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `builtin_role` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `role` TEXT NOT NULL
  , `role_id` INTEGER NOT NULL
  , `created` DATETIME NOT NULL
  , `updated` DATETIME NOT NULL
  );


migration_id: add unique index builtin_role_org_id_role_id_role
timestamp: 2024-01-10 12:03:56
sql:
  CREATE UNIQUE INDEX `UQE_builtin_role_org_id_role_id_role` ON `builtin_role` (`org_id`,`role_id`,`role`);


migration_id: create seed assignment table
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `seed_assignment` (
  `builtin_role` TEXT NOT NULL
  , `role_name` TEXT NOT NULL
  );


migration_id: add unique index builtin_role_role_name
timestamp: 2024-01-10 12:03:56
sql:
  CREATE UNIQUE INDEX `UQE_seed_assignment_builtin_role_role_name` ON `seed_assignment` (`builtin_role`,`role_name`);


migration_id: create query_history table v1
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `query_history` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `uid` TEXT NOT NULL
  , `org_id` INTEGER NOT NULL
  , `datasource_uid` TEXT NOT NULL
  , `created_by` INTEGER NOT NULL
  , `created_at` INTEGER NOT NULL
  , `comment` TEXT NOT NULL
  , `queries` TEXT NOT NULL
  );


migration_id: add index query_history.org_id-created_by-datasource_uid
timestamp: 2024-01-10 12:03:56
sql:
  CREATE INDEX `IDX_query_history_org_id_created_by_datasource_uid` ON `query_history` (`org_id`,`created_by`,`datasource_uid`);


migration_id: create query_history_star table v1
timestamp: 2024-01-10 12:03:56
sql:
  CREATE TABLE IF NOT EXISTS `query_history_star` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
  , `query_uid` TEXT NOT NULL
  , `user_id` INTEGER NOT NULL
  );


migration_id: add index query_history.user_id-query_uid
timestamp: 2024-01-10 12:03:56
sql:
  CREATE UNIQUE INDEX `UQE_query_history_star_user_id_query_uid` ON `query_history_star` (`user_id`,`query_uid`);


# user

login: admin
email: admin@localhost
salt: tr1cakyLPq
rands: V0MWn6gTuC
created: 2024-01-10 12:03:56
updated: 2024-01-10 12:03:56
last_seen_at: 2014-01-10 12:03:56
password:
  00778b7760e72d715c2414e325cabd5914474606301898ba9b6b96eefac331853ec22ac6c5bd771da23c4ac5bb2a2f81479c


# dashboard

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


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


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


slug: companies-table
title: Companies Table
created: 2024-01-10 12:03:57.071051524+00:00
updated: 2024-01-10 12:03:57.071051604+00:00
uid: 5
data:
  {
    "gnetId": null,
    "id": 54,
    "panels": [
      {
        "hideTimeOverride": true,
        "links": [],
        "showHeader": true,
        "type": "table",
        "gridPos": {
          "x": 0,
          "y": 0,
          "h": 22,
          "w": 24
        },
        "styles": [
          {
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null,
            "pattern": "Time",
            "type": "hidden"
          },
          {
            "decimals": 2,
            "preserveFormat": false,
            "thresholds": [],
            "unit": "short",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "pattern": "name",
            "type": "string",
            "alias": "Company"
          },
          {
            "type": "number",
            "unit": "none",
            "alias": "Number",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 0,
            "pattern": "value",
            "thresholds": [],
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ]
          },
          {
            "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": "number"
          }
        ],
        "targets": [
          {
            "alias": "",
            "format": "table",
            "orderByTime": "ASC",
            "policy": "default",
            "query": "SELECT \"name\", \"value\" FROM \"project_company_stats_[[metric]]_[[period]]\" WHERE $timeFilter",
            "rawQuery": true,
            "rawSql": "select name, value from \"shcom\" where series = 'hcom[[metric]]' and period = '[[period]]'",
            "refId": "A",
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "tags": [],
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ]
          }
        ],
        "transform": "table",
        "transparent": false,
        "datasource": "psql",
        "description": "",
        "fontSize": "90%",
        "id": 1,
        "title": "[[full_name]] Companies statistics ([[metric]], Range: [[period_name]]), bots excluded",
        "columns": [],
        "pageSize": 1000,
        "scroll": true,
        "sort": {
          "col": 1,
          "desc": true
        }
      },
      {
        "content": "${docs:raw}",
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text"
      }
    ],
    "refresh": false,
    "timezone": "",
    "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": "Companies Table",
    "version": 3,
    "editable": true,
    "iteration": 1529598249217,
    "links": [],
    "schemaVersion": 16,
    "style": "dark",
    "tags": [
      "dashboard",
      "spinnaker",
      "companies",
      "table"
    ],
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard"
        }
      ]
    },
    "graphTooltip": 0,
    "templating": {
      "list": [
        {
          "label": null,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "useTags": false,
          "datasource": "psql",
          "name": "full_name",
          "options": [],
          "tagsQuery": "",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "refresh": 1,
          "regex": "",
          "sort": 0,
          "allValue": null,
          "current": {
            "text": "OCI",
            "value": "OCI"
          },
          "hide": 2,
          "multi": false,
          "tags": [],
          "type": "query",
          "includeAll": false
        },
        {
          "multi": false,
          "refresh": 1,
          "skipUrlSync": false,
          "sort": 0,
          "hide": 0,
          "includeAll": false,
          "regex": "",
          "type": "query",
          "current": {
            "tags": [],
            "text": "Last decade",
            "value": "Last decade"
          },
          "label": "Range",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": "",
          "allValue": null,
          "datasource": "psql",
          "useTags": false,
          "name": "period_name",
          "options": []
        },
        {
          "allValue": null,
          "current": {
            "value": "contributions",
            "selected": true,
            "tags": [],
            "text": "Contributions"
          },
          "includeAll": false,
          "label": "Metric",
          "query": "commenters,comments,commitcommenters,commits,committers,documentationcommits,documentationcommitters,pushers,events,forkers,issuecommenters,issues,prcreators,prreviewers,prs,repositories,watchers,prreviewcommenters,prreviews",
          "type": "custom",
          "hide": 0,
          "multi": false,
          "name": "metric",
          "options": [
            {
              "selected": false,
              "text": "Commenters",
              "value": "commenters"
            },
            {
              "text": "Comments",
              "value": "comments",
              "selected": false
            },
            {
              "selected": false,
              "text": "Commit commenters",
              "value": "commitcommenters"
            },
            {
              "text": "Commits",
              "value": "commits",
              "selected": false
            },
            {
              "selected": false,
              "text": "Committers",
              "value": "committers"
            },
            {
              "text": "Documentation commits",
              "value": "documentationcommits",
              "selected": false
            },
            {
              "selected": false,
              "text": "Documentation committers",
              "value": "documentationcommitters"
            },
            {
              "selected": false,
              "text": "Pushers",
              "value": "pushers"
            },
            {
              "selected": false,
              "text": "GitHub Events",
              "value": "events"
            },
            {
              "selected": false,
              "text": "Forkers",
              "value": "forkers"
            },
            {
              "selected": false,
              "text": "Issue commenters",
              "value": "issuecommenters"
            },
            {
              "text": "Issues",
              "value": "issues",
              "selected": false
            },
            {
              "selected": false,
              "text": "PR authors",
              "value": "prcreators"
            },
            {
              "text": "PR reviewers",
              "value": "prreviewers",
              "selected": false
            },
            {
              "value": "prreviewcommenters",
              "selected": false,
              "text": "PR review commenters"
            },
            {
              "value": "prreviews",
              "selected": false,
              "text": "PR reviews"
            },
            {
              "selected": false,
              "text": "Pull requests",
              "value": "prs"
            },
            {
              "selected": false,
              "text": "Contributing in repositories",
              "value": "repositories"
            },
            {
              "selected": false,
              "text": "Contributors",
              "value": "contributors"
            },
            {
              "selected": true,
              "text": "Contributions",
              "value": "contributions"
            },
            {
              "selected": false,
              "text": "Watchers",
              "value": "watchers"
            }
          ],
          "skipUrlSync": false
        },
        {
          "hide": 2,
          "label": null,
          "name": "period",
          "refresh": 1,
          "tags": [],
          "options": [],
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "sort": 0,
          "allValue": null,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "skipUrlSync": true,
          "type": "query",
          "useTags": false,
          "current": {
            "text": "y10",
            "value": "y10"
          },
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "regex": ""
        },
        {
          "query": "select value_s from gha_vars where name = 'companies_summary_docs_html'",
          "sort": 0,
          "useTags": false,
          "hide": 2,
          "label": null,
          "name": "docs",
          "options": [],
          "tags": [],
          "type": "query",
          "refresh": 1,
          "regex": "",
          "tagValuesQuery": "",
          "allValue": null,
          "datasource": "psql",
          "includeAll": false,
          "tagsQuery": "",
          "current": {
            
          },
          "multi": false,
          "skipUrlSync": true
        }
      ]
    },
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "uid": "5"
  }


slug: company-commits-table
title: Company Commits Table
created: 2024-01-10 12:03:57.089124324+00:00
updated: 2024-01-10 12:03:57.089124394+00:00
uid: 56
data:
  {
    "style": "dark",
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "gnetId": null,
    "links": [],
    "refresh": false,
    "timepicker": {
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ],
      "hidden": false
    },
    "id": 66,
    "schemaVersion": 16,
    "templating": {
      "list": [
        {
          "multi": false,
          "refresh": 1,
          "tags": [],
          "label": null,
          "regex": "",
          "sort": 0,
          "tagsQuery": "",
          "datasource": "psql",
          "name": "full_name",
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "allValue": null,
          "hide": 2,
          "includeAll": false,
          "type": "query",
          "useTags": false,
          "current": {
            "text": "Envoy",
            "value": "Envoy"
          }
        },
        {
          "regex": "",
          "useTags": false,
          "hide": 0,
          "includeAll": true,
          "name": "repogroups",
          "options": [],
          "refresh": 1,
          "tags": [],
          "label": "Repository groups",
          "query": "select repo_group_name from trepo_groups order by 1",
          "skipUrlSync": false,
          "sort": 0,
          "tagValuesQuery": "",
          "allValue": "null",
          "multi": true,
          "tagsQuery": "",
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "datasource": "psql",
          "type": "query"
        },
        {
          "includeAll": false,
          "options": [],
          "regex": "",
          "sort": 0,
          "useTags": false,
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eEnvoy company commits table dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCompany commits metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/company_commits_data.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eCompany commits table\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/envoy/company-commits-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows statistics about company commits.\u003c/li\u003e\n\u003cli\u003eYou can select date range to show company commits for this period.\u003c/li\u003e\n\u003cli\u003eYou can select multiple repository groups or all of them in a multi select dowp down.\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\u003eYou can select multiple companies or all of them in a multi select dowp down.\u003c/li\u003e\n\u003cli\u003eWe are showing top 255 most active companies in the drop-down list.\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\"\u003eEnvoy company commits table dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCompany commits metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/company_commits_data.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eCompany commits table\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/envoy/company-commits-table.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThis dashboard shows statistics about company commits.\u003c/li\u003e\n\u003cli\u003eYou can select date range to show company commits for this period.\u003c/li\u003e\n\u003cli\u003eYou can select multiple repository groups or all of them in a multi select dowp down.\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\u003eYou can select multiple companies or all of them in a multi select dowp down.\u003c/li\u003e\n\u003cli\u003eWe are showing top 255 most active companies in the drop-down list.\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"
          },
          "refresh": 1,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "allValue": null,
          "label": null,
          "name": "docs",
          "tags": [],
          "hide": 2,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'company_commits_docs_html'",
          "tagsQuery": "",
          "type": "query",
          "datasource": "psql"
        },
        {
          "query": "select companies_name from tcompanies order by time asc",
          "tagValuesQuery": "",
          "allValue": "null",
          "multi": true,
          "name": "companies",
          "refresh": 1,
          "tags": [],
          "type": "query",
          "current": {
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "label": "Companies",
          "sort": 0,
          "tagsQuery": "",
          "useTags": false,
          "datasource": "psql",
          "skipUrlSync": false,
          "options": [],
          "regex": "",
          "hide": 0,
          "includeAll": true
        }
      ]
    },
    "title": "Company Commits Table",
    "editable": true,
    "panels": [
      {
        "fontSize": "90%",
        "links": [],
        "scroll": true,
        "styles": [
          {
            "link": true,
            "linkTargetBlank": true,
            "linkTooltip": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "mappingType": 1,
            "pattern": "Message",
            "thresholds": [],
            "type": "string",
            "unit": "short",
            "alias": "Commit link",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "linkUrl": "https://github.com/${__cell_4}/${__cell_5}/commit/${__cell_6}"
          },
          {
            "alias": "",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "thresholds": [],
            "mappingType": 1,
            "pattern": "Commit Org",
            "type": "hidden",
            "unit": "short",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2
          },
          {
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "Commit Repo",
            "unit": "short",
            "alias": "",
            "mappingType": 1,
            "thresholds": [],
            "type": "hidden",
            "dateFormat": "YYYY-MM-DD HH:mm:ss"
          },
          {
            "mappingType": 1,
            "pattern": "Commit SHA",
            "type": "hidden",
            "unit": "short",
            "alias": "",
            "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,
            "thresholds": [],
            "colorMode": null
          },
          {
            "dateFormat": "MM/DD/YY h:mm:ss a",
            "decimals": 2,
            "pattern": "Date",
            "unit": "short",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "mappingType": 1,
            "thresholds": [],
            "type": "date"
          },
          {
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 0,
            "pattern": "/.*/",
            "thresholds": [],
            "type": "number",
            "unit": "short",
            "alias": "",
            "colorMode": null
          }
        ],
        "description": "",
        "sort": {
          "col": 3,
          "desc": true
        },
        "transform": "table",
        "columns": [],
        "timeShift": null,
        "type": "table",
        "timeFrom": null,
        "datasource": "psql",
        "gridPos": {
          "y": 0,
          "h": 25,
          "w": 24,
          "x": 0
        },
        "hideTimeOverride": false,
        "id": 1,
        "pageSize": 30,
        "showHeader": true,
        "targets": [
          {
            "policy": "default",
            "rawSql": "select\n  split_part(str, '$$$', 1) as \"Company\",\n  split_part(str, '$$$', 2) as \"Repository group\",\n  split_part(str, '$$$', 3) as \"Committer\",\n  dt as \"Date\",\n  split_part(split_part(str, '$$$', 4), '/', 1) as \"Commit Org\",\n  split_part(split_part(str, '$$$', 4), '/', 2) as \"Commit Repo\",\n  split_part(str, '$$$', 5) as \"Commit SHA\",\n  split_part(str, '$$$', 6) as \"Message\"\nfrom\n  scompany_commits_data\nwhere\n  $__timeFilter(dt)\n  and period = 'd'\n  and ('[[repogroups:csv]]' = 'null' or split_part(str, '$$$', 2) in ([[repogroups]]))\n  and ('[[companies:csv]]' = 'null' or split_part(str, '$$$', 1) in ([[companies]]))",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "tags": [],
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "query": "",
            "rawQuery": true,
            "refId": "A",
            "resultFormat": "table",
            "alias": "",
            "format": "table"
          }
        ],
        "title": "[[full_name]] company commits table",
        "transparent": false
      },
      {
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 25
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation"
      }
    ],
    "timezone": "",
    "tags": [
      "dashboard",
      "spinnaker",
      "table",
      "companies"
    ],
    "uid": "56",
    "version": 13,
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        }
      ]
    },
    "graphTooltip": 0,
    "iteration": 1557388627645
  }


slug: company-prs-in-repository-groups-table
title: Company PRs in Repository Groups Table
created: 2024-01-10 12:03:57.110439905+00:00
updated: 2024-01-10 12:03:57.110439975+00:00
uid: 55
data:
  {
    "annotations": {
      "list": [
        {
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts"
        }
      ]
    },
    "gnetId": null,
    "graphTooltip": 0,
    "id": 73,
    "timezone": "",
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "iteration": 1547454421924,
    "links": [],
    "refresh": false,
    "style": "dark",
    "tags": [
      "dashboard",
      "spinnaker",
      "table",
      "companies"
    ],
    "panels": [
      {
        "datasource": "psql",
        "fontSize": "80%",
        "links": [],
        "showHeader": true,
        "styles": [
          {
            "pattern": "Time",
            "type": "hidden",
            "alias": "Time",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": null
          },
          {
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 0,
            "pattern": "Opened PRs",
            "thresholds": [],
            "type": "number",
            "unit": "none",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "mappingType": 1
          },
          {
            "thresholds": [],
            "type": "number",
            "unit": "none",
            "alias": "",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "decimals": 2,
            "pattern": "/.*/"
          }
        ],
        "description": "Shows company PRs in the given repository groups",
        "pageSize": 200,
        "scroll": true,
        "transform": "table",
        "type": "table",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "targets": [
          {
            "rawSql": "select\n  split_part(name, '$$$', 2) as \"Company\",\n  split_part(name, '$$$', 1) as \"Repository group\",\n  split_part(name, '$$$', 3) as \"GitHub ID\",\n  split_part(name, '$$$', 4) as \"User names\",\n  value as \"Opened PRs\"\nfrom\n  scompany_prs\nwhere\n  period = '[[period]]'\n  and ('[[repogroups:csv]]' = 'null' or split_part(name, '$$$', 1) in ([[repogroups]]))\n  and ('[[companies:csv]]' = 'null' or split_part(name, '$$$', 2) in ([[companies]]))",
            "refId": "A",
            "resultFormat": "table",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "orderByTime": "ASC",
            "query": "SELECT \"name\", \"value\" FROM \"top_commenters_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "format": "table",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "policy": "default",
            "rawQuery": true,
            "tags": [],
            "alias": "",
            "dsType": "influxdb"
          }
        ],
        "columns": [],
        "hideTimeOverride": true,
        "sort": {
          "col": 4,
          "desc": true
        },
        "title": "[[full_name]] company PRs (Range: [[period_name]])",
        "transparent": false
      },
      {
        "gridPos": {
          "h": 11,
          "w": 24,
          "x": 0,
          "y": 22
        },
        "id": 11,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}"
      }
    ],
    "timepicker": {
      "hidden": true,
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "uid": "55",
    "version": 7,
    "editable": true,
    "schemaVersion": 16,
    "templating": {
      "list": [
        {
          "label": "Range",
          "options": [],
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "hide": 0,
          "includeAll": false,
          "name": "period_name",
          "query": "select quick_ranges_name from tquick_ranges order by time",
          "tags": [],
          "type": "query",
          "allValue": null,
          "refresh": 1,
          "regex": "",
          "useTags": false,
          "datasource": "psql",
          "multi": false,
          "sort": 0,
          "current": {
            "text": "Last decade",
            "value": "Last decade"
          }
        },
        {
          "datasource": "psql",
          "hide": 2,
          "includeAll": false,
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "sort": 0,
          "allValue": null,
          "current": {
            "text": "y10",
            "value": "y10"
          },
          "multi": false,
          "name": "period",
          "options": [],
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "tagValuesQuery": "",
          "label": null,
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "tags": []
        },
        {
          "sort": 0,
          "tags": [],
          "allValue": "null",
          "hide": 0,
          "label": "Repository groups",
          "name": "repogroups",
          "query": "select repo_group_name from trepo_groups order by 1",
          "skipUrlSync": false,
          "tagsQuery": "",
          "current": {
            "tags": [],
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "datasource": "psql",
          "includeAll": true,
          "regex": "",
          "useTags": false,
          "refresh": 1,
          "tagValuesQuery": "",
          "type": "query",
          "multi": true,
          "options": []
        },
        {
          "allValue": null,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "useTags": false,
          "type": "query",
          "hide": 2,
          "label": null,
          "regex": "",
          "sort": 0,
          "tags": [],
          "current": {
            "text": "CNCF",
            "value": "CNCF"
          },
          "options": [],
          "refresh": 1,
          "tagsQuery": "",
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'"
        },
        {
          "includeAll": false,
          "query": "select value_s from gha_vars where name = 'company_prs_docs_html'",
          "useTags": false,
          "multi": false,
          "regex": "",
          "skipUrlSync": true,
          "tagsQuery": "",
          "allValue": null,
          "current": {
            "isNone": true,
            "text": "None",
            "value": ""
          },
          "datasource": "psql",
          "refresh": 1,
          "sort": 0,
          "tags": [],
          "type": "query",
          "hide": 2,
          "label": null,
          "name": "docs",
          "options": [],
          "tagValuesQuery": ""
        },
        {
          "options": [],
          "query": "select companies_name from tcompanies order by time asc",
          "regex": "",
          "tagValuesQuery": "",
          "useTags": false,
          "datasource": "psql",
          "label": "Companies",
          "name": "companies",
          "tags": [],
          "allValue": "null",
          "current": {
            "tags": [],
            "text": "All",
            "value": [
              "$__all"
            ]
          },
          "hide": 0,
          "includeAll": true,
          "multi": true,
          "refresh": 1,
          "skipUrlSync": false,
          "sort": 0,
          "tagsQuery": "",
          "type": "query"
        }
      ]
    },
    "title": "Company PRs in Repository Groups Table"
  }


slug: company-statistics-by-repository-group
title: Company Statistics by Repository Group
created: 2024-01-10 12:03:57.13031778+00:00
updated: 2024-01-10 12:03:57.13031786+00:00
uid: 4
data:
  {
    "title": "Company Statistics by Repository Group",
    "version": 2,
    "graphTooltip": 0,
    "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"
      ]
    },
    "templating": {
      "list": [
        {
          "useTags": false,
          "current": {
            
          },
          "refresh": 1,
          "regex": "",
          "tags": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "type": "query",
          "datasource": "psql",
          "includeAll": false,
          "label": null,
          "multi": false,
          "hide": 2,
          "name": "full_name",
          "sort": 0,
          "tagsQuery": "",
          "allValue": null,
          "options": [],
          "skipUrlSync": true,
          "tagValuesQuery": ""
        },
        {
          "current": {
            "tags": [],
            "text": "7 Days MA",
            "value": "d7"
          },
          "label": "Period",
          "skipUrlSync": false,
          "type": "custom",
          "allValue": null,
          "includeAll": false,
          "multi": false,
          "name": "period",
          "options": [
            {
              "selected": false,
              "text": "Day",
              "value": "d"
            },
            {
              "selected": true,
              "text": "7 Days MA",
              "value": "d7"
            },
            {
              "selected": false,
              "text": "Week",
              "value": "w"
            },
            {
              "selected": false,
              "text": "Month",
              "value": "m"
            },
            {
              "selected": false,
              "text": "Quarter",
              "value": "q"
            },
            {
              "selected": false,
              "text": "Year",
              "value": "y"
            }
          ],
          "query": "d,w,m,q,y",
          "hide": 0
        },
        {
          "current": {
            "tags": [],
            "text": "All activity",
            "value": "activity"
          },
          "hide": 0,
          "label": "Metric",
          "name": "metric",
          "options": [
            {
              "selected": false,
              "text": "All activity",
              "value": "activity"
            },
            {
              "selected": false,
              "text": "Active authors",
              "value": "authors"
            },
            {
              "selected": false,
              "text": "Issues created",
              "value": "issues"
            },
            {
              "text": "Pull requests created",
              "value": "prs",
              "selected": false
            },
            {
              "value": "reviews",
              "selected": false,
              "text": "Reviews submitted"
            },
            {
              "selected": false,
              "text": "Commits",
              "value": "commits"
            },
            {
              "selected": false,
              "text": "Commiters",
              "value": "committers"
            },
            {
              "value": "pushes",
              "selected": false,
              "text": "Pushes"
            },
            {
              "value": "pushers",
              "selected": false,
              "text": "Pushers"
            },
            {
              "selected": true,
              "text": "Contributions",
              "value": "contributions"
            },
            {
              "selected": false,
              "text": "Contributors",
              "value": "contributors"
            },
            {
              "text": "Comments",
              "value": "comments",
              "selected": false
            }
          ],
          "skipUrlSync": false,
          "allValue": null,
          "includeAll": false,
          "multi": false,
          "query": "activity,authors,issues,prs,commits,committers,pushers,pushes,comments,contributions,contributors,reviews",
          "type": "custom"
        },
        {
          "allValue": null,
          "multi": false,
          "sort": 0,
          "includeAll": false,
          "options": [],
          "tagsQuery": "",
          "useTags": false,
          "hide": 0,
          "label": "Repository group",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tags": [],
          "regex": "",
          "type": "query",
          "current": {
            
          },
          "datasource": "psql",
          "name": "repogroup_name",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1
        },
        {
          "tagValuesQuery": "",
          "allValue": null,
          "current": {
            
          },
          "datasource": "psql",
          "hide": 2,
          "multi": false,
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "includeAll": false,
          "options": [],
          "regex": "",
          "sort": 0,
          "useTags": false,
          "skipUrlSync": true,
          "tagsQuery": "",
          "label": "",
          "name": "repogroup",
          "tags": [],
          "type": "query"
        },
        {
          "query": "select '\"' || companies_name || '\"' from tcompanies order by time asc",
          "skipUrlSync": false,
          "type": "query",
          "hide": 0,
          "name": "companies",
          "datasource": "psql",
          "useTags": false,
          "includeAll": true,
          "label": "Companies",
          "multi": true,
          "refresh": 1,
          "regex": "",
          "sort": 0,
          "allValue": "",
          "current": {
            
          },
          "tags": [],
          "tagsQuery": "",
          "options": [],
          "tagValuesQuery": ""
        },
        {
          "label": null,
          "tagsQuery": "",
          "allValue": null,
          "hide": 2,
          "name": "docs",
          "options": [],
          "refresh": 1,
          "type": "query",
          "current": {
            
          },
          "includeAll": false,
          "multi": false,
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "useTags": false,
          "datasource": "psql",
          "query": "select value_s from gha_vars where name = 'companies_stats_docs_html'",
          "regex": "",
          "sort": 0,
          "tags": []
        }
      ]
    },
    "id": 55,
    "iteration": 1529598249198,
    "schemaVersion": 16,
    "panels": [
      {
        "xaxis": {
          "name": null,
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time"
        },
        "pointradius": 5,
        "targets": [
          {
            "format": "time_series",
            "groupBy": [],
            "refId": "B",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "orderByTime": "ASC",
            "tags": [],
            "rawSql": "select\n  time,\n  ${companies:csv}\nfrom\n  scompany_activity\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'company[[repogroup]][[metric]]'\norder by\n  time",
            "resultFormat": "time_series",
            "alias": "",
            "dsType": "influxdb",
            "measurement": "sig_federation_d",
            "policy": "default",
            "query": "SELECT /^[[companies]]$/ FROM \"company_[[repogroup]]_[[metric]]_[[period]]\" WHERE $timeFilter",
            "rawQuery": true
          }
        ],
        "thresholds": [],
        "steppedLine": false,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "transparent": true,
        "bars": false,
        "description": "Measures company [[metric]]. Independent means developers working on their own.",
        "nullPointMode": "null as zero",
        "yaxes": [
          {
            "format": "short",
            "label": "Per company",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "All"
          }
        ],
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "dashes": false,
        "datasource": "psql",
        "linewidth": 0,
        "legend": {
          "alignAsTable": true,
          "hideEmpty": false,
          "hideZero": false,
          "sideWidth": null,
          "min": true,
          "avg": true,
          "current": true,
          "max": true,
          "rightSide": true,
          "show": true,
          "sortDesc": true,
          "total": true,
          "sort": "avg",
          "values": true
        },
        "points": false,
        "timeShift": null,
        "type": "graph",
        "aliasColors": {
          
        },
        "dashLength": 10,
        "decimals": 2,
        "title": "Companies [[metric]] metric ([[repogroup_name]], [[period]])",
        "fill": 6,
        "gridPos": {
          "h": 17,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "timeFrom": null,
        "spaceLength": 10,
        "lines": true,
        "links": [],
        "renderer": "flot",
        "stack": true,
        "id": 1,
        "percentage": false,
        "seriesOverrides": [
          {
            "bars": false,
            "fill": 0,
            "lines": true,
            "linewidth": 1,
            "stack": false,
            "yaxis": 2,
            "alias": "All"
          }
        ]
      },
      {
        "transparent": true,
        "xaxis": {
          "show": true,
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashLength": 10,
        "dashes": false,
        "points": false,
        "timeFrom": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "description": "Measures company [[metric]]. Independent means developers working on their own.",
        "links": [],
        "renderer": "flot",
        "stack": true,
        "targets": [
          {
            "alias": "",
            "format": "time_series",
            "rawQuery": true,
            "tags": [],
            "measurement": "sig_federation_d",
            "query": "SELECT /^[[companies]]$/ FROM \"company_[[repogroup]]_[[metric]]_[[period]]\" WHERE $timeFilter",
            "dsType": "influxdb",
            "refId": "B",
            "resultFormat": "time_series",
            "groupBy": [],
            "orderByTime": "ASC",
            "policy": "default",
            "rawSql": "select\n  time,\n  ${companies:csv}\nfrom\n  scompany_activity\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'company[[repogroup]][[metric]]'\norder by\n  time",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "type": "graph",
        "fill": 6,
        "lines": true,
        "legend": {
          "avg": true,
          "rightSide": true,
          "total": true,
          "hideEmpty": false,
          "max": true,
          "show": true,
          "sideWidth": null,
          "current": true,
          "min": true,
          "alignAsTable": true,
          "hideZero": false,
          "sort": "avg",
          "sortDesc": true,
          "values": true
        },
        "thresholds": [],
        "timeShift": null,
        "title": "Companies [[metric]] metric ([[repogroup_name]], [[period]])",
        "yaxes": [
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "max": "100",
            "min": "0",
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "",
            "logBase": 1
          }
        ],
        "datasource": "psql",
        "gridPos": {
          "h": 16,
          "w": 24,
          "x": 0,
          "y": 17
        },
        "nullPointMode": "null as zero",
        "spaceLength": 10,
        "steppedLine": false,
        "decimals": 2,
        "linewidth": 0,
        "bars": false,
        "seriesOverrides": [],
        "percentage": true,
        "pointradius": 5,
        "aliasColors": {
          
        },
        "id": 2
      },
      {
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 14,
          "w": 24,
          "x": 0,
          "y": 33
        },
        "id": 11
      }
    ],
    "timezone": "",
    "uid": "4",
    "editable": true,
    "gnetId": null,
    "links": [],
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "enable": true,
          "limit": 100,
          "showIn": 0,
          "type": "dashboard",
          "datasource": "-- Grafana --",
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts"
        },
        {
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "textColumn": "",
          "titleColumn": "[[full_name]] release",
          "hide": false,
          "enable": true,
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "tagsColumn": "title,description",
          "type": "alert",
          "datasource": "psql"
        }
      ]
    },
    "tags": [
      "companies",
      "dashboard",
      "spinnaker"
    ],
    "time": {
      "from": "now-2y",
      "to": "now"
    }
  }


slug: contributions-chart
title: Contributions chart
created: 2024-01-10 12:03:57.152032901+00:00
updated: 2024-01-10 12:03:57.152032971+00:00
uid: 74
data:
  {
    "links": [],
    "templating": {
      "list": [
        {
          "includeAll": false,
          "multi": false,
          "name": "period",
          "query": "d7,w,m",
          "type": "custom",
          "allValue": null,
          "current": {
            "selected": false,
            "tags": [],
            "text": "Month",
            "value": "m",
            "$$hashKey": "object:1598"
          },
          "hide": 0,
          "label": "Period",
          "options": [
            {
              "text": "7 Days MA",
              "value": "d7",
              "$$hashKey": "object:1598",
              "selected": true
            },
            {
              "value": "w",
              "$$hashKey": "object:1600",
              "selected": false,
              "text": "Week"
            },
            {
              "$$hashKey": "object:1601",
              "selected": false,
              "text": "Month",
              "value": "m"
            }
          ],
          "skipUrlSync": false
        },
        {
          "allValue": null,
          "current": {
            "$$hashKey": "object:1430",
            "selected": true,
            "tags": [],
            "text": "Contributions",
            "value": "contributions"
          },
          "hide": 0,
          "multi": false,
          "options": [
            {
              "value": "comments",
              "$$hashKey": "object:1425",
              "selected": false,
              "text": "Comments"
            },
            {
              "$$hashKey": "object:1426",
              "selected": false,
              "text": "Commit comments",
              "value": "commitcomments"
            },
            {
              "$$hashKey": "object:1427",
              "selected": false,
              "text": "Commits",
              "value": "commits"
            },
            {
              "text": "GitHub events",
              "value": "events",
              "$$hashKey": "object:1428",
              "selected": false
            },
            {
              "$$hashKey": "object:1429",
              "selected": false,
              "text": "GitHub pushes",
              "value": "pushes"
            },
            {
              "$$hashKey": "object:1430",
              "selected": true,
              "text": "Contributions",
              "value": "contributions"
            },
            {
              "selected": false,
              "text": "Issue comments",
              "value": "issuecomments",
              "$$hashKey": "object:1431"
            },
            {
              "$$hashKey": "object:1432",
              "selected": false,
              "text": "Issues",
              "value": "issues"
            },
            {
              "$$hashKey": "object:1433",
              "selected": false,
              "text": "PRs",
              "value": "prs"
            },
            {
              "$$hashKey": "object:1434",
              "selected": false,
              "text": "Merged PRs",
              "value": "mergedprs"
            },
            {
              "$$hashKey": "object:1435",
              "selected": false,
              "text": "Review comments",
              "value": "reviewcomments"
            }
          ],
          "skipUrlSync": false,
          "type": "custom",
          "includeAll": false,
          "label": "Metric",
          "name": "metric",
          "query": "comments,commitcomments,commits,events,pushes,contributions,issuecomments,issues,prs,mergedprs,reviewcomments"
        },
        {
          "index": -1,
          "options": [],
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "hide": 2,
          "name": "full_name",
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "useTags": false,
          "allValue": null,
          "definition": "",
          "multi": false,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "regex": "",
          "sort": 0,
          "datasource": "psql",
          "includeAll": false,
          "skipUrlSync": true,
          "tags": [],
          "label": null,
          "refresh": 1
        },
        {
          "definition": "",
          "includeAll": false,
          "refresh": 1,
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "index": -1,
          "multi": false,
          "regex": "",
          "useTags": false,
          "tagValuesQuery": "",
          "allValue": null,
          "current": {
            "text": "All",
            "value": "All"
          },
          "name": "repogroup_name",
          "options": [],
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "sort": 0,
          "hide": 0,
          "label": "Repository group",
          "skipUrlSync": false,
          "tagsQuery": ""
        },
        {
          "includeAll": false,
          "index": -1,
          "multi": false,
          "options": [],
          "refresh": 1,
          "sort": 0,
          "hide": 2,
          "tags": [],
          "tagsQuery": "",
          "definition": "",
          "label": "",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "type": "query",
          "current": {
            "text": "all",
            "value": "all"
          },
          "datasource": "psql",
          "name": "repogroup",
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "useTags": false,
          "allValue": null
        },
        {
          "current": {
            "value": "All",
            "text": "All"
          },
          "datasource": "psql",
          "regex": "",
          "index": -1,
          "label": "Country",
          "name": "country_name",
          "refresh": 1,
          "type": "query",
          "useTags": false,
          "includeAll": false,
          "multi": false,
          "skipUrlSync": false,
          "sort": 0,
          "tagsQuery": "",
          "allValue": "all",
          "definition": "select sub.name from (select 'All' as name, 0 as ord union select country_name as name, 1 as ord from tcountries) sub order by sub.ord, sub.name",
          "hide": 0,
          "options": [],
          "query": "select sub.name from (select 'All' as name, 0 as ord union select country_name as name, 1 as ord from tcountries) sub order by sub.ord, sub.name",
          "tagValuesQuery": "",
          "tags": []
        },
        {
          "datasource": "psql",
          "useTags": false,
          "allValue": null,
          "query": "select sub.value from (select country_value as value, 0 as ord from tcountries where country_name = '[[country_name]]' union select 'all', 1 as ord) sub order by sub.ord limit 1",
          "refresh": 1,
          "definition": "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",
          "hide": 2,
          "multi": false,
          "name": "country",
          "options": [],
          "regex": "",
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "text": "all",
            "value": "all"
          },
          "includeAll": false,
          "index": -1,
          "label": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "tags": [],
          "type": "query"
        },
        {
          "query": "select sub.name from (select 'All' as name, '1900-01-01' as time union select companies_name, time from tcompanies) sub order by sub.time",
          "refresh": 1,
          "tagValuesQuery": "",
          "tags": [],
          "allValue": "",
          "current": {
            "text": "All",
            "value": "All"
          },
          "definition": "select sub.name from (select 'All' as name, '1900-01-01' as time union select companies_name, time from tcompanies) sub order by sub.time",
          "hide": 0,
          "options": [],
          "includeAll": false,
          "index": -1,
          "multi": false,
          "name": "company_name",
          "regex": "",
          "datasource": "psql",
          "label": "Company",
          "skipUrlSync": false,
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "useTags": false
        },
        {
          "hide": 2,
          "includeAll": false,
          "index": -1,
          "refresh": 1,
          "skipUrlSync": false,
          "tagsQuery": "",
          "definition": "select sub.value from (select companies_value as value, 0 as ord from tcompanies where companies_name = '[[company_name]]' union select 'all', 1 as ord) sub order by sub.ord limit 1",
          "options": [],
          "query": "select sub.value from (select companies_value as value, 0 as ord from tcompanies where companies_name = '[[company_name]]' union select 'all', 1 as ord) sub order by sub.ord limit 1",
          "tagValuesQuery": "",
          "tags": [],
          "label": "",
          "sort": 0,
          "useTags": false,
          "regex": "",
          "current": {
            "text": "all",
            "value": "all"
          },
          "datasource": "psql",
          "multi": false,
          "name": "company",
          "type": "query",
          "allValue": ""
        },
        {
          "definition": "select value_s from gha_vars where name = 'contributions_chart_docs_html'",
          "name": "docs",
          "refresh": 1,
          "tagsQuery": "",
          "includeAll": false,
          "multi": false,
          "sort": 0,
          "tagValuesQuery": "",
          "tags": [],
          "useTags": false,
          "regex": "",
          "current": {
            "text": "\u003ch1\u003eAll CNCF Contributions chart dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommitters metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/committers.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eContributors metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/all/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eContributions chart\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/contributions-chart.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 repository groups, counteries and companies.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week or 7 days moving average.\u003c/li\u003e\n\u003cli\u003eIf you select moving average, you will see the number of contributors in a moving 7 day average window and the number of contributions in that window divided by 7.\u003c/li\u003e\n\u003cli\u003eYou can select 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 from a drop-down or summary for 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\u003eAll CNCF Contributions chart dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommitters metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/committers.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eContributors metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/contributors.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/all/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e. Search for \u003ccode\u003eContributions chart\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/all/contributions-chart.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 repository groups, counteries and companies.\u003c/li\u003e\n\u003cli\u003eYou can select last day, month, week or 7 days moving average.\u003c/li\u003e\n\u003cli\u003eIf you select moving average, you will see the number of contributors in a moving 7 day average window and the number of contributions in that window divided by 7.\u003c/li\u003e\n\u003cli\u003eYou can select 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 from a drop-down or summary for 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,
          "index": -1,
          "options": [],
          "query": "select value_s from gha_vars where name = 'contributions_chart_docs_html'",
          "allValue": null,
          "label": null,
          "skipUrlSync": true,
          "type": "query"
        }
      ]
    },
    "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"
      ]
    },
    "timezone": "",
    "uid": "74",
    "editable": true,
    "graphTooltip": 0,
    "id": 8,
    "style": "dark",
    "title": "Contributions chart",
    "version": 6,
    "annotations": {
      "list": [
        {
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "$$hashKey": "object:37",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true
        },
        {
          "enable": true,
          "hide": false,
          "name": "Releases",
          "showIn": 0,
          "type": "tags",
          "$$hashKey": "object:142",
          "datasource": "psql",
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "tags": []
        }
      ]
    },
    "panels": [
      {
        "linewidth": 1,
        "spaceLength": 10,
        "yaxes": [
          {
            "show": true,
            "$$hashKey": "object:2039",
            "decimals": 2,
            "format": "none",
            "label": "Contributions",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "max": null,
            "min": "0",
            "show": true,
            "$$hashKey": "object:2040",
            "decimals": 0,
            "format": "none",
            "label": "Contributors",
            "logBase": 1
          }
        ],
        "bars": true,
        "dashLength": 10,
        "datasource": null,
        "nullPointMode": "null as zero",
        "pointradius": 2,
        "type": "graph",
        "legend": {
          "avg": true,
          "current": true,
          "max": true,
          "min": true,
          "rightSide": false,
          "total": false,
          "alignAsTable": true,
          "values": true,
          "show": true
        },
        "stack": false,
        "timeRegions": [],
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "aliasColors": {
          
        },
        "lines": false,
        "options": {
          "dataLinks": []
        },
        "title": "[[metric]] chart: aggregation: [[period]], repository group: [[repogroup_name]], country: [[country_name]], company: [[company_name]]",
        "description": "Contributions mean the current metric count. Contributors mean the current metric's authors count. When the aggregation period \"7 Days MA\" is used - the weekly number of authors is displayed and the average daily number of contributions (which is the total number of contributions in a moving average week divided by 7).",
        "hiddenSeries": false,
        "seriesOverrides": [
          {
            "bars": false,
            "color": "#C4162A",
            "lines": true,
            "linewidth": 2,
            "yaxis": 2,
            "$$hashKey": "object:2209",
            "alias": "Contributors"
          },
          {
            "alias": "Contributions",
            "color": "#1F60C4",
            "$$hashKey": "object:191"
          }
        ],
        "timeShift": null,
        "fill": 0,
        "interval": "",
        "thresholds": [],
        "timeFrom": null,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "id": 5,
        "percentage": false,
        "tooltip": {
          "shared": true,
          "sort": 0,
          "value_type": "individual"
        },
        "dashes": false,
        "fillGradient": 0,
        "points": false,
        "renderer": "flot",
        "steppedLine": false,
        "targets": [
          {
            "timeColumnType": "timestamp",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "format": "time_series",
            "group": [],
            "metricColumn": "none",
            "rawQuery": true,
            "select": [
              [
                {
                  "type": "column",
                  "params": [
                    "lang_perc"
                  ]
                }
              ]
            ],
            "timeColumn": "dt",
            "rawSql": "select\n  time,\n  value as \"Contributions\"\nfrom\n  scs\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'cs[[metric]][[repogroup]][[country]][[company]]evs'\norder by\n  time",
            "refId": "A",
            "table": "gha_repos_langs"
          },
          {
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Contributors\"\nfrom\n  scs\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = 'cs[[metric]][[repogroup]][[country]][[company]]acts'\norder by\n  time",
            "table": "gha_repos_langs",
            "timeColumnType": "timestamp",
            "select": [
              [
                {
                  "params": [
                    "lang_perc"
                  ],
                  "type": "column"
                }
              ]
            ],
            "timeColumn": "dt",
            "format": "time_series",
            "group": [],
            "metricColumn": "none",
            "refId": "B"
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        }
      },
      {
        "gridPos": {
          "h": 18,
          "w": 24,
          "x": 0,
          "y": 21
        },
        "id": 3,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}",
        "datasource": null
      }
    ],
    "refresh": false,
    "tags": [
      "dashboard",
      "spinnaker",
      "companies",
      "repogroups"
    ],
    "variables": {
      "list": []
    },
    "gnetId": null,
    "iteration": 1599300680243,
    "schemaVersion": 22,
    "time": {
      "from": "now-1y",
      "to": "now-2d"
    },
    "description": ""
  }


slug: countries-statistics-in-repository-groups
title: Countries Statistics in Repository Groups
created: 2024-01-10 12:03:57.170194771+00:00
updated: 2024-01-10 12:03:57.170194851+00:00
uid: 50
data:
  {
    "uid": "50",
    "gnetId": null,
    "links": [],
    "panels": [
      {
        "legend": {
          "sort": "avg",
          "sortDesc": true,
          "current": true,
          "max": true,
          "min": true,
          "rightSide": true,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "show": true,
          "total": false
        },
        "linewidth": 0,
        "timeFrom": null,
        "nullPointMode": "null as zero",
        "pointradius": 5,
        "renderer": "flot",
        "yaxes": [
          {
            "show": true,
            "decimals": null,
            "format": "short",
            "label": "Value",
            "logBase": 1,
            "max": null,
            "min": "0"
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "dashes": false,
        "datasource": "psql",
        "id": 2,
        "seriesOverrides": [],
        "spaceLength": 10,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "decimals": null,
        "steppedLine": true,
        "thresholds": [],
        "title": "[[full_name]] [[metric]] countries stats ([[repogroup_name]])",
        "aliasColors": {
          
        },
        "lines": false,
        "type": "graph",
        "xaxis": {
          "values": [],
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true
        },
        "description": "[[full_name]] [[metric]] countries stats ([[repogroup_name]])",
        "percentage": false,
        "bars": true,
        "dashLength": 10,
        "fill": 3,
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 0
        },
        "stack": true,
        "targets": [
          {
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${countries:csv}\nfrom\n  s[[cum]]\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = '[[cum]][[repogroup]][[metric]]'\norder by\n  time",
            "refId": "A",
            "dsType": "influxdb",
            "orderByTime": "ASC",
            "groupBy": [],
            "measurement": "notused",
            "policy": "default",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": [],
            "alias": "",
            "format": "time_series"
          }
        ],
        "links": [],
        "points": false,
        "timeShift": null
      },
      {
        "fill": 3,
        "lines": true,
        "linewidth": 1,
        "links": [],
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "Value",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": false,
            "format": "short"
          }
        ],
        "legend": {
          "current": true,
          "max": true,
          "rightSide": true,
          "sortDesc": true,
          "total": false,
          "values": true,
          "alignAsTable": true,
          "avg": true,
          "min": true,
          "show": true,
          "sort": "avg"
        },
        "percentage": false,
        "renderer": "flot",
        "bars": false,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "aliasColors": {
          
        },
        "datasource": "psql",
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 21
        },
        "pointradius": 5,
        "spaceLength": 10,
        "thresholds": [],
        "timeFrom": null,
        "type": "graph",
        "decimals": null,
        "description": "[[full_name]] [[metric]] countries stats ([[repogroup_name]])",
        "seriesOverrides": [],
        "steppedLine": false,
        "targets": [
          {
            "groupBy": [],
            "measurement": "notused",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${countries:csv}\nfrom\n  s[[cum]]\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = '[[cum]][[repogroup]][[metric]]'\norder by\n  time",
            "refId": "A",
            "alias": "",
            "dsType": "influxdb",
            "format": "time_series",
            "resultFormat": "time_series",
            "tags": [],
            "orderByTime": "ASC",
            "policy": "default",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ]
          }
        ],
        "dashLength": 10,
        "points": false,
        "timeShift": null,
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "dashes": false,
        "id": 4,
        "nullPointMode": "null as zero",
        "stack": false,
        "title": "[[full_name]] [[metric]] countries stats ([[repogroup_name]])"
      },
      {
        "lines": false,
        "points": false,
        "steppedLine": true,
        "type": "graph",
        "dashLength": 10,
        "datasource": "psql",
        "fill": 3,
        "legend": {
          "alignAsTable": true,
          "min": true,
          "show": true,
          "sort": "avg",
          "sortDesc": true,
          "values": true,
          "avg": true,
          "current": true,
          "max": true,
          "rightSide": true,
          "total": false
        },
        "percentage": true,
        "xaxis": {
          "buckets": null,
          "mode": "time",
          "name": null,
          "show": true,
          "values": []
        },
        "description": "[[full_name]] [[metric]] countries stats ([[repogroup_name]])",
        "targets": [
          {
            "alias": "",
            "dsType": "influxdb",
            "groupBy": [],
            "measurement": "notused",
            "refId": "A",
            "format": "time_series",
            "orderByTime": "ASC",
            "policy": "default",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  ${countries:csv}\nfrom\n  s[[cum]]\nwhere\n  $__timeFilter(time)\n  and period = '[[period]]'\n  and series = '[[cum]][[repogroup]][[metric]]'\norder by\n  time",
            "resultFormat": "time_series",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                }
              ]
            ],
            "tags": []
          }
        ],
        "timeFrom": null,
        "bars": true,
        "dashes": false,
        "decimals": null,
        "renderer": "flot",
        "tooltip": {
          "shared": true,
          "sort": 2,
          "value_type": "individual"
        },
        "gridPos": {
          "h": 21,
          "w": 24,
          "x": 0,
          "y": 42
        },
        "id": 3,
        "links": [],
        "seriesOverrides": [],
        "title": "[[full_name]] [[metric]] countries stats ([[repogroup_name]])",
        "yaxis": {
          "align": false,
          "alignLevel": null
        },
        "linewidth": 0,
        "spaceLength": 10,
        "stack": true,
        "aliasColors": {
          
        },
        "nullPointMode": "null as zero",
        "pointradius": 5,
        "thresholds": [],
        "timeShift": null,
        "yaxes": [
          {
            "decimals": null,
            "format": "short",
            "label": "Value",
            "logBase": 1,
            "max": "100",
            "min": "0",
            "show": true
          },
          {
            "format": "short",
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true
          }
        ]
      },
      {
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "h": 16,
          "w": 24,
          "x": 0,
          "y": 63
        },
        "id": 1,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation"
      }
    ],
    "refresh": false,
    "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": "Countries Statistics in Repository Groups",
    "annotations": {
      "list": [
        {
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)"
        },
        {
          "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",
          "showIn": 0,
          "tagsColumn": "title,description",
          "type": "alert",
          "datasource": "psql",
          "enable": true,
          "iconColor": "rgba(255, 96, 96, 1)",
          "name": "Releases",
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc"
        }
      ]
    },
    "id": 7,
    "timezone": "",
    "version": 2,
    "editable": true,
    "graphTooltip": 0,
    "iteration": 1539255053975,
    "schemaVersion": 16,
    "tags": [
      "dashboard",
      "spinnaker"
    ],
    "templating": {
      "list": [
        {
          "allValue": null,
          "multi": false,
          "tagsQuery": "",
          "tags": [],
          "useTags": false,
          "options": [],
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "tagValuesQuery": "",
          "sort": 0,
          "current": {
            "text": "Spinnaker",
            "value": "Spinnaker"
          },
          "datasource": "psql",
          "hide": 2,
          "includeAll": false,
          "label": null,
          "name": "full_name",
          "query": "select value_s from gha_vars where name = 'full_name'",
          "type": "query"
        },
        {
          "allValue": null,
          "datasource": "psql",
          "name": "period_name",
          "tagValuesQuery": "",
          "type": "query",
          "includeAll": false,
          "sort": 0,
          "tags": [],
          "tagsQuery": "",
          "current": {
            "value": "Month",
            "tags": [],
            "text": "Month"
          },
          "hide": 0,
          "label": "Period",
          "options": [],
          "query": "select split_part(cumperiod_name, '/', 2) from tcumperiods where cumperiod_name like '[[cum]]/%';",
          "skipUrlSync": false,
          "multi": false,
          "refresh": 1,
          "regex": "",
          "useTags": false
        },
        {
          "sort": 0,
          "allValue": "",
          "datasource": "psql",
          "includeAll": true,
          "name": "countries",
          "query": "select '\"' || country_name || '\"' from tcountries order by time asc",
          "hide": 0,
          "refresh": 1,
          "current": {
            "value": "$__all",
            "text": "All"
          },
          "label": "Countries",
          "multi": true,
          "options": [],
          "useTags": false,
          "type": "query",
          "regex": "",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "tags": [],
          "tagsQuery": ""
        },
        {
          "label": "Repository group",
          "name": "repogroup_name",
          "options": [],
          "regex": "",
          "skipUrlSync": false,
          "includeAll": false,
          "tagValuesQuery": "",
          "allValue": null,
          "current": {
            "text": "All",
            "value": "All"
          },
          "datasource": "psql",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "refresh": 1,
          "tags": [],
          "hide": 0,
          "multi": false,
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "useTags": false
        },
        {
          "useTags": false,
          "current": {
            "text": "all",
            "value": "all"
          },
          "hide": 2,
          "refresh": 1,
          "skipUrlSync": true,
          "tags": [],
          "datasource": "psql",
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "regex": "",
          "tagsQuery": "",
          "type": "query",
          "options": [],
          "sort": 0,
          "tagValuesQuery": "",
          "allValue": null,
          "includeAll": false,
          "label": "",
          "multi": false,
          "name": "repogroup"
        },
        {
          "name": "metric",
          "options": [
            {
              "selected": false,
              "text": "Contributions",
              "value": "contributions"
            },
            {
              "selected": false,
              "text": "Contributors",
              "value": "contributors"
            },
            {
              "text": "Users",
              "value": "users",
              "selected": false
            },
            {
              "selected": false,
              "text": "Activity",
              "value": "events"
            },
            {
              "selected": false,
              "text": "Pushers",
              "value": "committers"
            },
            {
              "selected": false,
              "text": "Pushes",
              "value": "commits"
            },
            {
              "value": "rcommitters",
              "selected": true,
              "text": "Committers"
            },
            {
              "value": "rcommits",
              "selected": false,
              "text": "Commits"
            },
            {
              "selected": false,
              "text": "PR creators",
              "value": "prcreators"
            },
            {
              "selected": false,
              "text": "PRs",
              "value": "prs"
            },
            {
              "text": "Issue creators",
              "value": "issuecreators",
              "selected": false
            },
            {
              "selected": false,
              "text": "Issues",
              "value": "issues"
            },
            {
              "selected": false,
              "text": "Commenters",
              "value": "commenters"
            },
            {
              "selected": false,
              "text": "Comments",
              "value": "comments"
            },
            {
              "selected": false,
              "text": "Reviewers",
              "value": "reviewers"
            },
            {
              "selected": false,
              "text": "Reviews",
              "value": "reviews"
            },
            {
              "selected": false,
              "text": "Watchers",
              "value": "watchers"
            },
            {
              "text": "Watches",
              "value": "watches",
              "selected": false
            },
            {
              "selected": false,
              "text": "Forkers",
              "value": "forkers"
            },
            {
              "selected": false,
              "text": "Forks",
              "value": "forks"
            }
          ],
          "type": "custom",
          "allValue": null,
          "current": {
            "selected": true,
            "tags": [],
            "text": "Committers",
            "value": "rcommitters"
          },
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "label": "Metric",
          "query": "contributions,contributors,users,events,committers,commits,rcommitters,rcommits,prcreators,prs,issuecreators,issues,commenters,comments,reviewers,reviews,watchers,watches,forkers,forks",
          "skipUrlSync": false
        },
        {
          "label": "Cumulative",
          "name": "cum",
          "options": [
            {
              "selected": false,
              "text": "Yes",
              "value": "countriescum"
            },
            {
              "selected": true,
              "text": "No",
              "value": "countries"
            }
          ],
          "query": "countries,countriescum",
          "skipUrlSync": false,
          "allValue": null,
          "current": {
            "value": "countries",
            "selected": true,
            "text": "No"
          },
          "hide": 0,
          "includeAll": false,
          "multi": false,
          "type": "custom"
        },
        {
          "allValue": null,
          "tagValuesQuery": "",
          "useTags": false,
          "current": {
            "text": "\u003ch1 id=\"dashboard-header\"\u003eSpinnaker countries stats 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/countries.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCumulative metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/countries_cum.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCommitters metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/committers_countries.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCommitters cumulative metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/committers_countries_cum.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\u003ecountries\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/spinnaker/countries-stats.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 countries statistics (cumulative and in given periods).\u003c/li\u003e\n\u003cli\u003eContributor is defined as somebody who made a review, comment, commit, created PR or issue.\u003c/li\u003e\n\u003cli\u003eContribution is a review, comment, commit, issue or PR.\u003c/li\u003e\n\u003cli\u003eWe are determining contributor's country by using GitHub localization and searching for a country using \u003ca href=\"http://www.geonames.org\" target=\"_blank\"\u003egeonames\u003c/a\u003e database.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary statistics for all of them combined.\u003c/li\u003e\n\u003cli\u003eYou can choose to display contributors, contributions, users, actvity, committers, commits etc.\u003c/li\u003e\n\u003cli\u003eYou can select cumulative statistics or statistics in given periods.\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\u003c/ul\u003e",
            "value": "\u003ch1 id=\"dashboard-header\"\u003eSpinnaker countries stats 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/countries.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCumulative metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/countries_cum.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCommitters metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/committers_countries.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCommitters cumulative metric \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/committers_countries_cum.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\u003ecountries\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/spinnaker/countries-stats.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 countries statistics (cumulative and in given periods).\u003c/li\u003e\n\u003cli\u003eContributor is defined as somebody who made a review, comment, commit, created PR or issue.\u003c/li\u003e\n\u003cli\u003eContribution is a review, comment, commit, issue or PR.\u003c/li\u003e\n\u003cli\u003eWe are determining contributor's country by using GitHub localization and searching for a country using \u003ca href=\"http://www.geonames.org\" target=\"_blank\"\u003egeonames\u003c/a\u003e database.\u003c/li\u003e\n\u003cli\u003eYou can select single repository group or summary statistics for all of them combined.\u003c/li\u003e\n\u003cli\u003eYou can choose to display contributors, contributions, users, actvity, committers, commits etc.\u003c/li\u003e\n\u003cli\u003eYou can select cumulative statistics or statistics in given periods.\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\u003c/ul\u003e"
          },
          "multi": false,
          "refresh": 1,
          "skipUrlSync": true,
          "type": "query",
          "includeAll": false,
          "label": null,
          "name": "docs",
          "options": [],
          "tagsQuery": "",
          "datasource": "psql",
          "hide": 2,
          "query": "select value_s from gha_vars where name = 'countries_stats_docs_html'",
          "regex": "",
          "sort": 0,
          "tags": []
        },
        {
          "type": "query",
          "multi": false,
          "name": "period",
          "options": [],
          "includeAll": false,
          "query": "select split_part(cumperiod_name, '/', 3) from tcumperiods where cumperiod_name like '[[cum]]/[[period_name]]/%';",
          "skipUrlSync": true,
          "sort": 0,
          "useTags": false,
          "allValue": null,
          "current": {
            "value": "m",
            "text": "m"
          },
          "hide": 2,
          "label": "",
          "regex": "",
          "tagsQuery": "",
          "tags": [],
          "datasource": "psql",
          "refresh": 1,
          "tagValuesQuery": ""
        }
      ]
    },
    "time": {
      "from": "now-3y",
      "to": "now-1M"
    }
  }


slug: dashboards
title: Dashboards
created: 2024-01-10 12:03:57.189295417+00:00
updated: 2024-01-10 12:03:57.189295497+00:00
uid: 8
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",
          "tagsColumn": "title,description",
          "titleColumn": "[[full_name]] release",
          "type": "alert",
          "rawQuery": "select extract(epoch from time) AS time, title as text, description as tags from sannotations where $__timeFilter(time)",
          "showIn": 0,
          "datasource": "psql",
          "enable": true,
          "hide": false,
          "iconColor": "rgba(255, 96, 96, 1)",
          "limit": 100,
          "query": "SELECT title, description from annotations WHERE $timeFilter order by time asc",
          "textColumn": ""
        }
      ]
    },
    "id": 9,
    "refresh": "15m",
    "schemaVersion": 16,
    "title": "Dashboards",
    "version": 2,
    "editable": true,
    "style": "dark",
    "tags": [
      "home",
      "all",
      "spinnaker"
    ],
    "time": {
      "from": "now-7d",
      "to": "now-1h"
    },
    "timepicker": {
      "nowDelay": "1h",
      "refresh_intervals": [
        "5s",
        "10s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "2h",
        "1d"
      ],
      "time_options": [
        "5m",
        "15m",
        "1h",
        "6h",
        "12h",
        "24h",
        "2d",
        "7d",
        "30d"
      ]
    },
    "timezone": "",
    "gnetId": null,
    "iteration": 1551949716262,
    "links": [],
    "templating": {
      "list": [
        {
          "tagValuesQuery": "",
          "useTags": false,
          "datasource": "psql",
          "definition": "",
          "includeAll": false,
          "refresh": 1,
          "sort": 0,
          "current": {
            "value": "\u003ch1 id=\"-full_name-home-dashboard\"\u003eSpinnaker Home dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePostgres \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/events.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/spinnaker/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e (search for \u003ccode\u003ename: GitHub activity\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/spinnaker/dashboards.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDeveloper \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/dashboards/dashboards_devel.md\" target=\"_blank\"\u003edocumentation\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDirect \u003ca href=\"https://spinnaker.devstats.cd.foundation\" target=\"_blank\"\u003elink\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFirst we\u0026#39;re displaying links to all CNCF projects defined.\u003c/li\u003e\n\u003cli\u003eNext we\u0026#39;re showing current project\u0026#39;s hourly activity - this is the number of all GitHub events that happened for Spinnaker project hourly.\u003c/li\u003e\n\u003cli\u003eThis also includes bots activity (most other dashboards skip bot activity).\u003c/li\u003e\n\u003cli\u003eNext we\u0026#39;re showing HTML panel that shows all CNCF projects icons and links.\u003c/li\u003e\n\u003cli\u003eNext there is a dashboard that shows a list of all dashboards defined for Spinnaker project.\u003c/li\u003e\n\u003c/ul\u003e",
            "text": "\u003ch1 id=\"-full_name-home-dashboard\"\u003eSpinnaker Home dashboard\u003c/h1\u003e\n\u003cp\u003eLinks:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePostgres \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/shared/events.sql\" target=\"_blank\"\u003eSQL file\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eTSDB \u003ca href=\"https://github.com/cncf/devstats/blob/master/metrics/spinnaker/metrics.yaml\" target=\"_blank\"\u003eseries definition\u003c/a\u003e (search for \u003ccode\u003ename: GitHub activity\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eGrafana dashboard \u003ca href=\"https://github.com/cncf/devstats/blob/master/grafana/dashboards/spinnaker/dashboards.json\" target=\"_blank\"\u003eJSON\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDeveloper \u003ca href=\"https://github.com/cncf/devstats/blob/master/docs/dashboards/dashboards_devel.md\" target=\"_blank\"\u003edocumentation\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eDirect \u003ca href=\"https://spinnaker.devstats.cd.foundation\" target=\"_blank\"\u003elink\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"description\"\u003eDescription\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFirst we\u0026#39;re displaying links to all CNCF projects defined.\u003c/li\u003e\n\u003cli\u003eNext we\u0026#39;re showing current project\u0026#39;s hourly activity - this is the number of all GitHub events that happened for Spinnaker project hourly.\u003c/li\u003e\n\u003cli\u003eThis also includes bots activity (most other dashboards skip bot activity).\u003c/li\u003e\n\u003cli\u003eNext we\u0026#39;re showing HTML panel that shows all CNCF projects icons and links.\u003c/li\u003e\n\u003cli\u003eNext there is a dashboard that shows a list of all dashboards defined for Spinnaker project.\u003c/li\u003e\n\u003c/ul\u003e"
          },
          "hide": 2,
          "label": null,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'dashboards_docs_html'",
          "tagsQuery": "",
          "type": "query",
          "name": "docs",
          "options": [],
          "regex": "",
          "skipUrlSync": true,
          "tags": [],
          "allValue": null
        },
        {
          "datasource": "psql",
          "definition": "",
          "options": [],
          "type": "query",
          "allValue": null,
          "includeAll": false,
          "multi": false,
          "refresh": 1,
          "regex": "",
          "tagValuesQuery": "",
          "hide": 2,
          "label": null,
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "sort": 0,
          "current": {
            "text": "Spinnaker",
            "value": "Spinnaker"
          },
          "name": "full_name",
          "tags": [],
          "tagsQuery": "",
          "useTags": false
        },
        {
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "current": {
            "text": "devstats.cd.foundation",
            "value": "devstats.cd.foundation"
          },
          "label": null,
          "multi": false,
          "query": "select value_s from gha_vars where name = 'os_hostname'",
          "tags": [],
          "type": "query",
          "includeAll": false,
          "name": "hostname",
          "options": [],
          "refresh": 1,
          "regex": "",
          "skipUrlSync": true,
          "useTags": false,
          "definition": "",
          "datasource": "psql",
          "hide": 2,
          "allValue": null
        }
      ]
    },
    "description": "Home dashboard",
    "graphTooltip": 0,
    "panels": [
      {
        "dashes": false,
        "linewidth": 1,
        "percentage": false,
        "timeRegions": [],
        "tooltip": {
          "shared": false,
          "sort": 0,
          "value_type": "individual"
        },
        "id": 2,
        "legend": {
          "alignAsTable": true,
          "max": true,
          "min": true,
          "total": true,
          "values": true,
          "avg": true,
          "current": true,
          "rightSide": false,
          "show": true
        },
        "targets": [
          {
            "alias": "",
            "metricColumn": "none",
            "policy": "default",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "groupBy": [],
            "orderByTime": "ASC",
            "rawQuery": true,
            "rawSql": "select\n  time,\n  value as \"Number of GitHub events hourly\"\nfrom\n  sevents_h\nwhere\n  $__timeFilter(time)\norder by\n  time",
            "tags": [],
            "dsType": "influxdb",
            "format": "time_series",
            "group": [],
            "resultFormat": "time_series",
            "timeColumn": "time",
            "query": "SELECT \"value\" FROM \"events_h\" WHERE $timeFilter",
            "refId": "A",
            "select": [
              [
                {
                  "type": "field",
                  "params": [
                    "value"
                  ]
                }
              ]
            ]
          }
        ],
        "type": "graph",
        "yaxis": {
          "alignLevel": null,
          "align": false
        },
        "dashLength": 10,
        "fill": 5,
        "seriesOverrides": [],
        "timeShift": null,
        "yaxes": [
          {
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short",
            "label": "Activity"
          },
          {
            "label": "",
            "logBase": 1,
            "max": null,
            "min": "0",
            "show": true,
            "format": "short"
          }
        ],
        "nullPointMode": "null",
        "points": false,
        "spaceLength": 10,
        "title": "Hourly [[full_name]] activity on GitHub",
        "xaxis": {
          "show": true,
          "values": [
            "total"
          ],
          "buckets": null,
          "mode": "time",
          "name": null
        },
        "thresholds": [],
        "aliasColors": {
          
        },
        "bars": false,
        "gridPos": {
          "w": 20,
          "x": 0,
          "y": 0,
          "h": 6
        },
        "pointradius": 1,
        "renderer": "flot",
        "steppedLine": true,
        "description": "Numbers of GitHub events in all repositories hourly",
        "links": [
          {
            "type": "absolute",
            "url": "https://github.com/cncf/devstats",
            "title": "DevStats GitHub repository"
          }
        ],
        "datasource": "psql",
        "decimals": 0,
        "stack": false,
        "timeFrom": null,
        "lines": true,
        "transparent": true
      },
      {
        "content": "Please report any bugs by opening an issue on \u003ca href=\"https://github.com/cncf/devstats\"\u003ehttps://github.com/cncf/devstats\u003c/a\u003e",
        "description": "",
        "height": 220,
        "id": 1,
        "links": [],
        "title": "",
        "transparent": true,
        "gridPos": {
          "h": 6,
          "w": 4,
          "x": 20,
          "y": 0
        },
        "mode": "html",
        "type": "text"
      },
      {
        "id": 4,
        "limit": 50,
        "search": true,
        "description": "https://github.com/cncf/devstats",
        "gridPos": {
          "x": 0,
          "y": 6,
          "h": 50,
          "w": 24
        },
        "query": "",
        "transparent": false,
        "recent": false,
        "starred": false,
        "type": "dashlist",
        "title": "All [[full_name]] Dashboards",
        "folderId": 0,
        "headings": false,
        "links": [
          {
            "title": "devstats",
            "type": "absolute",
            "url": "https://github.com/cncf/devstats"
          }
        ],
        "tags": [
          "dashboard",
          "spinnaker"
        ]
      },
      {
        "gridPos": {
          "h": 12,
          "w": 24,
          "x": 0,
          "y": 40
        },
        "id": 6,
        "links": [],
        "mode": "html",
        "title": "Dashboard documentation",
        "type": "text",
        "content": "${docs:raw}"
      }
    ],
    "uid": "8"
  }


slug: developer-activity-counts-by-repository-group-table
title: Developer Activity Counts by Repository Group Table
created: 2024-01-10 12:03:57.201530749+00:00
updated: 2024-01-10 12:03:57.201530809+00:00
uid: 9
data:
  {
    "graphTooltip": 0,
    "id": 12,
    "timezone": "",
    "title": "Developer Activity Counts by Repository Group Table",
    "uid": "9",
    "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"
      ]
    },
    "annotations": {
      "list": [
        {
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "type": "dashboard",
          "builtIn": 1,
          "datasource": "-- Grafana --",
          "enable": true,
          "hide": true
        }
      ]
    },
    "gnetId": null,
    "iteration": 1568183301397,
    "schemaVersion": 19,
    "style": "dark",
    "tags": [
      "dashboard",
      "spinnaker",
      "repogroups",
      "table"
    ],
    "templating": {
      "list": [
        {
          "type": "query",
          "hide": 0,
          "options": [],
          "refresh": 1,
          "tagValuesQuery": "",
          "tags": [],
          "allValue": null,
          "current": {
            "text": "Last decade",
            "value": "Last decade"
          },
          "tagsQuery": "",
          "definition": "",
          "label": "Range",
          "regex": "",
          "useTags": false,
          "skipUrlSync": false,
          "sort": 0,
          "datasource": "psql",
          "includeAll": false,
          "multi": false,
          "name": "period_name",
          "query": "select quick_ranges_name from tquick_ranges order by time"
        },
        {
          "current": {
            "value": "contributions",
            "selected": false,
            "tags": [],
            "text": "Contributions"
          },
          "hide": 0,
          "name": "metric",
          "options": [
            {
              "selected": false,
              "text": "Comments",
              "value": "comments"
            },
            {
              "selected": false,
              "text": "Commit comments",
              "value": "commit_comments"
            },
            {
              "selected": false,
              "text": "Commits",
              "value": "commits"
            },
            {
              "selected": false,
              "text": "GitHub Events",
              "value": "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"
            },
            {
              "text": "Review comments",
              "value": "review_comments",
              "selected": false
            },
            {
              "value": "reviews",
              "selected": false,
              "text": "Reviews submitted"
            },
            {
              "selected": true,
              "text": "Contributions",
              "value": "contributions"
            },
            {
              "selected": false,
              "text": "Active repositories",
              "value": "active_repos"
            }
          ],
          "skipUrlSync": false,
          "allValue": null,
          "includeAll": false,
          "label": "Metric",
          "multi": false,
          "query": "comments,commit_comments,commits,events,pushes,contributions,issue_comments,issues,prs,merged_prs,review_comments,active_repos,reviews",
          "type": "custom"
        },
        {
          "allValue": null,
          "includeAll": false,
          "skipUrlSync": true,
          "useTags": false,
          "current": {
            "text": "y10",
            "value": "y10"
          },
          "definition": "",
          "refresh": 1,
          "sort": 0,
          "tagsQuery": "",
          "multi": false,
          "query": "select quick_ranges_suffix from tquick_ranges where quick_ranges_name = '[[period_name]]'",
          "tagValuesQuery": "",
          "regex": "",
          "tags": [],
          "type": "query",
          "datasource": "psql",
          "hide": 2,
          "label": null,
          "name": "period",
          "options": []
        },
        {
          "current": {
            "text": "All CNCF",
            "value": "All CNCF"
          },
          "hide": 2,
          "name": "full_name",
          "regex": "",
          "sort": 0,
          "tagValuesQuery": "",
          "tagsQuery": "",
          "type": "query",
          "allValue": null,
          "definition": "",
          "skipUrlSync": true,
          "datasource": "psql",
          "refresh": 1,
          "useTags": false,
          "includeAll": false,
          "label": null,
          "multi": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "tags": []
        },
        {
          "allValue": null,
          "tags": [],
          "datasource": "psql",
          "definition": "",
          "skipUrlSync": false,
          "tagValuesQuery": "",
          "useTags": false,
          "includeAll": false,
          "multi": false,
          "name": "repogroup_name",
          "options": [],
          "refresh": 1,
          "regex": "",
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "text": "All",
            "value": "All"
          },
          "hide": 0,
          "label": "Repository group",
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "type": "query"
        },
        {
          "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,
          "regex": "",
          "allValue": null,
          "definition": "",
          "tagValuesQuery": "",
          "skipUrlSync": true,
          "sort": 0,
          "tags": [],
          "hide": 2,
          "options": [],
          "type": "query",
          "useTags": false,
          "label": "",
          "tagsQuery": "",
          "current": {
            "text": "all",
            "value": "all"
          },
          "datasource": "psql"
        },
        {
          "definition": "",
          "query": "select value_s from gha_vars where name = 'developers_summary_docs_html'",
          "refresh": 1,
          "allValue": null,
          "hide": 2,
          "multi": false,
          "regex": "",
          "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"
          },
          "options": [],
          "skipUrlSync": true,
          "tags": [],
          "useTags": false,
          "includeAll": false,
          "label": null,
          "name": "docs",
          "sort": 0,
          "tagsQuery": "",
          "type": "query",
          "datasource": "psql"
        },
        {
          "allValue": null,
          "name": "country",
          "tagsQuery": "",
          "type": "query",
          "datasource": "psql",
          "label": "",
          "skipUrlSync": true,
          "tags": [],
          "regex": "",
          "useTags": false,
          "current": {
            "text": "all",
            "value": "all"
          },
          "definition": "",
          "multi": false,
          "options": [],
          "query": "select sub.value from (select country_value as value, 0 as ord from tcountries where country_name = '[[country_name]]' union select 'all', 1 as ord) sub order by sub.ord limit 1",
          "refresh": 1,
          "hide": 2,
          "includeAll": false,
          "sort": 0,
          "tagValuesQuery": ""
        },
        {
          "tagValuesQuery": "",
          "type": "query",
          "hide": 0,
          "multi": false,
          "name": "country_name",
          "tags": [],
          "definition": "",
          "query": "select 'All' union select country_name from tcountries order by 1",
          "regex": "",
          "options": [],
          "skipUrlSync": false,
          "useTags": false,
          "allValue": "all",
          "current": {
            "text": "All",
            "value": "All"
          },
          "label": "Country",
          "sort": 0,
          "tagsQuery": "",
          "datasource": "psql",
          "includeAll": false,
          "refresh": 1
        }
      ]
    },
    "time": {
      "from": "now-5y",
      "to": "now"
    },
    "editable": true,
    "links": [],
    "panels": [
      {
        "description": "",
        "fontSize": "90%",
        "interval": "",
        "pageSize": 1000,
        "scroll": true,
        "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)"
            ],
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 2,
            "pattern": "name",
            "unit": "short",
            "alias": "GitHub login",
            "colorMode": null,
            "preserveFormat": false,
            "thresholds": [],
            "type": "string"
          },
          {
            "alias": "Number",
            "colorMode": null,
            "colors": [
              "rgba(245, 54, 54, 0.9)",
              "rgba(237, 129, 40, 0.89)",
              "rgba(50, 172, 45, 0.97)"
            ],
            "type": "number",
            "unit": "none",
            "dateFormat": "YYYY-MM-DD HH:mm:ss",
            "decimals": 0,
            "pattern": "value",
            "thresholds": []
          },
          {
            "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",
            "unit": "short"
          }
        ],
        "transform": "table",
        "datasource": "psql",
        "options": {
          
        },
        "sort": {
          "desc": false,
          "col": 0
        },
        "targets": [
          {
            "rawQuery": true,
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "dsType": "influxdb",
            "format": "table",
            "group": [],
            "query": "SELECT \"name\", \"value\" FROM \"developers_hist_[[metric]]_[[repogroup]]_[[period]]\" WHERE $timeFilter",
            "alias": "",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "type": "fill",
                "params": [
                  "null"
                ]
              }
            ],
            "refId": "A",
            "timeColumn": "time",
            "where": [
              {
                "name": "$__timeFilter",
                "params": [],
                "type": "macro"
              }
            ],
            "metricColumn": "none",
            "orderByTime": "ASC",
            "resultFormat": "table",
            "tags": [],
            "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"
          }
        ],
        "columns": [],
        "id": 1,
        "links": [],
        "showHeader": true,
        "title": "[[full_name]] Developers statistics ([[metric]], Range: [[period_name]], Repository group: [[repogroup_name]]), bots excluded",
        "hideTimeOverride": true,
        "type": "table",
        "gridPos": {
          "h": 22,
          "w": 24,
          "x": 0,
          "y": 0
        }
      },
      {
        "type": "text",
        "content": "${docs:raw}",
        "gridPos": {
          "y": 22,
          "h": 12,
          "w": 24,
          "x": 0
        },
        "id": 3,
        "links": [],
        "mode": "html",
        "options": {
          
        },
        "title": "Dashboard documentation"
      }
    ],
    "refresh": false,
    "version": 2
  }


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


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


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


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


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


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


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


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


slug: new-contributors-table
title: New Contributors Table
created: 2024-01-10 12:03:57.349109594+00:00
updated: 2024-01-10 12:03:57.349109694+00:00
uid: 52
data:
  {
    "uid": "52",
    "editable": true,
    "style": "dark",
    "timezone": "",
    "tags": [
      "dashboard",
      "spinnaker",
      "table"
    ],
    "templating": {
      "list": [
        {
          "multi": false,
          "tagValuesQuery": "",
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "definition": "",
          "name": "full_name",
          "refresh": 1,
          "useTags": false,
          "options": [],
          "query": "select value_s from gha_vars where name = 'full_name'",
          "skipUrlSync": true,
          "type": "query",
          "sort": 0,
          "tagsQuery": "",
          "current": {
            "selected": false,
            "text": "",
            "value": ""
          },
          "hide": 2,
          "includeAll": false,
          "regex": ""
        },
        {
          "regex": "",
          "sort": 0,
          "useTags": false,
          "includeAll": false,
          "query": "select all_repo_group_name from tall_repo_groups order by 1",
          "skipUrlSync": false,
          "tagsQuery": "",
          "type": "query",
          "definition": "",
          "hide": 0,
          "refresh": 1,
          "datasource": {
            "uid": "P172949F98CB31475",
            "type": "postgres"
          },
          "options": [],
          "multi": false,
          "name": "repogroup_name",
          "tagValuesQuery": "",
          "current": {
            "selected": false,
            "text": "All",
            "value": "All"
          },
          "label": "Repository group"
        },
        {
          "includeAll": false,
          "label": "",
          "multi": false,
          "sort": 0,
          "tagValuesQuery": "",
          "type": "query",
          "hide": 2,
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "definition": "",
          "name": "repogroup",
          "regex": "",
          "tagsQuery": "",
          "current": {
            "value": "all",
            "selected": false,
            "text": "all"
          },
          "query": "select all_repo_group_value from tall_repo_groups where all_repo_group_name = '[[repogroup_name]]'",
          "refresh": 1,
          "useTags": false,
          "options": [],
          "skipUrlSync": true
        },
        {
          "sort": 0,
          "type": "query",
          "datasource": {
            "type": "postgres",
            "uid": "P172949F98CB31475"
          },
          "multi": false,
          "options": [],
          "skipUrlSync": true,
          "useTags": false,
          "definition": "",
          "hide": 2,
          "includeAll": false,
          "refresh": 1,
          "tagValuesQuery": "",
          "name": "docs",
          "query": "select value_s from gha_vars where name = 'new_contributors_docs_html'",
          "regex": "",
          "tagsQuery": ""
        }
      ]
    },
    "time": {
      "from": "now-1M",
      "to": "now"
    },
    "version": 2,
    "iteration": 1702017941269,
    "links": [],
    "panels": [
      {
        "links": [],
        "options": {
          "showHeader": true,
          "footer": {
            "fields": "",
            "reducer": [
              "sum"
            ],
            "show": false
          }
        },
        "pluginVersion": "8.5.27",
        "targets": [
          {
            "tags": [],
            "dsType": "influxdb",
            "groupBy": [
              {
                "params": [
                  "$__interval"
                ],
                "type": "time"
              },
              {
                "params": [
                  "null"
                ],
                "type": "fill"
              }
            ],
            "orderByTime": "ASC",
            "policy": "default",
            "refId": "A",
            "select": [
              [
                {
                  "params": [
                    "value"
                  ],
                  "type": "field"
                },
                {
                  "params": [],
                  "type": "mean"
                }
              ]
            ],
            "alias": "",
            "format": "table",
            "query": "",
            "rawQuery": true,
            "rawSql": "select str, dt from \"snew_contributors_data\" where $__timeFilter(dt) and series = 'ncd[[repogroup]]' and period = 'd'",
            "resultFormat": "table"
          }
        ],
        "title": "[[full_name]] New contributors table (Repository group [[repogroup_name]])",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "fieldConfig": {
          "overrides": [
            {
              "matcher": {
                "options": "str",
                "id": "byName"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "Contributor"
                },
                {
                  "id": "unit",
                  "value": "short"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": "dt"
              },
              "properties": [
                {
                  "id": "displayName",
                  "value": "First contribution"
                },
                {
                  "id": "unit",
                  "value": "none"
                },
                {
                  "id": "unit",
                  "value": "time: MM/DD/YY h:mm:ss a"
                },
                {
                  "id": "custom.align"
                }
              ]
            },
            {
              "matcher": {
                "id": "byName",
                "options": ""
              },
              "properties": [
                {
                  "value": "short",
                  "id": "unit"
                },
                {
                  "id": "decimals",
                  "value": 2
                },
                {
                  "id": "custom.align"
                }
              ]
            }
          ],
          "defaults": {
            "unit": "short",
            "color": {
              "mode": "thresholds"
            },
            "custom": {
              "displayMode": "auto",
              "inspect": false
            },
            "decimals": 0,
            "displayName": "",
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "value": null,
                  "color": "green"
                },
                {
                  "value": 80,
                  "color": "red"
                }
              ]
            }
          }
        },
        "gridPos": {
          "y": 0,
          "h": 25,
          "w": 24,
          "x": 0
        },
        "transformations": [
          {
            "id": "seriesToRows",
            "options": {
              "reducers": []
            }
          }
        ],
        "type": "table",
        "description": "",
        "hideTimeOverride": false,
        "id": 1
      },
      {
        "links": [],
        "options": {
          "content": "${docs:raw}",
          "mode": "html"
        },
        "pluginVersion": "8.5.27",
        "title": "Dashboard documentation",
        "type": "text",
        "datasource": {
          "type": "postgres",
          "uid": "P172949F98CB31475"
        },
        "gridPos": {
          "w": 24,
          "x": 0,
          "y": 25,
          "h": 11
        },
        "id": 11
      }
    ],
    "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"
      ]
    },
    "weekStart": "",
    "fiscalYearStartMonth": 0,
    "liveNow": false,
    "schemaVersion": 36,
    "refresh": false,
    "title": "New Contributors Table",
    "annotations": {
      "list": [
        {
          "type": "dashboard",
          "builtIn": 1,
          "datasource": {
            "type": "datasource",
            "uid": "grafana"
          },
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations \u0026 Alerts",
          "target": {
            "limit": 100,
            "matchAny": false,
            "tags": [],
            "type": "dashboard"
          }
        }
      ]
    },
    "graphTooltip": 0,
    "id": 21
  }


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


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


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


