Вы просматриваете документацию 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 из одной группы и назначить все области (организации, комбинации сред) другой группе. Для этого выполните следующие действия:
- Удалите компоненты сервера postgres из одной из двух axgroup, используя инструкции в разделе Добавление и удаление компонентов аналитики в группах аналитики . Если вы видите проблемы только с непроизводственными объемами, для этого упражнения выберите группу axgroup, у которой НЕТ производственного объема. В противном случае выберите группу axgroup с наименьшим количеством областей.
- Удалите все области из группы 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'
- Включите аналитику с помощью API Enable Analytics .
- Перезапустите компонент 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
- Убедитесь, что ошибка, указанная в разделе «Сообщение об ошибке» выше, больше не возникает в файле журнала сервера Postgres
/opt/apigee/var/log/edge-postgres-server/logs/system.log
. - Убедитесь, что специальные размеры отображаются в пользовательском интерфейсе Edge.
Если проблема не устранена, перейдите к разделу «Необходимо собрать диагностическую информацию» .
Необходимо собрать диагностическую информацию
Если проблема не устранена даже после выполнения предыдущих инструкций, соберите следующую диагностическую информацию. Свяжитесь со службой поддержки Apigee Edge и поделитесь ими:
- Edge-postgres-server
/opt/apigee/var/log/edge-postgres-server/logs/system.log
с момента последнего перезапуска. - Результат следующего вызова Management API:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
- Результат дерева ZooKeeper, полученный с помощью следующей команды:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt