opentelemetry-js VS opentracing-javascript

Compare opentelemetry-js vs opentracing-javascript and see what are their differences.

opentracing-javascript

OpenTracing API for Javascript (both Node and browser). πŸ›‘ This library is DEPRECATED! https://github.com/opentracing/specification/issues/163 (by opentracing)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
opentelemetry-js opentracing-javascript
16 32
2,448 1,090
3.0% -
9.4 1.6
4 days ago over 2 years ago
TypeScript TypeScript
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

opentelemetry-js

Posts with mentions or reviews of opentelemetry-js. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-24.
  • OpenTelemetry Journey #01 - Important concepts
    6 projects | dev.to | 24 Mar 2024
    JavaScript
  • OpenTelemetry in 2023
    36 projects | news.ycombinator.com | 28 Aug 2023
    > OpenTelemetry is a marketing-driven project, designed by committee, implemented naively and inefficiently, and guided by the primary goal of allowing Fortune X00 CTOs to tick off some boxes on their strategy roadmap documents.

    I'm the founder of highlight.io. On the consumer side as a company, we've seen a lot of value of from OTEL; we've used it to build out language support for quite a few customers at this point, and the community is very receptive.

    Here's an example of us putting up a change: https://github.com/open-telemetry/opentelemetry-js/pull/4049

    Do you mind sharing why you think no-one should be using it? Some reasoning would be nice.

  • OpenObserve: Elasticsearch/Datadog alternative in Rust.. 140x lower storage cost
    10 projects | news.ycombinator.com | 11 Jun 2023
    That's traces? I was wondering if I could use https://github.com/open-telemetry/opentelemetry-js/tree/main...
  • OpenObserve: Open source Elasticsearch/Datadog/Splunk alternative in Rust for logs. 140x lower storage cost
    3 projects | /r/devops | 7 Jun 2023
    Nothing like Faro for now. However, https://github.com/open-telemetry/opentelemetry-js can be used to achieve the same result and OpenObserve has great support for Opentelemetry.
  • Deno 1.33: Deno 2 is coming
    4 projects | news.ycombinator.com | 29 Apr 2023
  • Observable front-end applications - an open source product experiment
    2 projects | /r/indiehackers | 26 Mar 2023
    Can it be integrated with Grafana Faro or OpenTelemetry?
  • Logs and tracing: not just for production, local development too
    4 projects | news.ycombinator.com | 11 Nov 2021
    4. Register automatic instrumentations. For example, you can automatically trace all XHR requests, fetch requests, page loads, and user interactions. With distributed tracing, you should always prefer automatic instrumentation whenever possible to reduce maintenance and leverage existing conventions. The document load instrumentation allows you to treat the server as the parent span to a given page load, from which the client will then be the root span to everything in the server. This is an extremely powerful concept that allows traces to viewed from the perspective of the user, encapsulating all requests and user interactions in a single trace with no manual instrumentation!

    We also trialed Sentry's APM tool (also marketed as a distributed tracing tool). While it had pretty charts, dashboards, niceties like core web vitals, and integrated well with Sentry's error product, its utility as a distributed tracing tool is significantly less powerful than tools like Honeycomb. You will end up using a large amount of your user's bandwidth sending telemetry data that can't fully be leveraged in the Sentry UI. When I last used (in April 2021), the spans of a given trace could only be viewed in a specific part the UI and they couldn't be searched for in queries or used in charts. I'm unsure if this has been updated. But this is not the worse part. Because Sentry uses its own data model for traces, it is not compatible with open source standards such as OpenTelemetry or OpenTracing! The sales team will not tell you this during the trial. This means our entire backend, which was already instrumented with OpenTracing, would now also need to instrument Sentry's tracing (...if they supported the language) in order to connect frontend traces to backend traces. Each team I met with their sales team, I said the same thing: support OpenTelemetry, otherwise you are asking for us to further isolate our backend and frontend teams.

    It looks like they have heard this opinion, as they have recently published a blog post about the evolution of the distributed tracing API, citing incompatibility with OpenTelemetry due to their data model. It will require a very large change for them to support this. Meanwhile, OpenTelemetry can be used with any tracing vendor, a large number of languages, the other major instrumentation standards (OpenTracing, OpenCensus), and any trace propagation format.

    - [1]: https://github.com/open-telemetry/opentelemetry-js

  • Monitoring consumer lag in Azure Event Hub
    2 projects | dev.to | 30 Sep 2021
    Consumer lag will quickly show any functional or technical issue with your event stream. By using the code examples from this blogpost, you can avoid having to dive into the SDKs yourself. Of course, you can adopt the metric collection to send the metric to the logs or to another metrics system like prometheus, datadog, or open telemetry.
  • Any good tutorial showing you which library to use for dependency injection in a project?
    9 projects | /r/node | 29 Aug 2021
    I would work on getting Open Telemetry pointed at an β€œall-in-one” Jaegar instance and move on from there: https://www.jaegertracing.io/docs/1.25/getting-started/ https://github.com/open-telemetry/opentelemetry-js Various cloud providers may have a way to collect/view traces as well, but, Jaegar and the Open Telemetry Collector are the open source way to do that. The projects are in the process of converging in some ways β€” everything is in flux.
  • Distributed Tracing 101 for Full Stack Developers
    3 projects | dev.to | 12 Aug 2021
    OpenTelemetry is a collection of open source tools, APIs, and SDKs for instrumenting, generating, and exporting telemetry data from running software. It provides language-specific implementations for most popular programming languages, including both browser JavaScript and Node.js.

opentracing-javascript

Posts with mentions or reviews of opentracing-javascript. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-17.
  • Kotlin Spring WebFlux, R2DBC and Redisson microservice in k8s πŸ‘‹βœ¨πŸ’«
    12 projects | dev.to | 17 Oct 2022
    Spring Spring web framework Spring WebFlux Reactive REST Services Spring Data R2DBC a specification to integrate SQL databases using reactive drivers Redisson Redis Java Client Zipkin open source, end-to-end distributed tracing Spring Cloud Sleuth auto-configuration for distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus Kubernetes automating deployment, scaling, and management of containerized applications Docker and docker-compose Helm The package manager for Kubernetes Flywaydb for migrations
  • Go and ElasticSearch full-text search microservice in k8sπŸ‘‹βœ¨πŸ’«
    13 projects | dev.to | 16 Aug 2022
    Elasticsearch client for Go RabbitMQ Go RabbitMQ Client Library Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus Echo web framework Kibana is user interface that lets you visualize your Elasticsearch Docker and docker-compose Kubernetes K8s Helm The package manager for Kubernetes
  • Go EventSourcing and CQRS with PostgreSQL, Kafka, MongoDB and ElasticSearch πŸ‘‹βœ¨πŸ’«
    16 projects | dev.to | 18 Jul 2022
    PostgeSQL as event store database Kafka as messages broker gRPC Go implementation of gRPC Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus MongoDB MongoDB database Elasticsearch Elasticsearch client for Go. Echo web framework Kibana Kibana is data visualization dashboard software for Elasticsearch Migrate for migrations
  • OpenTelemetry vs OpenTracing - choosing one for instrumentation
    3 projects | dev.to | 28 Apr 2022
    OpenTracing was an open-source project aimed at providing vendor-neutral APIs and instrumentation for distributed tracing. In distributed cloud-native applications, it is difficult for engineering teams to see how requests are performing across services. And that’s where distributed tracing comes into the picture.
  • OpenTelemetry and Jaeger | Key concepts, features, and differences
    3 projects | dev.to | 9 Apr 2022
    OpenTracing is now archived, and it is suggested to migrate to OpenTelemetry.
  • Microservice communication Diagram
    1 project | /r/microservices | 27 Mar 2022
  • Go EventSourcing and CQRS microservice using EventStoreDB πŸ‘‹βš‘οΈπŸ’«
    12 projects | dev.to | 27 Feb 2022
    In this article let's try to create closer to real world Event Sourcing CQRS microservice using: πŸš€πŸ‘¨β€πŸ’»πŸ™Œ EventStoreDB The database built for Event Sourcing gRPC Go implementation of gRPC MongoDB Web and API based SMTP testing Elasticsearch Elasticsearch client for Go. Jaeger open source, end-to-end distributed tracing Prometheus monitoring and alerting Grafana for to compose observability dashboards with everything from Prometheus swag Swagger for Go Echo web framework Kibana Kibana is user interface that lets you visualize your Elasticsearch
  • Do Not Log
    1 project | news.ycombinator.com | 5 Jan 2022
    I agree; but I think it'll take years, if ever, to change this culture.

    Logging is a byproduct of a past time; everything is a file, stdout is a file, lets persist that file, now we have multiple replicas, lets collect the file into a multi-terabyte searchable database.

    The biggest downside: Its WILDLY expensive. Large orgs often have an entire team dedicated to maintaining logging (ELK) infrastructure. This price-tag inevitably leads to bikeshedding on backend teams about how to "reduce the amount we're logging" or "cleaning up the logs" or "structuring them to be more useful".

    Outside of development, they are so rarely useful. Yet inevitably someone will say: "you're just not structuring your logs correctly." Maybe that's true; similarly, I don't find vim to be a highly productive editing experience. Maybe I just don't have the thousands of extensions it would take to make it so. Or maybe You're stuck in the past and ignoring two decades of tooling improvement. Both can be true.

    I'm phrasing this as a false dichotomy, because in many teams: it is. Logging is easy; its built-in to most languages; so devs log. The information we need is in the system; its a needle in a haystack, but the needle is there. We log when a request comes in, when it hits pertinent functions, when its finished, how its finished, the manager says: "just look at the logs". Instead of "what better tooling can we make an investment in so future investigations of this nature don't take a full day."

    For starters: Tracing. Tracing systems should be built-in to EVERY LANGUAGE, just like console.log. We have a standard [1] sponsored by the Linux Foundation and supported by every major trace ingestion system. This is not a problem of camps and proprietary systems; its a problem of culture. I should be able to call a nodejs stdlib function at startup, specify where I want traces to go, sampling rate, etc, and immediately get every single function call instrumented. Its literally just highly-structured-by-default logging! Dump the spans to stdout by default! Our log ingestion systems can read each line, determine if its a span, if so route to trace ingestion, otherwise route to log ingestion.

    This is a critical step because it asserts that tracing is actually a very powerful tool that everyone needs to learn, like logging. Everyone knows about logging. Why? console.log. Its there, it gets used. Tracing right now is relegated to a subculture of "advanced diagnostics"; you gotta adopt a tracing provider, bring in dependencies, learn each implementation of OpenTracing, authenticate to send traces over HTTP... as a community, we should normalize just "dump traces like you dump logs, to stdout", have a formatter to make them nice to use in development, and now all that instrumentation work that any dev is capable of utilizing (just like console.log) "just works" in production.

    [1] https://opentracing.io/

  • I share my authentication server.
    18 projects | /r/golang | 20 Dec 2021
    Service mesh - ssup2ket services run on service mesh for detailed traffic control and easy monitoring. Service mesh is applied through Istio. Istio uses OpenTracing for easy request tracing between multiple services.
  • logging best practices
    1 project | /r/devops | 7 Dec 2021

What are some alternatives?

When comparing opentelemetry-js and opentracing-javascript you can also consider the following projects:

Sentry - Developer-first error tracking and performance monitoring

kafka-go - Kafka library in Go

prom-client - Prometheus client for node.js

opentelemetry-specification - Specifications for OpenTelemetry

PostHog - πŸ¦” PostHog provides open-source product analytics, session recording, feature flagging and A/B testing that you can self-host.

prometheus - The Prometheus monitoring system and time series database.

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

InversifyJS - A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.

apm-agent-nodejs - Elastic APM Node.js Agent

nestjs-commander - A module for using NestJS to build up CLI applications

zipkin - Zipkin is a distributed tracing system