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 }}