Пользовательские параметры не отображаются, если настроено несколько групп координат

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Симптом

Пользовательская переменная, созданная с помощью политики сборщика статистики, не отображается в разделе «Пользовательские измерения» в пользовательских отчетах Analytics в пользовательском интерфейсе Edge.

Сообщение об ошибке

В системном журнале Edge-Postgres-Server после перезапуска для каждой комбинации организация/среда, где путь отсутствует, появится следующая ошибка:

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

Возможные причины

Причина Описание Инструкции по устранению неполадок применимы для
Путь к свойствам Zookeeper отсутствует для комбинации организации и среды. Когда путь ZooKeeper /organizations/ /environments/ /properties /organizations/ /environments/ /properties /organizations/ /environments/ /properties отсутствует, специальные размеры невозможно создать. Пользователи Edge частного облака

Причина: путь к свойствам ZooKeeper отсутствует для комбинации организации и среды.

Диагностика

Аналитика включается для комбинации организация-среда через API Enable Analytics , который заполняет /organizations/ /environments/ /properties /organizations/ /environments/ /properties /organizations/ /environments/ /properties в дереве ZooKeeper. При сбое этого API компонент Edge-postgres-server не может создавать специальные измерения, и в его 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

Обычно это происходит, когда организация была зарегистрирована в то время, когда существовало более одной аналитической группы, которая использовала одни и те же UUID сервера postgres. Чтобы проверить, сколько существует групп аналитики, запустите следующий вызов API:

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

Если этот API возвращает несколько групп, скорее всего, это причина проблемы. Обратите внимание, что в следующем примере существуют две группы, различающиеся только дефисом: axgroup-001 и 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" : {
  }

В частности, проблема возникает, если UUID postgres-сервера, настроенный для каждой группы axgroup, один и тот же. Быстрый способ определить это — выполнить следующее:

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

В следующем примере выходных данных быстро сравниваются UUID сервера postgres, чтобы определить, что они одинаковы:

{  "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" ],

Разрешение

Один и тот же набор серверов PostgreSQL не может быть назначен двум группам axgroup . Самый быстрый способ решения проблемы — удалить информацию о сервере Postgres из одной группы и назначить все области (организации, комбинации сред) другой группе. Для этого выполните следующие действия:

  1. Удалите компоненты сервера postgres из одной из двух axgroup, используя инструкции в разделе Добавление и удаление компонентов аналитики в группах аналитики . Если вы видите проблемы только с непроизводственными объемами, для этого упражнения выберите группу axgroup, у которой НЕТ производственного объема. В противном случае выберите группу axgroup с наименьшим количеством областей.
  2. Удалите все области из группы axgroup, в которой больше нет серверов Postgres, а также те области, для которых вы видите проблему с пользовательским измерением, из их группы axgroup. Предполагая, что axgroup-001 из приведенного выше примера — это группа, которую вы хотите использовать, вам придется использовать следующее, чтобы удалить область действия для организации myorg и среды prod :
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Включите аналитику с помощью API Enable Analytics .
  4. Перезапустите компонент Edge-postgres-server на главном узле Postgres и все компоненты Edge-Qpid-Server, которые вы, возможно, установили, используя следующие команды:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Убедитесь, что ошибка, указанная в разделе «Сообщение об ошибке» выше, больше не возникает в файле журнала сервера Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log .
  6. Убедитесь, что специальные размеры отображаются в пользовательском интерфейсе Edge.

Если проблема не устранена, перейдите к разделу «Необходимо собрать диагностическую информацию» .

Необходимо собрать диагностическую информацию

Если проблема не устранена даже после выполнения предыдущих инструкций, соберите следующую диагностическую информацию. Свяжитесь со службой поддержки Apigee Edge и поделитесь ими:

  1. Edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log с момента последнего перезапуска.
  2. Результат следующего вызова Management API:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. Результат дерева ZooKeeper, полученный с помощью следующей команды:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt