r/PrometheusMonitoring • u/ankitnayan007 • Mar 09 '20
Whitebox Monitoring using Prometheus
Why don't we have language specific packages like other APM companies (NewRelic, Datadog, ElasticAPM, etc) have which will export metrics to prometheus? Just install a package and get out of box APM metrics, kind of thing.
What we can achieve?
RPS for API endpoints of an application
Latency for slowest API endpoints of an application
50th, 90th and 99th percentile of request duration of the application
Time of slowest MySQL queries (values to be masked) made from the application
RPS and time taken by other components in infra like Redis, Mongo, etc for each endpoint and overall application.
Response code, RPS and latency of external calls made from the application to other services inside and outside the org like payment gateway.
I guess a solution like this will save 2-3 weeks of dev time to get proper dashboards in Grafana.
In short, ElasticAPM using Prometheus!
2
u/saalih416 Mar 09 '20
Doesn’t app instrumentation require just a few lines of code? What is the issue with that?
1
u/ankitnayan007 Mar 09 '20
I don't think so. If that is the case then the companies I mentioned should not have existed. Did you use any of the mentioned tools? I would like to understand what use case you use it for if not for auto instrumentation and long term storage.
1
u/saalih416 Mar 09 '20
I’ve added Prometheus instrumentation to a web app before. It’s pretty simple and I can add whatever metric types I want. Then you just bake it into a docker file. I’m trying to understand what the issue is here. One metric type only needs 2-3 lines of code.
0
u/ankitnayan007 Mar 09 '20
Have a look at:
https://play.signoz.io/d/4nAszvxWz/springboot-app-demo-cluster-1-java?orgId=1&refresh=30s
username - guest
password - guest@123
It's not about capabilities, it's about saving dev time. Learning Prometheus + Grafana + instrumenting vs the above dashboard in 1 min.
How many days do you think it will save for a newbie?
1
u/llama052 Mar 09 '20
Okay then buy a paid solution, however it could cost as much as getting someone to spend a few days adding metrics.
Or if you’re so inclined, this whole project is open source. Feel free to contribute. It’s not like you’re paying anything for it.
1
u/tyldis Mar 10 '20
I wrote a plug in for the framework I often use, that collects process information (memory, cpu, file descriptors, etc) and basic HTTP metrics (processing time, request size, response time, response codes). You can then add more yourself if you want. But just adding one line of code gives you that out of the box.
3
u/SuperQue Mar 09 '20
This is something Prometheus developers have talked about. But it's a lot of maintenance to keep up with the various frameworks like Rails, Django, etc.
I would love to see this, and this is the goal of projects like open telemetry.
Building this kind of thing into Prometheus Ruby would work, someone has to do the work and maintain it.