Todos os produtos
Search
Central de documentação

Cloud Monitor:Configuração de componentes do OBI

Última atualização: Jul 24, 2026

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

metrics

Controles de capacidade de métricas

Ativa métricas de aplicação, rede e RTT TCP

discovery

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)

attributes

Decoração e filtragem de atributos

Associa metadados do Kubernetes; retém atributos GenAI nos traces

routes

Consolidação de rotas HTTP

Controla a cardinalidade de caminhos para evitar a explosão de dimensões de métricas

ebpf

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

features: application

Métricas de aplicação

Ativado

Habilita a coleta de métricas para a dimensão da aplicação.

features: network

Métricas de rede

Ativado

Habilita a coleta de métricas para a dimensão de rede.

features: stats_tcp_rtt

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

exclude_instrument[].k8s_namespace: obi-system

Exclui o namespace onde o OBI é executado

Excluído

Impede que o OBI colete seus próprios dados e evita ruído de automonitoramento

exclude_instrument[].k8s_namespace: ack-onepilot

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

exclude_instrument[].k8s_namespace: arms-prom

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

kubernetes.enable

Associa metadados do Kubernetes (Pod, namespace, carga de trabalho, nó, entre outros) aos dados

true

(Recomendado) Ative em ambientes ACK para consultas e detalhamentos baseados em dimensões do Kubernetes

select.traces.include: gen_ai.*

Lista de permissões de atributos para traces. gen_ai.* corresponde a todos os atributos da convenção semântica GenAI

Retém todos os atributos gen_ai.*

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

routes.unmatched

Estratégia de processamento para caminhos que não correspondem a nenhum modelo de rota

low-cardinality

low-cardinality / wildcard / path / heuristic

low-cardinality consolida caminhos não correspondentes em uma forma de baixa cardinalidade para evitar explosão de dimensões. Durante a depuração, use temporariamente path para reter os caminhos originais.

routes.max_path_segment_cardinality

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.

500

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

http.jsonrpc.enabled

Analisa protocolos JSON-RPC 2.0 baseados em HTTP

true

true / false

O MCP e protocolos similares são baseados em JSON-RPC. Ative para reconstruir nomes de métodos e semântica de chamadas.

http.genai.*

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.

buffer_sizes.http

Tamanho do buffer do kernel para extração de payload HTTP (bytes)

262144 (256 KB)

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

genai.openai_compatible.enabled

Interfaces compatíveis com OpenAI

true

Abrange vLLM, modo de compatibilidade DashScope, endpoints locais Ollama compatíveis com OpenAI e serviços similares

genai.openai.enabled

API nativa OpenAI

true

Analisa chamadas da API oficial da OpenAI

genai.anthropic.enabled

API Anthropic Claude

true

Analisa chamadas do modelo Claude

genai.retrieval.enabled

Chamadas de recuperação (Retrieval / RAG)

true

Reconstrói estágios de recuperação vetorial e recuperação RAG

genai.mcp.enabled

Chamadas MCP (Model Context Protocol)

true

Baseado em JSON-RPC; use em conjunto com jsonrpc.enabled

genai.qwen.enabled

API nativa Qwen DashScope

true

Analisa chamadas do modelo Qwen

genai.embedding.enabled

Chamadas de embedding de texto

true

Reconstrói estágios de embedding de texto

genai.gemini.enabled

API Google Gemini

true

Analisa chamadas do modelo Gemini

genai.rerank.enabled

Chamadas de reclassificação

true

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
Nota

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

http

Chamadas HTTP e HTTPS

Ativado

grpc

Chamadas gRPC

Ativado

sql

Acesso a banco de dados SQL

Ativado

redis

Acesso ao Redis

Ativado

kafka

Mensagens Kafka

Ativado

mqtt

Mensagens MQTT

Ativado

mongo

Acesso ao MongoDB

Ativado

couchbase

Acesso ao Couchbase

Ativado

memcached

Acesso ao Memcached

Ativado

genai

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.

YAML de configuração completa do OBI

metrics:
  features:
    - application
    - network
    - stats_tcp_rtt
discovery:
  exclude_instrument:
    - k8s_namespace: obi-system
    - k8s_namespace: ack-onepilot
    - k8s_namespace: arms-prom
attributes:
  kubernetes:
    enable: true
  select:
    traces:
      include:
        - "gen_ai.*"
routes:
  unmatched: low-cardinality
  max_path_segment_cardinality: 500
ebpf:
  payload_extraction:
    http:
      jsonrpc:
        enabled: true
      genai:
        openai_compatible:
          enabled: true
        openai:
          enabled: true
        anthropic:
          enabled: true
        retrieval:
          enabled: true
        mcp:
          enabled: true
        qwen:
          enabled: true
        embedding:
          enabled: true
        gemini:
          enabled: true
        rerank:
          enabled: true
  buffer_sizes:
    http: 262144
otel_traces_export:
  batch_timeout: 10s
  batch_max_size: 512
  queue_size: 4096
  backoff_initial_interval: 5s
  backoff_max_interval: 15s
  backoff_max_elapsed_time: 2m
  instrumentations:
    - http
    - grpc
    - sql
    - redis
    - kafka
    - mqtt
    - mongo
    - couchbase
    - memcached
    - genai