# tests ## logs from loki ```python # 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"})) ``` ```yaml # 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 }}" ```