Dados do Google Analytics presos na fila de mensagens inativas do Qpidd

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Sintoma

Os dados do Analytics estão ausentes na interface do Edge porque o servidor Qpidd não está transferindo mensagens de análise para o PostgreSQL. No Edge, o componente edge-qpid-server corresponde ao servidor Qpidd.

O Qpidd mantém duas filas para cada grupo de análise:

  • ax-q-axgroup001-consumer-group-001

    Essa fila contém mensagens de análise enviadas pelos processadores e roteadores de mensagens. As mensagens são extraídas daqui pelo edge-qpid-server, que as analisa e insere no PostgreSQL. Quando as mensagens são processadas, elas são removidas da fila.

  • ax-q-axgroup001-consumer-group-001-dl

    Essa é a fila de mensagens inativas. Ele funciona como o destino de mensagens que o edge-qpid-server não conseguiu processar e, portanto, não quer mais receber. Esse campo geralmente é preenchido quando a contagem máxima de exibições é excedida ou se o PostgreSQL rejeitou a inserção de novos dados devido a erros de tempo de execução.

Mensagem de erro

A causa raiz pode ser devido a vários erros de execução do componente edge-qpid-server. Normalmente, se edge-qpid-server receber um erro de execução do PostgreSQL, ele vai criar uma fila de mensagens inativas, se ainda não existir, e enviar a seguinte mensagem para lá:

yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.

Causas possíveis

Causa Descrição Instruções de solução de problemas aplicáveis a
Mensagens presas na fila de mensagens inativas do qpidd O edge-qpid-server não entendeu as mensagens que ele leu do agente Qpidd ou não conseguiu manter as mensagens no PostgreSQL. Usuários da nuvem privada de borda

Etapas comuns de diagnóstico

Execute o seguinte comando para visualizar as estatísticas da fila Qpidd:

qpid-stat -q

A saída retorna o conjunto de filas registradas com o agente. Se a fila com o nome que termina em "-dl" tiver mensagens preenchidas, isso significa que há mensagens presas na fila de mensagens inativas.

Queues
  queue                                     dur  autoDel  excl  msg   msgIn  msgOut  bytes  bytesIn  bytesOut   cons  bind
  ========================================================================================================================
  ax-q-axgroup-001-consumer-group-001       Y                   0     185    185     0       13.8m   13.8m      6      2
  ax-q-axgroup-001-consumer-group-001-dl    Y                   0     70     70      0        3.9m    3.9m      0      2

Causa: mensagens presas na fila de mensagens inativas do qpidd

Diagnóstico

Essa condição pode acontecer nos seguintes cenários:

  1. Um upgrade já havia ocorrido no passado, quando o PostgreSQL estava inativo.
  2. Uma interrupção temporária do PostgreSQL devido a problemas de rede.
  3. O edge-qpid-server tentou enviar uma mensagem para o PostgreSQL, mas o PostgreSQL retornou um erro de tempo de execução.

Resolução

  1. Anote o nome das filas nas etapas comuns de diagnóstico. Exemplo:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. Execute o comando qpid-tool para inserir um prompt qpid interativo:

    qpid-tool

    Esse comando retorna o seguinte:

    Management Tool for QPID
    qpid:
  3. Execute list broker para ver uma lista de agentes ativos:

    list broker

    Esse comando retorna o seguinte:

    Object Summary:
    ID   Created   Destroyed  Index
    =======================================
    125  21:00:00  -          amqp-broker

    A coluna ID especifica o ID do agente.

  4. Anote o ID do agente. No exemplo, é 125.

  5. Execute o seguinte comando para mover as mensagens da fila de mensagens inativas de volta para a fila real:

    call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}

    Esse comando retorna o seguinte:

    OK (0) - {}

    Se não houvesse saída, não havia nada a fazer, ou seja, não havia mensagens a serem movidas. Se OK(0) não aparecer, entre em contato com o suporte do Apigee Edge.

  6. Saia do terminal qpid-tool.

    quit
  7. Aguarde cinco minutos e execute as etapas de diagnóstico novamente nas Etapas comuns de diagnóstico. Verifique se as mensagens na fila real estão sendo processadas e garanta que a contagem de mensagens inativas permaneça 0.

Se o problema persistir, vá para a próxima seção.

É necessário coletar informações de diagnóstico

Se o problema persistir mesmo depois de seguir as instruções acima, colete as seguintes informações de diagnóstico. Entre em contato e compartilhe com o suporte do Apigee Edge:

  • Registros Qpidd: /opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
  • Registros do PostgreSQL: /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
  • Registros do Edge-qpid-server: /opt/apigee/var/log/edge-qpid-server/logs/system.log
  • Registros do Edge-postgres-server:/opt/apigee/var/log/edge-postgres-server/logs/system.log
  • Estatísticas da fila Qpidd:

    qpid-stat -q
  • Grupo do Google Analytics retornado pelo seguinte comando curl:

    curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax