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 apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: argocd-metrics-server-configmap name: argocd-metrics-server
data: data:
# Metrics for Deployments # Prometheus URL - ADJUST THIS to match your Prometheus service
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: "http://prometheus-kube-prometheus-prometheus.monitoring.svc:9090" 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: metadata:
name: argocd-metrics-server name: argocd-metrics-server
labels: labels:
app: argocd-metrics-server app.kubernetes.io/name: argocd-metrics-server
app.kubernetes.io/part-of: argocd
spec: spec:
ports: ports:
- name: http - name: http
@@ -11,41 +12,44 @@ spec:
protocol: TCP protocol: TCP
targetPort: 9003 targetPort: 9003
selector: selector:
app: argocd-metrics-server app.kubernetes.io/name: argocd-metrics-server
--- ---
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: argocd-metrics-server name: argocd-metrics-server
labels: 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: spec:
replicas: 1 replicas: 1
selector: selector:
matchLabels: matchLabels:
app: argocd-metrics-server app.kubernetes.io/name: argocd-metrics-server
template: template:
metadata: metadata:
labels: labels:
app: argocd-metrics-server app.kubernetes.io/name: argocd-metrics-server
spec: spec:
serviceAccountName: argocd-server
containers: containers:
- name: argocd-metrics-server - name: argocd-metrics-server
image: quay.io/argoprojlabs/argocd-extension-metrics:v1.0.3 image: quay.io/argoprojlabs/argocd-extension-metrics:v1.0.3
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
command:
- /app/argocd-extension-metrics
- backend
- start
- --port=9003
- --config=/etc/config/config.yaml
ports: ports:
- containerPort: 9003 - containerPort: 9003
name: http name: http
protocol: TCP protocol: TCP
env:
- name: PROMETHEUS_URL
valueFrom:
configMapKeyRef:
name: argocd-metrics-server-configmap
key: prometheus.url
volumeMounts: volumeMounts:
- name: config - name: config
mountPath: /etc/argocd-metrics-server/ mountPath: /etc/config
resources: resources:
limits: limits:
cpu: 100m cpu: 100m
@@ -60,14 +64,14 @@ spec:
- ALL - ALL
readOnlyRootFilesystem: true readOnlyRootFilesystem: true
runAsNonRoot: true runAsNonRoot: true
runAsUser: 1000 runAsUser: 999
volumes: volumes:
- name: config - name: config
configMap: configMap:
name: argocd-metrics-server-configmap name: argocd-metrics-server
securityContext: securityContext:
runAsNonRoot: true runAsNonRoot: true
runAsUser: 1000 runAsUser: 999
fsGroup: 1000 fsGroup: 999
seccompProfile: seccompProfile:
type: RuntimeDefault type: RuntimeDefault

View File

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