Com contribuições de Dan Gomez Blanco (New Relic). Se você está construindo software self-hosted ou um produto SaaS, os usuários acabarão pedindo para enviar seus logs, traces e métricas para a própria stack de observabilidade. Prendê-los a dashboards integrados ou limitar as exportações a determinados fornecedores cria atritos desnecessários. Já oferecer suporte à exportação para qualquer backend compatível com Open Telemetry (OTel) é uma prática neutra em relação a fornecedores e preparada para o futuro, que dá aos usuários a liberdade de escolher sua stack de observabilidade.
Este post descreve como projetar seu produto para que os usuários possam exportar logs, traces e métricas para um backend OTel quando quiserem. O Open Telemetry define quatro tipos de sinais transportados pelo protocolo padrão Open Telemetry Protocol (OTLP): Logs (registros de eventos, logs de requisições e acesso, logs de aplicação com timestamps e metadados), Traces (traces distribuídos e spans que permitem ver o fluxo das requisições entre serviços e correlacioná-las com os logs), Metrics (contadores, medidores e histogramas, como taxas de requisição, latência e taxas de erro) e Profiles (amostras que mostram onde as aplicações consomem recursos durante a execução). A mesma lógica de exportação vale para os três sinais: permita que o usuário configure um endpoint OTLP e envie a telemetria para ele. Você pode oferecer suporte a um, dois ou os três sinais, dependendo do que seu produto gera. Muitas plataformas que suportam exportação OTel oferecem pelo menos traces e logs, e um número crescente agora também oferece métricas. Projetar para os três desde o início evita ter que refazer o trabalho depois.
Uma boa estratégia de exportação tem algumas propriedades claras para cada sinal suportado: neutralidade em relação a fornecedores, sem necessidade de desenvolvimento customizado complexo, preservação do contexto rico e suporte às convenções semânticas. Há dois contextos a considerar: onde seu produto roda? Para software self-hosted, instrumente seu produto com Open Telemetry e deixe os clientes configurarem um endpoint por variáveis de ambiente ou arquivo de configuração. Para plataformas em nuvem, adicione um recurso de plataforma para gerenciar as exportações. Exemplos incluem Keycloak e Kuma.
Fonte: Hacker News · Resumido por HeadlinesBriefing