Measure Your Application’s Performance in .NET

  Рет қаралды 34,018

Nick Chapsas

Nick Chapsas

5 ай бұрын

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 5 ай бұрын
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 4 ай бұрын
I could absolutely use a few good pointers.
@dave7038
@dave7038 5 ай бұрын
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.
@Yupmoh
@Yupmoh 5 ай бұрын
Loving your videos Nick! This is great!
@maar0en
@maar0en 5 ай бұрын
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 ай бұрын
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 5 ай бұрын
I've been waiting for something like for this a long time, can't wait to try it! Also, Merry Christmas!
@igorsolomatov4743
@igorsolomatov4743 5 ай бұрын
You could use the same disposable pattern in counter (increase in dispose function). And now your code will be clearer without try-finally.
@passionforsciencel5180
@passionforsciencel5180 5 ай бұрын
Waiting for empty builder benchmark 😄 , Good Luck ❤
@h.m.6228
@h.m.6228 5 ай бұрын
You're corret. But that's so nice. Merry Christmas! 🎄⛄❄️
@jonathandaugaard4990
@jonathandaugaard4990 5 ай бұрын
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
@inzyster
@inzyster 5 ай бұрын
My man just explained in a few minutes what I was struggling to get out of coworkers with otel experience for yonks 😅
@MarkCastle
@MarkCastle 5 ай бұрын
Would love to see alternatives to aspire for this
@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.
@amnesia3490
@amnesia3490 5 ай бұрын
can't be sure if this built-in metric factory can replace prometheus-net's in-memory metric exporter or can be used together
@JonathanPeel
@JonathanPeel 5 ай бұрын
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.
@TrueTaladan
@TrueTaladan 5 ай бұрын
Thanks for your great videos. Can you perhaps also make one with Keyvault and database in connection with Aspire?
@douglashampshire6845
@douglashampshire6845 5 ай бұрын
For Azure users it might be nice to show Application Insite Intergration
@Assgier
@Assgier 4 ай бұрын
Probably not going to happen as Nick is sponsored by Amazon afaik.
@garcipat
@garcipat 5 ай бұрын
Does open telemtry allows store the values in certain services?
@phantomrt777
@phantomrt777 5 ай бұрын
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 5 ай бұрын
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 4 ай бұрын
@@EdubSi I mean asyncronus rate limiting with that endpoint consumpiton data.
@wizandoz
@wizandoz 5 ай бұрын
Where is that metric data stored exactly?
@alexxeken
@alexxeken 5 ай бұрын
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 =/
@prattipatileelakrishna2758
@prattipatileelakrishna2758 5 ай бұрын
I would be interested in a video about transactions, concurrency and locks
@TheSaintsVEVO
@TheSaintsVEVO 5 ай бұрын
The link isn’t in the description
@michalidzikowski5239
@michalidzikowski5239 4 ай бұрын
Why try/finally instead of doing it as first line? You will have on-the-fly requests in metric, but no try{} block inserted...
@ssushovan
@ssushovan 5 ай бұрын
Please make a video on opentelemetry & grafana.
@DanStpTech
@DanStpTech 5 ай бұрын
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 Ай бұрын
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.
@R0ckyRocket
@R0ckyRocket 5 ай бұрын
what about using appMetrices nuget package
@LC12345
@LC12345 5 ай бұрын
I cannot unhear the intro as “Hello everybody, I’m naked…”
@axelgenus
@axelgenus 5 ай бұрын
Would it be possible to implement the request duration as a middleware and group them by route?
@baranacikgoz
@baranacikgoz 5 ай бұрын
Can you make more videos about opentelemetry and grafana
@szynkie6710
@szynkie6710 5 ай бұрын
Can we do sth like this counter for all endpoints we have in the API? (Without adding code to each)
@nickchapsas
@nickchapsas 5 ай бұрын
Yes you can do that with middleware
@youraveragedude8767
@youraveragedude8767 5 ай бұрын
The typo in the thumbnail 😭
@OnurBuyukcaglar
@OnurBuyukcaglar 5 ай бұрын
I want to think, that it is intentional. :)
@nickchapsas
@nickchapsas 5 ай бұрын
It’s 100% intentional (it’s not 🥲)
@asedtf
@asedtf 5 ай бұрын
Just pretend it's for engagement baiting Nick
@youraveragedude8767
@youraveragedude8767 5 ай бұрын
@@IIARROWS he fixed it
@dasdotnet1
@dasdotnet1 5 ай бұрын
Cab you pls share the source Code link.
@benjamininkorea7016
@benjamininkorea7016 5 ай бұрын
Check spelling in your thumbnail, though: "Corretly." :)
@eyu6652
@eyu6652 5 ай бұрын
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 5 ай бұрын
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 5 ай бұрын
Aspire will change the game for .NET
@Yupmoh
@Yupmoh 5 ай бұрын
First!
@rankarat
@rankarat 5 ай бұрын
Great!
The New Data Protection Features of .NET 8 (GDPR)
14:10
Nick Chapsas
Рет қаралды 47 М.
The Magic of Breaking Down Your Types in C#
8:59
Nick Chapsas
Рет қаралды 62 М.
$10,000 Every Day You Survive In The Wilderness
26:44
MrBeast
Рет қаралды 47 МЛН
PHP Data Types Tutorial in Hindi
8:05
codewithsandy
Рет қаралды 135
Make Your LINQ Up to 10x Faster!
11:08
Nick Chapsas
Рет қаралды 52 М.
Await Async Tasks Are Getting Awesome in .NET 9!
9:24
Nick Chapsas
Рет қаралды 85 М.
6 INSANE Things You Didn't Know You Could Write in C#
12:26
Nick Chapsas
Рет қаралды 50 М.
Getting Started with Event Sourcing in .NET
37:07
Nick Chapsas
Рет қаралды 42 М.
You Need to Update Your .NET Solution Files!
6:59
Nick Chapsas
Рет қаралды 74 М.
MVVM vs. MVI - Understand the Difference Once and for All
18:40
Philipp Lackner
Рет қаралды 27 М.
How IEnumerable can kill your performance in C#
11:02
Nick Chapsas
Рет қаралды 112 М.
WHY and HOW to Add .NET Aspire to ANY .NET API and Web App in Minutes
22:02