diff --git a/manifests/metrics-server/configmap.yaml b/manifests/metrics-server/configmap.yaml index 1eb4b20..6d9136f 100644 --- a/manifests/metrics-server/configmap.yaml +++ b/manifests/metrics-server/configmap.yaml @@ -1,53 +1,90 @@ apiVersion: v1 kind: ConfigMap metadata: - name: argocd-metrics-server-configmap + name: argocd-metrics-server data: - # Metrics for Deployments + # 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: | - - 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)' + 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}}"} + ) - - 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 + # Metrics configuration 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)' + 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) - - 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" \ No newline at end of file + # 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}}-.*"} + ) \ No newline at end of file diff --git a/manifests/metrics-server/deployment.yaml b/manifests/metrics-server/deployment.yaml index f079823..f3ea246 100644 --- a/manifests/metrics-server/deployment.yaml +++ b/manifests/metrics-server/deployment.yaml @@ -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 \ No newline at end of file diff --git a/manifests/metrics-server/kustomization.yaml b/manifests/metrics-server/kustomization.yaml index 07e6777..4244337 100644 --- a/manifests/metrics-server/kustomization.yaml +++ b/manifests/metrics-server/kustomization.yaml @@ -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 \ No newline at end of file