basic timeout
This commit is contained in:
		| @ -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 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user