github.com/inspektor-gadget/inspektor-gadget@v0.28.1/docs/examples/prometheus.yaml (about)

     1  # Based on https://github.com/se7entyse7en/prometheus-k8s-service-discovery/tree/master/kubernetes/prometheus
     2  
     3  apiVersion: v1
     4  kind: Namespace
     5  metadata:
     6    name: monitoring
     7  ---
     8  apiVersion: v1
     9  kind: ServiceAccount
    10  metadata:
    11    namespace: monitoring
    12    name: prometheus
    13  ---
    14  apiVersion: rbac.authorization.k8s.io/v1
    15  kind: ClusterRole
    16  metadata:
    17    name: discoverer
    18  rules:
    19  - apiGroups: [""]
    20    resources:
    21    - nodes
    22    - services
    23    - endpoints
    24    - pods
    25    verbs: ["get", "list", "watch"]
    26  - apiGroups:
    27    - extensions
    28    resources:
    29    - ingresses
    30    verbs: ["get", "list", "watch"]
    31  ---
    32  apiVersion: rbac.authorization.k8s.io/v1
    33  kind: ClusterRoleBinding
    34  metadata:
    35    name: prometheus-discoverer
    36  roleRef:
    37    apiGroup: rbac.authorization.k8s.io
    38    kind: ClusterRole
    39    name: discoverer
    40  subjects:
    41  - kind: ServiceAccount
    42    name: prometheus
    43    namespace: monitoring
    44  ---
    45  apiVersion: v1
    46  kind: ConfigMap
    47  metadata:
    48    name: prometheus-server-conf
    49    namespace: monitoring
    50    labels:
    51      name: prometheus-server-conf
    52  data:
    53    prometheus.yml: |-
    54      scrape_configs:
    55        - job_name: 'kubernetes-pods'
    56  
    57          scrape_interval: 1s
    58          scrape_timeout: 1s
    59  
    60          kubernetes_sd_configs:
    61          - role: pod
    62  
    63          relabel_configs:
    64          - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
    65            action: keep
    66            regex: true
    67          - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme]
    68            action: replace
    69            target_label: __scheme__
    70            regex: (https?)
    71          - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
    72            action: replace
    73            target_label: __metrics_path__
    74            regex: (.+)
    75          - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
    76            action: replace
    77            target_label: __address__
    78            regex: ([^:]+)(?::\d+)?;(\d+)
    79            replacement: $1:$2
    80  ---
    81  apiVersion: apps/v1
    82  kind: Deployment
    83  metadata:
    84    name: prometheus
    85    namespace: monitoring
    86    labels:
    87      app: prometheus
    88  spec:
    89    replicas: 1
    90    selector:
    91      matchLabels:
    92        app: prometheus
    93    template:
    94      metadata:
    95        labels:
    96          app: prometheus
    97      spec:
    98        serviceAccountName: prometheus
    99        containers:
   100        - name: prometheus
   101          image: prom/prometheus:v2.33.4
   102          ports:
   103          - containerPort: 9090
   104          volumeMounts:
   105            - name: config
   106              mountPath: /etc/prometheus
   107        volumes:
   108          - name: config
   109            configMap:
   110              name: prometheus-server-conf