O OpenTelemetry eBPF Instrumentation (OBI) captura o tráfego de rede e de protocolos das aplicações na camada de kernel, sem modificar o código de negócio ou injetar SDKs. Este tópico explica cada módulo de configuração para o OBI implantado em ambientes Alibaba Cloud Container Service for Kubernetes (ACK), abordando a semântica dos campos, valores e sugestões de ajuste. O OBI gera métricas e traces que seguem as convenções semânticas do OpenTelemetry.
Pré-requisitos
Esta configuração é executada por padrão em um ambiente ACK. Ela implanta o OBI como um DaemonSet em cada nó e utiliza eBPF para coletar o tráfego de todos os pods no nó, diretamente na camada de kernel. Antes de começar, confirme os seguintes pré-requisitos.
|
Item |
Requisito |
Descrição |
|
Modo de implantação |
DaemonSet (nível de nó) |
Uma instância do OBI por nó coleta dados de todas as cargas de trabalho nesse nó. |
Módulos de configuração
Esta configuração consiste em seis módulos principais que controlam quais métricas coletar, de quais instâncias coletar, quais rótulos anexar aos dados, como consolidar rotas, quais protocolos analisar na camada de kernel e como exportar traces.
|
Módulo |
Responsabilidade |
Efeito principal |
|
|
Controles de capacidade de métricas |
Ativa métricas de aplicação, rede e RTT TCP |
|
|
Descoberta e exclusão de alvos de coleta |
Exclui o namespace do OBI e os namespaces de componentes do Application Real-Time Monitoring Service (ARMS) |
|
|
Decoração e filtragem de atributos |
Associa metadados do Kubernetes; retém atributos GenAI nos traces |
|
|
Consolidação de rotas HTTP |
Controla a cardinalidade de caminhos para evitar a explosão de dimensões de métricas |
|
|
Extração de payload na camada de kernel |
Analisa protocolos da camada de aplicação GenAI e JSON-RPC |
Capacidade de métricas
O módulo metrics usa a lista features para especificar os tipos de métricas que o OBI coleta. Este exemplo ativa métricas de aplicação, rede e RTT TCP.
|
Item de configuração |
Descrição |
Valor |
Observações e recomendações de ajuste |
|
|
Métricas de aplicação |
Ativado |
Habilita a coleta de métricas para a dimensão da aplicação. |
|
|
Métricas de rede |
Ativado |
Habilita a coleta de métricas para a dimensão de rede. |
|
|
Métricas de RTT TCP |
Ativado |
Habilita a coleta de estatísticas de RTT TCP. |
Exclusão de namespace
O módulo discovery determina quais processos ou Pods o OBI instrumenta. Este exemplo usa exclude_instrument para excluir namespaces, impedindo que o OBI colete seus próprios dados e os dados de componentes da plataforma ARMS. Isso reduz dados desnecessários de automonitoramento e a sobrecarga de recursos.
|
Campo |
Finalidade |
Valor |
Observações |
|
|
Exclui o namespace onde o OBI é executado |
Excluído |
Impede que o OBI colete seus próprios dados e evita ruído de automonitoramento |
|
|
Exclui os componentes do operador de monitoramento de aplicações do ARMS |
Excluído |
O ack-onepilot é o componente de gerenciamento de agentes do ARMS e não requer coleta no nível de negócio |
|
|
Exclui componentes relacionados ao ARMS Prometheus |
Excluído |
Componentes de coleta da plataforma; excluí-los reduz a sobrecarga de autocoleta |
Estenda a lista de exclusão com base no seu ambiente. Por exemplo, adicione kube-system ou outros namespaces de plataforma.
Use exclude_instrument (lista de bloqueios) quando a maioria dos namespaces precisar de coleta e apenas alguns devam ser excluídos. Para coletar apenas namespaces de negócio específicos, use uma lista de permissões discovery.instrument.
Configuração de atributos
O módulo attributes controla quais atributos anexar às métricas e traces coletados, e quais atributos reter nos traces. Este exemplo ativa a associação de metadados do Kubernetes e retém explicitamente todos os atributos semânticos GenAI nos traces.
|
Campo |
Finalidade |
Valor |
Observações |
|
|
Associa metadados do Kubernetes (Pod, namespace, carga de trabalho, nó, entre outros) aos dados |
|
(Recomendado) Ative em ambientes ACK para consultas e detalhamentos baseados em dimensões do Kubernetes |
|
|
Lista de permissões de atributos para traces. |
Retém todos os atributos |
Garante que atributos de chamadas LLM, como provedor, modelo, token, operação e ferramenta, sejam totalmente incluídos nos traces |
Os atributos gen_ai.* seguem as convenções semânticas GenAI do OpenTelemetry e incluem atributos como gen_ai.system (provedor), gen_ai.request.model (nome do modelo), gen_ai.operation.name (tipo de operação, como chat ou embeddings) e gen_ai.tool.name (nome da chamada de ferramenta). Reter esses atributos é essencial para a observabilidade de traces de LLM.
Consolidação de rotas
O módulo routes consolida caminhos de requisição HTTP em modelos de rota. Isso evita o crescimento ilimitado de dimensões de métricas (cardinalidade) causado por segmentos variáveis, como IDs e UUIDs nos caminhos. A cardinalidade descontrolada aumenta significativamente os custos do banco de dados de séries temporais e torna as consultas mais lentas.
|
Campo |
Finalidade |
Valor |
Opções |
Observações |
|
|
Estratégia de processamento para caminhos que não correspondem a nenhum modelo de rota |
|
|
|
|
|
Número máximo de valores distintos permitidos para um único segmento de caminho. Segmentos que excedem esse limiar são colapsados em um curinga. |
|
Inteiro positivo |
Valores mais altos retêm mais detalhes, mas aumentam a cardinalidade. (Recomendado) Use um limiar menor para segmentos de alta variabilidade, como IDs. |
Análise de protocolos
A configuração ebpf.payload_extraction controla se o OBI extrai payloads HTTP na camada de kernel e analisa o conteúdo do protocolo da camada de aplicação. Quando ativado, o OBI reconstrói informações semânticas, como chamadas LLM e MCP, a partir de mensagens HTTP em texto simples. Esta é a base para a observabilidade GenAI não intrusiva.
|
Campo |
Finalidade |
Valor |
Opções |
Observações |
|
|
Analisa protocolos JSON-RPC 2.0 baseados em HTTP |
|
|
O MCP e protocolos similares são baseados em JSON-RPC. Ative para reconstruir nomes de métodos e semântica de chamadas. |
|
|
Controles de análise para provedores GenAI individuais e tipos de chamada |
Consulte a tabela a seguir |
Controle por provedor |
Ative apenas os provedores que você realmente utiliza para reduzir a sobrecarga desnecessária de análise. |
|
|
Tamanho do buffer do kernel para extração de payload HTTP (bytes) |
|
Inteiro positivo (bytes) |
Os corpos de requisição e resposta de LLM podem ser grandes. Aloque buffer suficiente para evitar truncamento de payload. Valores maiores aumentam o uso de memória. |
Controles de análise de provedores GenAI
A seção http.genai fornece controles individuais para análise de payload de diferentes provedores de LLM e tipos de chamada. Os itens a seguir estão ativados neste exemplo. Ative apenas os provedores que suas cargas de trabalho realmente chamam.
|
Campo |
Alvo da análise |
Valor |
Descrição |
|
|
Interfaces compatíveis com OpenAI |
|
Abrange vLLM, modo de compatibilidade DashScope, endpoints locais Ollama compatíveis com OpenAI e serviços similares |
|
|
API nativa OpenAI |
|
Analisa chamadas da API oficial da OpenAI |
|
|
API Anthropic Claude |
|
Analisa chamadas do modelo Claude |
|
|
Chamadas de recuperação (Retrieval / RAG) |
|
Reconstrói estágios de recuperação vetorial e recuperação RAG |
|
|
Chamadas MCP (Model Context Protocol) |
|
Baseado em JSON-RPC; use em conjunto com |
|
|
API nativa Qwen DashScope |
|
Analisa chamadas do modelo Qwen |
|
|
Chamadas de embedding de texto |
|
Reconstrói estágios de embedding de texto |
|
|
API Google Gemini |
|
Analisa chamadas do modelo Gemini |
|
|
Chamadas de reclassificação |
|
Reconstrói estágios de reclassificação de resultados de recuperação |
Gateways personalizados
Se você rotear chamadas LLM por meio de um gateway auto-hospedado (como LiteLLM ou vLLM), adicione uma lista gateways sob openai_compatible para declarar os hosts e portas desses gateways. O OBI identifica o tráfego que corresponde à lista e o analisa como o gateway correspondente, produzindo informações semânticas GenAI corretas mesmo em endpoints não oficiais compatíveis com OpenAI.
genai:
openai_compatible:
enabled: true
gateways:
- host: litellm.example.com
provider: litellm
- host: localhost
port: 8080
provider: vllm
O campo host é obrigatório. Os campos port e provider são opcionais.
Tipos de instrumentação ativados
A lista instrumentations sob otel_traces_export determina para quais protocolos e middleware o OBI gera traces. Os seguintes tipos estão ativados neste exemplo:
|
Tipo de instrumentação |
Alvo |
Valor |
|
|
Chamadas HTTP e HTTPS |
Ativado |
|
|
Chamadas gRPC |
Ativado |
|
|
Acesso a banco de dados SQL |
Ativado |
|
|
Acesso ao Redis |
Ativado |
|
|
Mensagens Kafka |
Ativado |
|
|
Mensagens MQTT |
Ativado |
|
|
Acesso ao MongoDB |
Ativado |
|
|
Acesso ao Couchbase |
Ativado |
|
|
Acesso ao Memcached |
Ativado |
|
|
Chamadas LLM (GenAI) |
Ativado |
Referência completa de configuração
A seguir, apresentamos a configuração completa do OBI descrita neste tópico. Copie e utilize-a diretamente. Antes de aplicar a configuração em produção, ajuste a lista de exclusão, os controles GenAI e os parâmetros de exportação com base em seus namespaces, provedores e volume de tráfego.