Files
authelia-metrics/libs/generate_metrics.py
2026-05-19 21:57:54 +01:00

40 lines
1.2 KiB
Python

from time import time
def aggregate(domains: dict[str, list[str]]) -> list[dict]:
data = {"no_auth": 0, "no_wan": 0, "auth": 0, "wan": 0, "none": 0}
for domain, imports in domains.items():
num = len(imports)
if num == 0:
data["none"] += 1
continue
if "auth" in imports:
data["auth"] += 1
if "wan" in imports:
data["wan"] += 1
if "auth" not in imports:
data["no_auth"] += 1
if "wan" not in imports:
data["no_wan"] += 1
# return data
p = [
{
"metric": {"__name__": "caddy_domain_imports", "import": "caddy_"+imported, "host": "server1"},
"values": [count],
"timestamps": [int(time())],
}
for imported, count in data.items()
]
return p
def domain_imports(domains: dict[str, list[str]]):
# print(domains)
return [
{"metric": {"__name__": "caddy_domain_imported", "domain": domain, "auth": 1 if "auth" in import_lists else 0, "wan": 1 if "wan" in import_lists else 0}, "values": [1], "timestamps": [int(time())]}
for domain, import_lists in domains.items()
]