basic timeout

This commit is contained in:
Hendrik Schutter 2024-04-15 21:07:54 +02:00
parent a5ebf13e97
commit 96fb5c0da4

View File

@ -5,15 +5,17 @@
from http.server import BaseHTTPRequestHandler, HTTPServer
import paho.mqtt.client as mqtt
from datetime import datetime
from datetime import datetime, timedelta
import threading
import time
import json
import sys
import config
scrape_healthy = True
startTime = datetime.now()
lastMqttReception = datetime.now()
node_metrics = list()
mutex = threading.Lock()
request_count = 0
@ -40,9 +42,13 @@ class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
global request_count
global lastMqttReception
global scrape_healthy
request_count = request_count + 1
#print("Request: " + self.path)
if (self.path.startswith("/metrics")):
if (datetime.now() - lastMqttReception) > timedelta(hours=7):
scrape_healthy = False
self.get_metrics()
else:
self.send_response(200)
@ -64,7 +70,7 @@ def update_metrics(payload, metadata):
global mutex
global scrape_healthy
mutex.acquire()
scrape_healthy = True
scrape_healthy = False
node_metrics.clear()
if "Distance" in payload:
@ -123,6 +129,7 @@ def update_metrics(payload, metadata):
print("set snr: " + str(float(metadata[0]["snr"])))
node_metrics.append("snr " + str(float(metadata[0]["snr"])))
scrape_healthy = True
mutex.release()
def on_connect(mqttc, obj, flags, rc):
@ -136,6 +143,7 @@ def on_message(mqttc, obj, msg):
try:
uplink_message = parsedJSON["uplink_message"]
update_metrics(uplink_message["decoded_payload"], uplink_message["rx_metadata"])
lastMqttReception = datetime.now()
except:
mutex.acquire()
scrape_healthy = False