This commit is contained in:
Mitch Ross 2023-02-25 21:47:39 -05:00
parent d97fa99ec5
commit bada7db290
2 changed files with 50 additions and 0 deletions

View File

@ -6,6 +6,7 @@ import logging
import json
import os
import subprocess as sp
from prometheus_client import REGISTRY, generate_latest
import pytz
import time
import traceback
@ -35,6 +36,7 @@ from frigate.config import FrigateConfig
from frigate.const import CLIPS_DIR, MAX_SEGMENT_DURATION, RECORD_DIR
from frigate.models import Event, Recordings
from frigate.object_processing import TrackedObject
from frigate.prometheus_exporter import FrigateCollector
from frigate.stats import stats_snapshot
from frigate.util import (
clean_camera_user_pass,
@ -81,6 +83,8 @@ def create_app(
app.register_blueprint(bp)
return app
@ -820,6 +824,12 @@ def stats():
return jsonify(stats)
@bp.route("/metrics")
def metrics():
return generate_latest()
@bp.route("/<camera_name>")
def mjpeg_feed(camera_name):
fps = int(request.args.get("fps", "3"))

View File

@ -0,0 +1,40 @@
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
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 collect(self):
class PromMetricsClass:
def __init__(self):
self.metrics = dict()
class PromDataClass:
def __init__(self):
self.values_in = dict()
self.values_out = dict()