All checks were successful
Casa Home Assistant CI/CD Pipeline / deploy (push) Successful in 17s
56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
# 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 }}"
|
|
```
|