feat(argocd): add metrics and grafana dashboard

Signed-off-by: Vegard Hagen <[email protected]>
This commit is contained in:
Vegard Hagen
2025-07-26 15:38:49 +02:00
parent 9fc5f0f0c4
commit 5c3395210a
9 changed files with 4583 additions and 0 deletions
@@ -32,3 +32,5 @@ spec:
automated:
selfHeal: true
prune: true
syncOptions:
- ServerSideApply=true
File diff suppressed because it is too large Load Diff
@@ -1,10 +1,29 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
# Manually render ServiceMonitors since Argo CD chart checks if they exist
# Argo CD thinks the cluster doesn't have this capability
# Could possibly alter the plugin
# > helm template argo/argo-cd --api-versions monitoring.coreos.com/v1 -f values.yaml
resources:
- ns.yaml
- tls-route.yaml
- oidc.yaml
- service-monitors/argocd-application-controller.yaml
- service-monitors/argocd-applicationset-controller.yaml
- service-monitors/argocd-redis.yaml
- service-monitors/argocd-repo-server.yaml
- service-monitors/argocd-server.yaml
configMapGenerator:
- name: argocd-dashboard
namespace: argocd
# From https://github.com/argoproj/argo-cd/blob/master/examples/dashboard.json
files: [ argocd-dashboard.json ]
options:
annotations: { grafana_folder: "Argo CD" }
labels: { grafana_dashboard: "1" }
helmCharts:
- name: argo-cd
@@ -0,0 +1,19 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-application-controller
namespace: argocd
spec:
endpoints:
- port: http-metrics
interval: 30s
path: /metrics
honorLabels: false
namespaceSelector:
matchNames:
- argocd
selector:
matchLabels:
app.kubernetes.io/name: argocd-metrics
app.kubernetes.io/instance: argocd
app.kubernetes.io/component: application-controller
@@ -0,0 +1,19 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-applicationset-controller
namespace: argocd
spec:
endpoints:
- port: http-metrics
interval: 30s
path: /metrics
honorLabels: false
namespaceSelector:
matchNames:
- argocd
selector:
matchLabels:
app.kubernetes.io/name: argocd-metrics
app.kubernetes.io/instance: argocd
app.kubernetes.io/component: applicationset-controller
@@ -0,0 +1,19 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-redis
namespace: argocd
spec:
endpoints:
- port: http-metrics
interval: 30s
path: /metrics
honorLabels: false
namespaceSelector:
matchNames:
- argocd
selector:
matchLabels:
app.kubernetes.io/name: argocd-redis
app.kubernetes.io/instance: argocd
app.kubernetes.io/component: redis
@@ -0,0 +1,19 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-repo-server
namespace: argocd
spec:
endpoints:
- port: http-metrics
interval: 30s
path: /metrics
honorLabels: false
namespaceSelector:
matchNames:
- argocd
selector:
matchLabels:
app.kubernetes.io/name: argocd-repo-server-metrics
app.kubernetes.io/instance: argocd
app.kubernetes.io/component: repo-server
@@ -0,0 +1,19 @@
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: argocd-server
namespace: argocd
spec:
endpoints:
- port: http-metrics
interval: 30s
path: /metrics
honorLabels: false
namespaceSelector:
matchNames:
- argocd
selector:
matchLabels:
app.kubernetes.io/name: argocd-server-metrics
app.kubernetes.io/instance: argocd
app.kubernetes.io/component: server
+28
View File
@@ -45,6 +45,10 @@ crds:
keep: false
controller:
metrics:
enabled: true
serviceMonitor:
enabled: true
resources:
requests:
cpu: 100m
@@ -54,6 +58,10 @@ controller:
dex:
enabled: false
metrics:
enabled: true
serviceMonitor:
enabled: true
resources:
requests:
cpu: 10m
@@ -62,6 +70,10 @@ dex:
memory: 128Mi
redis:
metrics:
enabled: true
serviceMonitor:
enabled: true
resources:
requests:
cpu: 100m
@@ -70,6 +82,10 @@ redis:
memory: 1Gi
server:
metrics:
enabled: true
serviceMonitor:
enabled: true
resources:
requests:
cpu: 50m
@@ -90,6 +106,10 @@ server:
servicePortHttpsAppProtocol: kubernetes.io/h2c
repoServer:
metrics:
enabled: true
serviceMonitor:
enabled: true
containerSecurityContext:
readOnlyRootFilesystem: true
volumes:
@@ -128,6 +148,10 @@ repoServer:
name: cmp-tmp
applicationSet:
metrics:
enabled: true
serviceMonitor:
enabled: true
resources:
requests:
cpu: 50m
@@ -137,6 +161,10 @@ applicationSet:
notifications:
enabled: false
metrics:
enabled: true
serviceMonitor:
enabled: true
resources:
requests:
cpu: 100m