fixed version prometheus-client

added env variable SPOOLMAN_METRICS_ENABLED for enabled database collector

set metrics path as /metrics

checked Null values at vendors, init weight and price
removed some logs
This commit is contained in:
Dmitry Belousov
2024-04-15 00:17:36 +03:00
parent fc8df5346d
commit 91d922d0b8
7 changed files with 109 additions and 63 deletions

View File

@@ -1,5 +1,4 @@
"""Main entrypoint to the server."""
import logging
import subprocess
from logging.handlers import TimedRotatingFileHandler
@@ -9,14 +8,15 @@ import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.middleware.gzip import GZipMiddleware
from fastapi.responses import PlainTextResponse
from prometheus_client import generate_latest
from scheduler.asyncio.scheduler import Scheduler
from spoolman import env
from spoolman.api.v1.router import app as v1_app
from spoolman.client import SinglePageApplication
from spoolman.database import database
from spoolman.prometheus.metrics import metrics_app
from spoolman.prometheus.metrics import registry
# Define a console logger
console_handler = logging.StreamHandler()
@@ -39,8 +39,24 @@ app = FastAPI(
)
app.add_middleware(GZipMiddleware)
app.mount("/api/v1", v1_app)
app.mount("/metrics", metrics_app)
app.mount("/", app=SinglePageApplication(directory="client/dist"), name="client")
# WA for prometheus /metrics bind with SinglePageApp at root
@app.get(
"/metrics",
response_class=PlainTextResponse,
name="Get metrics for prometheus",
description=(
"Get app metrics for prometheusIf enabled SPOOLMAN_METRICS_ENABLED returned metrics by Spools and Filaments"
),
)
def get_metrics() -> bytes:
"""Return prometheus metrics."""
return generate_latest(registry)
app.mount("", app=SinglePageApplication(directory="client/dist"))
# Allow all origins if in debug mode
if env.is_debug_mode():