annotate next/create_scrape_configs.py @ 62:8134cd480817

make next/ a complete standalone setup dir- no deps on ./
author drewp@bigasterisk.com
date Thu, 02 May 2024 20:33:29 -0700
parents config/create_scrape_configs.py@fb0519859645
children def1aa2bfa3f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
60
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
diff changeset
1 from pathlib import Path
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
diff changeset
2
61
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
3 from scrape_job import jobConfig, scrape_deployments, writeJobConfigs
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
4 import private
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
5
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
6
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
7
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
8
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
9 # previously this used `kubernetes_sd_configs: [{ role: node }]`
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
10 all_hosts = [
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
11 'dash',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
12 'ditto',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
13 # 'ws-printer',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
14 #todo:
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
15 ]
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
16
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
17 smartctl_hosts = [
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
18 # ideally, all nodes with disks, but many turn off and on
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
19 'dash',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
20 'ditto',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
21 ]
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
22
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
23 ping_hosts = [
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
24 # 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
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
25 'printer',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
26 # wireguard connection test
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
27 'prime5',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
28 # after pyinfra or reboot, seems to lose wg0 address
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
29 'garage5',
60
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
diff changeset
30 ]
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
diff changeset
31
61
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
32 deploy_doesnt_serve_metrics = [
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
33 'apprise',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
34 'bitwarden',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
35 'digi-files',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
36 'digi-pose-predict',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
37 'digi-tts-mimic',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
38 'dovecot',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
39 'front-door-display',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
40 'hass',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
41 'homepage',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
42 'itch150',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
43 'kallithea',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
44 'kube-web-view',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
45 'magma',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
46 'megasecond',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
47 'minecraft-build-world',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
48 'minecraft-lake-world',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
49 'minecraft-smp-world',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
50 'mongodb',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
51 'mqtt1',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
52 'mqtt2',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
53 'nodered',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
54 'photoprism',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
55 'plik',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
56 'projects',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
57 'registry',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
58 'registry-ui',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
59 'speakerphone',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
60 'video',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
61 'video-files',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
62 'zigbee2mqtt',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
63 ]
60
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
diff changeset
64
61
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
65 forever_jobs = [
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
66 jobConfig(name='maildir-count', targets=['prime:2500']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
67 jobConfig(name='mongodb', targets=['mongodb:9216']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
68 jobConfig(name='net-traffic', targets=['pipe:8080']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
69 jobConfig(name='ping', targets=ping_hosts, scrape_interval='2m', ping_job=True),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
70 jobConfig(name='power-eagle', targets=['power-eagle:80'], scrape_interval='8s'), # from powerEagle/private_config.periodSec
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
71 jobConfig(name='powermeter-exporter', targets=['powermeter-exporter'], scrape_interval='10s'),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
72 jobConfig(name='smartctl', targets=[f'{h}:9633' for h in smartctl_hosts]),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
73 jobConfig(name='wifi', targets=['wifi:80']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
74 jobConfig(name='zfs-exporter', targets=['ditto:9634']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
75 jobConfig(name='zigbee2mqtt-exporter', targets=['zigbee2mqtt-exporter:80']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
76 jobConfig(name='zpool-exporter', targets=['ditto:9986']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
77 jobConfig(name='octoprint', targets=['octoprint'],
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
78 metrics_path='/plugin/prometheus_exporter/metrics',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
79 params={'apikey' : [private.octoprint_apikey]},
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
80 ),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
81 ] # yapf: disable
60
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
diff changeset
82
61
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
83 recent_jobs = [
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
84 jobConfig( name="telegraf", targets=[f'{h}:9273' for h in all_hosts]),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
85 jobConfig( name="filebeat", targets=[f'{h}:5067' for h in all_hosts]),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
86 jobConfig( name="net-routes", targets=['pipe:9999']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
87 jobConfig( name="net-traffic", targets=['pipe:8080']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
88 jobConfig( name="dnsmasq-log", targets=['pipe:9991']),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
89 jobConfig(
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
90 name="racc",
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
91 scrape_interval='30s',
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
92 targets=[
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
93 # - dash:5150
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
94 # - dot:5150
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
95 # - squib:5150
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
96 # - ashermac:5150
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
97 ],
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
98 ),
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
99 ] # yapf: disable
fb0519859645 better py configs
drewp@bigasterisk.com
parents: 60
diff changeset
100 recent_jobs.extend(scrape_deployments(deploy_doesnt_serve_metrics, forever_jobs))
60
e3151ab43579 moving scrape target configs in py, and into separate retention classes
drewp@bigasterisk.com
parents:
diff changeset
101
62
8134cd480817 make next/ a complete standalone setup dir- no deps on ./
drewp@bigasterisk.com
parents: 61
diff changeset
102 top = Path('build/scrape_config')
8134cd480817 make next/ a complete standalone setup dir- no deps on ./
drewp@bigasterisk.com
parents: 61
diff changeset
103 writeJobConfigs(top, forever_jobs, 'forever')
8134cd480817 make next/ a complete standalone setup dir- no deps on ./
drewp@bigasterisk.com
parents: 61
diff changeset
104 writeJobConfigs(top, recent_jobs, 'recent')