added prometheus exporter

This commit is contained in:
Jan Felix Wiebe 2025-07-11 14:56:30 +02:00
parent be5ce63add
commit 7017df5fa3
5 changed files with 139 additions and 2 deletions

View file

@ -1,13 +1,15 @@
from fastapi import FastAPI, HTTPException, WebSocket, WebSocketDisconnect, APIRouter
from fastapi.responses import Response
from typing import List
from models import CreateOrderRequest, Order, DrinkType, MateType
from database import db
from websocket_manager import websocket_manager
from prometheus_metrics import drink_metrics, CONTENT_TYPE_LATEST
import json
app = FastAPI(
title="Tschunk Order API",
description="Eine RESTful API für Tschunk-Bestellungen mit WebSocket-Unterstützung",
description="Eine RESTful API für Tschunk-Bestellungen mit WebSocket-Unterstützung und Prometheus-Metriken",
version="1.0.0"
)
@ -129,6 +131,28 @@ async def get_available_drinks():
}
@api_router.get("/stats/drinks")
async def get_drink_statistics():
"""
Gibt die Statistiken der verkauften Getränke zurück.
"""
return drink_metrics.get_stats()
@app.get("/metrics")
async def get_prometheus_metrics():
"""
Prometheus-Metriken-Endpunkt.
Gibt die Metriken im Prometheus-Format zurück:
- tschunk_drinks_sold_total: Anzahl verkaufter Getränke nach Typ und Mate-Sorte
"""
return Response(
content=drink_metrics.get_metrics(),
media_type=CONTENT_TYPE_LATEST
)
# API Router zur App hinzufügen
app.include_router(api_router)