Настройка WSO2 STATS_DB

#wso2 #wso2carbon #wso2-am #wso2-das

# #wso2 #wso2-api-менеджер #wso2-das

Вопрос:

Я настроил API Manager 2.0.0 и API Manager Analytics Pack для использования баз данных MySQL.
Для каждого сервера существует WSO2AM_STATS_DB. Я дал эти разные имена на моем сервере MySQL. Я также указал свои источники данных в master-datasources.xml (для APIM) amp; stats-datasources.xml (для аналитики) в соответствующие базы данных.
Я не смог найти какую-либо соответствующую схему (dbscripts) для этих баз данных в их соответствующих пакетах.

При запуске база данных Analytics заполняется, а база данных APIM — нет, и возникает исключение. База данных Analytics получает не только схему, но и сведения о вызове моего API. Однако я не могу получить статистику на своей панели мониторинга.

Ранее я (невольно) настроил базу данных статистики h2-repository на одинаковую для обоих серверов (из-за структуры папок) и смог получить всю статистику на своей панели мониторинга в издателе.

Другие конфигурации, которые я пробовал: на сервере MySQL указал на ту же базу данных (аналитическую со схемой), но без результатов на моей панели мониторинга (после некоторого ожидания).

Комментарии:

1. Я также сталкиваюсь с той же проблемой. Диспетчер API не создает базу данных статистики.

2. @sachindhus Смотрите мой ответ ниже.

Ответ №1:

Оба источника данных (WSO2AM_STATS_DB) на 2 серверах должны быть указаны на одну и ту же базу данных. Для этого нет скриптов базы данных. Таблицы создаются автоматически.

По умолчанию на обоих серверах путь к базе данных статистики выглядит следующим образом. ( ../ часть примечания)

 <url>jdbc:h2:../tmpStatDB/WSO2AM_STATS_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000;AUTO_SERVER=TRUE</url>
 

Итак, если вы извлекаете оба сервера в один и тот же каталог, как указано в этом документе, оба источника данных будут указывать на одну и ту же базу данных (внутри tmpStatDB), например.

 /parent_dir
     |__wso2am-2.0.0/
     |__wso2am-analytics-2.0.0/
     |__tmpStatDB/
 

Итак, что здесь происходит, wso2am-analytics записывает данные статистики в общую базу данных, затем apim считывает их и отображает данные в своих базах данных.

Комментарии:

1. Спасибо, Бхатия… Это действительно полезно… Мы достигли этого, используя тот же подход. Есть ли какой-либо способ добиться этого без использования общей базы данных?

2. @sachindhus Был способ считывать данные из REST API. Но он был удален из 2.0.0 по соображениям производительности. Итак, в настоящее время нет способа сделать это без общей базы данных. Не могли бы вы объяснить причину, по которой у вас не может быть общей базы данных?

3. @Bhathiya Да, ситуация, которую вы описали выше, объясняет, почему моя первоначальная конфигурация h2 работала (как упоминалось в моем вопросе). Если я вас правильно понял, передача информации с сервера аналитики в API manager осуществляется не через REST API, а через общую базу данных? Я видел некоторую конфигурацию для DAS для получения информации через REST в файле XML..

4. Вы можете считывать статистические данные из DAS REST API. У APIM 1.10.0 была конфигурация для использования этих REST API для чтения статистических данных. Но панели мониторинга APIM 2.0.0 больше не используют их для чтения статистических данных.

5. Мне кажется странным, что для базы данных статистики нет сценариев базы данных, и все же в руководстве по кластеризации указано следующее: mysql> source <APIM_HOME>/dbscripts/stat/sql/mysql.sql; . Это ошибка в документации? Возможно, замечание по этому поводу было бы полезно.