Referência de Métricas
Este documento descreve todas as métricas do Prometheus expostas pelo OmniUPF no endpoint /metrics.
Categorias de Métricas
- Métricas de mensagens PFCP - Contadores de mensagens do protocolo de controle e latência por par
- Métricas de Ação XDP - Veredictos de pacotes do plano de dados (descartar, passar, redirecionar, etc.)
- Métricas de Pacotes - Contadores de pacotes recebidos por tipo de protocolo
- Métricas de Sessão e Associação PFCP - Contagens de sessões e associações por par
- Métricas URR - Contadores de volume de tráfego agregados por par PFCP
- Métricas de Bufferização de Pacotes - Estado do buffer de pacotes, capacidade e taxa de transferência
- Métricas de Relatório de Dados de Downlink (Notificação) - Notificações de Solicitação de Relatório de Sessão PFCP e rastreamento de índice FAR
- Métricas de Capacidade do Mapa eBPF - Utilização e capacidade do mapa eBPF
Referência de Métricas
Métricas de mensagens PFCP
Métricas para rastrear mensagens do protocolo PFCP entre o UPF e os n��s do plano de controle.
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_pfcp_rx | Counter | message_name, peer_address | Número total de mensagens PFCP recebidas por tipo de mensagem e par |
| upf_pfcp_tx | Counter | message_name, peer_address | Número total de mensagens PFCP transmitidas por tipo de mensagem e par |
| upf_pfcp_rx_errors | Counter | message_name, cause_code, peer_address | Número total de mensagens PFCP rejeitadas com causa de erro por tipo de mensagem e par |
| upf_pfcp_rx_latency | Summary | message_type, peer_address | Duração do processamento da mensagem PFCP em microsegundos (quantis p50, p90, p99) por tipo de mensagem e par |
Nota: Todos os contadores rastreiam mensagens por par PFCP para visibilidade granular no comportamento do nó do plano de controle.
Métricas de Ação XDP
Contadores de pacotes por ação/veredicto do programa XDP. Essas métricas rastreiam a decisão do plano de dados para cada pacote.
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_xdp_aborted | Counter | none | Número total de pacotes abortados (XDP_ABORTED) |
| upf_xdp_drop | Counter | none | Número total de pacotes descartados (XDP_DROP) |
| upf_xdp_pass | Counter | none | Número total de pacotes passados para o kernel (XDP_PASS) |
| upf_xdp_tx | Counter | none | Número total de pacotes transmitidos (XDP_TX) |
| upf_xdp_redirect | Counter | none | Número total de pacotes redirecionados (XDP_REDIRECT) |
Métricas de Pacotes
Contadores para pacotes recebidos por tipo de protocolo. Todas as métricas usam o rótulo packet_type.
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_rx | Counter | packet_type | Número total de pacotes recebidos por tipo |
| upf_route | Counter | packet_type | Número total de pacotes roteados pelo resultado da busca |
Valores de packet_type de upf_rx:
arp- Pacotes ARPicmp- Pacotes ICMPicmp6- Pacotes ICMPv6ip4- Pacotes IPv4ip6- Pacotes IPv6tcp- Pacotes TCPudp- Pacotes UDPother- Outros tipos de pacotesgtp-echo- Solicitação/resposta de eco GTPgtp-pdu- PDU GTP-U (dados de usuário encapsulados)gtp-other- Outros tipos de mensagens GTPgtp-unexp- Pacotes GTP inesperados/malformados
Valores de packet_type de upf_route:
ip4-cache- Acertos de cache de rota IPv4ip4-ok- Sucesso na busca FIB IPv4ip4-error-drop- Falha na busca FIB IPv4, pacote descartadoip4-error-pass- Falha na busca FIB IPv4, pacote passado para o kernelip6-cache- Acertos de cache de rota IPv6ip6-ok- Sucesso na busca FIB IPv6ip6-error-drop- Falha na busca FIB IPv6, pacote descartadoip6-error-pass- Falha na busca FIB IPv6, pacote passado para o kernel
Métricas de Sessão e Associação PFCP
Métricas para rastrear sessões e associações PFCP entre o UPF e os nós do plano de controle.
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_pfcp_sessions | Gauge | none | Número total de sessões PFCP atualmente estabelecidas (todos os pares) |
| upf_pfcp_associations | Gauge | none | Número total de associações PFCP atualmente estabelecidas (todos os pares) |
| upf_pfcp_association_status | Gauge | node_id, address | Status da associação PFCP por par (1=ativo, 0=inativo) |
| upf_pfcp_sessions_per_node | Gauge | node_id, address | Número de sessões PFCP ativas por nó do plano de controle |
Métricas URR (Regra de Relatório de Uso)
Métricas de volume de tráfego agregadas por par PFCP. O volume de cada par representa a soma de todos os contadores URR em todas as sessões daquele nó do plano de controle.
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_urr_uplink_volume_bytes | Gauge | peer_address | Volume total de tráfego uplink em bytes para todas as sessões deste par |
| upf_urr_downlink_volume_bytes | Gauge | peer_address | Volume total de tráfego downlink em bytes para todas as sessões deste par |
| upf_urr_total_volume_bytes | Gauge | peer_address | Volume total de tráfego em bytes (uplink + downlink) para todas as sessões deste par |
Nota: Os volumes são agregados por par PFCP para evitar problemas de alta cardinalidade. Estatísticas URR individuais estão disponíveis via API REST em /api/v1/urr_map.
Métricas de Bufferização de Pacotes
Métricas para rastrear o estado e o desempenho do buffer de pacotes. O UPF pode armazenar pacotes de downlink quando um UE está em estado ocioso, retendo-os até que o UE seja chamado e transite para o estado conectado.
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_buffer_packets_total | Counter | none | Número total de pacotes adicionados ao buffer (todas as vezes) |
| upf_buffer_packets_dropped | Counter | reason | Número total de pacotes descartados do buffer |
| upf_buffer_packets_flushed | Counter | none | Número total de pacotes esvaziados do buffer |
| upf_buffer_packets_current | Gauge | none | Número atual de pacotes no buffer |
| upf_buffer_bytes_total | Counter | none | Número total de bytes adicionados ao buffer (todas as vezes) |
| upf_buffer_bytes_current | Gauge | none | Bytes atuais no buffer |
| upf_buffer_fars_active | Gauge | none | Número atual de FARs com pacotes armazenados |
| upf_buffer_listener_packets_received_total | Counter | none | Total de pacotes recebidos pelo listener de buffer do dataplane eBPF |
| upf_buffer_listener_packets_buffered_total | Counter | none | Total de pacotes armazenados com sucesso pelo listener |
| upf_buffer_listener_errors_total | Counter | type | Erros no processamento de pacotes do listener de buffer |
| upf_buffer_listener_error_indications_sent_total | Counter | remote_peer | Total de mensagens de Indicação de Erro GTP-U enviadas para TEIDs desconhecidos por par remoto |
| upf_buffer_flush_success_total | Counter | none | Total de operações de esvaziamento de buffer bem-sucedidas |
| upf_buffer_flush_errors_total | Counter | reason | Total de operações de esvaziamento de buffer com falha |
| upf_buffer_flush_packets_sent_total | Counter | none | Total de pacotes enviados durante operações de esvaziamento |
Valores de reason de upf_buffer_packets_dropped:
expired- Pacotes descartados devido à expiração do TTLglobal_limit- Descartados devido ao limite total do buffer alcançadofar_limit- Descartados devido ao limite de buffer por FAR alcançadocleared- Pacotes manualmente limpos do buffer
Valores de type de upf_buffer_listener_errors_total:
read_error- Erro ao ler do socket do buffertoo_small- Pacote muito pequeno para o cabeçalho GTPinvalid_gtp_type- Tipo de mensagem GTP não-G-PDUunknown_teid- Nenhum PDR/FAR encontrado para TEIDnot_buffering_far- FAR não tem ação BUFFtruncated_ext- Cabeçalhos de extensão GTP truncadosno_payload- Pacote GTP sem carga útilbuffer_full- Capacidade do buffer excedida
Valores de reason de upf_buffer_flush_errors_total:
far_lookup_failed- Falha ao buscar informações do FAR no mapa eBPFno_forw_action- FAR não tem ação FORW definidaconnection_failed- Falha ao criar conexão UDP para esvaziamento
Métricas de Relatório de Dados de Downlink (Notificação)
Métricas para notificações de Solicitação de Relatório de Sessão PFCP enviadas ao plano de controle quando pacotes são armazenados. Essas notificações acionam o plano de controle para chamar o UE.
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_dldr_sent_total | Counter | none | Número total de notificações de Relatório de Dados de Downlink (DLDR) enviadas ao SMF |
| upf_dldr_send_errors | Counter | none | Número total de erros ao enviar notificações de Relatório de Dados de Downlink |
| upf_dldr_active_notifications | Gauge | none | Número atual de FARs com notificações DLDR ativas (ainda não limpas) |
| upf_far_index_size | Gauge | none | Número atual de FARs registrados no FarIndex para notificações DLDR |
| upf_far_index_registrations_total | Counter | none | Número total de registros de FAR no FarIndex |
| upf_far_index_unregistrations_total | Counter | none | Número total de desregistros de FAR do FarIndex |
| upf_buffer_notify_to_flush_duration_seconds | Histogram | pfcp_peer | Tempo entre o envio da notificação DLDR e o esvaziamento dos pacotes armazenados |
upf_buffer_notify_to_flush_duration_seconds:
- Baldes de histograma: 0.01, 0.05, 0.1, 0.5, 1.0, 2.0, 5.0, 10.0, 30.0, 60.0 segundos
- Rótulo
pfcp_peer: Endereço SMF/PGW-C (por exemplo,10.100.50.241) - Mede a latência entre o UPF enviando a notificação ao SMF e o SMF respondendo com a modificação da sessão para esvaziar pacotes
- Útil para monitorar a capacidade de resposta do plano de controle durante transições de ocioso para conectado
Métricas de Indicação de Erro GTP-U
Métricas para rastrear mensagens de Indicação de Erro GTP-U enviadas e recebidas. Indicações de Erro são enviadas quando um par recebe pacotes para TEIDs desconhecidos, indicando incompatibilidades de estado de túnel (frequentemente devido a reinicializações de pares).
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_buffer_listener_error_indications_sent_total | Counter | node_id, peer_address | Total de Indicações de Erro GTP-U enviadas para TEIDs desconhecidos |
| upf_buffer_listener_error_indications_received_total | Counter | node_id, peer_address | Total de Indicações de Erro GTP-U recebidas de pares |
| upf_buffer_listener_error_indication_sessions_deleted_total | Counter | node_id, peer_address | Total de sessões deletadas devido a Indicações de Erro recebidas |
Definições de Rótulos:
node_id: ID do Nó PFCP da associação (por exemplo,"pgw-u-1","smf-1"). Definido como"unknown"se não existir associação PFCP para aquele par.peer_address: Endereço IP do par remoto (por exemplo,"192.168.50.10")
Quando as Indicações de Erro São Enviadas:
- O UPF recebe um pacote GTP-U para um TEID que não existe (por exemplo, após a reinicialização do UPF, a sessão já foi deletada)
- O remetente (eNodeB, gNodeB, UPF a montante) está encaminhando para um túnel obsoleto/deletado
- O UPF envia uma Indicação de Erro para informar ao remetente para parar de enviar
Quando as Indicações de Erro São Recebidas:
- O UPF encaminha um pacote GTP-U para um par a jusante (PGW-U, SGW-U, UPF) para um TEID desconhecido
- O par remoto não reconhece o TEID de destino (por exemplo, o par foi reiniciado e perdeu o estado do túnel)
- O UPF automaticamente deleta sessões afetadas para parar de encaminhar para túneis mortos
Casos de Uso:
- Detectar reinicializações de pares (alta taxa de Indicações de Erro indica perda de estado)
- Identificar incompatibilidades de configuração (problemas de alocação de TEID)
- Monitorar a saúde da sincronização de túneis entre elementos de rede
- Alertar sobre exclusões inesperadas de sessões
Exemplos de Consultas PromQL:
# Taxa de Indicações de Erro recebidas por par (por segundo)
rate(upf_buffer_listener_error_indications_received_total[5m])
# Total de sessões deletadas devido a Indicações de Erro de um par específico
upf_buffer_listener_error_indication_sessions_deleted_total{peer_address="192.168.50.10"}
# Pares enviando TEIDs desconhecidos para este UPF
sum by (node_id, peer_address) (upf_buffer_listener_error_indications_sent_total)
Métricas de Capacidade do Mapa eBPF
Métricas para rastrear a utilização do mapa eBPF. Essas métricas ajudam a monitorar o uso de recursos e detectar potenciais problemas de capacidade.
| Nome da Métrica | Tipo | Rótulos | Descrição |
|---|---|---|---|
| upf_ebpf_map_capacity | Gauge | map_name | Capacidade máxima do mapa eBPF |
| upf_ebpf_map_used | Gauge | map_name | Número atual de entradas no mapa eBPF |
Valores comuns de map_name:
pdr_map- Mapa de Regras de Detecção de Pacotesfar_map- Mapa de Regras de Ação de Encaminhamentoqer_map- Mapa de Regras de Aplicação de QoSsession_map- Mapa de busca de sessãoteid_map- Mapeamento de TEID para sessãoue_ip_map- Mapeamento de endereço IP de UE para sessão
Usando Métricas do Prometheus
Acessando Métricas
As métricas são expostas no endpoint /metrics no endereço especificado por metrics_address no arquivo de configuração (padrão :9090):
# Ver métricas brutas
curl http://localhost:9090/metrics
# Exemplo de saída
upf_pfcp_sessions 42
upf_pfcp_associations 2
upf_urr_total_volume_bytes{peer_address="10.100.50.241"} 1048576000
Configuração do Prometheus
Adicione o alvo OmniUPF ao seu prometheus.yml:
scrape_configs:
- job_name: 'omniupf'
static_configs:
- targets: ['localhost:9090']
Painéis do Grafana
Importe métricas para o Grafana para visualização:
- Contagens e tendências de sessões
- Volume de tráfego por par PFCP
- Taxas de processamento de pacotes
- Utilização de buffer
- Monitoramento da capacidade do mapa eBPF
Documentação Relacionada
- Guia de Monitoramento - Monitoramento de estatísticas, planejamento de capacidade e alertas
- Guia de Configuração - Configurar
metrics_addresse outras opções do UPF - Guia da Interface Web - Visualizar métricas na página de Estatísticas
- Guia de Arquitetura - Caminho de dados eBPF e otimização de desempenho
- Guia de Gestão de Regras - Compreendendo métricas PDR, FAR, QER, URR
- Guia de Solução de Problemas - Usando métricas para diagnósticos