otelcollector/prom-config-validator-builder/prometheus-config.yaml (69 lines of code) (raw):

global: evaluation_interval: 60s scrape_interval: 60s # Unsupported features(remote write, remote read, rule files and alerting) - uncomment these to make sure validator errors out # alerting: # alert_relabel_configs: # - separator: ; # regex: prometheus_replica # action: labeldrop # replacement: $$1 # remote_write: # - url: "https://example.org/write" # remote_read: # - url: "https://example.org/read" # rule_files: [rulefile.txt] # Config to test that the ordering of source label doesnt get altered scrape_configs: - job_name: kube-proxy scrape_interval: 30s kubernetes_sd_configs: - role: pod relabel_configs: - action: keep source_labels: [__meta_kubernetes_namespace,__meta_kubernetes_pod_name] separator: '/' regex: 'kube-system/kube-proxy.+' - source_labels: - __address__ action: replace target_label: __address__ regex: (.+?)(\:\d+)? replacement: $$1:10249 - job_name: windows-exporter scheme: http scrape_interval: 30s tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt insecure_skip_verify: true # Fails since file doesnt exist, but uncomment to test out that the backward compatibility doesnt break in the generated output file(merged-otel-config.yaml) #bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: keep source_labels: [__meta_kubernetes_node_label_kubernetes_io_os] regex: windows - source_labels: - __address__ action: replace target_label: __address__ regex: (.+?)(\:\d+)? replacement: $$1:9182 - job_name: prometheus_ref_app scheme: http follow_redirects: true kubernetes_sd_configs: - role: service relabel_configs: - source_labels: [__meta_kubernetes_service_name] action: keep regex: "prometheus-reference-service" - source_labels: [location] separator: ; regex: $$1 target_label: location replacement: $1 action: replace # Below is to test $ in regex field to mean endswith and $$(backward compatibility) in replacement for regex grouping. Validator should work for both metric_relabel_configs: - action: replace source_labels: [city] regex: (s.*)(ttle$) replacement: "seattle_city_$1" target_label: city - source_labels: [location] separator: ; regex: (.*) target_label: location replacement: $$1 action: replace - job_name: dummy_app scheme: http follow_redirects: true kubernetes_sd_configs: - role: service # Uncomment below to make sure validator fails since the file doesnt exist # file_sd_configs: # - files: ["dummy-sd-config.json"]