Skip to content

Commit 8a41a08

Browse files
Roman Plevkarplevka
Roman Plevka
authored andcommitted
implement basic prometheus metric endpoint
1 parent 2995639 commit 8a41a08

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

rekuper.py

+13
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
from flask_sqlalchemy import SQLAlchemy
55
from flask_migrate import Migrate
66
from flask_restx import Api, Resource, fields
7+
from prometheus_flask_exporter import PrometheusMetrics
78
from sqlalchemy import text
89
from sqlalchemy.exc import IntegrityError, SQLAlchemyError
910

1011
app = Flask("__name__")
12+
metrics = PrometheusMetrics(app)
13+
1114
if settings.database.get("connection_string") is None:
1215
db_creds = f"{settings.database.username}:{settings.database.password}"
1316
db_host = settings.database.host
@@ -362,5 +365,15 @@ def get(self):
362365
return [container.to_dict() for container in containers], 200
363366

364367

368+
# register routes to the prometheus metrics
369+
metrics.register_default(
370+
metrics.counter(
371+
"by_path_counter",
372+
"Request count by request paths",
373+
labels={"path": lambda: request.path},
374+
)
375+
)
376+
377+
365378
if __name__ == "__main__":
366379
app.run(debug=True)

requirements.txt

+1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ Flask
33
Flask-SQLAlchemy
44
Flask-Migrate
55
flask-restx
6+
prometheus-flask-exporter
67
psycopg2-binary
78
requests

0 commit comments

Comments
 (0)