40 lines
1.2 KiB
Python
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()
|
|
]
|