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