235 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
apiVersion: v1
 | 
						|
kind: ConfigMap
 | 
						|
metadata:
 | 
						|
  name: vmagent
 | 
						|
  namespace: monitoring
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/name: victoria-metrics
 | 
						|
    app.kubernetes.io/component: agent
 | 
						|
data:
 | 
						|
  prometheus.yml: |
 | 
						|
    global:
 | 
						|
      scrape_interval: 1m
 | 
						|
      external_labels:
 | 
						|
        source: scaleway
 | 
						|
        agent: vmagent
 | 
						|
    scrape_configs:
 | 
						|
    - job_name: 'vmagent'
 | 
						|
      static_configs:
 | 
						|
        - targets: ['localhost:8429']
 | 
						|
      relabel_configs:
 | 
						|
      - action: drop
 | 
						|
        source_labels: [__name__]
 | 
						|
        regex: "flag"
 | 
						|
 | 
						|
    - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
 | 
						|
      job_name: kubernetes-nodes
 | 
						|
      kubernetes_sd_configs:
 | 
						|
      - role: node
 | 
						|
      relabel_configs:
 | 
						|
      - action: labelmap
 | 
						|
        regex: __meta_kubernetes_node_label_(.+)
 | 
						|
      - replacement: kubernetes.default.svc:443
 | 
						|
        target_label: __address__
 | 
						|
      - regex: (.+)
 | 
						|
        replacement: /api/v1/nodes/$1/proxy/metrics
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_node_name
 | 
						|
        target_label: __metrics_path__
 | 
						|
      scheme: https
 | 
						|
      tls_config:
 | 
						|
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
 | 
						|
        insecure_skip_verify: true
 | 
						|
 | 
						|
    - job_name: cadvisor
 | 
						|
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
 | 
						|
      scheme: https
 | 
						|
      tls_config:
 | 
						|
        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
 | 
						|
        insecure_skip_verify: true
 | 
						|
      kubernetes_sd_configs:
 | 
						|
      - role: node
 | 
						|
      relabel_configs:
 | 
						|
      - action: labelmap
 | 
						|
        regex: __meta_kubernetes_node_label_(.+)
 | 
						|
      - replacement: kubernetes.default.svc:443
 | 
						|
        target_label: __address__
 | 
						|
      - source_labels: [__meta_kubernetes_node_name]
 | 
						|
        regex: (.+)
 | 
						|
        target_label: __metrics_path__
 | 
						|
        replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
 | 
						|
      # Drop high cardinality labels
 | 
						|
      - action: labeldrop
 | 
						|
        regex: id
 | 
						|
      # Drop unneeded labels
 | 
						|
      - action: labeldrop
 | 
						|
        regex: beta_kubernetes_io_os
 | 
						|
      - action: labeldrop
 | 
						|
        regex: beta_kubernetes_io_arch
 | 
						|
      - action: labeldrop
 | 
						|
        regex: kubernetes_io_arch
 | 
						|
      - action: labeldrop
 | 
						|
        regex: kubernetes_io_os
 | 
						|
      - action: labeldrop
 | 
						|
        regex: topology_jiva_openebs_io_nodeName
 | 
						|
 | 
						|
    - job_name: kubernetes-service-endpoints
 | 
						|
      kubernetes_sd_configs:
 | 
						|
      - role: endpoints
 | 
						|
      relabel_configs:
 | 
						|
      - action: drop
 | 
						|
        source_labels: [__meta_kubernetes_pod_container_init]
 | 
						|
        regex: true
 | 
						|
      - action: keep
 | 
						|
        regex: true
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_service_annotation_prometheus_io_scrape
 | 
						|
      - action: replace
 | 
						|
        regex: (https?)
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_service_annotation_prometheus_io_scheme
 | 
						|
        target_label: __scheme__
 | 
						|
      - action: replace
 | 
						|
        regex: (.+)
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_service_annotation_prometheus_io_path
 | 
						|
        target_label: __metrics_path__
 | 
						|
      - action: replace
 | 
						|
        regex: ([^:]+)(?::\d+)?;(\d+)
 | 
						|
        replacement: $1:$2
 | 
						|
        source_labels:
 | 
						|
        - __address__
 | 
						|
        - __meta_kubernetes_service_annotation_prometheus_io_port
 | 
						|
        target_label: __address__
 | 
						|
      - action: labelmap
 | 
						|
        regex: __meta_kubernetes_service_label_(.+)
 | 
						|
      - action: replace
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_namespace
 | 
						|
        target_label: kubernetes_namespace
 | 
						|
      - action: replace
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_service_name
 | 
						|
        target_label: kubernetes_name
 | 
						|
      - action: replace
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_pod_node_name
 | 
						|
        target_label: kubernetes_node
 | 
						|
      # We don't care about the flag metrics from VM
 | 
						|
      - action: drop
 | 
						|
        source_labels: [__name__]
 | 
						|
        regex: "flag"
 | 
						|
      # Drop unneeded labels
 | 
						|
      - action: labeldrop
 | 
						|
        regex: beta_kubernetes_io_os
 | 
						|
      - action: labeldrop
 | 
						|
        regex: beta_kubernetes_io_arch
 | 
						|
      - action: labeldrop
 | 
						|
        regex: kubernetes_io_arch
 | 
						|
      - action: labeldrop
 | 
						|
        regex: kubernetes_io_os
 | 
						|
      - action: labeldrop
 | 
						|
        regex: topology_jiva_openebs_io_nodeName
 | 
						|
 | 
						|
    - job_name: kubernetes-pods
 | 
						|
      kubernetes_sd_configs:
 | 
						|
      - role: pod
 | 
						|
      relabel_configs:
 | 
						|
      - action: drop
 | 
						|
        source_labels: [__meta_kubernetes_pod_container_init]
 | 
						|
        regex: true
 | 
						|
      - action: keep
 | 
						|
        regex: true
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_pod_annotation_prometheus_io_scrape
 | 
						|
      - action: replace
 | 
						|
        regex: (.+)
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_pod_annotation_prometheus_io_path
 | 
						|
        target_label: __metrics_path__
 | 
						|
      - action: replace
 | 
						|
        regex: ([^:]+)(?::\d+)?;(\d+)
 | 
						|
        replacement: $1:$2
 | 
						|
        source_labels:
 | 
						|
        - __address__
 | 
						|
        - __meta_kubernetes_pod_annotation_prometheus_io_port
 | 
						|
        target_label: __address__
 | 
						|
      - action: labelmap
 | 
						|
        regex: __meta_kubernetes_pod_label_(.+)
 | 
						|
      - action: replace
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_namespace
 | 
						|
        target_label: kubernetes_namespace
 | 
						|
      - action: replace
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_pod_name
 | 
						|
        target_label: kubernetes_pod_name
 | 
						|
      - action: drop
 | 
						|
        regex: Pending|Succeeded|Failed
 | 
						|
        source_labels:
 | 
						|
        - __meta_kubernetes_pod_phase
 | 
						|
      # Drop unneeded labels
 | 
						|
      - action: labeldrop
 | 
						|
        regex: beta_kubernetes_io_os
 | 
						|
      - action: labeldrop
 | 
						|
        regex: beta_kubernetes_io_arch
 | 
						|
      - action: labeldrop
 | 
						|
        regex: kubernetes_io_arch
 | 
						|
      - action: labeldrop
 | 
						|
        regex: kubernetes_io_os
 | 
						|
      - action: labeldrop
 | 
						|
        regex: topology_jiva_openebs_io_nodeName
 | 
						|
 | 
						|
    - job_name: 'node-exporter'
 | 
						|
      kubernetes_sd_configs:
 | 
						|
        - role: endpoints
 | 
						|
      relabel_configs:
 | 
						|
      - source_labels: [__meta_kubernetes_endpoints_name]
 | 
						|
        regex: 'prometheus-node-exporter'
 | 
						|
        action: keep
 | 
						|
---
 | 
						|
 | 
						|
apiVersion: apps/v1
 | 
						|
kind: Deployment
 | 
						|
metadata:
 | 
						|
  name: vmagent
 | 
						|
  namespace: monitoring
 | 
						|
  labels:
 | 
						|
    app.kubernetes.io/name: victoria-metrics
 | 
						|
    app.kubernetes.io/component: agent
 | 
						|
  annotations:
 | 
						|
    configmap.reloader.stakater.com/reload: "vmagent"
 | 
						|
spec:
 | 
						|
  strategy:
 | 
						|
    type: Recreate
 | 
						|
  selector:
 | 
						|
    matchLabels:
 | 
						|
      app.kubernetes.io/name: victoria-metrics
 | 
						|
      app.kubernetes.io/component: agent
 | 
						|
  replicas: 1
 | 
						|
  template:
 | 
						|
    metadata:
 | 
						|
      labels:
 | 
						|
        app.kubernetes.io/name: victoria-metrics
 | 
						|
        app.kubernetes.io/component: agent
 | 
						|
    spec:
 | 
						|
      priorityClassName: system-cluster-critical
 | 
						|
      serviceAccountName: prometheus-server
 | 
						|
      containers:
 | 
						|
        - name: vmagent
 | 
						|
          image: "victoriametrics/vmagent:v1.129.0"
 | 
						|
          imagePullPolicy: "IfNotPresent"
 | 
						|
          args:
 | 
						|
            - -remoteWrite.url=http://vmcluster.auth-proxy.svc/insert/0/prometheus/
 | 
						|
            - -remoteWrite.showURL
 | 
						|
            - -promscrape.config=/config/prometheus.yml
 | 
						|
            - -promscrape.suppressDuplicateScrapeTargetErrors
 | 
						|
          volumeMounts:
 | 
						|
            - name: config-volume
 | 
						|
              mountPath: /config
 | 
						|
      volumes:
 | 
						|
        - name: config-volume
 | 
						|
          configMap:
 | 
						|
            name: vmagent
 | 
						|
---
 |