This commit is contained in:
2025-12-10 15:18:15 +01:00
parent 5c6e622f07
commit 5d7f34512b
3 changed files with 103 additions and 62 deletions

View File

@@ -1,53 +1,90 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-metrics-server-configmap
name: argocd-metrics-server
data:
# Metrics for Deployments
extension.metrics.deployments: |
- name: "CPU Usage"
description: "CPU usage for the deployment"
type: "graph"
graphType: "area"
yAxisLabel: "CPU Cores"
query: 'sum(rate(container_cpu_usage_seconds_total{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}[5m])) by (pod)'
- name: "Memory Usage"
description: "Memory usage for the deployment"
type: "graph"
graphType: "area"
yAxisLabel: "Memory (MB)"
query: 'sum(container_memory_working_set_bytes{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}) by (pod) / 1024 / 1024'
- name: "Network Received"
description: "Network bytes received"
type: "graph"
graphType: "line"
yAxisLabel: "Bytes/sec"
query: 'sum(rate(container_network_receive_bytes_total{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}[5m])) by (pod)'
# Metrics for Pods
extension.metrics.pods: |
- name: "CPU Usage"
description: "CPU usage for the pod"
type: "graph"
graphType: "area"
yAxisLabel: "CPU Cores"
query: 'sum(rate(container_cpu_usage_seconds_total{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}[5m])) by (container)'
- name: "Memory Usage"
description: "Memory usage for the pod"
type: "graph"
graphType: "area"
yAxisLabel: "Memory (MB)"
query: 'sum(container_memory_working_set_bytes{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}) by (container) / 1024 / 1024'
- name: "Container Restarts"
description: "Number of container restarts"
type: "graph"
graphType: "line"
yAxisLabel: "Restarts"
query: 'kube_pod_container_status_restarts_total{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}'
# Prometheus connection
# Prometheus URL - ADJUST THIS to match your Prometheus service
prometheus.url: "http://prometheus-kube-prometheus-prometheus.monitoring.svc:9090"
# Metrics configuration for Deployments
extension.metrics.deployments: |
metrics:
- name: CPU Usage
description: Pod CPU usage
graphType: area
query: |
sum(
irate(
container_cpu_usage_seconds_total{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}[2m]
)
) by (pod)
- name: Memory Usage
description: Pod memory usage
graphType: area
query: |
sum(
container_memory_working_set_bytes{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}
) by (pod)
- name: Replicas
description: Deployment replicas
graphType: line
query: |
sum(
kube_deployment_status_replicas{namespace="{{.metadata.namespace}}", deployment="{{.metadata.name}}"}
)
# Metrics configuration for Pods
extension.metrics.pods: |
metrics:
- name: CPU Usage
description: CPU usage by container
graphType: area
query: |
sum(
irate(
container_cpu_usage_seconds_total{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}[2m]
)
) by (container)
- name: Memory Usage
description: Memory usage by container
graphType: area
query: |
sum(
container_memory_working_set_bytes{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}
) by (container)
- name: Network I/O
description: Network traffic
graphType: line
query: |
sum(
rate(
container_network_transmit_bytes_total{namespace="{{.metadata.namespace}}", pod="{{.metadata.name}}"}[2m]
)
) by (pod)
# Metrics configuration for Argo Rollouts
extension.metrics.rollouts: |
metrics:
- name: CPU Usage
description: Pod CPU usage
graphType: area
query: |
sum(
irate(
container_cpu_usage_seconds_total{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}[2m]
)
) by (pod)
- name: Memory Usage
description: Pod memory usage
graphType: area
query: |
sum(
container_memory_working_set_bytes{namespace="{{.metadata.namespace}}", pod=~"{{.metadata.name}}-.*"}
) by (pod)
- name: Replicas
description: Rollout replicas
graphType: line
query: |
sum(
kube_deployment_status_replicas{namespace="{{.metadata.namespace}}", deployment=~"{{.metadata.name}}-.*"}
)

View File

@@ -3,7 +3,8 @@ kind: Service
metadata:
name: argocd-metrics-server
labels:
app: argocd-metrics-server
app.kubernetes.io/name: argocd-metrics-server
app.kubernetes.io/part-of: argocd
spec:
ports:
- name: http
@@ -11,41 +12,44 @@ spec:
protocol: TCP
targetPort: 9003
selector:
app: argocd-metrics-server
app.kubernetes.io/name: argocd-metrics-server
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: argocd-metrics-server
labels:
app: argocd-metrics-server
app.kubernetes.io/name: argocd-metrics-server
app.kubernetes.io/part-of: argocd
app.kubernetes.io/component: metrics-server
spec:
replicas: 1
selector:
matchLabels:
app: argocd-metrics-server
app.kubernetes.io/name: argocd-metrics-server
template:
metadata:
labels:
app: argocd-metrics-server
app.kubernetes.io/name: argocd-metrics-server
spec:
serviceAccountName: argocd-server
containers:
- name: argocd-metrics-server
image: quay.io/argoprojlabs/argocd-extension-metrics:v1.0.3
imagePullPolicy: IfNotPresent
command:
- /app/argocd-extension-metrics
- backend
- start
- --port=9003
- --config=/etc/config/config.yaml
ports:
- containerPort: 9003
name: http
protocol: TCP
env:
- name: PROMETHEUS_URL
valueFrom:
configMapKeyRef:
name: argocd-metrics-server-configmap
key: prometheus.url
volumeMounts:
- name: config
mountPath: /etc/argocd-metrics-server/
mountPath: /etc/config
resources:
limits:
cpu: 100m
@@ -60,14 +64,14 @@ spec:
- ALL
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
runAsUser: 999
volumes:
- name: config
configMap:
name: argocd-metrics-server-configmap
name: argocd-metrics-server
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
runAsUser: 999
fsGroup: 999
seccompProfile:
type: RuntimeDefault

View File

@@ -8,6 +8,6 @@ resources:
- deployment.yaml
commonLabels:
app: argocd-metrics-server
app.kubernetes.io/name: argocd-metrics-server
app.kubernetes.io/part-of: argocd
app.kubernetes.io/component: metrics-server