mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-04 18:25:22 +03:00
wip
This commit is contained in:
parent
bada7db290
commit
4349bcf09b
@ -1,40 +1,34 @@
|
||||
from typing import Dict
|
||||
import json
|
||||
import re
|
||||
import time
|
||||
import random
|
||||
from os import path
|
||||
from urllib.request import urlopen
|
||||
import yaml
|
||||
from prometheus_client.core import GaugeMetricFamily, REGISTRY, CounterMetricFamily
|
||||
from prometheus_client import CollectorRegistry
|
||||
from prometheus_client.metrics_core import GaugeMetricFamily
|
||||
from util.requester import Requester
|
||||
|
||||
|
||||
def add_metric(metric, label, data, key, multiplier=1.0):
|
||||
try:
|
||||
string = str(data[key])
|
||||
value = float(re.findall(r'\d+', string)[0])
|
||||
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
|
||||
def setupRegistry():
|
||||
myregistry = CollectorRegistry()
|
||||
myregistry.register(CustomCollector())
|
||||
return myregistry
|
||||
|
||||
|
||||
class CustomCollector():
|
||||
def __init__(self):
|
||||
self.service_unavailable_url = "https://httpstat.us/503"
|
||||
self.ok_url = "https://httpstat.us/200"
|
||||
|
||||
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):
|
||||
self.metrics = dict()
|
||||
url_up_gauge.add_metric([server_unavailable_response.url], server_unavailable_response.up_or_down)
|
||||
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):
|
||||
self.values_in = dict()
|
||||
self.values_out = dict()
|
||||
yield url_up_gauge
|
||||
yield url_response_ms_gauge
|
||||
Loading…
Reference in New Issue
Block a user