Comments (5)
Are we talking about this project?
https://github.com/DeanWay/fastapi-versioning
from prometheus-fastapi-instrumentator.
Hi,
I found a quick workaround, since fastpi-versioning mounts an api for each version, you can attach the metrics to each mounted api seperatly:
app = VersionedFastAPI(...) # add Prometheus Metrics for route in app.routes: if isinstance(route, starlette.routing.Mount): Instrumentator().instrument(route.app).expose(route.app)
This of course generates one metrics endpoint per versioned-api (localhost:XXXX/v1/metrics), but its better than nothing.
This was very helpful, I was still getting an error because some of the default metrics shared names between different versions, so I changed the default metrics names before instrumenting, like so:
for route in app.routes:
if isinstance(route, starlette.routing.Mount):
instr = Instrumentator()
default_metrics = metrics.default(
metric_namespace=route.path.strip("/"),
)
instr.add(default_metrics)
instr.instrument(route.app).expose(route.app)
Just putting it here for reference. :)
from prometheus-fastapi-instrumentator.
I'm having the same problem - any solution yet? @trallnag
from prometheus-fastapi-instrumentator.
Not to answer for the op, but yes I think that is the github for the fastapi-version project
from prometheus-fastapi-instrumentator.
Hi,
I found a quick workaround, since fastpi-versioning mounts an api for each version, you can attach the metrics to each mounted api seperatly:
app = VersionedFastAPI(...)
# add Prometheus Metrics
for route in app.routes:
if isinstance(route, starlette.routing.Mount):
Instrumentator().instrument(route.app).expose(route.app)
This of course generates one metrics endpoint per versioned-api (localhost:XXXX/v1/metrics), but its better than nothing.
from prometheus-fastapi-instrumentator.
Related Issues (20)
- Not full metrics list HOT 1
- FastAPI app with many routers HOT 3
- Instrumentator middleware includes BackgroundTask duration in http request latency metrics HOT 1
- How to properly initialize modified_status when throwing exception
- Default metrics are gone when adding a custom instrumentation HOT 3
- Allow for custom dynamic labels on default metrics HOT 1
- Remove FastAPI in favor of Starlette HOT 3
- Upgrade fastapi version to support >100.0 HOT 5
- Metrics disappear when setting PROMETHEUS_MULTIPROC_DIR HOT 1
- Security Concern HOT 3
- Inprogress metrics ignore namespace and subsystem
- Setting the `PROMETHEUS_MULTIPROC_DIR` is not mentioned in the docs
- Instrument latency without streaming duration HOT 1
- FastAPI ^0.110 and on_event HOT 2
- Incorrect http_requests_total with multiple Middleware HOT 3
- trio / anyio support
- [TypeError("'ObjectId' object is not iterable"), TypeError('vars() argument must have __dict__ attribute')] HOT 1
- Any reason why the very similar function `reset_prometheus` is copy&pasted multiple times in your tests? HOT 1
- What are untemplated routes/requests?
- Inheritance in metric_namespace and metric_subsystem HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prometheus-fastapi-instrumentator.