html 🔭 Opentelemetria | Nullcore
Pule para o conteúdo principal

🔭 Opentelemetria

Nullcore suportaRastreamento e métricas distribuídasExportar através do protocolo OPENTELETRIA (OTEL) (OTLP). Isso permite integração com pilhas de observabilidade modernas, comoGrafana LGTM (Loki, Grafana, Tempo, Mimir), assim comoJaeger, Assim,Tempo, ePrometeuPara monitorar solicitações, consultas de banco de dados/redis, tempos de resposta e muito mais em tempo real.

🚀 Comece rápido com o Docker Compose

A maneira mais rápida de começar com a observabilidade é com a composição pré-configurada do docker:

# Spin Up Nullcore e a mais recente pilha LGTM Grafana, all-in-one
Docker Compose -f Docker-compose.otel.yaml up -d

Odocker-compose.otel.yamlArquivo configura estes componentes:

ServiçoPortos (s)Descrição
Grafana3000 (UI), 4317 (OTLP/GRPC), 4318 (HTTP)Grafana LGTM (Loki+Grafana+Tempo+Mimir) All-in-One
Open-Webui8088 (padrão) → 8080Webui, OTEL ativado, expõe na porta host 8088

Após a startup, acesse o painel de Grafana emhttp: // localhost: 3000
Conecte-se:adminadmin

⚙️ Variáveis ​​de ambiente

Você pode configurar o OpenteleMetria em Web Open com essas variáveis ​​de ambiente (conforme usado no arquivo de composição):

VariávelPadrãoDescrição
ENABLE_OTELverdadeiroem composiçãoAtivar rastreamento de opentelemetria
ENABLE_OTEL_METRICSverdadeiroem composiçãoAtivar exportação de métricas HTTP FASTAPI
OTEL_EXPORTER_OTLP_ENDPOINThttp://grafana:4317em composiçãoOTLP GRPC/HTTP URL
OTEL_EXPORTER_OTLP_INSECUREverdadeiroem composiçãoConexão insegura (sem TLS) para OTLP
OTEL_SERVICE_NAMEopen-webuiNome do serviço (marcado em traços e métricas)
OTEL_BASIC_AUTH_USERNAMEOTEL_BASIC_AUTH_PASSWORD(vazio)Credenciais básicas de autenticação se o coletor exigir

Dica: substituir os padrões em seu.envArquive ou compor arquivo conforme necessário.

  Open-Webui
ambiente
Enable_otel = true
Enable_otel_metrics = true
Otel_exporter_otlp_insecure = true# Use conexão insegura para OTLP, você pode remover isso na produção
Otel_exporter_otlp_endPoint = http// Grafana4317
Otel_service_name = abertowebui
# Você pode definir otel_basic_auth_username/senha aqui se necessário

📊 Coleta de dados

Rastreamento distribuído

O back -end do Webui Open: os instrumentos automaticamente:

  • FASTAPI(rotas)
  • Sqlalchemy(Consultas de banco de dados)
  • Redis
  • solicitações, Assim,httpx, Assim,AIOHTTP(chamadas externas)

Cada extensão de traço inclui dados ricos como:

  • db.instance, Assim,db.statement, Assim,redis.args
  • http.url, Assim,http.method, Assim,http.status_code
  • Detalhes do erro (error.message, Assim,error.kind) em exceções

Coleção de métricas

Webui exporta as seguintes métricas via OpenElemetria:

InstrumentoTipoUnidadeRótulos
http.server.requestsContador1http.method, Assim,http.route, Assim,http.status_code
http.server.durationHistogramaEM(o mesmo que acima)

As métricas são enviadas via OTLP (padrão a cada 10 segundos) e podem ser visualizadas emGrafana(via Prometheus/Mimir).

🔧 Configuração do coletor personalizado

Para usar um coletor/pilha diferente (externo) Opentelemetria:

Docker Run -D -Nome Open -Webui \
-p 8088: 8080 \
-e enable_otel = true \
-e enable_otel_metrics = true \
-e otel_exporter_otlp_endPoint = http: // seu-collector: 4317 \
-e otel_exporter_otlp_insecure = true \
-e otel_service_name = open-webui \
-v aberto webui:/app/backend/data \
ghcr.io/open-webui/open-webui:Main

🚨 Solução de problemas

Traços/métricas não aparecendo em Grafana?

  • Verifique duas vezesENABLE_OTELeENABLE_OTEL_METRICSambos estão preparados paratrue
  • O terminal está correto? (OTEL_EXPORTER_OTLP_ENDPOINT
  • Inspecione os logs de Nullcore (docker logs open-webui) para erros de OTLP
  • Porta OTLP do colecionador (4317) deve estar aberto e acessível. Tentar:
    curl http://localhost:4317(substitua o host conforme necessário)

Autenticação necessária?

  • DefinirOTEL_BASIC_AUTH_USERNAMEeOTEL_BASIC_AUTH_PASSWORDpara colecionadores protegidos por autenticação
  • Se estiver usando SSL/TLS, ajuste ou removaOTEL_EXPORTER_OTLP_INSECUREconforme apropriado