I got OpenTelemetry to work. But why was it so complicated?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. odigos

    Distributed tracing without code changes. πŸš€ Instantly monitor any application using OpenTelemetry and eBPF

    Yes. edenfed posted a comment linking to the project above. Here is is again, though:

    https://github.com/odigos-io/odigos

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. openobserve

    πŸš€ 10x easier, πŸš€ 140x lower storage cost, πŸš€ high performance, πŸš€ petabyte scale - Elasticsearch/Splunk/Datadog alternative for πŸš€ (logs, metrics, traces, RUM, Error tracking, Session replay).

    Just use https://github.com/openobserve/openobserve.

    Takes 5 minutes to set it up the first time, from then on you can just have a separate terminal tab where you simply do `/path/to/openobserve` and that's it. They also offer a Docker image for local and remote running as well.

    It's an all-in-one fully compliant OpenTelemetry backend with pretty graphs. I love it for my projects, hasn't failed me in any detectable way yet.

  4. Kamon

    Distributed Tracing, Metrics and Context Propagation for applications running on the JVM

    Have you considered Kamon instead? From personal experience it's really the best tracing solution for Akka and other libraries using Scala Futures. I haven't tried it, but it does have built-in Spring support as well.

    https://kamon.io

  5. opamp-spec

    OpAMP Specification

    Gee whiz is this person is in for a treat when they discover the joys of OpAMP https://github.com/open-telemetry/opamp-spec/blob/main/speci...

    Turtles all the way down.

  6. opentelemetry-proto

    OpenTelemetry protocol (OTLP) specification and Protobuf definitions

    You can just send metrics via JSON to any otlphttp collector: https://github.com/open-telemetry/opentelemetry-proto/blob/v...

  7. signoz

    SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. πŸ”₯ πŸ–₯. πŸ‘‰ Open source Application Performance Monitoring (APM) & Observability tool

    A lot of web frameworks etc do most of the instrumentation for you these days. For instance using opentelemetry-js and self hosting something like https://signoz.io should take less than an hour to get spun up and you get a ton of data without writing any custom code.

  8. open-telemetry-js

    OpenTelemetry wrapper for Node and NestJS

    Maybe it’s useful to anyone here: https://github.com/zonneplan/open-telemetry-js

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. opentelemetry-python-contrib

    OpenTelemetry instrumentation for Python modules

    > I found it to be very easy in Python with standard stacks (mysql, flask, redis, requests, etc), because you literally just do a few imports at the top of your service and it automatically hooks itself up to track everything without any fuss.

    Yes, but only if everything in your stack is supported by their auto instrumentation. Take `aiohttp` for example. The latest version is 3.11.X and ... their auto instrumentation still doesn't work beyond `3.0` [0].

    It's _magical_ when it all just works, but that ends up being a pretty narrow needle to thread!

    [0]: https://github.com/open-telemetry/opentelemetry-python-contr...

  11. > I found it to be very easy in Python with standard stacks (mysql, flask, redis, requests, etc), because you literally just do a few imports at the top of your service and it automatically hooks itself up to track everything without any fuss.

    Yes, but only if everything in your stack is supported by their auto instrumentation. Take `aiohttp` for example. The latest version is 3.11.X and ... their auto instrumentation still doesn't work beyond `3.0` [0].

    It's _magical_ when it all just works, but that ends up being a pretty narrow needle to thread!

    [0]: https://github.com/open-telemetry/opentelemetry-python-contr...

  12. otel-desktop-viewer

    desktop-collector

    There's also https://github.com/CtrlSpice/otel-desktop-viewer

  13. opentelemetry-collector

    OpenTelemetry Collector

    And having to rebuild a golang binary based on this horseshit just to get a bugfixed collector is some horseshit: https://github.com/open-telemetry/opentelemetry-collector/tr... which is required (as best I can tell) because they text/template in the deps https://github.com/open-telemetry/opentelemetry-collector/bl...

    Heaven help you if it's a contrib collector bugfix

  14. notel

    Simple telemetry clients and server for user defined data

    https://github.com/anacrolix/notel?tab=readme-ov-file#what-a...

  15. minimal-nodejs-otel-tracer

    OpenTelemetry Tracing in 200 lines of JavaScript

    OTEL always seems way too complicated to use to me. Especially if you want to understand what it is doing. The code has a lot of abstractions and indirection (at least in Go).

    And reading this it seems a lot of people agree. Hope that can be fixed at some point. Tracing should be simple.

    See for example this project: https://github.com/jmorrell/minimal-nodejs-otel-tracer

    I think it is more a POC but it shows that all this complexity is not needed IMO.

  16. docker-otel-lgtm

    OpenTelemetry backend in a Docker image

  17. opentelemetry-operator

    Kubernetes Operator for OpenTelemetry Collector

    Adopting OpenTelemetry does not have to be hard for common use-cases. On Kubernetes, the Dash0 operator (https://artifacthub.io/packages/search?repo=dash0-operator) automatically instruments Node.js and Java workloads (and soon other runtimes; Disclaimer: I am one of its authors) with just a custom resource created in a namespace.

    Automatic instrumentation on Kubernetes is also provided by the community OpenTelemetry (https://github.com/open-telemetry/opentelemetry-operator).

    I am certainly biased here because OpenTelemetry and Prometheus have been at the core of my professional life for the past half decade, but I think that the biggest challenge, is that there are many different ways to get you to a good setup, and people get lost in the discovery of the available options.

  18. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Show HN: HyperDX – open-source dev-friendly Datadog alternative

    12 projects | news.ycombinator.com | 18 Sep 2023
  • signoz VS openobserve - a user suggested alternative

    2 projects | 30 Aug 2023
  • Show HN: Open-source Kibana alternative for logs and traces in ClickHouse

    8 projects | news.ycombinator.com | 12 Nov 2024
  • OpenObserve: Observability platform for logs, metrics, traces, analytics

    3 projects | news.ycombinator.com | 23 Oct 2024
  • Desbloqueie a Observabilidade: Guia prΓ‘tico com OpenTelemetry e Prometheus

    4 projects | dev.to | 16 Oct 2024

Did you know that Go is
the 4th most popular programming language
based on number of references?