from prometheus_client import Counter, Histogram, Gauge
predictions = Counter(
'model_predictions_total',
'Total predictions',
['model_version', 'prediction_class']
)
latency = Histogram(
'model_prediction_latency_seconds',
'Prediction latency',
buckets=[0.01, 0.05, 0.1, 0.25, 0.5, 1.0]
)
accuracy = Gauge(
'model_accuracy_current',
'Current model accuracy'
)
@app.post("/predict")
async def predict(request: PredictionRequest):
with latency.time():
result = model.predict(request.features)
predictions.labels(model_version="2.1.0", prediction_class=str(result)).inc()
return {"prediction": result}