Skip to content

Add service-health-dashboards for service-maturity

Sylvester Chin requested to merge schin1-reflect-service-health-dboards into master

This MR adds service-health-dashboards information into service health dashboards of the service maturity model in level 3. As outline in gitlab-com/gl-infra/scalability#830 (closed), the evidence is a list of dashboard URLs.

Running with -D flag will simply print to terminal.

export GRAFANA_API_TOKEN=<get token from password vault>
./dashboards/collate-service-dashboards.sh -D # for dry run

Updated criteria for sidekiq (as an example). Download artifact to view in detail or run ./scripts/compile_jsonnet.rb ./service-maturity/maturity.jsonnet > service_maturity.yml locally.

Click to expand
{
            "criteria": [
               {
                  "evidence": [
                     "https://dashboards.gitlab.net/d/sidekiq-app/sidekiq-application-info",
                     "https://dashboards.gitlab.net/d/sidekiq-bitbucket-importer/sidekiq-bitbucket-importer",
                     "https://dashboards.gitlab.net/d/sidekiq-bitbucket-server-importer/sidekiq-bitbucket-server-importer",
                     "https://dashboards.gitlab.net/d/sidekiq-loose-foreign-keys/sidekiq-loose-foreign-keys-processing",
                     "https://dashboards.gitlab.net/d/sidekiq-main/sidekiq-overview",
                     "https://dashboards.gitlab.net/d/sidekiq-pod/sidekiq-pod-info",
                     "https://dashboards.gitlab.net/d/sidekiq-queue-detail/sidekiq-queue-detail",
                     "https://dashboards.gitlab.net/d/sidekiq-shard-detail/sidekiq-shard-detail",
                     "https://dashboards.gitlab.net/d/sidekiq-worker-detail/sidekiq-worker-detail"
                  ],
                  "name": "Service health dashboards",
                  "result": "passed"
               },
               {
                  "evidence": null,
                  "name": "SLA calculations driven from SLO metrics",
                  "result": "unimplemented"
               },
               {
                  "evidence": "https://dashboards.gitlab.net/d/general-service/general-service-platform-metrics?var-type=sidekiq",
                  "name": "Apdex built from multiple sources",
                  "result": "passed"
               },
               {
                  "evidence": null,
                  "name": "Logging includes metadata for measuring scalability",
                  "result": "unimplemented"
               },
               {
                  "evidence": null,
                  "name": "Developer guides exist in developer documentation",
                  "result": "unimplemented"
               },
               {
                  "evidence": "https://gitlab.com/gitlab-com/runbooks/-/tree/master/docs/sidekiq",
                  "name": "SRE guides exist in runbooks",
                  "result": "passed"
               },
               {
                  "evidence": null,
                  "name": "Metrics on downstream service usage",
                  "result": "unimplemented"
               }
            ],
            "name": "Level 3",
            "number": 3,
            "passed": true
         }
Click to show rendered JSON
{
  "camoproxy": [
    "https://dashboards.gitlab.net/d/camoproxy-main/camoproxy-overview"
  ],
  "redis-cache": [
    "https://dashboards.gitlab.net/d/redis-cache-main/redis-cache-overview"
  ],
  "plantuml": [
    "https://dashboards.gitlab.net/d/plantuml-main/plantuml-overview"
  ],
  "gitaly": [
    "https://dashboards.gitlab.net/d/gitaly-rebalancing/gitaly-rebalance-dashboard",
    "https://dashboards.gitlab.net/d/gitaly-host-detail/gitaly-host-detail",
    "https://dashboards.gitlab.net/d/gitaly-main/gitaly-overview"
  ],
  "product-intelligence": [
    "https://dashboards.gitlab.net/d/product-intelligence-main/product-intelligence-product-intelligence"
  ],
  "frontend": [
    "https://dashboards.gitlab.net/d/frontend-git-haproxy/frontend-ci-gateway-git-utilisation-based-on-haproxy",
    "https://dashboards.gitlab.net/d/frontend-main/frontend-overview"
  ],
  "sidekiq": [
    "https://dashboards.gitlab.net/d/sidekiq-app/sidekiq-application-info",
    "https://dashboards.gitlab.net/d/sidekiq-bitbucket-importer/sidekiq-bitbucket-importer",
    "https://dashboards.gitlab.net/d/sidekiq-worker-detail/sidekiq-worker-detail",
    "https://dashboards.gitlab.net/d/sidekiq-shard-detail/sidekiq-shard-detail",
    "https://dashboards.gitlab.net/d/sidekiq-bitbucket-server-importer/sidekiq-bitbucket-server-importer",
    "https://dashboards.gitlab.net/d/sidekiq-queue-detail/sidekiq-queue-detail",
    "https://dashboards.gitlab.net/d/sidekiq-pod/sidekiq-pod-info",
    "https://dashboards.gitlab.net/d/sidekiq-loose-foreign-keys/sidekiq-loose-foreign-keys-processing",
    "https://dashboards.gitlab.net/d/sidekiq-main/sidekiq-overview"
  ],
  "patroni-ci": [
    "https://dashboards.gitlab.net/d/patroni-ci-main/patroni-ci-overview"
  ],
  "importers": [
    "https://dashboards.gitlab.net/d/importers-github-importer/importers-github-importer"
  ],
  "web-pages": [
    "https://dashboards.gitlab.net/d/web-pages-haproxy-rejections/web-pages-haproxy-rejections-due-to-rate-limiting-and-blocks",
    "https://dashboards.gitlab.net/d/web-pages-pod/web-pages-pod-info",
    "https://dashboards.gitlab.net/d/web-pages-main/web-pages-overview"
  ],
  "redis": [
    "https://dashboards.gitlab.net/d/redis-main/redis-overview"
  ],
  "general": [
    "https://dashboards.gitlab.net/d/general-error-budgets/general-feature-category-detail-error-budgets",
    "https://dashboards.gitlab.net/d/general-incident-budget-explorer/general-incident-budget-explorer",
    "https://dashboards.gitlab.net/d/general-application-demand/general-application-demand-indicators",
    "https://dashboards.gitlab.net/d/general-mtbf/general-mean-time-between-failure",
    "https://dashboards.gitlab.net/d/general-fs/general-filesystems",
    "https://dashboards.gitlab.net/d/general-service/general-service-platform-metrics",
    "https://dashboards.gitlab.net/d/general-slas/general-slas",
    "https://dashboards.gitlab.net/d/general-request-apdex-sli-adoption/general-request-apdex-participation",
    "https://dashboards.gitlab.net/d/general-pagespeed/general-pagespeed",
    "https://dashboards.gitlab.net/d/general-kubernetes_version/general-kubernetes-version-matrix",
    "https://dashboards.gitlab.net/d/general-public-splashscreen/general-gitlab-dashboards",
    "https://dashboards.gitlab.net/d/general-egress_ingress/general-network-ingress-egress-overview",
    "https://dashboards.gitlab.net/d/general-triage/general-platform-triage"
  ],
  "jaeger": [
    "https://dashboards.gitlab.net/d/jaeger-main/jaeger-overview"
  ],
  "web": [
    "https://dashboards.gitlab.net/d/web-rails-controller/web-rails-controller",
    "https://dashboards.gitlab.net/d/web-pod/web-pod-info",
    "https://dashboards.gitlab.net/d/web-main/web-overview"
  ],
  "stage-groups": [
    "https://dashboards.gitlab.net/d/stage-groups-composition_analysis/stage-groups-composition-analysis-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-acquisition/stage-groups-acquisition-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-product_intelligence/stage-groups-product-intelligence-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-pubsec_services/stage-groups-us-public-sector-services-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-billing_and_subscription_ma/stage-groups-billing-and-subscription-management-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-threat_insights/stage-groups-threat-insights-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-utilization/stage-groups-utilization-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-pods/stage-groups-pods-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-product_analytics/stage-groups-product-analytics-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-workspace/stage-groups-workspace-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-dedicated/stage-groups-gitlab-dedicated-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-compliance/stage-groups-compliance-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-vulnerability_research/stage-groups-vulnerability-research-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-respond/stage-groups-respond-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-pipeline_authoring/stage-groups-pipeline-authoring-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-observability/stage-groups-observability-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-editor/stage-groups-editor-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-optimize/stage-groups-optimize-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-pipeline_execution/stage-groups-pipeline-execution-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-release/stage-groups-release-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-certify/stage-groups-certify-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-gitaly/stage-groups-gitaly-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-foundations/stage-groups-foundations-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-runner/stage-groups-runner-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-security_policies/stage-groups-security-policies-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-dynamic_analysis/stage-groups-dynamic-analysis-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-source_code/stage-groups-source-code-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-code_review/stage-groups-code-review-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-import/stage-groups-import-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-static_analysis/stage-groups-static-analysis-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-fulfillment_platform/stage-groups-fulfillment-platform-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-geo/stage-groups-geo-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-project_management/stage-groups-project-management-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-authentication_and_authoriz/stage-groups-authentication-and-authorization-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-purchase/stage-groups-purchase-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-pipeline_insights/stage-groups-pipeline-insights-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-global_search/stage-groups-global-search-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-integrations/stage-groups-integrations-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-configure/stage-groups-configure-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-product_planning/stage-groups-product-planning-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-package/stage-groups-package-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-activation/stage-groups-activation-group-dashboard",
    "https://dashboards.gitlab.net/d/stage-groups-provision/stage-groups-provision-group-dashboard"
  ],
  "external-dns": [
    "https://dashboards.gitlab.net/d/external-dns-main/external-dns-overview"
  ],
  "mailroom": [
    "https://dashboards.gitlab.net/d/mailroom-pod/mailroom-pod-info",
    "https://dashboards.gitlab.net/d/mailroom-main/mailroom-overview"
  ],
  "nat": [
    "https://dashboards.gitlab.net/d/nat-detail/nat-cloud-nat-detail",
    "https://dashboards.gitlab.net/d/nat-main/nat-overview"
  ],
  "pvs": [
    "https://dashboards.gitlab.net/d/pvs-main/pvs-overview"
  ],
  "patroni": [
    "https://dashboards.gitlab.net/d/patroni-main/patroni-overview",
    "https://dashboards.gitlab.net/d/patroni-marginalia-sampler/patroni-marginalia-sampler"
  ],
  "diagrams": [
    "https://dashboards.gitlab.net/d/diagrams-main/diagrams-overview-diagrams"
  ],
  "websockets": [
    "https://dashboards.gitlab.net/d/websockets-pod/websockets-pod-info",
    "https://dashboards.gitlab.net/d/websockets-main/websockets-overview"
  ],
  "google-cloud-storage": [
    "https://dashboards.gitlab.net/d/google-cloud-storage-main/google-cloud-storage-overview"
  ],
  "redis-sidekiq": [
    "https://dashboards.gitlab.net/d/redis-sidekiq-main/redis-sidekiq-overview"
  ],
  "marquee": [
    "https://dashboards.gitlab.net/d/marquee-customer/marquee-customer-dashboard"
  ],
  "product": [
    "https://dashboards.gitlab.net/d/product-verify/product-performance-verify",
    "https://dashboards.gitlab.net/d/product-monitor_error_budget/product-error-budgets-monitor",
    "https://dashboards.gitlab.net/d/product-analytics_error_budget/product-error-budgets-analytics",
    "https://dashboards.gitlab.net/d/product-plan/product-performance-plan",
    "https://dashboards.gitlab.net/d/product-manage_error_budget/product-error-budgets-manage",
    "https://dashboards.gitlab.net/d/product-govern_error_budget/product-error-budgets-govern",
    "https://dashboards.gitlab.net/d/product-create/product-performance-create",
    "https://dashboards.gitlab.net/d/product-release_error_budget/product-error-budgets-release",
    "https://dashboards.gitlab.net/d/product-monitor/product-performance-monitor",
    "https://dashboards.gitlab.net/d/product-verify_error_budget/product-error-budgets-verify",
    "https://dashboards.gitlab.net/d/product-anti-abuse_error_budget/product-error-budgets-anti-abuse",
    "https://dashboards.gitlab.net/d/product-protect/product-performance-protect",
    "https://dashboards.gitlab.net/d/product-package_error_budget/product-error-budgets-package",
    "https://dashboards.gitlab.net/d/product-systems_error_budget/product-error-budgets-systems",
    "https://dashboards.gitlab.net/d/product-secure/product-performance-secure",
    "https://dashboards.gitlab.net/d/product-enablement/product-performance-enablement",
    "https://dashboards.gitlab.net/d/product-release/product-performance-release",
    "https://dashboards.gitlab.net/d/product-plan_error_budget/product-error-budgets-plan",
    "https://dashboards.gitlab.net/d/product-create_error_budget/product-error-budgets-create",
    "https://dashboards.gitlab.net/d/product-secure_error_budget/product-error-budgets-secure",
    "https://dashboards.gitlab.net/d/product-data_stores_error_budget/product-error-budgets-data_stores",
    "https://dashboards.gitlab.net/d/product-manage/product-performance-manage",
    "https://dashboards.gitlab.net/d/product-ecosystem_error_budget/product-error-budgets-ecosystem",
    "https://dashboards.gitlab.net/d/product-package/product-performance-package"
  ],
  "search": [
    "https://dashboards.gitlab.net/d/search-main/search-overview"
  ],
  "alerts": [
    "https://dashboards.gitlab.net/d/alerts-worker_apdex_violation/alerts-worker-apdex-violation-alert",
    "https://dashboards.gitlab.net/d/alerts-kube_containers_waiting/alerts-containers-waiting",
    "https://dashboards.gitlab.net/d/alerts-long_running_transactions/alerts-long-running-transactions",
    "https://dashboards.gitlab.net/d/alerts-saturation_component/alerts-saturation-component-alert",
    "https://dashboards.gitlab.net/d/alerts-gitaly_capacity_planner/alerts-gitaly-capacity-planner",
    "https://dashboards.gitlab.net/d/alerts-gcplbunhealthy/alerts-gcp-load-balancer-alert"
  ],
  "kas": [
    "https://dashboards.gitlab.net/d/kas-ci-tunnel/kas-ci-tunnel",
    "https://dashboards.gitlab.net/d/kas-pod/kas-pod-info",
    "https://dashboards.gitlab.net/d/kas-main/kas-overview"
  ],
  "redis-sessions": [
    "https://dashboards.gitlab.net/d/redis-sessions-main/redis-sessions-overview"
  ],
  "redis-ratelimiting": [
    "https://dashboards.gitlab.net/d/redis-ratelimiting-main/redis-ratelimiting-overview"
  ],
  "customersdot": [
    "https://dashboards.gitlab.net/d/customersdot-main/customersdot-overview"
  ],
  "consul": [
    "https://dashboards.gitlab.net/d/consul-pod/consul-pod-info",
    "https://dashboards.gitlab.net/d/consul-main/consul-overview"
  ],
  "nginx": [
    "https://dashboards.gitlab.net/d/nginx-pod/nginx-pod-info",
    "https://dashboards.gitlab.net/d/nginx-main/nginx-overview"
  ],
  "praefect": [
    "https://dashboards.gitlab.net/d/praefect-main/praefect-overview"
  ],
  "redis-tracechunks": [
    "https://dashboards.gitlab.net/d/redis-tracechunks-main/redis-tracechunks-overview"
  ],
  "postgres-archive": [
    "https://dashboards.gitlab.net/d/postgres-archive-main/postgres-archive-overview"
  ],
  "registry": [
    "https://dashboards.gitlab.net/d/registry-app/registry-application-detail",
    "https://dashboards.gitlab.net/d/registry-database/registry-database-detail",
    "https://dashboards.gitlab.net/d/registry-gc/registry-garbage-collection-detail",
    "https://dashboards.gitlab.net/d/registry-migration/registry-migration-detail",
    "https://dashboards.gitlab.net/d/registry-storage/registry-storage-detail",
    "https://dashboards.gitlab.net/d/registry-pod/registry-pod-info",
    "https://dashboards.gitlab.net/d/registry-main/registry-overview"
  ],
  "delivery": [
    "https://dashboards.gitlab.net/d/delivery-release_management/delivery-release-management",
    "https://dashboards.gitlab.net/d/delivery-auto_deploy_packages/delivery-auto-deploy-packages-information",
    "https://dashboards.gitlab.net/d/delivery-deployment_health/delivery-deployment-health",
    "https://dashboards.gitlab.net/d/delivery-delivery_metrics/delivery-delivery-metrics-deployment",
    "https://dashboards.gitlab.net/d/delivery-deployment_slo/delivery-deployment-slo",
    "https://dashboards.gitlab.net/d/delivery-rollback_info/delivery-rollback-information"
  ],
  "waf": [
    "https://dashboards.gitlab.net/d/waf-main/waf-overview"
  ],
  "ci-runners": [
    "https://dashboards.gitlab.net/d/ci-runners-incident-database/ci-runners-incident-support-database",
    "https://dashboards.gitlab.net/d/ci-runners-deployment/ci-runners-deployment-overview",
    "https://dashboards.gitlab.net/d/ci-runners-incident-autoscaling/ci-runners-incident-support-autoscaling",
    "https://dashboards.gitlab.net/d/ci-runners-autoscaling-algorithm/ci-runners-autoscaling-algorithm",
    "https://dashboards.gitlab.net/d/ci-runners-incident-gitlab-application/ci-runners-incident-support-gitlab-application",
    "https://dashboards.gitlab.net/d/ci-runners-incident-runner-manager/ci-runners-incident-support-runner-manager",
    "https://dashboards.gitlab.net/d/ci-runners-business-stats/ci-runners-business-metrics",
    "https://dashboards.gitlab.net/d/ci-runners-main/ci-runners-overview"
  ],
  "api": [
    "https://dashboards.gitlab.net/d/api-rails-controller/api-rails-controller",
    "https://dashboards.gitlab.net/d/api-pod/api-pod-info",
    "https://dashboards.gitlab.net/d/api-graphql/api-graphql",
    "https://dashboards.gitlab.net/d/api-main/api-overview"
  ],
  "cloud-sql": [
    "https://dashboards.gitlab.net/d/cloud-sql-main/cloud-sql-overview"
  ],
  "kube": [
    "https://dashboards.gitlab.net/d/kube-main/kube-overview"
  ],
  "pgbouncer-ci": [
    "https://dashboards.gitlab.net/d/pgbouncer-ci-main/pgbouncer-ci-overview"
  ],
  "monitoring": [
    "https://dashboards.gitlab.net/d/monitoring-main/monitoring-overview"
  ],
  "pgbouncer": [
    "https://dashboards.gitlab.net/d/pgbouncer-main/pgbouncer-overview"
  ],
  "sentry": [
    "https://dashboards.gitlab.net/d/sentry-events/sentry-events",
    "https://dashboards.gitlab.net/d/sentry-main/sentry-overview"
  ],
  "pgbouncer-registry": [
    "https://dashboards.gitlab.net/d/pgbouncer-registry-main/pgbouncer-registry-overview"
  ],
  "logging": [
    "https://dashboards.gitlab.net/d/logging-main/logging-overview"
  ],
  "git": [
    "https://dashboards.gitlab.net/d/git-rails-controller/git-rails-controller",
    "https://dashboards.gitlab.net/d/git-pod/git-pod-info",
    "https://dashboards.gitlab.net/d/git-shell-pod/git-gitlab-shell-pod-info",
    "https://dashboards.gitlab.net/d/git-main/git-overview"
  ],
  "patroni-registry": [
    "https://dashboards.gitlab.net/d/patroni-registry-main/patroni-registry-overview"
  ],
  "woodhouse": [
    "https://dashboards.gitlab.net/d/woodhouse-main/woodhouse-overview"
  ]
}
Edited by Sylvester Chin

Merge request reports