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

КОМЕНТАРІ • 113

  • @julienraillard3567
    @julienraillard3567 11 місяців тому +175

    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 :)

  • @thabisom
    @thabisom 11 місяців тому +29

    Hi @Nick. Yes, please do a separate video for configuring Grafana from scratch. Thank you for all your hard work.

    • @Dominik-K
      @Dominik-K 11 місяців тому +2

      I would love to see more about Grafana and Prometheus too

  • @PanMaciek
    @PanMaciek 11 місяців тому +11

    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 😄

  • @IgorStojkovic
    @IgorStojkovic 11 місяців тому +32

    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.

    • @ahmedabd-a6
      @ahmedabd-a6 10 місяців тому +2

      I was able to use basic auth to secure the /metrics endpoint

    • @Daniel15au
      @Daniel15au 9 місяців тому +2

      It's a regular HTTP endpoint so any middleware for protection of endpoints could be used.

  • @MrVarsium
    @MrVarsium 11 місяців тому +12

    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! ^^

  • @xDan2710
    @xDan2710 11 місяців тому +2

    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.

  • @poteb
    @poteb 11 місяців тому +6

    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 :)

  • @dauchande
    @dauchande 10 місяців тому +1

    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.

  • @SupBoiii
    @SupBoiii 11 місяців тому +3

    More Prometheus and Grafana video please, this is a great one!

  • @mrtac_
    @mrtac_ 11 місяців тому

    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!

  • @benlewies8828
    @benlewies8828 11 місяців тому +1

    This is an excellent development. Great video! Yes, definitely do an in-depth video!

  • @danclarkeuk
    @danclarkeuk 11 місяців тому +1

    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! 🙂

  • @systemslave510
    @systemslave510 11 місяців тому

    I want a *deep* dive into this. Been tring to figure out how to do it for a while. Thank you Nick

  • @danielgil3825
    @danielgil3825 11 місяців тому +9

    Would be great to have more grafana videos 😍

  • @michaelweaver4439
    @michaelweaver4439 11 місяців тому

    This looks amazing!! - more please!

  • @milans0713
    @milans0713 11 місяців тому +1

    This is a superb stuff. Would love to have more content on Prometheus and Grafana with .NET Apps.

  • @xavier.xiques
    @xavier.xiques 11 місяців тому

    Really interesting. Thanks Nick!

  • @gholdridge
    @gholdridge 11 місяців тому

    Looks great Nick - Love to see Grafana video too!

  • @fifty-plus
    @fifty-plus 11 місяців тому +9

    Prometheus and Grafana are very useful tools, Loki too. Good content as always Nick.

  • @EzequielRegaldo
    @EzequielRegaldo 11 місяців тому

    Oh my godness ! We need it ! Please ! Thank you so much for this content Nick !

  • @StephenYeadon
    @StephenYeadon 11 місяців тому

    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.

  • @ikenwakochukwudi9395
    @ikenwakochukwudi9395 11 місяців тому +1

    Good content Nick. I would love to see the detailed video on Grafana.

  • @GiovanniOrlandoi7
    @GiovanniOrlandoi7 11 місяців тому

    Great video! Would love more Prometheus and Grafana content.

  • @tanglesites
    @tanglesites 11 місяців тому

    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.

  • @hernanar3647
    @hernanar3647 11 місяців тому

    This is a interesting topic, I might create whole a pipeline behavior to my framework from this. Thanks Nick!

  • @yoanashih761
    @yoanashih761 11 місяців тому +2

    Hi, Nick great content as always! Could you please do more video about telemetry and other devops-related topic? Thanks.

  • @sanampakuwal
    @sanampakuwal 11 місяців тому +2

    yes want grafana videos, keep up the good work

  • @Subjective0
    @Subjective0 11 місяців тому

    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!

  • @AndyMehalick
    @AndyMehalick 10 місяців тому

    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

  • @THILLAIRAJA24
    @THILLAIRAJA24 11 місяців тому

    Thanks for sharing this.

  • @portlyoldman
    @portlyoldman 11 місяців тому +1

    Yes please for Grafana, metrics arc videos!

  • @acmesoft
    @acmesoft 11 місяців тому

    I want a grafana video!. Good content as always!!!

  • @JunaidBedford
    @JunaidBedford 11 місяців тому

    Yes Grafana videos. Thanks

  • @nove1398
    @nove1398 11 місяців тому

    Yes more Grafana videos of course!

  • @qniken8770
    @qniken8770 11 місяців тому

    Great video as always. It would be nice if you could give us an example how to build up kestrel with prometheus and grafana :)

  • @antonmartyniuk
    @antonmartyniuk 11 місяців тому

    Looks great. Please make a video about Grafana and Dashboards in depth

  • @simeonnov
    @simeonnov 11 місяців тому +3

    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?

  • @miguelcervantes629
    @miguelcervantes629 11 місяців тому

    A grafana video would be great! Amazing video

  • @r-naotwo6290
    @r-naotwo6290 11 місяців тому

    Yes! A video on prometheus and grafana pleeeeeaaase!

  • @marchenkoalexandr
    @marchenkoalexandr 11 місяців тому +2

    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)

  • @georgekopadze791
    @georgekopadze791 5 місяців тому

    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

  • @Yupmoh
    @Yupmoh 11 місяців тому +1

    +1 for a Prometheus / Grafan video! :D

  • @jamesjanse3731
    @jamesjanse3731 11 місяців тому

    Would love to see Grafana and Prometheus video!

  • @devmarkmonster
    @devmarkmonster 11 місяців тому

    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.

  • @samuelantony3934
    @samuelantony3934 11 місяців тому

    Really interesting, please explain about the setup of prometheus.

  • @jackkendall6420
    @jackkendall6420 11 місяців тому

    I would love to see your overview of OpenTelemetry in general!

  • @vamvdotnet
    @vamvdotnet 11 місяців тому

    Yes! Please create a YT video that goes deep in Grafana!

  • @youssefwael8
    @youssefwael8 11 місяців тому +1

    Please make a video on exporting to OpenTelemetry Collector instead of Prometheus directly. Thank you and Keep Coding. 😁

    • @marchenkoalexandr
      @marchenkoalexandr 11 місяців тому +1

      You do not want separate them, even more you want Prometheus for automatic metrics from traces

  • @markhenderson5283
    @markhenderson5283 11 місяців тому

    I was working on Grafana today. So I'd like to see a video about it.

  • @sikor02
    @sikor02 11 місяців тому +3

    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.

  • @JustNightmare
    @JustNightmare 10 місяців тому

    Graphana video would rock!

  • @07309415
    @07309415 11 місяців тому

    Would love a video on Grafana

  • @rmichaeldeutsch
    @rmichaeldeutsch 11 місяців тому +1

    Cool stuff! 😎
    Is there a way to ignore specific endpoints from metric tracking? (ex: healthchecks, metric scraping, etc.)

  • @evanboltsis
    @evanboltsis 11 місяців тому

    How about a full course on dometrain for grafana-prometheus and advanced metrics :)

  • @stoyangrigorov5634
    @stoyangrigorov5634 11 місяців тому

    awesome

  • @Daniel15au
    @Daniel15au 9 місяців тому

    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.

  • @nocgod
    @nocgod 11 місяців тому

    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

  • @alainl8069
    @alainl8069 11 місяців тому

    How to use metering and Grafana to monitor API services would be an interesting course in Dometrain

  • @ghak992
    @ghak992 11 місяців тому

    Yes please make the more depth video its look very promising,, thank u for shating

  • @obinnaokafor6252
    @obinnaokafor6252 11 місяців тому

    Another amazing job by Microsoft and the dotnet team.

  • @VladyslavHorbachov
    @VladyslavHorbachov 11 місяців тому

    We need Grafana video!

  • @cezarpimentel
    @cezarpimentel 11 місяців тому

    Please, do a Graphana video! ❤️

  • @goremukin1
    @goremukin1 11 місяців тому +1

    Where are the metrics stored until Prometheus takes them?

  • @williameisenman5538
    @williameisenman5538 11 місяців тому

    Please Make a Dedicated Grafana Video. This is quite interesting, indeed.

  • @ytvandre
    @ytvandre 11 місяців тому

    Is this is a replacement for AppInsights telemetry SDK? Would love to see a video about integrating this with azure monitor

  • @nwr0x
    @nwr0x 11 місяців тому

    This is really nice, but I wonder where does dotnet-monitor lands with this.

  • @IgorRovitsky
    @IgorRovitsky 11 місяців тому

    Looks promising, but I wonder how this might be used in a situation when the API is replicated in Swarm or k8

  • @DasturlashniOrganamiz
    @DasturlashniOrganamiz 11 місяців тому

    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?

  • @dvanrooyen1434
    @dvanrooyen1434 11 місяців тому

    Nick is there a log exporter for filebeats?

  • @bobmarley8334
    @bobmarley8334 5 місяців тому

    Awesome ideia to not share the code or even a repository! Thanks!

  • @zakariabenmassaoud
    @zakariabenmassaoud 11 місяців тому

    Yes please! Grafana Grafana Grafana, and maybe how to create metrics

  • @thegautamnayak
    @thegautamnayak 7 місяців тому

    Is decorater pattern a better place to write metrics logic?

  • @Tymonello
    @Tymonello 8 місяців тому

    How OpenTelemetry compares to AppMetrics? Is it better / newer /more features, or basically the same thing, but by other people?

  • @ClAddict
    @ClAddict 11 місяців тому

    Why was the meter created within the api call? Seems like that would new and dispose the metric way more frequently than it should.

  • @R0ckyRocket
    @R0ckyRocket 11 місяців тому

    can it measure excecution time of a specific function ?

  • @Levonfly
    @Levonfly 11 місяців тому

    Please separate video for Grafana

  • @StigBrembo
    @StigBrembo 11 місяців тому

    Hi Nick. Have you stopped using minimal api? From your latest videos I only see you using controllers?

  • @teodorchirileanu
    @teodorchirileanu 11 місяців тому

    I want grana video!

  • @musigahstallone
    @musigahstallone 4 місяці тому

    hello is this the same as the modern day aspire dashboard

  • @orthodox-4-ever
    @orthodox-4-ever 11 місяців тому

    We want Grafana video 👋

  • @StephenMoreira
    @StephenMoreira 11 місяців тому

    Yes.

  • @mhDuke
    @mhDuke 10 місяців тому

    please do grafana video

  • @VladimirKhil
    @VladimirKhil 11 місяців тому

    What is the difference between app.UseOpenTelemetryPrometheusScrapingEndpoint() and app.MapPrometheusScrapingEndpoint() calls?

  • @RichardBeales
    @RichardBeales 11 місяців тому

    I think the meter / gauge instances are supposed to be re-used, we've seen problems with creating them on every request.

    • @EspenSkaufel
      @EspenSkaufel 8 місяців тому

      They are, it is implemented in the DefaultMeterFactory

  • @ryanzwe
    @ryanzwe 11 місяців тому

    Now this sounds interesting

  • @tuberklz
    @tuberklz 4 місяці тому

    maybe graphana is on the way?

  • @leadscollector
    @leadscollector 11 місяців тому +1

    Ahhh here we go. Danka

  • @JonWoo
    @JonWoo 11 місяців тому

    So we don't need new relic anymore? :)

  • @saidyeter
    @saidyeter 11 місяців тому

    nice haircut

  •  11 місяців тому

    throw new Exception("Shit hit the fan");
    Good thing I'm not a fan then 😬

  • @UnbiasedThamizhan
    @UnbiasedThamizhan Місяць тому

    You are good but very fast please do it with patience

  • @E_G_
    @E_G_ 11 місяців тому

    Great tool to use, thank you for sharing

  • @soonhongng7037
    @soonhongng7037 Місяць тому

    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);