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

Вы просматриваете документацию 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/ /environments/ /properties Отсутствует /organizations/ /environments/ /properties , поэтому создание пользовательских параметров невозможно. Пользователи частного облака Edge

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

Диагноз

Аналитика для комбинации организации и среды включается с помощью API «Включить аналитику» , который заполняет раздел /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 сервера 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 из одной группы акс-серверов и назначить все области действия (организация, комбинации окружений) другой группе. Для этого выполните следующие действия:

  1. Удалите компоненты сервера PostgreSQL из одной из двух групп аналитики, следуя инструкциям в разделе «Добавление и удаление компонентов аналитики в группах аналитики» . Если проблемы возникают только с непроизводственными областями анализа, выберите для этого упражнения группу аналитики, в которой НЕТ производственных областей анализа. В противном случае выберите группу аналитики с наименьшим количеством областей анализа.
  2. Удалите из группы аксгрупп все области действия, которые больше не содержат серверов 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'
    
  3. Включите аналитику, используя API «Включить аналитику» .
  4. Перезапустите компонент 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
    
  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. Результат выполнения следующего вызова 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