Adam Gardner
Adam Gardner
  • 33
  • 21 601
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
Переглядів: 49

Відео

OpenTelemetry Collector: EVERYTHING you need to know [to get started]
Переглядів 6016 годин тому
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!
Переглядів 79Місяць тому
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!
Переглядів 314Місяць тому
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!
Переглядів 276Місяць тому
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
Переглядів 77Місяць тому
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?
Переглядів 2252 місяці тому
This quick tips video discusses the differences between spans and traces in OpenTelemetry
OpenTelemetry and Python: Manually create complex traces
Переглядів 1742 місяці тому
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
Переглядів 5863 місяці тому
Part one: ua-cam.com/video/iVQmhMLEkS0/v-deo.html Part two: ua-cam.com/video/jEbArKXtd0Y/v-deo.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
Переглядів 3563 місяці тому
Part 1 of this tutorial is here: ua-cam.com/video/iVQmhMLEkS0/v-deo.html Part 3 is here: ua-cam.com/video/tnml6Zd58gs/v-deo.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
Переглядів 9734 місяці тому
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
Переглядів 180Рік тому
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
Переглядів 121Рік тому
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!)
Переглядів 168Рік тому
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
Переглядів 91Рік тому
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
Переглядів 155Рік тому
Logpusher in action
tracepusher v0.6 release notes
Переглядів 46Рік тому
tracepusher v0.6 release notes
Tracing Gitlab Pipelines with OpenTelemetry
Переглядів 854Рік тому
Tracing Gitlab Pipelines with OpenTelemetry
Get Started with Fluent Bit in 2 minutes
Переглядів 3,3 тис.Рік тому
Get Started with Fluent Bit in 2 minutes
OpenTelemetry, OpenFeature, CloudEvents, CDEvents and OCSF
Переглядів 607Рік тому
OpenTelemetry, OpenFeature, CloudEvents, CDEvents and OCSF
Docker and OCI Image Analysis: Dive Project Intro
Переглядів 363Рік тому
Docker and OCI Image Analysis: Dive Project Intro
Pyrsia Overview and Hands On in 5 minutes
Переглядів 71Рік тому
Pyrsia Overview and Hands On in 5 minutes
Hands on Intro to NATS in Under 4 Minutes
Переглядів 136Рік тому
Hands on Intro to NATS in Under 4 Minutes
OSS Project Intros - Teaser
Переглядів 58Рік тому
OSS Project Intros - Teaser
OpenTelemetry Instrumented FastAPI
Переглядів 10 тис.Рік тому
OpenTelemetry Instrumented FastAPI
Create an API in Python in under 6 minutes!
Переглядів 570Рік тому
Create an API in Python in under 6 minutes!
Service Level Providers, SLIs and SLOs in Keptn
Переглядів 141Рік тому
Service Level Providers, SLIs and SLOs in Keptn
Keptn Job Executor Service + Quality Gate
Переглядів 182Рік тому
Keptn Job Executor Service Quality Gate
Trigger Webhook Integrations from Keptn
Переглядів 163Рік тому
Trigger Webhook Integrations from Keptn
Lifecycle of a Keptn Task
Переглядів 1322 роки тому
Lifecycle of a Keptn Task

КОМЕНТАРІ

  • @akshayawate7239
    @akshayawate7239 3 дні тому

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

    • @agardnerit
      @agardnerit 3 дні тому

      Sorry, I missed that. What collaboration?

  • @mahzorimipod
    @mahzorimipod 5 днів тому

    cool story

  • @vivekshukla2480
    @vivekshukla2480 7 днів тому

    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 5 днів тому

      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 8 днів тому

    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 7 днів тому

      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 7 днів тому

      @@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 14 днів тому

    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 14 днів тому

      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 16 днів тому

    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 16 днів тому

      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 15 днів тому

      @@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 ua-cam.com/video/5GdWixsopeg/v-deo.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 18 днів тому

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

    • @agardnerit
      @agardnerit 16 днів тому

      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 27 днів тому

    thank you. gg

  • @oe5019
    @oe5019 28 днів тому

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

    • @agardnerit
      @agardnerit 25 днів тому

      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 Місяць тому

    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 28 днів тому

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

  • @srsvg
    @srsvg Місяць тому

    agree - music is distracting - video content is good

  • @user-gu4hn3zz6x
    @user-gu4hn3zz6x Місяць тому

    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 Місяць тому

      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 Місяць тому

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

  • @MrBarneyDinosaur
    @MrBarneyDinosaur 2 місяці тому

    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 2 місяці тому

      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 2 місяці тому

    wow thanks subscribed

    • @agardnerit
      @agardnerit 2 місяці тому

      Thanks for the sub!

  • @Nick-yd3rc
    @Nick-yd3rc 3 місяці тому

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

  • @sadiqkavungal990
    @sadiqkavungal990 3 місяці тому

    nice explanation, thank you.

    • @agardnerit
      @agardnerit 3 місяці тому

      Glad it was helpful!

  • @akshayawate7239
    @akshayawate7239 3 місяці тому

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

    • @agardnerit
      @agardnerit 3 місяці тому

      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 3 місяці тому

    Thanks. Waiting for sampling vids

  • @akshayawate7239
    @akshayawate7239 3 місяці тому

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

    • @agardnerit
      @agardnerit 3 місяці тому

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

  • @akshayawate7239
    @akshayawate7239 3 місяці тому

    Subscribed! Thanks for adding manual instrumentation.

  • @rajujagadeesan8806
    @rajujagadeesan8806 4 місяці тому

    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 4 місяці тому

    this was really helpful, cheers mate

  • @autohmae
    @autohmae 8 місяців тому

    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 9 місяців тому

    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 9 місяців тому

    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 9 місяців тому

      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 9 місяців тому

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

    • @agardnerit
      @agardnerit 9 місяців тому

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

    • @kwesikwaa
      @kwesikwaa 3 місяці тому

      ​@@agardnerittempo?

    • @agardnerit
      @agardnerit 3 місяці тому

      @@kwesikwaaI don’t understand?

  • @Flash_Gen
    @Flash_Gen 9 місяців тому

    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 Рік тому

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

  • @agardnerit
    @agardnerit Рік тому

    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 Рік тому

    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 Рік тому

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

  • @filippov_es
    @filippov_es Рік тому

    Super! Thx a lot!

  • @lucndabaneze
    @lucndabaneze Рік тому

    the video is blurry

    • @agardnerit
      @agardnerit Рік тому

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

  • @jadumani2003
    @jadumani2003 Рік тому

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

  • @afzalvth
    @afzalvth Рік тому

    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 Рік тому

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