Você está lendo a documentação do Apigee Edge.
Acesse a
documentação da Apigee X. info
Sintoma
A variável personalizada criada usando a política StatisticsCollector não aparece em "Dimensões personalizadas" nos relatórios personalizados do Analytics na interface do Edge.
Mensagens de erro
Nenhum erro observado.
Causas possíveis
A tabela a seguir lista as possíveis causas desse problema:
| Causa | Para |
|---|---|
| Variável personalizada que não segue as diretrizes padrão | Usuários da nuvem pública e privada do Edge |
| Nenhum tráfego no proxy de API que implementa a política StatisticsCollector | Usuários da nuvem pública e privada do Edge |
| Variável personalizada não enviada ao servidor Postgres | Usuários da nuvem privada do Edge |
Clique em um link na tabela para conferir as possíveis resoluções para essa causa.
Variável personalizada que não segue as diretrizes padrão
Diagnóstico
Se o nome da variável personalizada usada na política StatisticsCollector não seguir as diretrizes padrão (consulte Resolução), ela não vai aparecer nos relatórios personalizados.
O snippet de código abaixo mostra que o nome da variável "product id" tem um espaço, então ela não vai aparecer em "Dimensão personalizada" no relatório personalizado.
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="productID" ref="product id" type="string">999999</Statistic> </Statistics> </StatisticsCollector>
Resolução
Os nomes de variáveis personalizadas usados na política StatisticsCollector no proxy de API precisam seguir estas diretrizes:
- Os nomes podem incluir [a-z][0-9] e "_".
- Os nomes não podem incluir espaços. Por exemplo, no exemplo de código mostrado acima, o nome da variável precisa ser alterado para "product_id".
- Não há distinção entre maiúsculas e minúsculas.
- As palavras-chave reservadas listadas na tabela neste link não são permitidas. Por exemplo, "user" não é permitido. Para mais informações, consulte Palavras-chave SQL.
Se o problema persistir, acesse Nenhum tráfego no proxy de API que implementa a política StatisticsCollector.
Nenhum tráfego no proxy de API que implementa a política StatisticsCollector
Diagnóstico
Se não houver tráfego no proxy de API que implementa a política StatisticsCollector, a variável personalizada não vai aparecer nos relatórios personalizados.
Resolução
Faça algumas chamadas para o proxy de API que implementa a política StatisticsCollector.
Aguarde um pouco e verifique se as variáveis personalizadas aparecem nas dimensões personalizadas no relatório personalizado.
Se o problema persistir, acesse Variável personalizada não enviada ao servidor Postgres.
Variável personalizada não enviada ao servidor Postgres
Diagnóstico
Quando uma variável personalizada é criada no proxy de API e as chamadas de API são feitas, a variável é armazenada na memória do processador de mensagens. Em seguida, o processador de mensagens envia as informações sobre a nova variável para o ZooKeeper, que, por sua vez, as envia para o servidor Postgres para adicioná-la como uma coluna no banco de dados Postgres.
Às vezes, a notificação do ZooKeeper não chega ao servidor Postgres devido a problemas de rede. Por causa desse erro, a variável personalizada pode não aparecer no relatório personalizado.
Para identificar onde a variável personalizada está ausente:
- Gere a árvore do ZooKeeper usando o seguinte comando:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
- Procure a variável personalizada na saída da árvore do ZooKeeper.
- Se a variável personalizada existir na árvore do ZooKeeper, execute os
comandos a seguir para verificar se ela foi adicionada ao banco de dados Postgres:
- No nó do Postgres, faça login no PostgreSQL:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- Execute a seguinte consulta SQL:
select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'orgname.envname.fact';
- No nó do Postgres, faça login no PostgreSQL:
- É muito provável que a coluna de variável personalizada esteja ausente na tabela de fatos, que é o motivo de ela não aparecer nas dimensões personalizadas.
Resolução
Solução 1: reinicie o servidor Postgres
- Reinicie o servidor Postgres para forçar a leitura de todas as informações relevantes para
Analytics do ZooKeeper:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
Se o problema persistir, aplique a solução 2.
Solução 2: ative a propriedade forceonboard
Ative a propriedade forceonboard seguindo as etapas abaixo:
- Crie o arquivo
/opt/apigee/customer/application/postgres-server.propertiesna máquina do servidor Postgres, se ele ainda não existir. - Adicione a seguinte linha a esse arquivo:
conf_pg-agent_forceonboard=true
- Verifique se esse arquivo pertence ao Apigee usando o seguinte comando:
chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
- Reinicie o servidor Postgres:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- Se você tiver mais de um servidor Postgres, repita as etapas acima em todos os servidores Postgres.
- Cancele a implantação e implante novamente o proxy de API que usa a política StatisticsCollector.
- Execute as chamadas de API.
- Verifique se as variáveis personalizadas aparecem nas dimensões personalizadas no relatório personalizado.
Se o problema persistir, entre em contato com o suporte do Apigee Edge.