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

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

Sintoma

Os painéis de análise (desempenho do proxy, desempenho desejado etc.) não mostram dados 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 o ambiente da organização Edge para usuários da nuvem privada
Dados disponíveis no banco de dados Postgres, mas não exibidos na interface Edge para usuários da nuvem privada
Os dados do Google Analytics não estão sendo enviados ao banco de dados do Postgres Edge para usuários da nuvem privada
Implantação incorreta do Google Analytics Edge para usuários da nuvem privada
UUIDs de servidor de análise desatualizados Edge para usuários da nuvem privada

Nenhum tráfego de API para o ambiente da organização

Diagnóstico

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

Resolução

  1. Faça algumas chamadas para um ou mais proxies de API no ambiente da organização específico.
  2. Aguarde alguns segundos, abra os painéis de análise na guia "Hora" e confira se os dados aparecem.
  3. Se o problema persistir, prossiga para Dados disponíveis no banco de dados do Postgres, mas não são exibidos na IU.

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

Sintoma

Primeiro, determine a disponibilidade dos dados mais recentes do Analytics no banco de dados do Postgres.

Para verificar se os dados mais recentes do Analytics estão disponíveis no nó mestre do Postgres:

  1. Faça login em cada um dos servidores Postgres e execute o seguinte comando 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 seu org-env usando a seguinte consulta SQL no banco de dados Postgres:
    \d analytics."orgname.envname.fact"
    
  4. Verifique se os dados mais recentes estão disponíveis no banco de dados Postgres usando a seguinte consulta SQL:
    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 vai indicar que os dados não estão disponíveis no banco de dados do Postgres. A causa provável para esse problema seria que os dados não foram enviados do servidor Qpid para o banco de dados do Postgres. Prossiga para Os dados do Analytics não estão sendo 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 exibidos na interface do Edge.

Diagnóstico

  1. Ative as Ferramentas para desenvolvedores no navegador Chrome e siga as etapas abaixo para usar a API em um dos painéis de análise:
    1. Selecione a guia "Rede" nas Ferramentas para desenvolvedores.
    2. Iniciar gravação.
    3. Atualize o painel do Google Analytics.
    4. No painel à esquerda das Ferramentas para desenvolvedores, selecione a linha com "apiproxy?_optimized...".
    5. No painel à direita nas Ferramentas para desenvolvedores, selecione a guia "Cabeçalhos" e observe o "URL da solicitação".
  2. Veja este exemplo de saída das Ferramentas para desenvolvedores:

    Exemplo de saída que mostra a API usada no painel de desempenho do proxy da guia "Rede" do painel "Ferramentas para desenvolvedores" do painel de desempenho do proxy

  3. Execute a chamada da API de gerenciamento diretamente e verifique se os resultados são exibidos. 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 conseguiu buscar os dados do servidor Postgres devido a problemas de conectividade de rede.
  5. Verifique se você consegue se conectar ao servidor Postgres pelo servidor de gerenciamento:
    telnet Postgres_server_IP_address 5432
    
  6. Se você não conseguir se conectar ao servidor Postgres, verifique se há alguma restrição de firewall na porta 5432.
  7. Se houver restrições de firewall, talvez essa seja a causa de o servidor de gerenciamento não conseguir extrair os dados do servidor Postgres.

Resolução

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

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

Os dados do Analytics não estão sendo enviados ao banco de dados do Postgres

Diagnóstico

Se os dados não forem enviados do Qpid Server para o banco de dados do Postgres, conforme determinado em Dados disponíveis no banco de dados do Postgres, mas não exibidos na interface, execute as seguintes etapas:

  1. Para verificar se cada um do servidor Qpid está funcionando, execute o comando abaixo:
    /opt/apigee/bin/apigee-service edge-qpid-server status
    
  2. Se algum servidor Qpid estiver inativo, reinicie-o. Caso contrário, pule para a etapa 5.
    /opt/apigee/bin/apigee-service edge-qpid-server restart
    
  3. Aguarde um tempo 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 da 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 por push para o banco de dados do Postgres.
    1. Execute qpid-stat -q command e verifique os valores das colunas msgIn e msgOut.
    2. Este é 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 Qpid Server para o Postgres Database.

  6. Se houver uma incompatibilidade nas colunas msgIn e msgOut, verifique se há algum erro nos registros do servidor do Qpid /opt/apigee/var/log/edge-qpid-server/system.log.
  7. É possível que você veja mensagens de erro como "Provavelmente PG ainda está fora do ar" ou "FATAL: Língua, muitos clientes já", 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 poderá acontecer se o servidor Postgres estiver executando muitas consultas SQL ou se a CPU estiver alta e, portanto, não conseguir responder ao Qpid Server.

Resolução

  1. Reinicie o servidor 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 que permita novas conexões com o banco de dados do Postgres.
  3. Atualize os painéis do Google Analytics e verifique se os dados do Analytics estão sendo exibidos.

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

Implantação incorreta do Google Analytics

Diagnóstico

  1. Veja o status de implantação da análise 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 com base nos resultados da chamada de API.
    1. Se o status dos servidores Qpid e Postgres for mostrado como "SUCESSO", isso indica que a conexão dos servidores de análise está correta. Prossiga para UUIDs desatualizados do servidor do Analytics.
    2. Se o status dos servidores Qpid/Postgres for mostrado como "UNKNOWN" ou "falha", isso significa que há um problema com o servidor correspondente.

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

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

Resolução

Normalmente, esse problema pode ser resolvido reiniciando os servidores que exibiram "Falha" ou "DESCONHECIDO".

  1. Reinicie cada um dos servidores que tiverem o status de fiação de análise indicado como "falha" ou "UNKNOWN" usando o seguinte comando:
    /opt/apigee/apigee-service/bin/apigee-service component restart
    
  2. Por exemplo:
    1. Se o problema aparecer nos servidores Qpid, reinicie esses servidores:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
      
    2. Se o problema aparecer nos servidores Postgres, reinicie os nós do servidor mestre e escravo do Postgres:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
      
  3. No exemplo acima, a mensagem "UNKNOWN" é mostrada para os servidores Postgres. Portanto, é necessário reiniciar os servidores mestre e escravo do Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    

UUIDs de servidor de análise desatualizados

Diagnóstico

  1. Confira 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
    

    Veja 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. Confira se as informações a seguir na saída estão corretas:
    1. nomes de org-env listados no elemento "scopes".
    2. UUIDs dos servidores Postgres e Qpid.
      • Para acessar os UUIDs do servidor Postgres, execute o seguinte comando em cada um dos nós do servidor Postgres:
        curl 0:8084/v1/servers/self/uuid
        
      • Para acessar os UUIDs do servidor Qpid, execute o seguinte comando em cada um dos nós do servidor Qpid:
        curl 0:8083/v1/servers/self/uuid
        
  3. Se todas as informações estiverem corretas, prossiga para Os dados do Analytics não estão sendo enviados ao banco de dados do Postgres.
  4. Se os UUIDs dos servidores 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.