mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-05 02:35:22 +03:00
wip
This commit is contained in:
parent
bada7db290
commit
4349bcf09b
@ -1,40 +1,34 @@
|
|||||||
from typing import Dict
|
from prometheus_client import CollectorRegistry
|
||||||
import json
|
from prometheus_client.metrics_core import GaugeMetricFamily
|
||||||
import re
|
from util.requester import Requester
|
||||||
import time
|
|
||||||
import random
|
|
||||||
from os import path
|
|
||||||
from urllib.request import urlopen
|
|
||||||
import yaml
|
|
||||||
from prometheus_client.core import GaugeMetricFamily, REGISTRY, CounterMetricFamily
|
|
||||||
|
|
||||||
|
|
||||||
def add_metric(metric, label, data, key, multiplier=1.0):
|
def setupRegistry():
|
||||||
try:
|
myregistry = CollectorRegistry()
|
||||||
string = str(data[key])
|
myregistry.register(CustomCollector())
|
||||||
value = float(re.findall(r'\d+', string)[0])
|
return myregistry
|
||||||
metric.add_metric([label], value * multiplier)
|
|
||||||
except (KeyError, TypeError, IndexError):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class FrigateCollector(object):
|
|
||||||
|
|
||||||
def __init__ (self, metricsobject, dataobject):
|
|
||||||
self.metricsobject = metricsobject
|
|
||||||
self.dataobject = dataobject
|
|
||||||
|
|
||||||
|
|
||||||
|
class CustomCollector():
|
||||||
|
def __init__(self):
|
||||||
|
self.service_unavailable_url = "https://httpstat.us/503"
|
||||||
|
self.ok_url = "https://httpstat.us/200"
|
||||||
|
|
||||||
def collect(self):
|
def collect(self):
|
||||||
|
server_unavailable_requester = Requester(self.service_unavailable_url)
|
||||||
|
ok_requester = Requester(self.ok_url)
|
||||||
|
|
||||||
|
server_unavailable_response = server_unavailable_requester.get_request()
|
||||||
|
ok_response = ok_requester.get_request()
|
||||||
|
|
||||||
class PromMetricsClass:
|
url_up_gauge = GaugeMetricFamily('sample_external_url_up', 'Help text', labels=['url'])
|
||||||
|
url_response_ms_gauge = GaugeMetricFamily('sample_external_url_response_ms', 'Help text', labels=['url'])
|
||||||
|
|
||||||
def __init__(self):
|
url_up_gauge.add_metric([server_unavailable_response.url], server_unavailable_response.up_or_down)
|
||||||
self.metrics = dict()
|
url_response_ms_gauge.add_metric([server_unavailable_response.url], server_unavailable_response.response_ms)
|
||||||
|
|
||||||
class PromDataClass:
|
url_up_gauge.add_metric([ok_response.url], ok_response.up_or_down)
|
||||||
|
url_response_ms_gauge.add_metric([ok_response.url], ok_response.response_ms)
|
||||||
|
|
||||||
def __init__(self):
|
yield url_up_gauge
|
||||||
self.values_in = dict()
|
yield url_response_ms_gauge
|
||||||
self.values_out = dict()
|
|
||||||
Loading…
Reference in New Issue
Block a user