Adam Gardner
Adam Gardner
  • 33
  • 24 307
Which OpenTelemetry Collector Distribution?
Which OpenTelemetry collector distribution should you choose? What are the choices? Use official core, contrib or Kubernetes version? Go for a vendor provided distribution? Build your own using the OpenTelemetry Collector Builder (OCB?)
Timestamps
00:00 Intro
00:09 What is a collector distribution?
00:36 Understanding the components of a collector distribution
01:39 OpenTelemetry official distributions: Core, contrib and Kubernetes
01:46 What is the Core collector distribution?
02:12 What is the Contrib collector distribution?
02:50 What I use in my videos
03:01 Wha is the Kubernetes collector distribution?
03:22 Vendor supported OpenTelemetry collector distributions?
03:40 Why choose a vendor created collector distribution?
04:52 The OpenTelemetry Collector Builder (OCB)
05:08 Benefits of building your own collector
05:35 What do I recommend?
06:10 Thanks and subscribe
zhlédnutí: 205

Video

OpenTelemetry Collector: EVERYTHING you need to know [to get started]
zhlédnutí 403Před měsícem
This video covers everything you need to know if you're new to the OpenTelemetry collector. In it I discuss the components: receivers, processors, exporters, pipelines, connectors and extensions. Timestamps 00:00 Intro 00:27 What is the OpenTelemetry collector? 00:51 How do you run an OpenTelemetry collector? 00:58 Collector standalone binary 01:11 Collector container image 01:18 Collector on K...
Use CURL for OpenTelemetry Logs?? YES!
zhlédnutí 97Před 2 měsíci
Yes! You really can use curl to send OpenTelemetry logs! This is the easy button. Send a curl to an OpenTelemetry collector and get a log line into your observability system. Transcript Open telemetry, metrics, logs, traces, processors, receivers. Where is the easy button? I just want to send a log line in and see something. Let's get straight to it. Now, everyone has curl, so what I really wan...
FastAPI and requests [Python] with OpenTelemetry in 2 lines of code!
zhlédnutí 470Před 2 měsíci
How to instrument Python FastAPI and requests modules automatically in just two lines of code. Transcript Fast API and the requests module are two of the most popular pieces of the Python ecosystem. A while ago, I did a video on how to manually instrument with open telemetry, but you know, times have moved on and there are really good auto instrumenters now. So in this video, I'm going to show ...
OpenTelemetry filelog receiver + OpenObserve: Any logs to any destination!
zhlédnutí 469Před 2 měsíci
Use the OpenTelemetry collector's filelog receiver to grab any log, from anywhere and send it to any system you want (or multiple backends simultaneously). This video will show you how. Timestamps 00:00 The Status Quo: Manually processing log files 00:30 Manually looking at individual log files does not scale! 00:45 OpenTelemetry's collector and filelog receiver to the rescue 00:50 Gotcha! Don'...
Redis in Python in under 4 minutes for beginners
zhlédnutí 113Před 2 měsíci
Here's how to use Python in Redis in under 4 minutes. This video will get you started with the very basics of working with Redis in Python. You'll also see cache busting techniques (aka automated removal of values from Redis after a set amount of time). This video is meant for beginners to get you up and running as quickly as possible. Sections 00:00 Intro 00:09 Installation 00:36 Definition of...
Spans vs. Traces in OpenTelemetry: Which is Which?
zhlédnutí 327Před 3 měsíci
This quick tips video discusses the differences between spans and traces in OpenTelemetry
OpenTelemetry and Python: Manually create complex traces
zhlédnutí 208Před 3 měsíci
Part One: Part Two: Part Three: The Code Repo: github.com/agardnerIT/python-opentelemetry-manual-instrumentation/tree/main/part-four Here are two demo applications, manually traced in Python with OpenTelemetry. This demonstrates to full power of OpenTelemetry in Python, sending the data to the @cncf project Jaeger trace and analysis storage backend. Timestamps 00:00 Intro 00:42 Start Jaeger 01:...
OpenTelemetry and Python: Sending spans from Python to Jaeger via an OpenTelemetry Collector
zhlédnutí 716Před 4 měsíci
Part one: czcams.com/video/iVQmhMLEkS0/video.html Part two: czcams.com/video/jEbArKXtd0Y/video.html All the code is here: github.com/agardnerIT/python-opentelemetry-manual-instrumentation/tree/main/part-three 00:00 Intro and Recap 00:27 Starting Jaeger 01:12 Explanation: Why you should use an OpenTelemetry Collector 01:40 Starting the OpenTelemetry Collector 01:43 Testing Span Ingestion using t...
OpenTelemetry & Python: Manually set Span Status, Span Attributes and Span Events
zhlédnutí 477Před 4 měsíci
Part 1 of this tutorial is here: czcams.com/video/iVQmhMLEkS0/video.html Part 3 is here: czcams.com/video/tnml6Zd58gs/video.html In this video I'll explain the purpose of different parts of the span JSON output and add the Python code to manually set the span status, span attributes and add a span event. Code samples: Code samples: github.com/agardnerIT/python-opentelemetry-manual-instrumentati...
OpenTelemetry & Python: Manual Instrumentation for Beginners
zhlédnutí 1,3KPřed 5 měsíci
In this video I walk through how to manually instrument your very first Python application with OpenTelemetry. This video is part of series which will progressively expand the OpenTelemetry monitoring in Python. If you are new to OpenTelemetry, this is the perfect introduction to instrumentation in approximately 5 minutes. Read along with the text based version: agardner.net/manual-tracing-open...
Helm Plugin 101: How to create a Helm Plugin
zhlédnutí 197Před rokem
Hands-on code walkthrough on how to create a Helm plugin from scratch. The example is then extended to create a plugin which generates OpenTelemetry spans and allows tracing of Helm commands using tracepusher. The traces are pushed into, and visualised by Jaeger. *Links* - Blog: agardner.net/my-first-helm-plugin - Helm Plugins Guide: helm.sh/docs/topics/plugins - OpenTelemetry: opentelemetry.io...
tracepusher v0.8.0 release notes
zhlédnutí 124Před rokem
tracepusher v0.8.0 is out now! 1) Thank you so much to the 7 new contributors in this release! 2) Standalone binaries are the big news in this release. No more installing python or running Docker to generate #OpenTelemetry traces. Just download the tracepusher binary and execute it. 3) The Span duration can now be configured to either milliseconds or seconds - meaning the precision of pushed sp...
Perform a SQL Injection Attack (and how to avoid in your code!)
zhlédnutí 181Před rokem
In this video I discuss what a SQL injection is, I'll show you how to perform a SQL injection, describe ways to avoid one being performed on your application and discuss some recent real-world SQL injection attacks. Links Hands On Exercise (do a SQL injection yourself) killercoda.com/agardnerit/scenario/security-sql-injection
tracepusher v0.7.0 released
zhlédnutí 91Před rokem
tracepusher v0.7.0 has been released. Generate OpenTelemetry traces with tracepusher. Thank you so much to our contributors for all your hard work! New Features - Span Events support - hexdump changes to openssl for trace and span ID generation - Documentation improvements Links v0.7.0 Release: Documentation Website: agardnerit.github.io/tracepusher
Logpusher in action
zhlédnutí 162Před rokem
Logpusher in action
tracepusher v0.6 release notes
zhlédnutí 48Před rokem
tracepusher v0.6 release notes
Tracing Gitlab Pipelines with OpenTelemetry
zhlédnutí 921Před rokem
Tracing Gitlab Pipelines with OpenTelemetry
Get Started with Fluent Bit in 2 minutes
zhlédnutí 3,6KPřed rokem
Get Started with Fluent Bit in 2 minutes
OpenTelemetry, OpenFeature, CloudEvents, CDEvents and OCSF
zhlédnutí 656Před rokem
OpenTelemetry, OpenFeature, CloudEvents, CDEvents and OCSF
Docker and OCI Image Analysis: Dive Project Intro
zhlédnutí 383Před rokem
Docker and OCI Image Analysis: Dive Project Intro
Pyrsia Overview and Hands On in 5 minutes
zhlédnutí 72Před rokem
Pyrsia Overview and Hands On in 5 minutes
Hands on Intro to NATS in Under 4 Minutes
zhlédnutí 154Před rokem
Hands on Intro to NATS in Under 4 Minutes
OSS Project Intros - Teaser
zhlédnutí 61Před rokem
OSS Project Intros - Teaser
OpenTelemetry Instrumented FastAPI
zhlédnutí 11KPřed rokem
OpenTelemetry Instrumented FastAPI
Create an API in Python in under 6 minutes!
zhlédnutí 595Před rokem
Create an API in Python in under 6 minutes!
Service Level Providers, SLIs and SLOs in Keptn
zhlédnutí 141Před 2 lety
Service Level Providers, SLIs and SLOs in Keptn
Keptn Job Executor Service + Quality Gate
zhlédnutí 182Před 2 lety
Keptn Job Executor Service Quality Gate
Trigger Webhook Integrations from Keptn
zhlédnutí 163Před 2 lety
Trigger Webhook Integrations from Keptn
Lifecycle of a Keptn Task
zhlédnutí 132Před 2 lety
Lifecycle of a Keptn Task

Komentáře

  • @duncdudeable
    @duncdudeable Před dnem

    I like the music, sets a cadence to the video, just needs to be lowered a bit :)

  • @PrasadTupe-n3z
    @PrasadTupe-n3z Před 16 dny

    Thank you very much. Was able to replicate the same in Windows.

  • @daddyIsBest
    @daddyIsBest Před 20 dny

    You instrumented the app, but didn't uninstrument it. FastAPIInstrumentor().uninstrument_app(app) Ain't it necessary.

  • @navinkumar6388
    @navinkumar6388 Před 22 dny

    Learning new items Thanks 🙏 for this video 📸 With Love from India 🇮🇳

    • @agardnerit
      @agardnerit Před 22 dny

      I’m happy you found this useful. Let me know if you find any cool projects that I should review!

  • @nforlife
    @nforlife Před 22 dny

    I'm new to open telemetry and this was very informative

  • @akshayawate7239
    @akshayawate7239 Před měsícem

    Hi @adam, couple of months back, I mailed you regarding Otel collaboration

    • @agardnerit
      @agardnerit Před měsícem

      Sorry, I missed that. What collaboration?

  • @mahzorimipod
    @mahzorimipod Před měsícem

    cool story

  • @vivekshukla2480
    @vivekshukla2480 Před měsícem

    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.

    • @agardnerit
      @agardnerit Před měsícem

      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

  • @vivekshukla2480
    @vivekshukla2480 Před měsícem

    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. :(

    • @agardnerit
      @agardnerit Před měsícem

      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/

    • @vivekshukla2480
      @vivekshukla2480 Před měsícem

      @@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.

  • @vivekshukla2480
    @vivekshukla2480 Před měsícem

    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.

    • @agardnerit
      @agardnerit Před měsícem

      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.

  • @vivekshukla2480
    @vivekshukla2480 Před měsícem

    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?

    • @agardnerit
      @agardnerit Před měsícem

      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

    • @vivekshukla2480
      @vivekshukla2480 Před měsícem

      @@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 czcams.com/video/5GdWixsopeg/video.htmlsi=GIkjN1HisC-gSE6y video that let me visualize the traces. I am assuming this video will take it a step further. Am I not right?

  • @leamon9024
    @leamon9024 Před měsícem

    Hi, thanks for the video. Could you explain the difference between OpenTelemetry Collector and jaeger-collector?

    • @agardnerit
      @agardnerit Před měsícem

      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.

  • @nrodear
    @nrodear Před měsícem

    thank you. gg

  • @oe5019
    @oe5019 Před měsícem

    Wow Greate Video!, but you didn't mention how you jave installed the OpenTelemtry Collector, did you ran it on a Container?

    • @agardnerit
      @agardnerit Před měsícem

      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/

  • @srsvg
    @srsvg Před měsícem

    i searched for "opentelemetry python" and only your channel results were relevant - so you can keep on extending this series - also create playlist

    • @agardnerit
      @agardnerit Před měsícem

      Thank you. Please do suggest content you’d like to see and if I know enough about it, I’ll do it

  • @srsvg
    @srsvg Před měsícem

    agree - music is distracting - video content is good

  • @user-gu4hn3zz6x
    @user-gu4hn3zz6x Před 2 měsíci

    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

    • @agardnerit
      @agardnerit Před 2 měsíci

      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!

  • @dotnetfanboy
    @dotnetfanboy Před 2 měsíci

    Please cut out the background music. Very useful video otherwise.

  • @MrBarneyDinosaur
    @MrBarneyDinosaur Před 3 měsíci

    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)?

    • @agardnerit
      @agardnerit Před 3 měsíci

      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-tm1mx
    @Emma-tm1mx Před 3 měsíci

    wow thanks subscribed

  • @Nick-yd3rc
    @Nick-yd3rc Před 4 měsíci

    Now that’s an awesome overview, thank you!🎉

  • @sadiqkavungal990
    @sadiqkavungal990 Před 4 měsíci

    nice explanation, thank you.

  • @akshayawate7239
    @akshayawate7239 Před 4 měsíci

    Any specific reason to use 6004 port instead of 4317. ?

    • @agardnerit
      @agardnerit Před 4 měsíci

      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

  • @akshayawate7239
    @akshayawate7239 Před 4 měsíci

    Thanks. Waiting for sampling vids

  • @akshayawate7239
    @akshayawate7239 Před 4 měsíci

    Can you please add vid on otlp exporter, to send traces to jaeger ?

    • @agardnerit
      @agardnerit Před 4 měsíci

      Yup! That's the very next video in the series. Coming soon. Part 3: Sending spans to Jaeger >> czcams.com/video/tnml6Zd58gs/video.html

  • @akshayawate7239
    @akshayawate7239 Před 4 měsíci

    Subscribed! Thanks for adding manual instrumentation.

  • @rajujagadeesan8806
    @rajujagadeesan8806 Před 5 měsíci

    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.

  • @bjorn5366
    @bjorn5366 Před 5 měsíci

    this was really helpful, cheers mate

  • @autohmae
    @autohmae Před 9 měsíci

    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.

  • @SimKieu
    @SimKieu Před 10 měsíci

    Thank you so much for the video. Could you please help me understand why there're 6 spans? From what I see, you loop through 3 times, each time generate a span. Then there should be only 3 spans, right?

  • @Newascap
    @Newascap Před 10 měsíci

    Thank you, this is great to know about! If you have any more info, I would love to know how I can: 1. Integrate this with grafana instead of jaeger 2. Maybe check for an alternative of the context manager (indenting could become really messy really quick for each block I want telemetry info from)

    • @agardnerit
      @agardnerit Před 10 měsíci

      Thanks! Grafana is the visualisation layer, you still need a place to store the traces (Jaeger, Dynatrace, Datadog, SigNoz or another commercial vendor). You then use Grafana to visualise the traces using a data source: grafana.com/docs/grafana/latest/datasources/jaeger/

    • @adityasoni3849
      @adityasoni3849 Před 10 měsíci

      @@agardnerit is the process the same for azure application insights? I don't see any trace logging dashboards in azure

    • @agardnerit
      @agardnerit Před 10 měsíci

      @@adityasoni3849 I'm afraid I have no experience with Azure

    • @kwesikwaa
      @kwesikwaa Před 4 měsíci

      ​@@agardnerittempo?

    • @agardnerit
      @agardnerit Před 4 měsíci

      @@kwesikwaaI don’t understand?

  • @Flash_Gen
    @Flash_Gen Před 10 měsíci

    You are doing great. Keep going and thank you for simple explanation and ways of protections. Glory to King, glory to Ukraine. Take care🫶

  • @grimonce
    @grimonce Před rokem

    Nice I think I'll make use of that tonight... :)

  • @agardnerit
    @agardnerit Před rokem

    You’ll be happy to hear the tracepusher now offers standalone binaries: github.com/agardnerIT/tracepusher/releases/tag/0.8.0

  • @user-xl4on3zv7z
    @user-xl4on3zv7z Před rokem

    it's a good idea but has so many requirments: - you need python in your job image - all the other jobs cannot have before and after scripts blocks anymore unless you override it duplicating the logics

    • @agardnerit
      @agardnerit Před rokem

      tracepusher v0.8.0 is out now and has standalone binaries: czcams.com/video/1O-2taFaiRA/video.html

  • @filippov_es
    @filippov_es Před rokem

    Super! Thx a lot!

  • @lucndabaneze
    @lucndabaneze Před rokem

    the video is blurry

    • @agardnerit
      @agardnerit Před rokem

      Try increasing the quality to 720p with the cog wheel.

  • @jadumani2003
    @jadumani2003 Před rokem

    Hi @Adam - I followed the instructions in azure/ubuntu/minikube. To access the bridge which IP I need to use?

  • @afzalvth
    @afzalvth Před rokem

    Hey Adam! What you have chosen the path to talk and share about OSS is really really incredible. This is going to be amazing ahead. I always told you. You had that potential you need to open up. #CNCF is calling you. 😅

  • @davidg1279
    @davidg1279 Před rokem

    I really appreciate your videos, good in concepts and in practice