Mercurial > code > home > repos > victoriametrics
diff config/create_scrape_configs.py @ 60:e3151ab43579
moving scrape target configs in py, and into separate retention classes
author | drewp@bigasterisk.com |
---|---|
date | Sat, 27 Apr 2024 01:31:07 -0700 |
parents | |
children | fb0519859645 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config/create_scrape_configs.py Sat Apr 27 01:31:07 2024 -0700 @@ -0,0 +1,82 @@ +import json +from pathlib import Path + +forever_jobs = [ + 'maildir-count', + 'mongodb', + 'net-traffic', + 'ping', + 'power-eagle', + 'smartctl', + 'wifi', + 'zfs-exporter', + 'zigbee2mqtt-exporter', + 'zpool-exporter', +] + +job_targets = { + 'maildir-count': ['prime:2500'], + 'mongodb': ['mongodb:9216'], + 'net-traffic': ['pipe:8080'], + # - job_name: "ping" + # scrape_interval: 2m + # metrics_path: /probe + # params: + # module: [icmp] + # static_configs: + # - targets: + # # printer, since it falls out of ntop with no traffic at all. Or, we could poll ink status at http://printer/general/status.html?pageid=1 + # - printer + # # wireguard connection test + # - prime5 + # # after pyinfra or reboot, seems to lose wg0 address + # - garage5 + # relabel_configs: + # - {source_labels: [__address__], target_label: __param_target} + # - {source_labels: [__param_target], target_label: instance} + # - target_label: __address__ + # replacement: prober + 'ping': [':80'], # multi target with tricks + 'power-eagle': ['power-eagle:80'], + 'smartctl': [':80'], # per-node! + 'wifi': ['wifi:80'], + 'zfs-exporter': ['ditto:9634'], + 'zigbee2mqtt-exporter': ['zigbee2mqtt-exporter:80'], + 'zpool-exporter': ['ditto:9986'], +} + +for job in forever_jobs: + d = [{ + "job_name": job, + "static_configs": [{ + "targets": job_targets[job], + }], + "relabel_configs": [ + { + "target_label": "namespace", + "replacement": "default" + }, + { + "source_labels": ["__meta_kubernetes_pod_node_name"], + "target_label": "node" + }, + ] + }] + + if job == 'power-eagle': + # from powerEagle/private_config.periodSec + d[0]['relabel_configs'].append({ + "action": "replace", + "target_label": "__scrape_interval__", + "replacement": "8s", + }) + + Path(f'{job}.yaml').write_text(json.dumps(d, indent=2, sort_keys=True)) + +Path('scrape_forever.yaml').write_text(json.dumps({ + "global": { + "scrape_interval": "1m", + "scrape_timeout": "10s" + }, + "scrape_config_files": [f'{job}.yaml' for job in forever_jobs], +}, indent=2))