feat: add prometheus metrics and ServiceMonitor

This commit is contained in:
Johannes Reichhardt 2026-03-31 23:00:03 -05:00
parent 2a625c66c7
commit f941a465f5
3 changed files with 27 additions and 1 deletions

9
app.py
View File

@ -1,5 +1,6 @@
import os
from flask import Flask, render_template, request, flash
from prometheus_flask_exporter import PrometheusMetrics
import google.generativeai as genai
from markdown import markdown
from dotenv import load_dotenv
@ -9,6 +10,13 @@ load_dotenv()
app = Flask(__name__)
app.secret_key = os.environ.get("FLASK_SECRET_KEY", "prod-secret-7721")
metrics = PrometheusMetrics(app)
metrics.info('app_info', 'Application info', version='1.0.5')
conversion_counter = metrics.counter(
'txt2md_conversions_total', 'Total number of text conversions'
)
# API Configuration
api_key = os.environ.get("AI_API_KEY")
if api_key:
@ -36,6 +44,7 @@ def index():
response = model.generate_content(prompt)
markdown_content = response.text
converted_html = markdown(markdown_content, extensions=['extra', 'codehilite'])
conversion_counter.inc()
except Exception as e:
flash(f"Error during processing: {str(e)}", "error")

View File

@ -70,7 +70,7 @@ spec:
serviceAccountName: txt2md-sa
containers:
- name: txt2md
image: europe-west3-docker.pkg.dev/project-84ddd43d-e408-4cb9-8cb/txt2md-repo/txt2md:v1.0.4
image: europe-west3-docker.pkg.dev/project-84ddd43d-e408-4cb9-8cb/txt2md-repo/txt2md:v1.0.5
ports:
- containerPort: 5000
env:
@ -98,3 +98,19 @@ spec:
port: 80
targetPort: 5000
type: ClusterIP
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: txt2md-monitor
namespace: default
labels:
release: monitoring # Matches the Prometheus operator selector
spec:
selector:
matchLabels:
app: txt2md
endpoints:
- port: http
interval: 30s
path: /metrics

View File

@ -2,3 +2,4 @@ flask
google-generativeai
python-dotenv
markdown
prometheus-flask-exporter