Measure Your Application’s Performance in .NET

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2023
  • Use code CLEAN20 and get 20% off the brand new "Deep Dive in Clean Architecture" course on Dometrain: dometrain.com/course/deep-div...
    Become a Patreon and get special perks: / nickchapsas
    Hello everybody, I'm Nick, and in this video, I will introduce you to the new metric collection tooling added in .NET 8 with IMeterFactory at the center of it all.
    Workshops: bit.ly/nickworkshops
    Don't forget to comment, like and subscribe :)
    Social Media:
    Follow me on GitHub: github.com/Elfocrash
    Follow me on Twitter: / nickchapsas
    Connect on LinkedIn: / nick-chapsas
    Keep coding merch: keepcoding.shop
    #csharp #dotnet

ความคิดเห็น • 52

  • @ikenwakochukwudi9395
    @ikenwakochukwudi9395 6 หลายเดือนก่อน +69

    Nick, you already owe us a video on building visualisation dashboards with grafana.
    I guess this is the call to action you need 😂

    • @SixOThree
      @SixOThree 5 หลายเดือนก่อน

      I could absolutely use a few good pointers.

  • @Yupmoh
    @Yupmoh 6 หลายเดือนก่อน +2

    Loving your videos Nick! This is great!

  • @maar0en
    @maar0en 6 หลายเดือนก่อน +7

    I would be interested in a video explaining how to visualize a histogram in Kibana or grafana using opentelemetry data, this feels to be quite a challenge.

  • @MaThMaTa1000
    @MaThMaTa1000 5 หลายเดือนก่อน +2

    It's very easy from this video to export the metrics to Prometheus and visualise them in Grafana. It's a video asking to be made

  • @Artmageddon
    @Artmageddon 6 หลายเดือนก่อน +1

    I've been waiting for something like for this a long time, can't wait to try it! Also, Merry Christmas!

  • @dave7038
    @dave7038 5 หลายเดือนก่อน +3

    I like this, but I'm not clear on how it works for a production deployment. Where are the metrics stored, how does the data get there, how can I monitor multiple installations (like if my suite of apps is installed at 100 different unrelated clients how do I centralize monitoring so I can see performance for all of my customers, etc.), is this chained to cloud deployments (most of my clients host my app suite on-prem with VMs), etc.
    Essentially, Aspire looks interesting, but it's not yet clear to me how to approach it.

  • @passionforsciencel5180
    @passionforsciencel5180 6 หลายเดือนก่อน +3

    Waiting for empty builder benchmark 😄 , Good Luck ❤

  • @inzyster
    @inzyster 6 หลายเดือนก่อน

    My man just explained in a few minutes what I was struggling to get out of coworkers with otel experience for yonks 😅

  • @jonathandaugaard4990
    @jonathandaugaard4990 6 หลายเดือนก่อน

    Great video!
    You are creating a new IDisposable object for the histogram. When will it be a memory performance issue and how can it be handled?
    Comparing this to your videos of logging and incorrect using of string interpolation

  • @igorsolomatov4743
    @igorsolomatov4743 6 หลายเดือนก่อน +2

    You could use the same disposable pattern in counter (increase in dispose function). And now your code will be clearer without try-finally.

  • @h.m.6228
    @h.m.6228 6 หลายเดือนก่อน +1

    You're corret. But that's so nice.
    Merry Christmas! 🎄⛄❄️

  • @MarkCastle
    @MarkCastle 6 หลายเดือนก่อน +1

    Would love to see alternatives to aspire for this

  • @TrueTaladan
    @TrueTaladan 5 หลายเดือนก่อน

    Thanks for your great videos. Can you perhaps also make one with Keyvault and database in connection with Aspire?

  • @amnesia3490
    @amnesia3490 6 หลายเดือนก่อน

    can't be sure if this built-in metric factory can replace prometheus-net's in-memory metric exporter or can be used together

  • @Thorarin
    @Thorarin 5 หลายเดือนก่อน

    I'm not yet using this API, but I've been using the AppMetrics NuGet packages which are very similar. I'm using it to measure the performance of some background processes and then using those numbers in the application's health checks to have some alarm bells go off in case of degraded performance.

  • @garcipat
    @garcipat 6 หลายเดือนก่อน

    Does open telemtry allows store the values in certain services?

  • @douglashampshire6845
    @douglashampshire6845 6 หลายเดือนก่อน +9

    For Azure users it might be nice to show Application Insite Intergration

    • @Assgier
      @Assgier 5 หลายเดือนก่อน

      Probably not going to happen as Nick is sponsored by Amazon afaik.

  • @prattipatileelakrishna2758
    @prattipatileelakrishna2758 6 หลายเดือนก่อน

    I would be interested in a video about transactions, concurrency and locks

  • @JonathanPeel
    @JonathanPeel 6 หลายเดือนก่อน

    Quick question, is there ever a chance that (even if not now, but maybe by the time we have .Net 9), the running code will try optimizing itself.
    If it is waiting for the request, and it knows the discarded var is never used below, it might want to GC or Dispose is early.
    Is there a way to know the lifetime of the disposed method will always be the full runtime of the method?

    • @LeMustache
      @LeMustache 5 หลายเดือนก่อน

      That behaviour is guaranteed to stay how it is. The point of IDisposable is to provide a deterministic point when your resources, whatever they may be, get disposed of.
      Introducing any "optimizationa" like that would defeat the point of Dispose since it'd no longer be deterministic. Not to mention it'd be a giant breaking change, which Microsoft generally avoids.

  • @ssushovan
    @ssushovan 6 หลายเดือนก่อน

    Please make a video on opentelemetry & grafana.

  • @TheSaintsVEVO
    @TheSaintsVEVO 6 หลายเดือนก่อน

    The link isn’t in the description

  • @wizandoz
    @wizandoz 6 หลายเดือนก่อน

    Where is that metric data stored exactly?

  • @phantomrt777
    @phantomrt777 6 หลายเดือนก่อน

    Hello, can we calculate requests by user IP, header etc. Instead of total requests? So we can see how many requests per api user and by method based?Also , use it for distributed rate limiter. İnstead of using redis? Because current rate limiter does not allow distributed limitting.

    • @EdubSi
      @EdubSi 6 หลายเดือนก่อน

      Distributed rate limiting is a different beast to tame. You gotta track the requests overall (over many servers) which is a different concern and has other requirements then collecting and visualizing metrics.

    • @phantomrt777
      @phantomrt777 5 หลายเดือนก่อน

      @@EdubSi I mean asyncronus rate limiting with that endpoint consumpiton data.

  • @R0ckyRocket
    @R0ckyRocket 6 หลายเดือนก่อน

    what about using appMetrices nuget package

  • @baranacikgoz
    @baranacikgoz 6 หลายเดือนก่อน

    Can you make more videos about opentelemetry and grafana

  • @LC12345
    @LC12345 6 หลายเดือนก่อน

    I cannot unhear the intro as “Hello everybody, I’m naked…”

  • @DanStpTech
    @DanStpTech 6 หลายเดือนก่อน

    This new feature is very interesting! But, maybe it's me who doesn't understand well, is it weird to write code to have metrics that will be deployed in production?

    • @gileee
      @gileee 2 หลายเดือนก่อน

      You need metrics more in production than dev. In dev you can just debug.
      But in a production environment you'd send these metrics, together with logs, to a single aggregate (most use Grafana) for storage. And then use (again most use Prometheus) to explore and visualize that data, for all your apps, in a single web interface.

  • @alexxeken
    @alexxeken 6 หลายเดือนก่อน +1

    I think this ie really neat. But if you restart the application it will be kinda "faulty" data. I release 5-20 times a day on my microservices and want to know over a longer time period. Guess this is nothing for me then =/

  • @rankarat
    @rankarat 6 หลายเดือนก่อน

    Great!

  • @dasdotnet1
    @dasdotnet1 6 หลายเดือนก่อน

    Cab you pls share the source Code link.

  • @szynkie6710
    @szynkie6710 6 หลายเดือนก่อน

    Can we do sth like this counter for all endpoints we have in the API? (Without adding code to each)

    • @nickchapsas
      @nickchapsas  6 หลายเดือนก่อน +2

      Yes you can do that with middleware

  • @michalidzikowski5239
    @michalidzikowski5239 5 หลายเดือนก่อน

    Why try/finally instead of doing it as first line? You will have on-the-fly requests in metric, but no try{} block inserted...

  • @benjamininkorea7016
    @benjamininkorea7016 6 หลายเดือนก่อน +1

    Check spelling in your thumbnail, though: "Corretly." :)

  • @axelgenus
    @axelgenus 5 หลายเดือนก่อน +1

    Would it be possible to implement the request duration as a middleware and group them by route?

  • @youraveragedude8767
    @youraveragedude8767 6 หลายเดือนก่อน +23

    The typo in the thumbnail 😭

    • @OnurBuyukcaglar
      @OnurBuyukcaglar 6 หลายเดือนก่อน +1

      I want to think, that it is intentional. :)

    • @nickchapsas
      @nickchapsas  6 หลายเดือนก่อน +13

      It’s 100% intentional (it’s not 🥲)

    • @AvenDonn
      @AvenDonn 6 หลายเดือนก่อน

      Just pretend it's for engagement baiting Nick

    • @youraveragedude8767
      @youraveragedude8767 6 หลายเดือนก่อน

      @@IIARROWS he fixed it

  • @eyu6652
    @eyu6652 6 หลายเดือนก่อน

    I need help Nick. I'm working on this large project and the build times are debilitating. How can I debug/reduce build times?

  • @TheSimRacers
    @TheSimRacers 6 หลายเดือนก่อน

    Hello everybody, I’m naked and today I’m going to show you….😂 cracked me up had to replay it to see if you actually said it this time 😅

  • @MatinDevs
    @MatinDevs 6 หลายเดือนก่อน +1

    Aspire will change the game for .NET

  • @Yupmoh
    @Yupmoh 6 หลายเดือนก่อน +1

    First!