apiVersion: v1 kind: ConfigMap metadata: name: argo-cd-dashboard namespace: freeleaps-monitoring-system labels: grafana_dashboard: "1" data: argo-cd.json: |- { "__inputs": [], "__requires": [], "description": "A dashboard that monitors ArgoCD with a focus on the operational. It is created using the [argo-cd-mixin](https://github.com/adinhodovic/argo-cd-mixin).", "editable": true, "links": [ { "tags": [ "ci/cd", "argo-cd" ], "targetBlank": true, "title": "ArgoCD Dashboards", "type": "dashboards" } ], "panels": [ { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 0 }, "id": 1, "title": "Summary", "type": "row" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" } }, "gridPos": { "h": 4, "w": 4, "x": 0, "y": 1 }, "id": 2, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n argocd_cluster_info{\n namespace=~'$namespace',\n job=~'$job'\n }\n)\n" } ], "title": "Clusters", "type": "stat" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" } }, "gridPos": { "h": 4, "w": 4, "x": 4, "y": 1 }, "id": 3, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "count(\n count(\n argocd_app_info{\n namespace=~'$namespace',\n job=~'$job'\n }\n )\n by (repo)\n)\n" } ], "title": "Repositories", "type": "stat" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" } }, "gridPos": { "h": 4, "w": 4, "x": 8, "y": 1 }, "id": 4, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n argocd_app_info{\n namespace=~'$namespace',\njob=~'$job',\ndest_server=~'$cluster',\nproject=~'$project',\n\n }\n)\n" } ], "title": "Applications", "type": "stat" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "Healthy" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Degraded" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Progressing" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 6, "w": 6, "x": 0, "y": 5 }, "id": 5, "options": { "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value" ] }, "tooltip": { "mode": "multi" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n argocd_app_info{\n namespace=~'$namespace',\njob=~'$job',\ndest_server=~'$cluster',\nproject=~'$project',\n\n }\n) by (health_status)\n", "instant": true, "legendFormat": "{{ health_status }}" } ], "title": "Health Status", "type": "piechart" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "Synced" }, "properties": [ { "id": "color", "value": { "fixedColor": "green", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "OutOfSync" }, "properties": [ { "id": "color", "value": { "fixedColor": "red", "mode": "fixed" } } ] }, { "matcher": { "id": "byName", "options": "Unknown" }, "properties": [ { "id": "color", "value": { "fixedColor": "yellow", "mode": "fixed" } } ] } ] }, "gridPos": { "h": 6, "w": 6, "x": 6, "y": 5 }, "id": 6, "options": { "legend": { "displayMode": "table", "placement": "right", "showLegend": true, "values": [ "value" ] }, "tooltip": { "mode": "multi" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n argocd_app_info{\n namespace=~'$namespace',\njob=~'$job',\ndest_server=~'$cluster',\nproject=~'$project',\n\n }\n) by (sync_status)\n", "instant": true, "legendFormat": "{{ sync_status }}" } ], "title": "Sync Status", "type": "piechart" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" }, "overrides": [ { "matcher": { "id": "byName", "options": "name" }, "properties": [ { "id": "links", "value": [ { "targetBlank": true, "title": "Go To Application", "type": "dashboard", "url": "/d/argo-cd-application-overview-kask/argocd-notifications-overview?&var-project=${__data.fields.Project}&var-application=${__value.raw}" } ] } ] } ] }, "gridPos": { "h": 10, "w": 12, "x": 12, "y": 1 }, "id": 7, "options": { "footer": { "enablePagination": true }, "sortBy": [ { "displayName": "Application" } ] }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n argocd_app_info{\n namespace=~'$namespace',\njob=~'$job',\ndest_server=~'$cluster',\nproject=~'$project',\n\n }\n) by (job, dest_server, project, name, health_status, sync_status)\n", "format": "table", "instant": true } ], "title": "Applications", "transformations": [ { "id": "organize", "options": { "excludeByName": { "Time": true, "Value": true, "dest_server": true, "job": true }, "indexByName": { "health_status": 2, "name": 0, "project": 1, "sync_status": 3 }, "renameByName": { "dest_server": "Cluster", "health_status": "Health Status", "job": "Job", "name": "Application", "project": "Project", "sync_status": "Sync Status" } } } ], "type": "table" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 11 }, "id": 8, "title": "Sync Stats", "type": "row" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 12 }, "id": 9, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n round(\n increase(\n argocd_app_sync_total{\n namespace=~'$namespace',\njob=~'$job',\ndest_server=~'$cluster',\nproject=~'$project',\n\n }[$__rate_interval]\n )\n )\n) by (job, dest_server, project, name)\n", "legendFormat": "{{ dest_server }}/{{ project }}/{{ name }}" } ], "title": "Sync Activity", "type": "timeseries" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 12 }, "id": 10, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n round(\n increase(\n argocd_app_sync_total{\n namespace=~'$namespace',\njob=~'$job',\ndest_server=~'$cluster',\nproject=~'$project',\n\n phase=~\"Error|Failed\"\n }[$__rate_interval]\n )\n )\n) by (job, dest_server, project, application, phase)\n", "legendFormat": "{{ dest_server }}/{{ project }}/{{ application }} - {{ phase }}" } ], "title": "Sync Failures", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 18 }, "id": 11, "title": "Controller Stats", "type": "row" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 19 }, "id": 12, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n round(\n increase(\n argocd_app_reconcile_count{\n namespace=~'$namespace',\n job=~'$job',\n dest_server=~'$cluster'\n }[$__rate_interval]\n )\n )\n) by (namespace, job, dest_server)\n", "legendFormat": "{{ namespace }}/{{ dest_server }}" } ], "title": "Recociliation Activity", "type": "timeseries" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 19 }, "id": 13, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n increase(\n argocd_app_reconcile_bucket{\n namespace=~'$namespace',\n job=~'$job',\n dest_server=~'$cluster'\n }[$__rate_interval]\n )\n) by (le)\n", "format": "heatmap", "legendFormat": "{{ le }}" } ], "title": "Reconciliation Performance", "type": "heatmap" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 25 }, "id": 14, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n round(\n increase(\n argocd_app_k8s_request_total{\n namespace=~'$namespace',\n job=~'$job',\n project=~'$project'\n }[$__rate_interval]\n )\n )\n) by (job, server, project, verb, resource_kind)\n", "legendFormat": "{{ server }}/{{ project }} - {{ verb }}/{{ resource_kind }}" } ], "title": "K8s API Activity", "type": "timeseries" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 25 }, "id": 15, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n argocd_kubectl_exec_pending{\n namespace=~'$namespace',\n job=~'$job'\n }\n) by (job, command)\n", "legendFormat": "{{ dest_server }} - {{ command }}" } ], "title": "Pending Kubectl Runs", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 31 }, "id": 16, "title": "Cluster Stats", "type": "row" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 32 }, "id": 17, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n argocd_cluster_api_resource_objects{\n namespace=~'$namespace',\n job=~'$job',\n server=~'$cluster'\n }\n) by (namespace, job, server)\n", "legendFormat": "{{ server }}" } ], "title": "Resource Objects", "type": "timeseries" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 32 }, "id": 18, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n argocd_cluster_api_resources{\n namespace=~'$namespace',\n job=~'$job',\n server=~'$cluster'\n }\n) by (namespace, job, server)\n", "legendFormat": "{{ server }}" } ], "title": "API Resources", "type": "timeseries" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 32 }, "id": 19, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n increase(\n argocd_cluster_events_total{\n namespace=~'$namespace',\n job=~'$job',\n server=~'$cluster'\n }[$__rate_interval]\n )\n) by (namespace, job, server)\n", "legendFormat": "{{ server }}" } ], "title": "Cluster Events", "type": "timeseries" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 38 }, "id": 20, "title": "Repo Server Stats", "type": "row" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 39 }, "id": 21, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n increase(\n argocd_git_request_total{\n namespace=~'$namespace',\n job=~'$job',\n request_type=\"ls-remote\"\n }[$__rate_interval]\n )\n) by (namespace, job, repo)\n", "legendFormat": "{{ namespace }} - {{ repo }}" } ], "title": "Git Requests (ls-remote)", "type": "timeseries" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "custom": { "fillOpacity": 10 }, "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 39 }, "id": 22, "options": { "legend": { "calcs": [ "lastNotNull", "mean", "max" ], "displayMode": "table", "placement": "right", "showLegend": true, "sortBy": "Mean", "sortDesc": true }, "tooltip": { "mode": "multi", "sort": "desc" } }, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n increase(\n argocd_git_request_total{\n namespace=~'$namespace',\n job=~'$job',\n request_type=\"fetch\"\n }[$__rate_interval]\n )\n) by (namespace, job, repo)\n", "legendFormat": "{{ namespace }} - {{ repo }}" } ], "title": "Git Requests (checkout)", "type": "timeseries" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 45 }, "id": 23, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n increase(\n argocd_git_request_duration_seconds_bucket{\n namespace=~'$namespace',\n job=~'$job',\n request_type=\"fetch\"\n }[$__rate_interval]\n )\n) by (le)\n", "format": "heatmap", "legendFormat": "{{ le }}" } ], "title": "Git Fetch Performance", "type": "heatmap" }, { "datasource": { "type": "datasource", "uid": "-- Mixed --" }, "fieldConfig": { "defaults": { "unit": "short" } }, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 45 }, "id": 24, "pluginVersion": "v11.0.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "$datasource" }, "expr": "sum(\n increase(\n argocd_git_request_duration_seconds_bucket{\n namespace=~'$namespace',\n job=~'$job',\n request_type=\"ls-remote\"\n }[$__rate_interval]\n )\n) by (le)\n", "format": "heatmap", "legendFormat": "{{ le }}" } ], "title": "Git Ls-remote Performance", "type": "heatmap" } ], "schemaVersion": 39, "tags": [ "ci/cd", "argo-cd" ], "templating": { "list": [ { "label": "Data source", "name": "datasource", "query": "prometheus", "type": "datasource" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "includeAll": true, "label": "Namespace", "multi": true, "name": "namespace", "query": "label_values(argocd_app_info{}, namespace)", "refresh": 2, "sort": 1, "type": "query" }, { "allValue": ".*", "datasource": { "type": "prometheus", "uid": "${datasource}" }, "includeAll": true, "label": "Job", "multi": true, "name": "job", "query": "label_values(job)", "refresh": 2, "regex": "argo.*", "sort": 1, "type": "query" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "includeAll": true, "label": "Cluster", "multi": true, "name": "cluster", "query": "label_values(argocd_app_info{namespace=~\"$namespace\", job=~\"$job\"}, dest_server)", "refresh": 2, "sort": 1, "type": "query" }, { "datasource": { "type": "prometheus", "uid": "${datasource}" }, "includeAll": true, "label": "Project", "multi": true, "name": "project", "query": "label_values(argocd_app_info{namespace=~\"$namespace\", job=~\"$job\", dest_server=~\"$cluster\"}, project)", "refresh": 2, "sort": 1, "type": "query" } ] }, "time": { "from": "now-6h", "to": "now" }, "timezone": "utc", "title": "ArgoCD / Operational / Overview", "uid": "argo-cd-operational-overview-kask", "gnetId": 19993 }