volcano.sh/volcano@v1.9.0/installer/helm/chart/volcano/templates/prometheus.yaml (about) 1 {{- if .Values.custom.metrics_enable }} 2 apiVersion: rbac.authorization.k8s.io/v1 3 kind: ClusterRole 4 metadata: 5 name: prometheus-volcano 6 rules: 7 - apiGroups: [""] 8 resources: 9 - nodes 10 - nodes/proxy 11 - services 12 - endpoints 13 - pods 14 verbs: ["get", "list", "watch"] 15 - apiGroups: 16 - extensions 17 resources: 18 - ingresses 19 verbs: ["get", "list", "watch"] 20 - nonResourceURLs: ["/metrics"] 21 verbs: ["get"] 22 23 --- 24 apiVersion: rbac.authorization.k8s.io/v1 25 kind: ClusterRoleBinding 26 metadata: 27 name: prometheus-volcano 28 roleRef: 29 apiGroup: rbac.authorization.k8s.io 30 kind: ClusterRole 31 name: prometheus-volcano 32 subjects: 33 - kind: ServiceAccount 34 name: default 35 namespace: {{ .Release.Namespace }} 36 --- 37 apiVersion: v1 38 kind: ConfigMap 39 metadata: 40 name: prometheus-server-conf 41 labels: 42 name: prometheus-server-conf 43 namespace: {{ .Release.Namespace }} 44 data: 45 prometheus.rules: |- 46 groups: 47 - name: devopscube demo alert 48 rules: 49 - alert: High Pod Memory 50 expr: sum(container_memory_usage_bytes) > 1 51 for: 1m 52 labels: 53 severity: slack 54 annotations: 55 summary: High Memory Usage 56 prometheus.yml: |- 57 global: 58 scrape_interval: 5s 59 evaluation_interval: 5s 60 rule_files: 61 - /etc/prometheus/prometheus.rules 62 alerting: 63 alertmanagers: 64 - scheme: http 65 static_configs: 66 - targets: 67 - "alertmanager.monitoring.svc:9093" 68 69 scrape_configs: 70 - job_name: 'kubernetes-apiservers' 71 72 kubernetes_sd_configs: 73 - role: endpoints 74 scheme: https 75 76 tls_config: 77 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt 78 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token 79 80 relabel_configs: 81 - source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] 82 action: keep 83 regex: default;kubernetes;https 84 85 - job_name: 'kubernetes-nodes' 86 87 scheme: https 88 89 tls_config: 90 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt 91 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token 92 93 kubernetes_sd_configs: 94 - role: node 95 96 relabel_configs: 97 - action: labelmap 98 regex: __meta_kubernetes_node_label_(.+) 99 - target_label: __address__ 100 replacement: kubernetes.default.svc:443 101 - source_labels: [__meta_kubernetes_node_name] 102 regex: (.+) 103 target_label: __metrics_path__ 104 replacement: /api/v1/nodes/${1}/proxy/metrics 105 106 107 - job_name: 'kubernetes-pods' 108 109 kubernetes_sd_configs: 110 - role: pod 111 112 relabel_configs: 113 - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] 114 action: keep 115 regex: true 116 - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] 117 action: replace 118 target_label: __metrics_path__ 119 regex: (.+) 120 - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] 121 action: replace 122 regex: ([^:]+)(?::\d+)?;(\d+) 123 replacement: $1:$2 124 target_label: __address__ 125 - action: labelmap 126 regex: __meta_kubernetes_pod_label_(.+) 127 - source_labels: [__meta_kubernetes_namespace] 128 action: replace 129 target_label: kubernetes_namespace 130 - source_labels: [__meta_kubernetes_pod_name] 131 action: replace 132 target_label: kubernetes_pod_name 133 134 - job_name: 'kube-state-metrics' 135 static_configs: 136 - targets: ['kube-state-metrics.{{ .Release.Namespace }}.svc.cluster.local:8080'] 137 138 - job_name: 'kubernetes-cadvisor' 139 140 scheme: https 141 142 tls_config: 143 ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt 144 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token 145 146 kubernetes_sd_configs: 147 - role: node 148 149 relabel_configs: 150 - action: labelmap 151 regex: __meta_kubernetes_node_label_(.+) 152 - target_label: __address__ 153 replacement: kubernetes.default.svc:443 154 - source_labels: [__meta_kubernetes_node_name] 155 regex: (.+) 156 target_label: __metrics_path__ 157 replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor 158 159 - job_name: 'kubernetes-service-endpoints' 160 161 kubernetes_sd_configs: 162 - role: endpoints 163 164 relabel_configs: 165 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] 166 action: keep 167 regex: true 168 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme] 169 action: replace 170 target_label: __scheme__ 171 regex: (https?) 172 - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path] 173 action: replace 174 target_label: __metrics_path__ 175 regex: (.+) 176 - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] 177 action: replace 178 target_label: __address__ 179 regex: ([^:]+)(?::\d+)?;(\d+) 180 replacement: $1:$2 181 - action: labelmap 182 regex: __meta_kubernetes_service_label_(.+) 183 - source_labels: [__meta_kubernetes_namespace] 184 action: replace 185 target_label: kubernetes_namespace 186 - source_labels: [__meta_kubernetes_service_name] 187 action: replace 188 target_label: kubernetes_name 189 --- 190 apiVersion: apps/v1 191 kind: Deployment 192 metadata: 193 name: prometheus-deployment 194 namespace: {{ .Release.Namespace }} 195 labels: 196 app: prometheus-server 197 spec: 198 replicas: 1 199 selector: 200 matchLabels: 201 app: prometheus-server 202 template: 203 metadata: 204 labels: 205 app: prometheus-server 206 spec: 207 containers: 208 - name: prometheus 209 image: prom/prometheus 210 args: 211 - "--config.file=/etc/prometheus/prometheus.yml" 212 - "--storage.tsdb.path=/prometheus/" 213 ports: 214 - containerPort: 9090 215 volumeMounts: 216 - name: prometheus-config-volume 217 mountPath: /etc/prometheus/ 218 - name: prometheus-storage-volume 219 mountPath: /prometheus/ 220 volumes: 221 - name: prometheus-config-volume 222 configMap: 223 defaultMode: 420 224 name: prometheus-server-conf 225 226 - name: prometheus-storage-volume 227 emptyDir: {} 228 --- 229 apiVersion: v1 230 kind: Service 231 metadata: 232 name: prometheus-service 233 namespace: {{ .Release.Namespace }} 234 annotations: 235 prometheus.io/scrape: 'true' 236 prometheus.io/port: '9090' 237 238 spec: 239 selector: 240 app: prometheus-server 241 type: NodePort 242 ports: 243 - port: 8080 244 targetPort: 9090 245 nodePort: 30003 246 {{- end }}