Creating Dashboards with .NET 8’s New Metrics!
Вставка
- Опубліковано 23 лип 2023
- Check out my courses: dometrain.com
Become a Patreon and get source code access: / nickchapsas
Hello everybody, I'm Nick, and in this video, I will show you how you can use the new built-in metrics of .NET 8, expose them and scrape them using Prometheus as well as build dashboards with them using Grafana.
Workshops: bit.ly/nickworkshops
Don't forget to comment, like and subscribe :)
Social Media:
Follow me on GitHub: bit.ly/ChapsasGitHub
Follow me on Twitter: bit.ly/ChapsasTwitter
Connect on LinkedIn: bit.ly/ChapsasLinkedIn
Keep coding merch: keepcoding.shop
#csharp #dotnet
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 😄
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.
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! ^^
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.
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 :)
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!
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 is an excellent development. Great video! Yes, definitely do an 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! 🙂
I want a *deep* dive into this. Been tring to figure out how to do it for a while. Thank you Nick
Would be great to have more grafana videos 😍
This looks amazing!! - more please!
This is a superb stuff. Would love to have more content on Prometheus and Grafana with .NET Apps.
Really interesting. Thanks Nick!
Looks great Nick - Love to see Grafana video too!
Prometheus and Grafana are very useful tools, Loki too. Good content as always Nick.
Oh my godness ! We need it ! Please ! Thank you so much for this content Nick !
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.
Good content Nick. I would love to see the detailed video on Grafana.
Great video! Would love more Prometheus and Grafana content.
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.
This is a interesting topic, I might create whole a pipeline behavior to my framework from this. Thanks Nick!
Hi, Nick great content as always! Could you please do more video about telemetry and other devops-related topic? Thanks.
yes want grafana videos, keep up the good work
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!
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
Thanks for sharing this.
Yes please for Grafana, metrics arc videos!
I want a grafana video!. Good content as always!!!
Yes Grafana videos. Thanks
Yes more Grafana videos of course!
Great video as always. It would be nice if you could give us an example how to build up kestrel with prometheus and grafana :)
Looks great. Please make a video about Grafana and Dashboards in depth
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?
A grafana video would be great! Amazing video
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)
Hello Nick, Thank you for your effort to do that wonderful UA-cam videos. Please, it's gonna be really useful if you create a video explaining grafana and prometheus. Thank you
+1 for a Prometheus / Grafan video! :D
Would love to see Grafana and Prometheus video!
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.
I would love to see your overview of OpenTelemetry in general!
Yes! Please create a YT video that goes deep in Grafana!
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
I was working on Grafana today. So I'd like to see a video about it.
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
Graphana video would rock!
Would love a video on Grafana
Cool stuff! 😎
Is there a way to ignore specific endpoints from metric tracking? (ex: healthchecks, metric scraping, etc.)
How about a full course on dometrain for grafana-prometheus and advanced metrics :)
awesome
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
How to use metering and Grafana to monitor API services would be an interesting course in Dometrain
Yes please make the more depth video its look very promising,, thank u for shating
Another amazing job by Microsoft and the dotnet team.
We need Grafana video!
Please, do a Graphana video! ❤️
Where are the metrics stored until Prometheus takes them?
Please Make a Dedicated Grafana Video. This is quite interesting, indeed.
Is this is a replacement for AppInsights telemetry SDK? Would love to see a video about integrating this with azure monitor
This is really nice, but I wonder where does dotnet-monitor lands with this.
Looks promising, but I wonder how this might be used in a situation when the API is replicated in Swarm or k8
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?
Nick is there a log exporter for filebeats?
Awesome ideia to not share the code or even a repository! Thanks!
Yes please! Grafana Grafana Grafana, and maybe how to create metrics
Is decorater pattern a better place to write metrics logic?
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.
can it measure excecution time of a specific function ?
Please separate video for Grafana
Hi Nick. Have you stopped using minimal api? From your latest videos I only see you using controllers?
I want grana video!
hello is this the same as the modern day aspire dashboard
We want Grafana video 👋
Yes.
please do grafana video
What is the difference between app.UseOpenTelemetryPrometheusScrapingEndpoint() and app.MapPrometheusScrapingEndpoint() calls?
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
Now this sounds interesting
maybe graphana is on the way?
Ahhh here we go. Danka
So we don't need new relic anymore? :)
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
Great tool to use, thank you for sharing
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);