Данные не отображаются на панелях управления аналитики

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

Symptom

На панелях управления аналитикой (например, "Эффективность прокси" или "Эффективность целевой службы") в новом интерфейсе Edge нет данных. На всех панелях отображается следующее сообщение:

No traffic in the selected date range

Сообщения об ошибках

Эта проблема не приводит к заметным ошибкам.

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

В таблице ниже перечислены возможные причины этой проблемы.

Причина Для кого
Нет трафика API для организации или среды Пользователи Edge для частного облака
Данные доступны в базе данных Postgres, но не отображаются в новом интерфейсе Edge Пользователи Edge для частного облака
Данные Аналитики не передаются в базу данных Postgres Пользователи Edge for Private Cloud
Неправильное развертывание Google Аналитики Пользователи Edge for Private Cloud
Устаревшие UUID сервера Аналитики Пользователи Edge для частного облака

Нет трафика API для организации и среды

диагностика;

  1. Проверьте, есть ли трафик для прокси API в определенной организации и среде за период, для которого вы пытаетесь посмотреть данные аналитики, одним из следующих способов:
    1. Включите трассировку для любого из API, который сейчас используется вашими пользователями, и проверьте, можете ли вы получить какие-либо запросы в трассировке.
    2. Проверьте журналы доступа NGINX (/opt/apigee/var/log/edge-router/nginx/logs/access.log)) и посмотрите, есть ли в них новые записи для прокси-серверов API за определенный период.
    3. Если вы регистрируете информацию из прокси-серверов API на сервере журналов, например Syslog, Splunk, Loggly и т. д., вы можете проверить, есть ли на этих серверах журналов записи для прокси-серверов API за определенный период.
  2. Если в течение определенного периода времени трафик отсутствует (нет запросов к API), то аналитические данные недоступны. На панели аналитики появится сообщение "Нет трафика за выбранный диапазон дат".

Разрешение

  1. Выполните несколько вызовов к одному или нескольким прокси API в определенной организации и среде.
  2. Подождите несколько секунд и проверьте, появились ли данные на вкладке "Час" на страницах статистики.
  3. Если проблема не исчезнет, перейдите к разделу Данные доступны в базе данных Postgres, но не отображаются в новом интерфейсе Edge.

Данные доступны в базе данных Postgres, но не отображаются в новом интерфейсе Edge

Symptom

Сначала определите, доступны ли последние данные Аналитики в базе данных Postgres.

Чтобы проверить, доступны ли последние данные Аналитики в главном узле Postgres, выполните следующие действия:

  1. Войдите на каждый из серверов Postgres и выполните следующую команду, чтобы проверить, находитесь ли вы на главном узле Postgres:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
  2. На главном узле Postgres войдите в PostgreSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
  3. Проверьте, существует ли таблица для вашей среды организации, выполнив следующий SQL-запрос в базе данных Postgres:
    \d analytics."orgname.envname.fact"
  4. Проверьте, доступны ли последние данные в базе данных Postgres, с помощью следующего SQL-запроса:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  5. Если последнее временное значение очень старое (или нулевое), это означает, что в базе данных Postgres нет данных. Вероятная причина этой проблемы заключается в том, что данные не передаются с сервера Qpid в базу данных Postgres. Перейдите к разделу Данные Аналитики не передаются в базу данных Postgres.
  6. Если последние данные доступны в базе данных Postgres на главном узле, выполните следующие действия, чтобы диагностировать, почему данные не отображаются в новом пользовательском интерфейсе Edge.

диагностика;

  1. Включите Инструменты разработчика в браузере Chrome и получите API, используемый в одной из панелей аналитики, выполнив следующие действия:
    1. В инструментах разработчика выберите вкладку "Сеть".
    2. Начать запись.
    3. Перезагрузите панель управления Аналитики.
    4. На панели слева в инструментах разработчика выберите строку, содержащую apiproxy?_optimized....
    5. На панели инструментов разработчика справа выберите вкладку "Заголовки" и найдите URL запроса.
  2. Ниже приведен пример выходных данных из инструментов разработчика.

    Пример выходных данных, показывающий API, используемый в панели управления производительностью прокси-сервера, на вкладке "Сеть" в Инструментах разработчика для панели управления производительностью прокси-сервера

  3. Выполните вызов Management API напрямую и посмотрите, получите ли вы результаты. Ниже приведен пример вызова API для вкладки "День" на панели "Сводка производительности прокси-сервера".
    curl -u username:password
      "http://management_server_IP_address:8080/v1/organizations/
      org_name/environments/env_name/stats/apiproxy?limit=14400&
      select=sum(message_count),sum(is_error),avg(total_response_time),
      avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error),
      avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+
      18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
  4. Если вы видите успешный ответ, но без данных, это означает, что сервер управления не может получить данные с сервера Postgres из-за проблем с подключением к сети.
  5. Проверьте, можете ли вы подключиться к серверу Postgres с сервера управления:
    telnet Postgres_server_IP_address 5432
  6. Если вам не удается подключиться к серверу Postgres, проверьте, не блокируется ли порт 5432 брандмауэром.
  7. Если есть ограничения брандмауэра, это может быть причиной того, что сервер управления не может получить данные с сервера Postgres.

Разрешение

  1. Если есть ограничения брандмауэра, удалите их, чтобы сервер управления мог взаимодействовать с сервером Postgres.
  2. Если брандмауэр не блокирует подключение, проблема может быть связана с сетью.
  3. Если на сервере управления произошел сбой сети, перезапустите его.
  4. Перезапустите все серверы управления по одному, используя следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. Проверьте, видны ли вам данные аналитики в новом интерфейсе Edge.

Если данные по-прежнему не отображаются, обратитесь в службу поддержки Apigee Edge.

Данные Аналитики не передаются в базу данных Postgres

диагностика;

Если данные не передаются с сервера Qpid в базу данных Postgres, как описано в разделе Данные доступны в базе данных Postgres, но не отображаются в новом интерфейсе Edge, выполните следующие действия:

  1. Проверьте, работает ли каждый из серверов Qpid, выполнив следующую команду:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. Если какой-либо сервер Qpid не работает, перезапустите его. В противном случае перейдите к шагу 5.
    /opt/apigee/apigee-service/bin edge-qpid-server restart
  3. Подождите некоторое время, а затем проверьте, доступны ли последние данные в базе данных Postgres.
    1. Войдите в PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Чтобы проверить, доступны ли последние данные, выполните следующий SQL-запрос:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  4. Если последние данные доступны, пропустите следующие шаги и перейдите к последнему шагу в разделе "Решение". Если последние данные недоступны, выполните следующие действия:
  5. Проверьте, отправляются ли сообщения из очередей сервера Qpid в базу данных Postgres.
    1. Выполните qpid-stat -q command и проверьте значения в столбцах msgIn и msgOut.
    2. Ниже приведен пример выходных данных, в которых msgIn и msgOut не равны. Это означает, что сообщения не передаются с сервера Qpid в базу данных Postgres.

  6. Если значения в столбцах msgIn и msgOut не совпадают, проверьте журналы сервера Qpid /opt/apigee/var/log/edge-qpid-server/system.log на наличие ошибок.
  7. Вы можете увидеть сообщения об ошибках, например Probably PG is still down (Возможно, PG по-прежнему не работает) или FATAL: sorry, too many clients already (КРИТИЧЕСКАЯ ОШИБКА: слишком много клиентов), как показано на рисунке ниже.
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when
      execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d
      Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee
      Initial referenced UUID when execution started in this thread was
      a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used -
      [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create
      PoolableConnectionFactory (FATAL: sorry, too many clients already)

Это может произойти, если сервер Postgres выполняет слишком много SQL-запросов или ЦП работает на высокой мощности и поэтому не может ответить серверу Qpid.

Разрешение

  1. Перезапустите сервер Postgres и PostgreSQL, как показано ниже.
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. Это позволит остановить все предыдущие SQL-запросы и подключиться к базе данных Postgres.
  3. Перезагрузите панели управления Аналитики и проверьте, отображаются ли данные Аналитики.

Если проблема не исчезнет, обратитесь в службу поддержки Apigee Edge.

Неправильная реализация Аналитики

диагностика;

  1. Чтобы получить статус развертывания аналитики, используйте следующий вызов API:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
  2. Проверьте статус серверов Qpid и Postgres по результатам вызова API.
    1. Если статус серверов Qpid и Postgres – "УСПЕШНО", значит серверы аналитики подключены правильно. Перейдите к разделу Устаревшие UUID сервера Аналитики.
    2. Если статус серверов Qpid/Postgres отображается как UNKNOWN или FAILURE, это указывает на проблему с соответствующим сервером.

      Например, в следующем сценарии статус серверов Postgres отображается как UNKNOWN:

      Это может произойти, если при регистрации аналитики возникнет ошибка. В результате сообщения от серверов управления не доходят до серверов Postgres.

Разрешение

Обычно эту проблему можно решить, перезапустив серверы, на которых отображается статус "СБОЙ" или "НЕИЗВЕСТНО".

  1. Перезапустите каждый из серверов, у которых статус подключения к аналитике "FAILURE" или "UNKNOWN", с помощью следующей команды:
    /opt/apigee/apigee-service/bin/apigee-service component restart
  2. Например:
    1. Если проблема возникает на серверах Qpid, перезапустите их:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    2. Если проблема возникает на серверах Postgres, перезапустите узлы основного и подчиненного серверов Postgres:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. В примере выше для серверов Postgres отображается сообщение "UNKNOWN", поэтому необходимо перезапустить основной и подчиненный серверы Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

Устаревшие UUID серверов Аналитики

диагностика;

  1. Получите конфигурацию аналитики с помощью следующего вызова API:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax

    Вот пример выходных данных для приведенного выше API:

    [ {
      "name" : "axgroup001",
      "properties" : {
        "consumer-type" : "ax"
      },
      "scopes" : [ "myorg~prod", "myorg~test" ],
      "uuids" : {
        "aries-datastore" : [ ],
        "postgres-server" : [ "6777...2db14" ],
        "dw-server" : [ ],
        "qpid-server" : [ "774e...fb23", "29f3...8c11" ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "774e...8c11" ],
        "datastores" : [ "6777...db14" ],
        "properties" : {
        }
      } ],
      "data-processors" : {
      }
    } ]
  2. Убедитесь, что в ответе правильно указаны следующие сведения:
    1. Названия org-env, перечисленные в элементе scopes.
    2. UUID серверов Postgres и Qpid.
      • Получите UUID сервера Postgres, выполнив следующую команду на каждом узле сервера Postgres:
        curl 0:8084/v1/servers/self/uuid
      • Получите UUID серверов Qpid, выполнив следующую команду на каждом из узлов сервера Qpid:
        curl 0:8083/v1/servers/self/uuid
  3. Если все данные верны, перейдите к разделу Данные Аналитики не передаются в базу данных Postgres.
  4. Если UUID серверов Postgres и/или Qpid неверны, возможно, серверы управления ссылаются на устаревшие UUID.

Разрешение

Чтобы удалить устаревшие UUID и добавить правильные UUID серверов, обратитесь в службу поддержки Apigee Edge.