Pular para o conteúdo
LatchkeyLatchkey home

OpenTelemetry vs Jaeger: Padrão vs backend de tracing

O OpenTelemetry é o padrão neutro em relação a fornecedores para gerar e exportar telemetria; o Jaeger é um backend e uma UI que armazena e visualiza traces.

O OpenTelemetry (OTel) é o padrão da CNCF - SDKs, APIs e um collector - para instrumentar aplicações e exportar traces, métricas e logs para qualquer backend. O Jaeger é um backend de tracing distribuído com armazenamento e uma UI de consulta. Eles são complementares: o OTel produz os dados, o Jaeger (entre outros) os armazena e exibe.

OpenTelemetryJaeger
PapelPadrão de instrumentação + exportaçãoBackend de tracing + UI
EscopoTraces, métricas, logsTraces
Neutralidade de fornecedorSim (exporta para qualquer lugar)Um backend
ArmazenamentoNão (exporta)Sim
Melhor paraInstrumentação padronizadaVisualizar e consultar traces

Na prática

Estes não são realmente uma escolha ou outra: instrumente suas aplicações com o OpenTelemetry e depois envie os traces para um backend - que pode ser o Jaeger. O OTel protege você contra o lock-in de fornecedor no futuro; o Jaeger oferece um lugar open-source maduro para armazenar e explorar traces. O Jaeger agora adota a ingestão OTel diretamente, então o padrão moderno é ter SDKs do OTel alimentando um backend Jaeger (ou outro).

Nota

Você também pode fazer tracing de etapas de CI e de build com o OTel. Os builds rodam em CI runners; runners gerenciados mais rápidos os encurtam.

Benchmark on your repository before choosing

Build-tool benchmarks published by vendors use repositories chosen to show a difference. Yours is the only one that matters, and both a cold and a warm measurement are needed because CI mostly runs cold.

Terminal
# cold: no cache, the CI condition
rm -rf node_modules/.cache dist && time <tool> build

# warm: the local development condition
time <tool> build

# and the one people forget: incremental after a one-line change
echo "// touch" >> src/index.ts && time <tool> build

O veredito

Eles trabalham juntos: use o OpenTelemetry para instrumentar e exportar, e o Jaeger (ou outro backend) para armazenar e visualizar traces. Padronize no OTel; escolha o Jaeger como um backend de tracing open-source sólido.

Perguntas frequentes

OpenTelemetry vs Jaeger: Standard vs Tracing Backend?
OpenTelemetry (OTel) is the CNCF standard - SDKs, APIs, and a collector - for instrumenting apps and exporting traces, metrics, and logs to any backend. Jaeger is a distributed tracing backend with storage and a query UI. They are complementary: OTel produces the data, Jaeger (among others) stores and displays it.
In practice?
These are not really either/or: instrument your apps with OpenTelemetry, then send traces to a backend - which can be Jaeger. OTel future-proofs you against vendor lock-in; Jaeger gives you a mature open-source place to store and explore traces.
Note?
You can trace CI and build steps with OTel too. The builds run on CI runners; faster managed runners shorten them.
Which should I choose?
They work together: use OpenTelemetry to instrument and export, and Jaeger (or another backend) to store and visualize traces. Standardize on OTel; pick Jaeger as one solid open-source tracing backend.

Guias relacionados