Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Симптом
Пользовательская переменная, созданная с помощью политики сборщика статистики, не отображается в разделе «Пользовательские измерения» в пользовательских отчетах 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/ Отсутствует /organizations/ , поэтому создание пользовательских параметров невозможно. | Пользователи частного облака Edge |
Причина: Отсутствует путь к свойствам ZooKeeper для комбинации организации и среды.
Диагноз
Аналитика для комбинации организации и среды включается с помощью API «Включить аналитику» , который заполняет раздел /organizations/ в дереве 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 сервера PostgreSQL. Чтобы проверить, сколько аналитических групп существует, выполните следующий вызов 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 не может быть назначен двум группам акс-серверов . Самый быстрый способ решения проблемы — удалить информацию о серверах PostgreSQL из одной группы акс-серверов и назначить все области действия (организация, комбинации окружений) другой группе. Для этого выполните следующие действия:
- Удалите компоненты сервера PostgreSQL из одной из двух групп аналитики, следуя инструкциям в разделе «Добавление и удаление компонентов аналитики в группах аналитики» . Если проблемы возникают только с непроизводственными областями анализа, выберите для этого упражнения группу аналитики, в которой НЕТ производственных областей анализа. В противном случае выберите группу аналитики с наименьшим количеством областей анализа.
- Удалите из группы аксгрупп все области действия, которые больше не содержат серверов PostgreSQL, а также те, для которых вы наблюдаете проблему с пользовательскими измерениями. Предполагая, что
axgroup-001из приведенного выше примера — это та группа, которую вы хотите использовать, вам потребуется выполнить следующие действия, чтобы удалить область действия для организации myorg и производственной среды:curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
- Включите аналитику, используя API «Включить аналитику» .
- Перезапустите компонент edge-postgres-server на главном узле PostgreSQL, а также все установленные компоненты 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за момент последнего перезапуска. - Результат выполнения следующего вызова 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