As dimensões personalizadas não aparecem quando vários axgroups foram configurados

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Sintoma

A variável personalizada criada usando o método Coletor de estatísticas política não está visível em "Dimensões personalizadas" nos relatórios personalizados do Google Analytics interface do Edge.

Mensagem de erro

O registro do sistema Edge-postgres-server terá o seguinte erro após a reinicialização de cada combinação de organização/ambiente em que o caminho está ausente:

KeeperErrorCode = NoNode for
/organizations/<ORG>/environments/<ENV>/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations//environments//properties, reason:
KeeperErrorCode = NoNode for
/organizations//environments//properties

Causas possíveis

Causa Descrição Instruções para solução de problemas aplicáveis
O caminho das propriedades do Zookeeper está ausente para a combinação de organização e ambiente. Quando o caminho /organizations//environments//properties do ZooKeeper está ausente, não é possível criar dimensões personalizadas. Usuários da nuvem privada de borda

Causa: o caminho das propriedades ZooKeeper está ausente para a combinação de organização e ambiente

Diagnóstico

O Google Analytics é ativado para uma combinação de organização e ambiente por meio do Ativar a API Analytics, que preenche o /organizations//environments//properties na árvore do ZooKeeper. Quando essa API falha, o componente Edge-postgres-server não pode criar dimensões personalizadas, e o seguinte erro aparecerá em seu system.log:

KeeperErrorCode = NoNode for
/organizations/example/environments/prod/properties
2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER -
ZooKeeperServiceImpl.getData() : Could not get data for path:
/organizations/example/environments/prod/properties, reason:
KeeperErrorCode = NoNode for
/organizations/digi/environments/sandbox/properties

Isso geralmente acontece quando uma organização foi integrada em uma época em que mais de um que existia um grupo de análise que usava os mesmos UUIDs postgres-server. Para verificar quantas análises grupos existirem, execute a seguinte chamada de API:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"

Se essa API retornar vários grupos, essa é a causa mais provável do problema. No exemplo a seguir, observe que existem dois grupos, diferenciados apenas por um hífen: axgroup-001 e axgroup001

[ {
  "name" : "axgroup-001",
  "properties" : {
  },
  "scopes" : [ "VALIDATE~test" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }
}, {
  "name" : "axgroup001",
  "properties" : {
  },
  "scopes" : [ "example~prod" ],
  "uuids" : {
    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]
  },
  "consumer-groups" : [ {
    "name" : "consumer-group-001",
    "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
    "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
    "properties" : {
    }
  } ],
  "data-processors" : {
  }

Especificamente, o problema ocorre se o UUID postgres-server configurado para cada axgroup é o mesmo. Uma maneira rápida de determinar isso é executar o seguinte:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

O exemplo de saída a seguir compara rapidamente os UUIDs do postgres-server para determinar eles são iguais:

{  "name" : "axgroup-001",  "properties" : {  },  "scopes" : [ "VALIDATE~test" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]--
"name" : "axgroup001",  "properties" : {  },  "scopes" : [ "myorg~prod" ],
"uuids" : {    "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ],
"aries-datastore" : [ ],    "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],

Resolução

O mesmo conjunto de servidores PostgreSQL não pode ser atribuído a dois axgroups. A maneira mais rápida de resolver isso é excluir as informações do servidor postgres de um axgroup e atribuir todos os escopos (organização, combinações de ambiente) ao outro grupo. Para isso, siga estas etapas:

  1. Remova os componentes do servidor postgres de um dos dois axgroups usando as instruções em Adicionar e excluir componentes de análise em grupos de análise. Se você tiver problemas apenas com escopos de não produção, escolha o axgroup que NÃO tem nenhum escopo de produção para este exercício. Caso contrário, escolha o axgroup com o menor número de escopos.
  2. Remova todos os escopos do axgroup que não tenham mais servidores postgres e aqueles que para o qual você está vendo o problema de dimensão personalizada no axgroup. Supondo que axgroup-001 do exemplo acima é o grupo que você quer usar. use o seguinte para remover o escopo da organização myorg, e o ambiente prod:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Ative o Google Analytics usando o Ativar a API Analytics.
  4. Reinicie o componente Edge-postgres-server no nó mestre do postgres e tudo os componentes do Edge-qpid-server que você possa ter instalados, usando os seguintes comandos:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Verifique se o erro fornecido na seção Mensagem de erro acima não ocorre mais no arquivo de registro do servidor Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log
  6. Confirme se as dimensões personalizadas aparecem na interface do Edge.

Se o problema persistir, consulte Precisa de informações de diagnóstico.

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

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

  1. O /opt/apigee/var/log/edge-postgres-server/logs/system.log do Edge-postgres-server depois da reinicialização mais recente.
  2. O resultado da seguinte chamada da API Management:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. A saída da árvore ZooKeeper foi obtida usando o seguinte comando:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt