Пікірлер
@EmadUddin-k7f
@EmadUddin-k7f 17 күн бұрын
great video indeed. A link to source code would be nice :)
@developingwoot
@developingwoot 16 күн бұрын
Sorry about that I just added it the link to the github repo to the description.
@devgenesis6436
@devgenesis6436 27 күн бұрын
sir what if we have multiple microsservice running on different ec2 so how can we log into loki do we need to host loki on all ec2 or centralised through http will that slo app performance also will it be free
@developingwoot
@developingwoot 27 күн бұрын
It's hard to say without knowing your infrastructure. But if I had one ec2 with multiple microservices on it, depending on its current load I would probably run loki and grafana on the same ec2. But in another scenario having a dedicated ec2 for reporting in a larger environment could be a good fit as well
@akmclemore
@akmclemore Ай бұрын
Great work on this video-your insights are always valuable.
@developingwoot
@developingwoot Ай бұрын
Thanks so much that's really nice to hear!
@nadimkhoury8010
@nadimkhoury8010 Ай бұрын
nice, is there a way to then store the data in a postgreSQL data base
@developingwoot
@developingwoot Ай бұрын
Prometheus uses time series data and PostgreSQL isn't to my knowledge optimized for that type of data. There are other databases that are like influxdb and it supports remote read and write. I've never used it myself because we just haven't needed any additional storage solution up to this point
@oladejiakomolafe5591
@oladejiakomolafe5591 Ай бұрын
Good. Clear and succinct explanation. Thank you
@developingwoot
@developingwoot Ай бұрын
I appreciate it, thanks so much!
@boogyman2501
@boogyman2501 Ай бұрын
Great video, thank you for explaining everything. My issue with the approach is the overhead that is put onto the logging cycle by pushing to loki, what would you recommend to rather scrape logs instead of pushing them (like you can do with the metrics endpoint).
@developingwoot
@developingwoot Ай бұрын
Promtail is a log scraper. I used the default configuration but it's highly customizable and can be used to scrape logs from multiple sources and send them to loki
@mikiyasshemsu3785
@mikiyasshemsu3785 Ай бұрын
This is super smart video. I like the way you describe the whole process. In Addition It would have been great if you share a github link for the code.
@developingwoot
@developingwoot Ай бұрын
Thanks so much I appreciate that.
@farshaddavoudi144
@farshaddavoudi144 2 ай бұрын
Thanks
@developingwoot
@developingwoot 2 ай бұрын
Sure thing
@RachitaChugh
@RachitaChugh 2 ай бұрын
Thank you so much.. very helpful
@developingwoot
@developingwoot 2 ай бұрын
Wonderful. I'm glad it helped
@sairiopena1073
@sairiopena1073 2 ай бұрын
Tremendo video!!!! de verdad muy util.Thanks
@developingwoot
@developingwoot 2 ай бұрын
I'm so happy it helped
@chuannguyen1686
@chuannguyen1686 2 ай бұрын
Thank you
@developingwoot
@developingwoot 2 ай бұрын
You're most welcome 😁
@papciuszkin
@papciuszkin 3 ай бұрын
Great video! Really clear and to the point
@developingwoot
@developingwoot 3 ай бұрын
Thanks so much 🙏
@shashiranjan2911
@shashiranjan2911 4 ай бұрын
Can we monitor windows services through otel. If yes then what will be the config
@developingwoot
@developingwoot 4 ай бұрын
That's a good question. I'm not sure let me do some digging
@Pierre.69
@Pierre.69 4 ай бұрын
Used prometheus and grafana for the first time today with your help, useful video, thanks!
@developingwoot
@developingwoot 4 ай бұрын
Awesome! I'm so glad to hear that. It's a super cool platform.
@catex5452
@catex5452 5 ай бұрын
I want to track a dateTime value with System.Diagnostics.Metrics, OpenTelemetry, Prometheus and Grafana. Is that possible? Right now I did it with a counter where I add unix seconds but that's probably not optimal... If I could display the unix seconds as a date in grafana that would technically be enough though. Can you help?
@developingwoot
@developingwoot 5 ай бұрын
What specifically are you trying to track? For example are you trying to track the length of time it takes a request to complete?
@catex5452
@catex5452 5 ай бұрын
@@developingwoot I want to track the date + time when something got imported and the date + time of the next import. I just changed my logic to using two ObervableGauge's for it (lastImportTime, nextImportTime). Each returns a list of measurments containing a long value(unix timestamp) + tag. I basically just want to show two dates in my grafana dashboard. Last Import and next import.
@catex5452
@catex5452 5 ай бұрын
The tags consist of a key "environment" and a string which represent the type of document that got imported. I'd like to create dashboards for the different tags. for example lastImportedXmlDate, lastImportedJsonDate etc. So I want more than just two dates, sorry for the wrong information. Two dates per environment.
@developingwoot
@developingwoot 5 ай бұрын
@@catex5452 are you just wanting logs or are you charting this?
@catex5452
@catex5452 5 ай бұрын
@@developingwoot I'm not sure if I know what you mean. I think I just want to display stats. (I never worked with Grafana before) Here you can see my code: using System; using System.Diagnostics.Metrics; namespace Import.FileListener { public class MetricsManager { private Meter meter; private Counter<int> importedCounter; private ObservableGauge<long> lastImportTimeGauge { get; set; } private ObservableGauge<long> nextImportTimeGauge { get; set; } private List<Measurement<long>> lastImportTimes = new List<Measurement<long>>(); private List<Measurement<long>> nextImportTimes = new List<Measurement<long>>(); // Singleton instance of MetricsManager private static readonly MetricsManager _instance = new MetricsManager("MetricsManager", "1.0.0"); public static MetricsManager Instance => _instance; private MetricsManager(string meterName, string meterVersion) { meter = new Meter(meterName, meterVersion); importedCounter = meter.CreateCounter<int>("imported-files"); lastImportTimeGauge = meter.CreateObservableGauge<long>("last-import-time", () => { return lastImportTimes; }); nextImportTimeGauge = meter.CreateObservableGauge<long>("next-import-time", () => { return nextImportTimes; }); } public void SetImportTimes(string fileName, DateTime lastImport, int intervalSeconds) { long lastTime = new DateTimeOffset(lastImport).ToUnixTimeSeconds(); long nextTime = new DateTimeOffset(lastImport.AddSeconds(intervalSeconds)).ToUnixTimeSeconds(); lastImportTimes.Add(new Measurement<long>(lastTime, new KeyValuePair<string, object>("environment", fileName))); nextImportTimes.Add(new Measurement<long>(nextTime, new KeyValuePair<string, object>("environment", fileName))); } public void Increment(string fileName) { importedCounter.Add(1, new KeyValuePair<string, object>("environment", fileName)); } } }
@tayebhimel4493
@tayebhimel4493 5 ай бұрын
Really thansks for the video. I hope your channel grows faster than anyone elase.
@developingwoot
@developingwoot 5 ай бұрын
Thanks so much I really appreciate it
@camposdelima
@camposdelima 5 ай бұрын
Great video, man! We don't have much content yet about .NET + OpenTelemetry + Grafana, so your video will save us a lot of time. Thank you!
@rajeshk5211
@rajeshk5211 5 ай бұрын
Hi, How did you configure loki on Grafana, I am not able to view the labels in my loki data source page, used the same code provided by you
@developingwoot
@developingwoot 5 ай бұрын
I used the configuration provided with the loki image. The .Net Web API's labels are provided via the appsettings.json file. You can configure labels as properties there, but each one creates its own stream. I haven't found a need to create more labels as of yet because parse the json and search for specific properties in when querying in Grafana. Please let me know if I didn't understand the question.
@rajeshk5211
@rajeshk5211 5 ай бұрын
Thanks for the video, it is very helpful.
@developingwoot
@developingwoot 5 ай бұрын
Your most welcome
@rajeshk5211
@rajeshk5211 5 ай бұрын
Can you please extend the video including loki for logging
@developingwoot
@developingwoot 5 ай бұрын
Oh that's a good idea. I'll see what I can do. I hope you found what's there helpful.
@rajeshk5211
@rajeshk5211 5 ай бұрын
​@developingwoot The video is simple and straightforward, and it is indeed very useful. Thanks for your effort.
@KnowledgePlayTV
@KnowledgePlayTV 6 ай бұрын
Thank you. What if i don't use otlcollector. I just simple add promethuese exporter. will this work as well?
@developingwoot
@developingwoot 6 ай бұрын
Yes you can do that but you want to research what would work best for your implementation. For example I feel OpenTelemetry is a better option if your using microservices because with the additional libraries you can include tracing.
@KnowledgePlayTV
@KnowledgePlayTV 6 ай бұрын
@@developingwoot thank you
@arsbkhan
@arsbkhan 5 ай бұрын
@@developingwoot I agree. Otel and it's knowledge will help specially with microsevices
@arsbkhan
@arsbkhan 6 ай бұрын
Thank you so much.This exactly what i was looking for. Could you this same setup on Azure Kubernetes. I've been struggling with all the different configurations specially when using Helm charts to deploy opentelemetry and Prometheus on the cluster
@developingwoot
@developingwoot 6 ай бұрын
I have a video where I do this with docker and that would probably be a better option but I'll see what I can do. No promises 😉
@KnowledgePlayTV
@KnowledgePlayTV 6 ай бұрын
@@developingwoot yes please if can spear some time for azure deployment.
@KnowledgePlayTV
@KnowledgePlayTV 6 ай бұрын
arsbkhan please let me know if you find some thing as i also struggling for the same. may be we can help each other on this.
@BarbarosYurttagul
@BarbarosYurttagul 6 ай бұрын
0:46 Directory.Build.props 4:47 Warnings As Errors 7:02 Editor Config - Enforce Code Style 8:48 Directory.Packages.props
@BarbarosYurttagul
@BarbarosYurttagul 6 ай бұрын
Hey, I was looking for this subject and you explained it perfect. Thank you.
@developingwoot
@developingwoot 6 ай бұрын
Thanks so much! I'm glad it helped.
@KnowledgePlayTV
@KnowledgePlayTV 6 ай бұрын
can you please make a video on opentelemetry + .net core without docker? btw nice lecture and useful content.
@developingwoot
@developingwoot 6 ай бұрын
Yeah I could probably do something like that are you still thinking Prometheus and Grafana? I used Docker because it is really nice in that it just starts those services for you. But I'll see what I can do.
@KnowledgePlayTV
@KnowledgePlayTV 6 ай бұрын
@@developingwoot thank you for your reply.
@developingwoot
@developingwoot 6 ай бұрын
I've posted that video for you 👍
@KnowledgePlayTV
@KnowledgePlayTV 6 ай бұрын
@@developingwoot thank you so much for your effort.
@developingwoot
@developingwoot 10 ай бұрын
Remaking a classic game in Unreal Engine was fun. What are some of your favorite classic games?