Best explanation of open telemetry I've come across yet!
@agardnerit9 күн бұрын
Thanks!
@orendado27 күн бұрын
Thanks for the example & explanation , is there a link to the source code ?
@arceus02Ай бұрын
Hi, Thanks for the east explanation for the topics. I have one question , what would happen if we leave the processor part empty ? like would the data flowing into the metrics would be correct or not ?
@agardneritАй бұрын
Processors are optional. If they aren't specified, nothing happens meaning the data is not altered in any way. What you send in is what comes out again.
@devendrabharadwaz9580Ай бұрын
Excellent content with clarity and nice pace.
@arnabdhar-y7jАй бұрын
Thank You for explaining Open Telemetry in such a simple way. Just one suggestion, please lower down the background music, it can cause distraction to some viewers
@rupenanjariaАй бұрын
Nice explaination: question though, when we say we can have multiple receivers (4:18), are you saying that OT collector is replaced by prometheus? as if I understand, OT collector receives data, processes (so that Prometheus can understand) and exports it. Later, prometheus will collect the data via pull.
@agardneritАй бұрын
Prometheus can be understood as two different things. 1) The Prometheus data syntax. By this I mean the syntax of the lines of code that describe the metrics + the fact that metrics usually live at a standard endpoint. 2) The Prometheus "product". By this I mean the software that retrieves (or accepts) metrics, stores them, visualises them etc. Here I'm explaining that the OTEL collector (instead of Prometheus) can scrape the metrics (which are formatted like 1) and send them to a backend which isn't prometheus (2). My point about multiple receivers: Prometheus (the product) only deals with metrics. It doesn't do metrics or traces. But the OTEL collector process all of those signals. So... If your backend is capable, you can send your metrics, logs and traces to the same place.
@oe5019Ай бұрын
As always greate video frim Adam about Fluebt Bit, is there any chance for a video about sending syslog messages to Fluent Bit?
@MHamza-wx5kvАй бұрын
Thanks for the tutorial, I just have two questions, in the video where do you manage to fetch log files from the VMs? like I don't see any VM name or the IP.. or am I missing something here? Second, as per 2:21 you configured and deployed Otel Collector on each VM?
@agardneritАй бұрын
Correct, the collector would be deployed on each VM (or at least in a location capable of retrieving the logs if the logs were on a network share (for example). One thing to mention is that you could use the OpenTelemetry collector builder (look for the “everything you need to know to get started with the collector” video on my channel) and custom build a collector with ONLY the filelog receiver, whichever processors you want (eg batch) and the exporter you need (eg. OTLP). The resulting binary would be tiny and thus a much easier “sell” to your boss to deploy in each VM
@MHamza-wx5kvАй бұрын
Best video and best explanation! thanks for the nice explanation.
@relicfrog2 ай бұрын
Very good explanation of the core components of the OpenTelemtry Collector! I'm already looking forward to new content on this!
@RolfRochen-yb6sq2 ай бұрын
Very well explained 👍
@agardnerit2 ай бұрын
Thank you 🙂
@mrmuli232 ай бұрын
Oh man you have amazing content! thank you so much for this explanation and looking forward to more! The way you broke down the collector and in the end introduced connectors and extensions is brilliant. Keep it up
@agardnerit2 ай бұрын
Awesome, thank you!
@LielAlmog2 ай бұрын
This was a very good video !
@agardnerit2 ай бұрын
Thank you!
@SameerSalve2 ай бұрын
Can this send metrics back to Prometheus or VictoriaMetrics? I was trying this but it didn't work with Prometheus/VictoriaMetrics as backend. Thanks for your videos .
@agardnerit2 ай бұрын
Yes, Prometheus could scrape the collector or you could use the prometheusremotewrite exporter. TBH though, these days I'd be expecting any backend to be OpenTelemetry Protocol OTLP compliant and thus the OTLP(http) exporter(s) should "just work". I have no experience with VictoriaMetrics so can't comment
@jscancella2 ай бұрын
Perfect video for me to share with my coworkers who don't know anything about open telemetry, thank you! Im looking forward to seeing all the specialized videos on the various collector elements
@zuowang51852 ай бұрын
did you confuse http vs grpc with tcp vs websocket? I thought grpc is where you define the schema for compact serialization and unmarshaling
@zuowang51852 ай бұрын
why do you need "as span" if you aren't using `span` later?
@amasoharnold47622 ай бұрын
Does it mean it’s like fluentd ? I’ve been looking into logging I’ve got some backend api and a database I would like to have a webpage where I could track logs I’ve come across elk stack and I’ve now know that Logstash is a way to centralized all logs as well as fluentd but I’ve been seeing open telemetry popping of here and there during my search but I’m not sure what it is everything is so abstract that I’m seeing
@agardnerit2 ай бұрын
The collector and fluentd (sidetone, I'd recommend fluentbit over fluentd) are both the middleware. OpenTelemetry is not a backend (storage) for Observability data (logs, metrics, traces etc.) so you'll still need a backend system (ELK, Dynatrace, Datadog, Opensearch etc.). Would it be helpful if I made a short explainer viideo on "what is OpenTelemetry?"
@amasoharnold47622 ай бұрын
@@agardnerityes I guess that’ll be nice but I don’t know if a developer would find it useful or know what’s the use case I guess this is a very deep Devops thing which I am not I just wanted something to track logs in a nice way since I’m using docker and can’t keep running dog logs command I think I’ve been seeing this fluentbit thing as well but they aren’t a lot of resources like fluentd I didn’t even know this term flying around called observability but I guess it’s part of a broader name given to do certain things Thank you very much for your response also can I know which is the most simplest solution for my use case I just want to have a way of viewing my logs and nothing to heavy or resource intensive I’m currently dabbling with this elk thing and it seems packed with a lot of stuffs I don’t need and understand
@zuowang51853 ай бұрын
annoying music
@duncdudeable3 ай бұрын
I like the music, sets a cadence to the video, just needs to be lowered a bit :)
@PrasadTupe-n3z3 ай бұрын
Thank you very much. Was able to replicate the same in Windows.
@agardnerit3 ай бұрын
Glad it helped!
@daddyIsBest3 ай бұрын
You instrumented the app, but didn't uninstrument it. FastAPIInstrumentor().uninstrument_app(app) Ain't it necessary.
@navinkumar63883 ай бұрын
Learning new items Thanks 🙏 for this video 📸 With Love from India 🇮🇳
@agardnerit3 ай бұрын
I’m happy you found this useful. Let me know if you find any cool projects that I should review!
@nforlife3 ай бұрын
I'm new to open telemetry and this was very informative
@agardnerit3 ай бұрын
So glad you found it useful.
@akshayawate72394 ай бұрын
Hi @adam, couple of months back, I mailed you regarding Otel collaboration
@agardnerit4 ай бұрын
Sorry, I missed that. What collaboration?
@mahzorimipod4 ай бұрын
cool story
@vivekshukla24804 ай бұрын
Thank you so much. How can I start the collector up? Your code in github doesn't have `otelcol` file - I would appreciate your help.
@agardnerit4 ай бұрын
I don’t add (and don’t recommend adding) large binaries to repos as it bloats the repo unnecessarily. There are many collector distributions available to choose from (that’s my next video about how you choose). But to get you going for now: download the appropriate binary from here: github.com/open-telemetry/opentelemetry-collector-releases/latest extract it and run it
@vivekshukla24804 ай бұрын
Running this `docker run -p 16686:16686 -p 4317:4317 225` produces error stating Unable to find image `225:latest` locally. I was so looking forward to getting this done, using your tutorials, but I may end up moving on to someone else's. :(
@agardnerit4 ай бұрын
That command is referencing an existing container ID because I had Jaeger running previously. Just replace 255 with jaegertracing/all-in-one:1.60 www.jaegertracing.io/docs/1.60/getting-started/
@vivekshukla24804 ай бұрын
@@agardnerit Thank you so much. How can I start the collector up? Your code in github doesn't have otelcol file - I would appreciate your help.
@vivekshukla24804 ай бұрын
My response somehow got deleted, but this video I am having trouble following, for example - starting from using the docker command to run the jaeger, so I used previous video to run the jaeger then even after jumping through hoops I could never get past the issue when I run `python app.py` command. I receive Transient error StatusCode.UNAVAILABLE encountered while exporting traces to 127.0.0.1:6004. error. Suggestion is appreciated.
@agardnerit4 ай бұрын
You need to run Jaeger AND a seperate standalone Otel collector. It’s the standalone collector that you need to configure (via the YAML file) to listen on 6004. This is because jaeger already runs a collector on 4317 / 4318 so you can’t use those ports for your standalone.
@vivekshukla24804 ай бұрын
What do I need to get `./otelcol --config=collector-config.yaml` running, in your previous videos I have not seen you install any specific tool to be able to call this command successfully, Did I miss something?
@agardnerit4 ай бұрын
Thanks. You're right actually. I missed that. I'll make a quick video explaining the different options soon. But in short, see this page: opentelemetry.io/docs/collector/installation/ There are many different distributions of the collector, the OTEL project produces a few that supposedly are optimised for particular use cases. Some vendors produce their own and you can even build your own. In these videos I use the contributors distribution. I downloaded the binary for my OS from here: github.com/open-telemetry/opentelemetry-collector-releases/releases/latest
@vivekshukla24804 ай бұрын
@@agardnerit Thank you for your quick response. I will let you know how it goes, to provide some background, I was able to follow your kzbin.info/www/bejne/a3jHiJyuqNSjm8ksi=GIkjN1HisC-gSE6y video that let me visualize the traces. I am assuming this video will take it a step further. Am I not right?
@leamon90244 ай бұрын
Hi, thanks for the video. Could you explain the difference between OpenTelemetry Collector and jaeger-collector?
@agardnerit4 ай бұрын
Thanks for the suggestion, I'll put this topic on my backlog! The timing of your request is interesting as the Jaeger project is looking to move more towards the OTEL Collector. IMO using the OTEL collector is the future proof decision.
@nrodear4 ай бұрын
thank you. gg
@oe50195 ай бұрын
Wow Greate Video!, but you didn't mention how you jave installed the OpenTelemtry Collector, did you ran it on a Container?
@agardnerit4 ай бұрын
At 03:47 you can see I've download the otelcol-contrib collector (the OpenTelemetry contrib distribution) and am running it as a standalone binary. There are many ways to run the collector so I didn't want to go into each one. You're right though, for future videos I'll call this out more clearly. opentelemetry.io/docs/collector/installation/
@srsvg5 ай бұрын
i searched for "opentelemetry python" and only your channel results were relevant - so you can keep on extending this series - also create playlist
@agardnerit5 ай бұрын
Thank you. Please do suggest content you’d like to see and if I know enough about it, I’ll do it
@srsvg5 ай бұрын
agree - music is distracting - video content is good
@GabrielCamboim-p8s5 ай бұрын
Just wanted to say that I've found your series very helpful. For the last week I've been trying to understand these concepts, but none of the other videos or docs that I've found helped me as you did. Keep creating content about telemetry in Python! <3
@agardnerit5 ай бұрын
Thank you so much. If you want specific content covered, let me know and if I know it, I’ll do an episode on it :) We’re all learning all of this together. Good luck!
@dotnetfanboy5 ай бұрын
Please cut out the background music. Very useful video otherwise.
@MrBarneyDinosaur6 ай бұрын
So a span is effectively a structured log (e.g. a JSON Object), and a trace is a collection of structured logs (e.g. an array of JSON objects) - where each structured log may have different attributes (including arrays of other structured logs)?
@agardnerit6 ай бұрын
Love the comment. It's one of the reasons I make this content. To provoke thought and discussion - so keep them coming :) I've always felt a bit uneasy with the projects use of that terminology. While technically, yes, spans are structured and traces are collections of spans. I feel like this oversimplifies and may lead new users (the intended audience for this video) to equate spans == logs. That would be a mistake because then they think: "oh well, I'll just use logs as I already do". You're not wrong though, technically. At the end of the day, Observability for me is the means to provide the ability to do your job (fix / prevent the issue, generate a report for the boss etc.). Whether that takes the form of a log line, or a span, or a metric, ultimately who cares (beyond those of us who live and breath Observability).
@Emma-tm1mx6 ай бұрын
wow thanks subscribed
@agardnerit6 ай бұрын
Thanks for the sub!
@Nick-yd3rc7 ай бұрын
Now that’s an awesome overview, thank you!🎉
@agardnerit7 ай бұрын
Glad you liked it!
@sadiqkavungal9907 ай бұрын
nice explanation, thank you.
@agardnerit7 ай бұрын
Glad it was helpful!
@akshayawate72397 ай бұрын
Any specific reason to use 6004 port instead of 4317. ?
@agardnerit7 ай бұрын
I tried to make that clear in the video. Obviously I didn’t do a good job! Jaeger all-in-one image comes with its own collector so 4317 was already in use. It was also to demonstrate that even though 4317 is the standard, you don’t HAVE to use that
@akshayawate72397 ай бұрын
Thanks. Waiting for sampling vids
@agardnerit7 ай бұрын
Great idea!
@akshayawate72397 ай бұрын
Can you please add vid on otlp exporter, to send traces to jaeger ?
@agardnerit7 ай бұрын
Yup! That's the very next video in the series. Coming soon. Part 3: Sending spans to Jaeger >> kzbin.info/www/bejne/qp_QnWmQmZprndU
@akshayawate72397 ай бұрын
Subscribed! Thanks for adding manual instrumentation.
@rajujagadeesan88068 ай бұрын
Thanks Adam. It was really helpful for my current project. Is it possible to show me how to instrument "FastApi Fargate-based-container" to push the data to Dynatrace. Thanks in advance.
@bjorn53668 ай бұрын
this was really helpful, cheers mate
@agardnerit7 ай бұрын
Glad it helped
@autohmae Жыл бұрын
Thanks for creating this overview. It's gonna be very good for the industry when we do end up with some of these standards being widely adopted. But let's be very clear, part of the point is to have more data, data turns into big data, big data turns into machine learning and machine learning will be one way to do anomaly detection. This may sound silly and slightly off-topic, but I feel all the event-based systems all started with webhooks. Without webhooks I don't think we would have gotten to this point. I've always kept tabs on Jeff Lindsay aka progrium, for a while he was doing interesting things in the container space, but sadly at some point it stopped.