diff options
Diffstat (limited to 'bundles/prometheus/items.py')
| -rw-r--r-- | bundles/prometheus/items.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/bundles/prometheus/items.py b/bundles/prometheus/items.py new file mode 100644 index 0000000..234aca5 --- /dev/null +++ b/bundles/prometheus/items.py @@ -0,0 +1,47 @@ +from sys import exit +from os.path import join + +files = { + "/etc/deployments/prometheus/kube.yaml": { + "content_type": "text", + "source": "kube.yaml", + "triggers": {"svc_s6rc:prometheus:restart"}, + }, + "/etc/prometheus/prometheus.yml": { + "content_type": "text", + "source": "prometheus.yml", + "triggers": {"svc_s6rc:prometheus:restart"}, + }, +} + +repo.libs.gen.add_files_recursive( + files, + join(repo.path, "bundles", "prometheus", "files", "consoles"), + target_root="/etc/prometheus", + files_root=join(repo.path, "bundles", "prometheus", "files"), +) +repo.libs.gen.add_files_recursive( + files, + join(repo.path, "bundles", "prometheus", "files", "console_libraries"), + target_root="/etc/prometheus", + files_root=join(repo.path, "bundles", "prometheus", "files"), +) + +directories = { + "/etc/prometheus/services": {}, + "/etc/prometheus/consoles": {}, + "/etc/prometheus/console_libraries": {}, +} + +# NOTE: services that want to have their metrics scraped need to expose them +# under traefik:4000/metrics/<svc> and set metadata.metrics.<svc> +for node in repo.nodes: + for job_name, _ in node.metadata.get("metrics", {}).items(): + files[f"/etc/prometheus/services/{node.hostname}.{job_name}.json"] = { + "content_type": "mako", + "source": "service.json", + "context": { + "job_name": job_name, + "hostname": node.hostname, + }, + } |