great video indeed. A link to source code would be nice :)
@developingwoot16 күн бұрын
Sorry about that I just added it the link to the github repo to the description.
@devgenesis643627 күн бұрын
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
@developingwoot27 күн бұрын
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Ай бұрын
Great work on this video-your insights are always valuable.
@developingwootАй бұрын
Thanks so much that's really nice to hear!
@nadimkhoury8010Ай бұрын
nice, is there a way to then store the data in a postgreSQL data base
@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Ай бұрын
Good. Clear and succinct explanation. Thank you
@developingwootАй бұрын
I appreciate it, thanks so much!
@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Ай бұрын
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Ай бұрын
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Ай бұрын
Thanks so much I appreciate that.
@farshaddavoudi1442 ай бұрын
Thanks
@developingwoot2 ай бұрын
Sure thing
@RachitaChugh2 ай бұрын
Thank you so much.. very helpful
@developingwoot2 ай бұрын
Wonderful. I'm glad it helped
@sairiopena10732 ай бұрын
Tremendo video!!!! de verdad muy util.Thanks
@developingwoot2 ай бұрын
I'm so happy it helped
@chuannguyen16862 ай бұрын
Thank you
@developingwoot2 ай бұрын
You're most welcome 😁
@papciuszkin3 ай бұрын
Great video! Really clear and to the point
@developingwoot3 ай бұрын
Thanks so much 🙏
@shashiranjan29114 ай бұрын
Can we monitor windows services through otel. If yes then what will be the config
@developingwoot4 ай бұрын
That's a good question. I'm not sure let me do some digging
@Pierre.694 ай бұрын
Used prometheus and grafana for the first time today with your help, useful video, thanks!
@developingwoot4 ай бұрын
Awesome! I'm so glad to hear that. It's a super cool platform.
@catex54525 ай бұрын
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?
@developingwoot5 ай бұрын
What specifically are you trying to track? For example are you trying to track the length of time it takes a request to complete?
@catex54525 ай бұрын
@@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.
@catex54525 ай бұрын
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.
@developingwoot5 ай бұрын
@@catex5452 are you just wanting logs or are you charting this?
@catex54525 ай бұрын
@@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)); } } }
@tayebhimel44935 ай бұрын
Really thansks for the video. I hope your channel grows faster than anyone elase.
@developingwoot5 ай бұрын
Thanks so much I really appreciate it
@camposdelima5 ай бұрын
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!
@rajeshk52115 ай бұрын
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
@developingwoot5 ай бұрын
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.
@rajeshk52115 ай бұрын
Thanks for the video, it is very helpful.
@developingwoot5 ай бұрын
Your most welcome
@rajeshk52115 ай бұрын
Can you please extend the video including loki for logging
@developingwoot5 ай бұрын
Oh that's a good idea. I'll see what I can do. I hope you found what's there helpful.
@rajeshk52115 ай бұрын
@developingwoot The video is simple and straightforward, and it is indeed very useful. Thanks for your effort.
@KnowledgePlayTV6 ай бұрын
Thank you. What if i don't use otlcollector. I just simple add promethuese exporter. will this work as well?
@developingwoot6 ай бұрын
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.
@KnowledgePlayTV6 ай бұрын
@@developingwoot thank you
@arsbkhan5 ай бұрын
@@developingwoot I agree. Otel and it's knowledge will help specially with microsevices
@arsbkhan6 ай бұрын
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
@developingwoot6 ай бұрын
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 😉
@KnowledgePlayTV6 ай бұрын
@@developingwoot yes please if can spear some time for azure deployment.
@KnowledgePlayTV6 ай бұрын
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.
Hey, I was looking for this subject and you explained it perfect. Thank you.
@developingwoot6 ай бұрын
Thanks so much! I'm glad it helped.
@KnowledgePlayTV6 ай бұрын
can you please make a video on opentelemetry + .net core without docker? btw nice lecture and useful content.
@developingwoot6 ай бұрын
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.
@KnowledgePlayTV6 ай бұрын
@@developingwoot thank you for your reply.
@developingwoot6 ай бұрын
I've posted that video for you 👍
@KnowledgePlayTV6 ай бұрын
@@developingwoot thank you so much for your effort.
@developingwoot10 ай бұрын
Remaking a classic game in Unreal Engine was fun. What are some of your favorite classic games?