All checks were successful
Casa Home Assistant CI/CD Pipeline / deploy (push) Successful in 17s
1.3 KiB
1.3 KiB
tests
logs from loki
# loki-get-last-to-sensor.py
import sys, os, requests, datetime, time, json
url = os.environ.get("LOKI_ADDRESS")
if not url:
print(json.dumps({"state": "error", "log_message": "LOKI_ADDRESS is not set or empty"}))
sys.exit(1)
query = os.environ.get("LOKI_QUERY")
if not query:
print(json.dumps({"state": "error", "log_message": "LOKI_ADDRESS is not set or empty"}))
sys.exit(1)
end = int(time.time()) * 1_000_000_000
start = (int(time.time()) - 24*60*60) * 1_000_000_000
params = {
"query": query,
"limit": 1,
"direction": "backward",
"start": str(start),
"end": str(end),
}
resp = requests.get(url, params=params)
data = resp.json()
try:
ns = int(data["data"]["result"][0]["values"][0][0])
ts = ns / 1_000_000_000
dt = datetime.datetime.fromtimestamp(ts).strftime("%Y-%m-%d %H:%M:%S")
print(json.dumps({
"state": dt,
}))
except Exception:
print(json.dumps({"state": "unknown"}))
# example of the sensor
name: git_limbosolutions_com_last_pbs_backup
command: >
LOKI_ADDRESS=${LOKI_ADDRESS} LOKI_QUERY="{job=\"git-limbosolutions-com/pbs-backup\"} |= \"INFO: Finished Backup\"" python3 /config/scripts/loki-get-last-to-sensor.py
value_template: "{{ value }}"