Pular para o conteúdo principal

Referência de Métricas

Este documento descreve todas as métricas do Prometheus expostas pelo OmniUPF no endpoint /metrics.

Categorias de Métricas

  1. Métricas de mensagens PFCP - Contadores de mensagens do protocolo de controle e latência por par
  2. Métricas de Ação XDP - Veredictos de pacotes do plano de dados (descartar, passar, redirecionar, etc.)
  3. Métricas de Pacotes - Contadores de pacotes recebidos por tipo de protocolo
  4. Métricas de Sessão e Associação PFCP - Contagens de sessões e associações por par
  5. Métricas URR - Contadores de volume de tráfego agregados por par PFCP
  6. Métricas de Bufferização de Pacotes - Estado do buffer de pacotes, capacidade e taxa de transferência
  7. 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
  8. 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étricaTipoRótulosDescrição
upf_pfcp_rxCountermessage_name, peer_addressNúmero total de mensagens PFCP recebidas por tipo de mensagem e par
upf_pfcp_txCountermessage_name, peer_addressNúmero total de mensagens PFCP transmitidas por tipo de mensagem e par
upf_pfcp_rx_errorsCountermessage_name, cause_code, peer_addressNúmero total de mensagens PFCP rejeitadas com causa de erro por tipo de mensagem e par
upf_pfcp_rx_latencySummarymessage_type, peer_addressDuraçã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étricaTipoRótulosDescrição
upf_xdp_abortedCounternoneNúmero total de pacotes abortados (XDP_ABORTED)
upf_xdp_dropCounternoneNúmero total de pacotes descartados (XDP_DROP)
upf_xdp_passCounternoneNúmero total de pacotes passados para o kernel (XDP_PASS)
upf_xdp_txCounternoneNúmero total de pacotes transmitidos (XDP_TX)
upf_xdp_redirectCounternoneNú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étricaTipoRótulosDescrição
upf_rxCounterpacket_typeNúmero total de pacotes recebidos por tipo
upf_routeCounterpacket_typeNúmero total de pacotes roteados pelo resultado da busca

Valores de packet_type de upf_rx:

  • arp - Pacotes ARP
  • icmp - Pacotes ICMP
  • icmp6 - Pacotes ICMPv6
  • ip4 - Pacotes IPv4
  • ip6 - Pacotes IPv6
  • tcp - Pacotes TCP
  • udp - Pacotes UDP
  • other - Outros tipos de pacotes
  • gtp-echo - Solicitação/resposta de eco GTP
  • gtp-pdu - PDU GTP-U (dados de usuário encapsulados)
  • gtp-other - Outros tipos de mensagens GTP
  • gtp-unexp - Pacotes GTP inesperados/malformados

Valores de packet_type de upf_route:

  • ip4-cache - Acertos de cache de rota IPv4
  • ip4-ok - Sucesso na busca FIB IPv4
  • ip4-error-drop - Falha na busca FIB IPv4, pacote descartado
  • ip4-error-pass - Falha na busca FIB IPv4, pacote passado para o kernel
  • ip6-cache - Acertos de cache de rota IPv6
  • ip6-ok - Sucesso na busca FIB IPv6
  • ip6-error-drop - Falha na busca FIB IPv6, pacote descartado
  • ip6-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étricaTipoRótulosDescrição
upf_pfcp_sessionsGaugenoneNúmero total de sessões PFCP atualmente estabelecidas (todos os pares)
upf_pfcp_associationsGaugenoneNúmero total de associações PFCP atualmente estabelecidas (todos os pares)
upf_pfcp_association_statusGaugenode_id, addressStatus da associação PFCP por par (1=ativo, 0=inativo)
upf_pfcp_sessions_per_nodeGaugenode_id, addressNú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étricaTipoRótulosDescrição
upf_urr_uplink_volume_bytesGaugepeer_addressVolume total de tráfego uplink em bytes para todas as sessões deste par
upf_urr_downlink_volume_bytesGaugepeer_addressVolume total de tráfego downlink em bytes para todas as sessões deste par
upf_urr_total_volume_bytesGaugepeer_addressVolume 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étricaTipoRótulosDescrição
upf_buffer_packets_totalCounternoneNúmero total de pacotes adicionados ao buffer (todas as vezes)
upf_buffer_packets_droppedCounterreasonNúmero total de pacotes descartados do buffer
upf_buffer_packets_flushedCounternoneNúmero total de pacotes esvaziados do buffer
upf_buffer_packets_currentGaugenoneNúmero atual de pacotes no buffer
upf_buffer_bytes_totalCounternoneNúmero total de bytes adicionados ao buffer (todas as vezes)
upf_buffer_bytes_currentGaugenoneBytes atuais no buffer
upf_buffer_fars_activeGaugenoneNúmero atual de FARs com pacotes armazenados
upf_buffer_listener_packets_received_totalCounternoneTotal de pacotes recebidos pelo listener de buffer do dataplane eBPF
upf_buffer_listener_packets_buffered_totalCounternoneTotal de pacotes armazenados com sucesso pelo listener
upf_buffer_listener_errors_totalCountertypeErros no processamento de pacotes do listener de buffer
upf_buffer_listener_error_indications_sent_totalCounterremote_peerTotal de mensagens de Indicação de Erro GTP-U enviadas para TEIDs desconhecidos por par remoto
upf_buffer_flush_success_totalCounternoneTotal de operações de esvaziamento de buffer bem-sucedidas
upf_buffer_flush_errors_totalCounterreasonTotal de operações de esvaziamento de buffer com falha
upf_buffer_flush_packets_sent_totalCounternoneTotal de pacotes enviados durante operações de esvaziamento

Valores de reason de upf_buffer_packets_dropped:

  • expired - Pacotes descartados devido à expiração do TTL
  • global_limit - Descartados devido ao limite total do buffer alcançado
  • far_limit - Descartados devido ao limite de buffer por FAR alcançado
  • cleared - Pacotes manualmente limpos do buffer

Valores de type de upf_buffer_listener_errors_total:

  • read_error - Erro ao ler do socket do buffer
  • too_small - Pacote muito pequeno para o cabeçalho GTP
  • invalid_gtp_type - Tipo de mensagem GTP não-G-PDU
  • unknown_teid - Nenhum PDR/FAR encontrado para TEID
  • not_buffering_far - FAR não tem ação BUFF
  • truncated_ext - Cabeçalhos de extensão GTP truncados
  • no_payload - Pacote GTP sem carga útil
  • buffer_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 eBPF
  • no_forw_action - FAR não tem ação FORW definida
  • connection_failed - Falha ao criar conexão UDP para esvaziamento

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étricaTipoRótulosDescrição
upf_dldr_sent_totalCounternoneNúmero total de notificações de Relatório de Dados de Downlink (DLDR) enviadas ao SMF
upf_dldr_send_errorsCounternoneNúmero total de erros ao enviar notificações de Relatório de Dados de Downlink
upf_dldr_active_notificationsGaugenoneNúmero atual de FARs com notificações DLDR ativas (ainda não limpas)
upf_far_index_sizeGaugenoneNúmero atual de FARs registrados no FarIndex para notificações DLDR
upf_far_index_registrations_totalCounternoneNúmero total de registros de FAR no FarIndex
upf_far_index_unregistrations_totalCounternoneNúmero total de desregistros de FAR do FarIndex
upf_buffer_notify_to_flush_duration_secondsHistogrampfcp_peerTempo 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étricaTipoRótulosDescrição
upf_buffer_listener_error_indications_sent_totalCounternode_id, peer_addressTotal de Indicações de Erro GTP-U enviadas para TEIDs desconhecidos
upf_buffer_listener_error_indications_received_totalCounternode_id, peer_addressTotal de Indicações de Erro GTP-U recebidas de pares
upf_buffer_listener_error_indication_sessions_deleted_totalCounternode_id, peer_addressTotal 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étricaTipoRótulosDescrição
upf_ebpf_map_capacityGaugemap_nameCapacidade máxima do mapa eBPF
upf_ebpf_map_usedGaugemap_nameNúmero atual de entradas no mapa eBPF

Valores comuns de map_name:

  • pdr_map - Mapa de Regras de Detecção de Pacotes
  • far_map - Mapa de Regras de Ação de Encaminhamento
  • qer_map - Mapa de Regras de Aplicação de QoS
  • session_map - Mapa de busca de sessão
  • teid_map - Mapeamento de TEID para sessão
  • ue_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