Os dados não aparecem nos painéis de análise

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Sintoma

Os painéis de análise (desempenho do proxy, desempenho do destino etc.) não mostram nenhum dado na interface do Edge. Todos os painéis mostram a seguinte mensagem:

No traffic in the selected date range

Mensagens de erro

Esse problema não resulta em erros observáveis.

Causas possíveis

A tabela a seguir lista as possíveis causas desse problema:

Causa Para
Sem tráfego de API para a organização-ambiente Usuários do Edge para nuvem privada
Dados disponíveis no banco de dados do Postgres, mas não mostrados na interface Usuários do Edge para nuvem privada
Dados de análise não enviados ao banco de dados do Postgres Usuários do Edge para nuvem privada
Implantação incorreta do Analytics Usuários do Edge para nuvem privada
UUIDs desatualizados do servidor de análise Usuários do Edge para nuvem privada

Sem tráfego de API para a organização-ambiente

Diagnóstico

  1. Verifique se há tráfego para os proxies de API na organização-ambiente específica durante o período em que você está tentando visualizar os dados de análise usando um dos seguintes métodos:
    1. Ative o rastreamento de qualquer uma das APIs que está sendo usada pelos seus usuários e verifique se você consegue receber solicitações no rastreamento.
    2. Visualize os registros de acesso do NGINX (/opt/apigee/var/log/edge-router/nginx/logs/access.log) e verifique se há novas entradas para proxies de API durante o período específico.
    3. Se você registrar informações de proxies de API em um servidor de registro, como Syslog, Splunk, Loggly, etc., poderá verificar se há entradas nesses servidores de registro para proxies de API durante o período específico.
  2. Se não houver tráfego (sem solicitações de API) durante o período específico, os dados de análise não estarão disponíveis. A mensagem "Não há tráfego no período selecionado" será mostrada no painel de análise.

Resolução

  1. Faça algumas chamadas para um ou mais proxies de API na organização-ambiente específica.
  2. Aguarde alguns segundos e visualize os painéis de análise na guia "Hora" para verificar se os dados aparecem.
  3. Se o problema persistir, acesse Dados disponíveis no banco de dados do Postgres, mas não mostrados na interface.

Dados disponíveis no banco de dados do Postgres, mas não mostrados na interface

Sintoma

Primeiro, determine a disponibilidade dos dados de análise mais recentes no banco de dados do Postgres.

Para verificar se os dados de análise mais recentes estão disponíveis no nó mestre do Postgres node:

  1. Faça login em cada um dos servidores do Postgres e execute o comando a seguir para validar se você está no nó mestre do Postgres:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
  2. No nó mestre do Postgres, faça login no PostgreSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
  3. Verifique se a tabela existe para sua organização-ambiente usando a seguinte consulta SQL no banco de dados do Postgres:
    \d analytics."orgname.envname.fact"
  4. Verifique se os dados mais recentes estão disponíveis no banco de dados do Postgres usando a seguinte consulta SQL query:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  5. Se o carimbo de data/hora mais recente for muito antigo (ou nulo), isso indica que os dados não estão disponíveis no banco de dados do Postgres. A causa provável desse problema é que os dados não são enviados do servidor Qpid para o banco de dados do Postgres. Acesse Dados de análise não enviados ao banco de dados do Postgres.
  6. Se os dados mais recentes estiverem disponíveis no banco de dados do Postgres no nó mestre, siga as etapas abaixo para diagnosticar por que os dados não estão sendo mostrados na interface do Edge.

Diagnóstico

  1. Ative as Ferramentas para desenvolvedores no navegador Chrome e receba a API usada em um dos painéis de análise seguindo as etapas abaixo:
    1. Selecione a guia "Rede" nas Ferramentas para desenvolvedores.
    2. Inicie a gravação.
    3. Recarregue o painel do Analytics.
    4. No painel esquerdo das Ferramentas para desenvolvedores, selecione a linha com "apiproxy?_optimized...".
    5. No painel direito das Ferramentas para desenvolvedores, selecione a guia "Cabeçalhos" e anote o "URL da solicitação".
  2. Confira um exemplo de saída das Ferramentas para desenvolvedores:

    Exemplo de saída mostrando a API usada no painel de desempenho do proxy na guia "Rede" das Ferramentas para desenvolvedores

  3. Execute a chamada de API de gerenciamento diretamente e verifique se você recebe os resultados. Confira um exemplo de chamada de API para a guia "Dia" no painel de desempenho do proxy:
    curl -u username:password
      "http://management_server_IP_address:8080/v1/organizations/
      org_name/environments/env_name/stats/apiproxy?limit=14400&
      select=sum(message_count),sum(is_error),avg(total_response_time),
      avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error),
      avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+
      18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
  4. Se você receber uma resposta bem-sucedida, mas sem dados, isso indica que o servidor de gerenciamento não consegue buscar os dados do servidor do Postgres devido a problemas de conectividade de rede.
  5. Verifique se você consegue se conectar ao servidor do Postgres pelo servidor de gerenciamento:
    telnet Postgres_server_IP_address 5432
  6. Se não for possível se conectar ao servidor do Postgres, verifique se há restrições de firewall na porta 5432.
  7. Se houver restrições de firewall, essa poderá ser a causa de o servidor de gerenciamento não conseguir extrair os dados do servidor do Postgres.

Resolução

  1. Se houver restrições de firewall, remova-as para que o servidor de gerenciamento possa comunicar com o servidor do Postgres.
  2. Se não houver restrições de firewall, esse problema poderá ser devido a uma falha de rede.
  3. Se houver alguma falha de rede no servidor de gerenciamento, reiniciá-lo poderá corrigir o problema.
  4. Reinicie todos os servidores de gerenciamento um por um usando o comando abaixo:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. Verifique se os dados de análise aparecem na interface do Edge.

Se os dados ainda não aparecerem, entre em contato com o suporte do Apigee Edge.

Dados de análise não enviados ao banco de dados do Postgres

Diagnóstico

Se os dados não forem enviados do servidor Qpid para o banco de dados do Postgres, conforme determinado em Dados disponíveis no banco de dados do Postgres, mas não mostrados na interface, siga estas etapas:

  1. Verifique se cada um dos servidores Qpid está em execução executando o comando abaixo:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. Se algum servidor Qpid estiver inativo, reinicie-o. Caso contrário, pule para a etapa 5.
    /opt/apigee/apigee-service/bin edge-qpid-server restart
  3. Aguarde um pouco e verifique novamente se os dados mais recentes estão disponíveis no banco de dados do Postgres.
    1. Faça login no PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Execute a consulta SQL abaixo para verificar se os dados mais recentes estão disponíveis:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  4. Se os dados mais recentes estiverem disponíveis, pule as etapas a seguir e prossiga para a última etapa na seção " Resolução". Se os dados mais recentes não estiverem disponíveis, siga as etapas a seguir.
  5. Verifique se as mensagens das filas do servidor Qpid estão sendo enviadas ao banco de dados do Postgres.
    1. Execute o qpid-stat -q command e verifique os valores das colunas msgIn e msgOut.
    2. Confira um exemplo de saída que mostra que msgIn e msgOut não são iguais. Isso indica que as mensagens não estão sendo enviadas do servidor Qpid para o banco de dados do Postgres.

  6. Se houver uma incompatibilidade nas colunas msgIn e msgOut, verifique os registros do servidor Qpid Server /opt/apigee/var/log/edge-qpid-server/system.log e veja se há erros.
  7. Você pode receber mensagens de erro como "Provavelmente o PG ainda está inativo" ou "FATAL: desculpe, já há muitos clientes" , conforme mostrado na figura abaixo:
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when
      execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d
      Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee
      Initial referenced UUID when execution started in this thread was
      a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used -
      [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create
      PoolableConnectionFactory (FATAL: sorry, too many clients already)

Isso pode acontecer se o servidor do Postgres estiver executando muitas consultas SQL ou se a CPU estiver alta e, portanto, não conseguir responder ao servidor Qpid.

Resolução

  1. Reinicie o servidor do Postgres e o PostgreSQL, conforme mostrado abaixo:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. Essa reinicialização garante que todas as consultas SQL anteriores sejam interrompidas e permite novas conexões com o banco de dados do Postgres.
  3. Recarregue os painéis do Analytics e verifique se os dados de análise estão sendo mostrados.

Se o problema persistir, entre em contato com o suporte do Apigee Edge.

Implantação incorreta do Analytics

Diagnóstico

  1. Receba o status da implantação do Analytics usando a seguinte chamada de API:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
  2. Verifique o status dos servidores Qpid e Postgres nos resultados da chamada de API.
    1. Se o status dos servidores Qpid e Postgres for mostrado como "SUCESSO", isso indica os servidores de análise estão conectados corretamente. Acesse UUIDs desatualizados do servidor de análise.
    2. Se o status dos servidores Qpid/Postgres for mostrado como "DESCONHECIDO" ou "FALHA", isso indica um problema com o servidor correspondente.

      Por exemplo, o cenário a seguir mostra o status dos servidores do Postgres como "DESCONHECIDO":

      Isso pode acontecer se houver uma falha durante a integração da análise. Essa falha impede que as mensagens dos servidores de gerenciamento cheguem aos servidores do Postgres.

Resolução

Esse problema geralmente pode ser resolvido reiniciando os servidores que mostraram "FALHA" ou "DESCONHECIDO".

  1. Reinicie cada um dos servidores cujo status de conexão de análise indicou "FALHA" ou "DESCONHECIDO" usando o comando a seguir:
    /opt/apigee/apigee-service/bin/apigee-service component restart
  2. Por exemplo:
    1. Se você encontrar o problema nos servidores Qpid, reinicie-os:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    2. Se você encontrar o problema nos servidores do Postgres, reinicie os nós mestre e escravo do servidor do Postgres:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. No exemplo acima, a mensagem "DESCONHECIDO" é mostrada para os servidores do Postgres. Portanto, é necessário reiniciar os servidores mestre e escravo do Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

UUIDs desatualizados do servidor de análise

Diagnóstico

  1. Receba a configuração de análise usando a seguinte chamada de API:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax

    Confira um exemplo de saída da API acima:

    [ {
      "name" : "axgroup001",
      "properties" : {
        "consumer-type" : "ax"
      },
      "scopes" : [ "myorg~prod", "myorg~test" ],
      "uuids" : {
        "aries-datastore" : [ ],
        "postgres-server" : [ "6777...2db14" ],
        "dw-server" : [ ],
        "qpid-server" : [ "774e...fb23", "29f3...8c11" ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "774e...8c11" ],
        "datastores" : [ "6777...db14" ],
        "properties" : {
        }
      } ],
      "data-processors" : {
      }
    } ]
  2. Verifique se as seguintes informações na saída estão corretas:
    1. Nomes de organização-ambiente listados no elemento "escopos".
    2. UUIDs dos servidores do Postgres e Qpid.
      • Receba os UUIDs do servidor do Postgres executando o comando a seguir em cada um dos nós do servidor do Postgres:
        curl 0:8084/v1/servers/self/uuid
      • Receba os UUIDs do servidor Qpid executando o comando a seguir em cada um dos nós do servidor Qpid:
        curl 0:8083/v1/servers/self/uuid
  3. Se todas as informações estiverem corretas, acesse Dados de análise não enviados ao banco de dados do Postgres.
  4. Se os UUIDs dos servidores do Postgres e/ou Qpid estiverem incorretos, é possível que os servidores de gerenciamento estejam se referindo a UUIDs desatualizados.

Resolução

Para remover os UUIDs desatualizados e adicionar os UUIDs corretos dos servidores, entre em contato com o suporte do Apigee Edge.