Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Симптом
Данные аналитики отсутствуют в пользовательском интерфейсе Edge, поскольку сервер Qpidd не передает аналитические сообщения в PostgreSQL. В Edge компонент edge-qpid-server
соответствует серверу Qpidd.
Qpidd поддерживает две очереди для каждой группы аналитики:
ax-q-axgroup001-consumer-group-001
В этой очереди хранятся аналитические сообщения, отправленные из процессоров сообщений и маршрутизаторов. Сообщения извлекаются отсюда
edge-qpid-server
, который анализирует сообщения и вставляет их в PostgreSQL. После успешной обработки сообщения они удаляются из очереди.ax-q-axgroup001-consumer-group-001-dl
Эта очередь является очередью недоставленных писем. Он действует как пункт назначения для сообщений, которые
edge-qpid-server
не смог обработать и поэтому больше не желает получать. Обычно оно заполняется, когда превышено максимальное количество доставок или если PostgreSQL отклоняет вставку новых данных из-за ошибок во время выполнения.
Сообщение об ошибке
Основная причина может быть связана с различными ошибками времени выполнения компонента edge-qpid-server
. Обычно, если edge-qpid-server
получает ошибку времени выполнения от PostgreSQL, он создает очередь недоставленных писем, если она еще не существует, а затем отправляет туда следующее сообщение:
yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.
Возможные причины
Причина | Описание | Инструкции по устранению неполадок применимы для |
---|---|---|
Сообщения застряли в очереди недоставленных писем qpidd | edge-qpid-server не смог понять сообщения, которые он прочитал от брокера Qpidd, или не смог сохранить сообщения в PostgreSQL. | Пользователи Edge частного облака |
Общие этапы диагностики
Запустите следующую команду, чтобы просмотреть статистику очереди Qpidd:
qpid-stat -q
Выходные данные возвращают набор очередей, зарегистрированных у брокера. Если в очереди с именем, заканчивающимся на «-dl», есть заполненные сообщения, значит, в очереди недоставленных писем застряли сообщения.
Queues queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind ======================================================================================================================== ax-q-axgroup-001-consumer-group-001 Y 0 185 185 0 13.8m 13.8m 6 2 ax-q-axgroup-001-consumer-group-001-dl Y 0 70 70 0 3.9m 3.9m 0 2
Причина: сообщения застряли в очереди недоставленных писем qpidd.
Диагностика
Это состояние может возникнуть в следующих случаях:
- Ранее уже было произведено обновление, во время которого PostgreSQL не работал.
- Временный сбой PostgreSQL из-за проблем с сетью.
-
edge-qpid-server
попытался отправить сообщение в PostgreSQL, но PostgreSQL вернул ошибку времени выполнения.
Разрешение
Запишите названия очередей из общих шагов диагностики . Например:
-
ax-q-axgroup-001-consumer-group-001
-
ax-q-axgroup-001-consumer-group-001-dl
-
Запустите команду
qpid-tool
, чтобы ввести интерактивную подсказкуqpid
:qpid-tool
Эта команда возвращает следующее:
Management Tool for QPID qpid:
Запустите
list broker
, чтобы получить список активных брокеров:list broker
Эта команда возвращает следующее:
Object Summary: ID Created Destroyed Index ======================================= 125 21:00:00 - amqp-broker
В столбце
ID
указан идентификатор брокера.Обратите внимание на идентификатор брокера. В примере это 125.
Выполните следующую команду, чтобы переместить сообщения из очереди недоставленных писем обратно в реальную очередь:
call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}
Эта команда возвращает следующее:
OK (0) - {}
Если вывода нет, то делать нечего, то есть сообщения для перемещения отсутствуют. Если вы не видите
OK(0)
, вам следует обратиться в службу поддержки Apigee Edge .Закройте терминал qpid-tool.
quit
Подождите 5 минут, а затем снова выполните шаги диагностики, описанные в разделе «Общие шаги диагностики» . Убедитесь, что сообщения в реальной очереди обрабатываются, и убедитесь, что количество недоставленных сообщений остается равным 0.
Если проблема не устранена, перейдите к следующему разделу.
Необходимо собрать диагностическую информацию
Если проблема не устранена даже после выполнения приведенных выше инструкций, соберите следующую диагностическую информацию. Свяжитесь со службой поддержки Apigee Edge и поделитесь ими:
- Журналы Qpidd:
/opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
- Журналы Postgresql:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
- Журналы Edge-qpid-сервера:
/opt/apigee/var/log/edge-qpid-server/logs/system.log
- Журналы Edge-postgres-сервера:
/opt/apigee/var/log/edge-postgres-server/logs/system.log
Статистика очереди Qpidd:
qpid-stat -q
Группа аналитики, возвращаемая следующей командой Curl:
curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax