Sounds really interesting, would really love to have a video from you explaining how to setup a prometheus and grafana instances in a real-world use case :)
Dashboards are tricky, having concise and readable dashboards is what I want in my life, that video would be super useful to get inspired 😄Who does not want to see numbers going up/down 😄
Nice to see Grafana and Prometheus get the love they so richly deserve. Developers need to instrument their code more so they actually know what it's doing in Production.
You can get full stats on all your endpoints without adding anything to each method. This way you won't forget to add them manually. Adding a few extra nugets and you can do this: services.AddOpenTelemetry().WithMetrics(m => m.AddAspNetCoreInstrumentation().AddHttpClientInstrumentation().AddRuntimeInstrumentation().AddProcessInstrumentation().AddPrometheusExporter() This will also give you metrics on the hosting environment. Brilliant stuff. We use Grafana a lot at work, but please do make a video about it, I might learn something new :)
The key thing missing in all these "add metrics" tutorials is how to secure the /metrics endpoint so it is not available to users of your API. There are no good defaults or explanations on that and it can lead to security leaks.
This .NET 8 built-in feature in combination with Prometheus & Grafana is incredible helpful for systems operation & observability. Thank you Nick for sharing this and also providing the Grafana dashboards!
This came right at the right time. I am in the process of building some Grafana dashboards with custom metrics for some of my applications, so this definitely will come in handy! I would definitely be interested in a more in-depth video.
Very nice. I'm already using Grafana and Prometheus, so will be super-easy to take advantage of these new metrics! The IMeterFactory is a really nice addition too! 🙂
Whenever you ask: "would you like to see a separate video on X?" the answer is always YES! Anything related to OpenTelemetry would be awesome, Prometheus and Grafana included
This is interesting, thank you. I would love it if you made a video about ways to do reporting in .NET. Something similar to crystal reports but obviously the modern way of doing things. Are there any such tools?
Hello Nick, Thank you for your effort to do that wonderful RUclips videos. Please, it's gonna be really useful if you create a video explaining grafana and prometheus. Thank you
Great content as always. A video on Graphana and Prometheus would be amazing. Possibly a video on something like Dapr would be good too and how you might incorporate the metrics with the sidecar metrics generated by dapr.
That looks interesting. Now I want to build my own dashboards. You could put that into its own microservice on an api and use event sourcing to not only record but have the visual to aid your system as well. Then you can record how your system is communicating with eachother. I might incroporate this into my Capstone. Great video Nick, as usual.
You definitely want take a look at OpenTelemetry Operator with its Autoinstrumentation, it will do the same and even more (traces) without the need to touch the app at all. (The only downside it is totally not ready yet for realistic usage, but is really promising)
Interesting Video. The problem I always face is the amount of metrics that are shared by default. Same as logging, configuring it to right levels is very important. I’m afraid that the default metrics cause for GBs of data very easily. Another thing I could use some guidance on is the combination of logging, traces and metrics with Open Telemetry and what kind of visualization tool to use that supports all of them.
I have migrated my OSS project (called CashOverflow) to .NET 8. Live metrics is not supported yet. If I setup what you taught in my project, is it going to smoothly work in my prod as well? Or is there any additional setup needed for azure service app?
When I saw _meterFactory.Create and meter.CreateCounter called whenever there's a GET request, I thought it was a mistake and you will always get 1 in Grafana in best case. Just by reading the code it looks like you create a new meter/instrument every time.
I'd recommend VictoriaMetrics instead of Prometheus. It's fully Prometheus-compatible (supports Prometheus endpoints and the Prometheus integration in Grafana), but the storage format is more efficient.
the last point we have to solve is the redundant requirement to register the Meter by string in the exporter and create it in your code through a factory. its a cludge imho
In .NET 8, their latest package has changed DI methods its no longer, app.MapPrometheusScrapingEndpoint(). rather, its either of following: 1. app.UseOpenTelemetryPrometheusScrapingEndpoint(); 2. app.UseOpenTelemetryPrometheusScrapingEndpoint( context => context.Request.Path == "/internal/metrics" && context.Connection.LocalPort == 5067);
Sounds really interesting, would really love to have a video from you explaining how to setup a prometheus and grafana instances in a real-world use case :)
I second this
I third this!
I fourth this
+1
+1
Hi @Nick. Yes, please do a separate video for configuring Grafana from scratch. Thank you for all your hard work.
I would love to see more about Grafana and Prometheus too
Dashboards are tricky, having concise and readable dashboards is what I want in my life, that video would be super useful to get inspired 😄Who does not want to see numbers going up/down 😄
yes please, another nice video! and i'm glad that metrics are getting a boost, i would love to see a prometheus/grafana video next! ^^
Nice to see Grafana and Prometheus get the love they so richly deserve. Developers need to instrument their code more so they actually know what it's doing in Production.
More Prometheus and Grafana video please, this is a great one!
You can get full stats on all your endpoints without adding anything to each method. This way you won't forget to add them manually.
Adding a few extra nugets and you can do this:
services.AddOpenTelemetry().WithMetrics(m => m.AddAspNetCoreInstrumentation().AddHttpClientInstrumentation().AddRuntimeInstrumentation().AddProcessInstrumentation().AddPrometheusExporter()
This will also give you metrics on the hosting environment. Brilliant stuff.
We use Grafana a lot at work, but please do make a video about it, I might learn something new :)
I want a *deep* dive into this. Been tring to figure out how to do it for a while. Thank you Nick
The key thing missing in all these "add metrics" tutorials is how to secure the /metrics endpoint so it is not available to users of your API. There are no good defaults or explanations on that and it can lead to security leaks.
I was able to use basic auth to secure the /metrics endpoint
It's a regular HTTP endpoint so any middleware for protection of endpoints could be used.
This .NET 8 built-in feature in combination with Prometheus & Grafana is incredible helpful for systems operation & observability. Thank you Nick for sharing this and also providing the Grafana dashboards!
Would be great to have more grafana videos 😍
This came right at the right time. I am in the process of building some Grafana dashboards with custom metrics for some of my applications, so this definitely will come in handy!
I would definitely be interested in a more in-depth video.
Very nice. I'm already using Grafana and Prometheus, so will be super-easy to take advantage of these new metrics! The IMeterFactory is a really nice addition too! 🙂
Good content Nick. I would love to see the detailed video on Grafana.
This is an excellent development. Great video! Yes, definitely do an in-depth video!
This is a superb stuff. Would love to have more content on Prometheus and Grafana with .NET Apps.
Prometheus and Grafana are very useful tools, Loki too. Good content as always Nick.
Hi, Nick great content as always! Could you please do more video about telemetry and other devops-related topic? Thanks.
Whenever you ask: "would you like to see a separate video on X?" the answer is always YES! Anything related to OpenTelemetry would be awesome, Prometheus and Grafana included
This is interesting, thank you. I would love it if you made a video about ways to do reporting in .NET. Something similar to crystal reports but obviously the modern way of doing things. Are there any such tools?
I had a super hard time trying to set it up for a school project. I would really love to learn how I actually should have done it!
Oh my godness ! We need it ! Please ! Thank you so much for this content Nick !
Yes please for Grafana, metrics arc videos!
Hello Nick, Thank you for your effort to do that wonderful RUclips videos. Please, it's gonna be really useful if you create a video explaining grafana and prometheus. Thank you
Great content as always. A video on Graphana and Prometheus would be amazing. Possibly a video on something like Dapr would be good too and how you might incorporate the metrics with the sidecar metrics generated by dapr.
Looks great. Please make a video about Grafana and Dashboards in depth
yes want grafana videos, keep up the good work
This looks amazing!! - more please!
Great video! Would love more Prometheus and Grafana content.
Cool stuff! 😎
Is there a way to ignore specific endpoints from metric tracking? (ex: healthchecks, metric scraping, etc.)
Looks great Nick - Love to see Grafana video too!
Would love to see Grafana and Prometheus video!
I want a grafana video!. Good content as always!!!
That looks interesting. Now I want to build my own dashboards. You could put that into its own microservice on an api and use event sourcing to not only record but have the visual to aid your system as well. Then you can record how your system is communicating with eachother. I might incroporate this into my Capstone. Great video Nick, as usual.
Yes! A video on prometheus and grafana pleeeeeaaase!
You definitely want take a look at OpenTelemetry Operator with its Autoinstrumentation, it will do the same and even more (traces) without the need to touch the app at all. (The only downside it is totally not ready yet for realistic usage, but is really promising)
Yes more Grafana videos of course!
Yes Grafana videos. Thanks
A grafana video would be great! Amazing video
Really interesting. Thanks Nick!
Interesting Video. The problem I always face is the amount of metrics that are shared by default. Same as logging, configuring it to right levels is very important. I’m afraid that the default metrics cause for GBs of data very easily.
Another thing I could use some guidance on is the combination of logging, traces and metrics with Open Telemetry and what kind of visualization tool to use that supports all of them.
Really interesting, please explain about the setup of prometheus.
Great video as always. It would be nice if you could give us an example how to build up kestrel with prometheus and grafana :)
+1 for a Prometheus / Grafan video! :D
This is a interesting topic, I might create whole a pipeline behavior to my framework from this. Thanks Nick!
I was working on Grafana today. So I'd like to see a video about it.
Thanks for sharing this.
I would love to see your overview of OpenTelemetry in general!
Would love a video on Grafana
Yes! Please create a YT video that goes deep in Grafana!
Graphana video would rock!
I have migrated my OSS project (called CashOverflow) to .NET 8. Live metrics is not supported yet. If I setup what you taught in my project, is it going to smoothly work in my prod as well? Or is there any additional setup needed for azure service app?
When I saw _meterFactory.Create and meter.CreateCounter called whenever there's a GET request, I thought it was a mistake and you will always get 1 in Grafana in best case. Just by reading the code it looks like you create a new meter/instrument every time.
Indeed
Please make a video on exporting to OpenTelemetry Collector instead of Prometheus directly. Thank you and Keep Coding. 😁
You do not want separate them, even more you want Prometheus for automatic metrics from traces
Hi Nick. Have you stopped using minimal api? From your latest videos I only see you using controllers?
How about a full course on dometrain for grafana-prometheus and advanced metrics :)
Is this is a replacement for AppInsights telemetry SDK? Would love to see a video about integrating this with azure monitor
I'd recommend VictoriaMetrics instead of Prometheus. It's fully Prometheus-compatible (supports Prometheus endpoints and the Prometheus integration in Grafana), but the storage format is more efficient.
How OpenTelemetry compares to AppMetrics? Is it better / newer /more features, or basically the same thing, but by other people?
Why was the meter created within the api call? Seems like that would new and dispose the metric way more frequently than it should.
How to use metering and Grafana to monitor API services would be an interesting course in Dometrain
Is decorater pattern a better place to write metrics logic?
Looks promising, but I wonder how this might be used in a situation when the API is replicated in Swarm or k8
hello is this the same as the modern day aspire dashboard
We need Grafana video!
This is really nice, but I wonder where does dotnet-monitor lands with this.
Yes please make the more depth video its look very promising,, thank u for shating
Nick is there a log exporter for filebeats?
Another amazing job by Microsoft and the dotnet team.
Please Make a Dedicated Grafana Video. This is quite interesting, indeed.
the last point we have to solve is the redundant requirement to register the Meter by string in the exporter and create it in your code through a factory. its a cludge imho
Great tool to use, thank you for sharing
where can I find the source code?
What is the difference between app.UseOpenTelemetryPrometheusScrapingEndpoint() and app.MapPrometheusScrapingEndpoint() calls?
can it measure excecution time of a specific function ?
Where are the metrics stored until Prometheus takes them?
I think the meter / gauge instances are supposed to be re-used, we've seen problems with creating them on every request.
They are, it is implemented in the DefaultMeterFactory
Yes please! Grafana Grafana Grafana, and maybe how to create metrics
So we don't need new relic anymore? :)
Awesome ideia to not share the code or even a repository! Thanks!
Please separate video for Grafana
please do grafana video
awesome
We want Grafana video 👋
maybe graphana is on the way?
I want grana video!
Ahhh here we go. Danka
Yes.
Now this sounds interesting
nice haircut
throw new Exception("Shit hit the fan");
Good thing I'm not a fan then 😬
You are good but very fast please do it with patience
Just set your playback speed to .75
In .NET 8, their latest package has changed DI methods
its no longer, app.MapPrometheusScrapingEndpoint().
rather, its either of following:
1. app.UseOpenTelemetryPrometheusScrapingEndpoint();
2. app.UseOpenTelemetryPrometheusScrapingEndpoint(
context => context.Request.Path == "/internal/metrics"
&& context.Connection.LocalPort == 5067);