Все клиенты Edge for Private Cloud должны отправлять в Apigee статистику трафика прокси API. Apigee рекомендует клиентам загружать эту информацию раз в день, например создав задание cron.
Отправлять данные нужно только для рабочих версий API, но не для тех, которые находятся в разработке или на этапе тестирования. В большинстве случаев для рабочих API в Edge определяются определенные организации или среды. Данные, которые вы отправляете, предназначены только для этих производственных организаций и сред.
Чтобы помочь вам загрузить эти данные, Apigee предоставляет бета-версию утилиты командной строки apigee-analytics-collector. Эта утилита отправляет отчет об объеме вызовов API в Apigee. Каждая установка Edge для частного облака может использовать эту утилиту для получения данных о трафике и отправки отчетов в Apigee.
Обязательно: перед загрузкой данных обратитесь в службу поддержки Apigee
Прежде чем загружать данные в Apigee, обратитесь в службу поддержки Apigee Edge, чтобы завершить процесс регистрации.
Как установить apigee-analytics-collector
Утилита apigee-analytics-collector
представляет собой пакет RPM, который устанавливается с помощью утилиты apigee-service.
Где установить
Узел, на котором вы устанавливаете утилиту apigee-analytics-collector, может быть любым узлом, имеющим доступ к API управления Edge на сервере управления Edge. Его можно установить непосредственно на сервере управления, на другом узле установки Edge или на отдельном узле, если этот узел может отправлять запросы API на сервер управления.
Требования к доступу в интернет
Установите утилиту apigee-analytics-collector на компьютер с доступом к интернету. После этого утилита apigee-analytics-collector сможет загружать данные непосредственно в Apigee.
Если нет узла, у которого есть доступ к Edge Management API на сервере Edge Management Server и к внешнему интернету, вы можете использовать Edge Management API, чтобы сохранить данные о трафике локально. Затем вам нужно перенести данные на компьютер с доступом к интернету, чтобы загрузить их в Apigee. В этом случае утилита apigee-analytics-collector не нужна. Подробнее о том, как вручную загрузить данные в Apigee…
Установка
Чтобы установить утилиту apigee-analytics-collector, используйте следующую команду: Поскольку вы устанавливаете RPM-файл, эту команду должен выполнить пользователь root или пользователь с полным доступом sudo. Если у пользователя есть полный доступ sudo, он может выполнять те же операции, что и пользователь root.
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install
Запуск apigee-analytics-collector
В этом разделе рассказывается, как запустить утилиту apigee-analytics-collector.
Как настроить пользователя для запуска apigee-analytics-collector
Вы должны запустить apigee-analytics-collector как пользователь без прав root. У этого пользователя должен быть полный доступ к sudo для пользователя apigee.
Чтобы предоставить пользователю полный доступ sudo к пользователю apigee, используйте команду visudo, чтобы изменить файл sudoers и добавить:
analyticsUser ALL=(apigee) NOPASSWD: ALL
где analyticsUser – имя пользователя, запустившего утилиту apigee-analytics-collector.
После установки утилиты apigee-analytics-collector и настройки пользователя вы можете протестировать утилиту, выполнив команду справки для утилиты apigee-analytics-collector:
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic --help
Информация, необходимая для запуска apigee-analytics-collector
Чтобы выполнить команду apigee-analytics-collector и пересылать данные в Apigee, вам потребуется следующая информация:
apigee_mgmt_api_uri– базовый URL Edge API на сервере управления. Обычно URL имеет следующий формат:http://ms_IP:8080/v1
где ms_IP – IP-адрес или сервер управления, а 8080 – порт, используемый Edge API. Если вы создали запись DNS для API Edge, URL будет иметь следующий вид:
http://ms_DNS/v1
Если вы включили TLS для API управления Edge, то он будет иметь следующий вид:
https://ms_IP:8080/v1 https://ms_DNS/v1
apigee_mgmt_api_email– адрес электронной почты аккаунта с доступом к Edge/statsAPI. Чаще всего это адрес электронной почты системного администратора Edge или администратора организации для ваших производственных организаций.apigee_mgmt_api_password: пароль Edge для аккаунта, указанного вapigee_mgmt_api_email.apigee_analytics_client_idи apigee_analytics_secret – учетные данные для загрузки данных в Apigee. Отправьте запрос в службу поддержки Apigee Edge, чтобы получитьapigee_analytics_client_idиapigee_analytics_secret.
Примеры команд
Ниже приведен пример команды для получения данных о трафике для всех организаций и сред в установке Edge и загрузки этих данных в Apigee. Обратите внимание, как вы используете apigee-service, чтобы выполнить команду apigee-analytics-collector:
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
Обратите внимание, что команда содержит всю необходимую информацию, например apigee_analytics_client_id и apigee_analytics_secret.
Результаты должны быть представлены в следующем формате:
[
{
"org": "myOrg",
"env": "prod",
"time_range_start": "08/27/2016 00:00",
"time_range_end": "08/30/2016 00:00",
"response": [
{
"store_org_env_metrics_hourly_v4": 1
}
]
},
{
"org": "VALIDATE",
"env": "test",
"time_range_start": "08/27/2016 00:00",
"time_range_end": "08/30/2016 00:00",
"response": [
{
"store_org_env_metrics_hourly_v4": 1
}
]
}
]Чтобы управлять действиями команды, используйте параметры командной строки. Чтобы указать организации и среды, которые нужно включить в сгенерированные данные, используйте следующие варианты:
-i, --include_orgs comma-separated list of items-x, --exclude_orgs comma-separated list of items-n, --include_envs comma-separated list of items-e, --exclude_envs comma-separated list of items
Например, чтобы указать только производственные организации и среды, используйте параметры -i (или --include_orgs) и -n (или --include_envs)):
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
В этом примере вы собираете данные только из рабочей среды myOrg.
Чтобы вывести данные на экран и проверить их перед отправкой в Apigee, используйте параметр -S:
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
Вариант -S позволяет не загружать данные в Apigee. Затем вы можете повторно выполнить команду без параметра -S, чтобы отправить данные в Apigee.
Использовать вариант -S может быть полезно, если вы хотите показывать разные типы данных локально. Apigee требует загружать только данные о трафике API, но вариант -D позволяет показывать данные о продуктах API, разработчиках, приложениях или прокси API. В приведенном ниже примере используются параметры -D и -S, чтобы локально отобразить данные разработчика:
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -D devs \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
Добавьте параметр -v, чтобы получить подробный вывод, и параметр -R, чтобы посмотреть команды curl, сгенерированные apigee-analytics-collector:
/opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -R -v \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
В следующем разделе приведен полный список параметров командной строки.
Параметры команд
В таблице ниже перечислены все параметры утилиты apigee-analytics-collector.
| Команда | Описание |
|---|---|
-h, --help |
Информация об использовании выходных данных |
-D, --dimension dimension |
Параметр трафика, который нужно собирать. Допустимые значения:
|
-d, --days days
|
Количество дней, за которые нужно собрать данные, начиная с текущей даты. Значение по умолчанию – 3. Если вы задали свойство |
-m, --apigee_mgmt_api_uri apigee_mgmt_api_uri |
URL для Edge Management API. |
-u, --apigee_mgmt_api_email apigee_mgmt_api_email |
Адрес электронной почты аккаунта с доступом к API Edge |
-p, --apigee_mgmt_api_password apigee_mgmt_api_password |
Пароль, связанный с аккаунтом электронной почты API управления Edge, указанным в параметре |
-i, --include_orgs items
|
Список организаций, разделенных запятыми, которые нужно включить в выходные данные. |
-x, --exclude_orgs items
|
Список организаций, которые нужно исключить из выходных данных, разделенный запятыми. |
-n, --include_envs items
|
Список сред, разделенных запятыми, которые нужно включить в выходные данные. |
-e, --exclude_envs items
|
Список сред, разделенных запятыми, которые нужно включить в выходные данные. |
-o, --output path
|
Путь и название файла, в который будут сохранены выходные данные. |
-s, --time_range_start time_range_start
|
Временной диапазон, с которого нужно начать запрос статистики трафика, в формате "MM/DD/YYYY HH:MM". Если вы задали свойство |
-z, --time_range_end time_range_end
|
Конец временного диапазона для запроса статистики трафика в формате "04/01/2016 24:00". Если вы задали свойство |
-t, --time_unit time_unit
|
Единица времени для данных о дорожной обстановке. Значение по умолчанию:
Если вы зададите для параметра |
-S, --standard_output
|
Записывает выходные данные в терминал (stdout), а не загружает их в Apigee. |
-c, --apigee_analytics_client_id apigee_analytics_client_id
|
Ваш идентификатор для загрузки данных в Apigee. Чтобы получить его, отправьте запрос в службу поддержки Apigee Edge. |
-r, --apigee_analytics_secret apigee_analytics_secret
|
Секрет для загрузки данных в Apigee. Чтобы получить его, отправьте запрос в службу поддержки Apigee Edge. |
-R, --include_curl_commands
|
Включите в выходные данные сгенерированные команды |
-v, --verbose
|
Показать подробный вывод. |
Как вручную загрузить данные в Apigee
Apigee рекомендует установить утилиту apigee-analytics-collector на компьютере с внешним доступом к интернету. После этого утилита apigee-analytics-collector сможет загружать данные непосредственно в Apigee.
Если у компьютера нет доступа к интернету, используйте Edge Management API, чтобы собрать данные о трафике, а затем загрузите их в Apigee с помощью команд curl с компьютера, подключенного к интернету. Вам нужно повторить этот процесс для каждой рабочей организации и среды в установке Edge.
Чтобы собрать данные о трафике для определенной организации и среды за указанный временной интервал, используйте следующую команду curl:
curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \ "http://ms_IP:8080/v1/organizations/org_name/environments/env_name/stats/apiproxy?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour"
В этой команде используется API Edge Get API message count. В этой команде:
- apigee_mgmt_api_email:apigee_mgmt_api_password – адрес электронной почты аккаунта с доступом к API Edge /stats.
- ms_IP – это IP-адрес или DNS-имя сервера управления Edge.
- org_name и env_name задают организацию и среду.
- apiproxy – это параметр, который группирует показатели по прокси API.
MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hourуказывает диапазон времени, разделенный на единицы времени, в которых собираются показатели. Обратите внимание, что в командеcurlдля обозначения пробелов в диапазоне времени используется шестнадцатеричный код%20.
Например, чтобы получить данные о количестве сообщений прокси-сервера API за каждый час в течение 24 часов, используйте следующий вызов API.
curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \ "http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/apiproxy?select=sum(message_count)&timeRange=01%2F01%2F2018%2000%3A00~01%2F02%2F2018%2000%3A00&timeUnit=hour"
(Обратите внимание, что в timeRange содержатся символы, закодированные в URL.)
Вы должны увидеть ответ в следующем формате:
{
"environments" : [ {
"dimensions" : [ {
"metrics" : [ {
"name" : "sum(message_count)",
"values": [
{
"timestamp": 1514847600000,
"value": "35.0"
},
{
"timestamp": 1514844000000,
"value": "19.0"
},
{
"timestamp": 1514840400000,
"value": "58.0"
},
{
"timestamp": 1514836800000,
"value": "28.0"
},
{
"timestamp": 1514833200000,
"value": "29.0"
},
{
"timestamp": 1514829600000,
"value": "33.0"
},
{
"timestamp": 1514826000000,
"value": "26.0"
},
{
"timestamp": 1514822400000,
"value": "57.0"
},
{
"timestamp": 1514818800000,
"value": "41.0"
},
{
"timestamp": 1514815200000,
"value": "27.0"
},
{
"timestamp": 1514811600000,
"value": "47.0"
},
{
"timestamp": 1514808000000,
"value": "66.0"
},
{
"timestamp": 1514804400000,
"value": "50.0"
},
{
"timestamp": 1514800800000,
"value": "41.0"
},
{
"timestamp": 1514797200000,
"value": "49.0"
},
{
"timestamp": 1514793600000,
"value": "35.0"
},
{
"timestamp": 1514790000000,
"value": "89.0"
},
{
"timestamp": 1514786400000,
"value": "42.0"
},
{
"timestamp": 1514782800000,
"value": "47.0"
},
{
"timestamp": 1514779200000,
"value": "21.0"
},
{
"timestamp": 1514775600000,
"value": "27.0"
},
{
"timestamp": 1514772000000,
"value": "20.0"
},
{
"timestamp": 1514768400000,
"value": "12.0"
},
{
"timestamp": 1514764800000,
"value": "7.0"
}
]
}
],
"name" : "proxy1"
} ],
"name" : "prod"
} ],
"metaData" : {
"errors" : [ ],
"notices" : [ "query served by:53dab80c-e811-4ba6-a3e7-b96f53433baa", "source pg:6b7bab33-e732-405c-a5dd-4782647ce096", "Table used: myorg.prod.agg_api" ]
}
}Чтобы загрузить эти данные в Apigee с компьютера, подключенного к интернету, используйте следующую команду curl:
curl -X POST -H 'Content-Type:application/json' \ -u apigee_analytics_client_id:apigee_analytics_secret \ https://nucleus-api-prod.apigee.com/v1/apigee-analytics-cli-api/traffic/orgs/org_name/apis -d '"environments"...'
Где:
- apigee_analytics_client_id:apigee_analytics_secret укажите учетные данные для загрузки данных в Apigee, полученные от Apigee.
- org_name – название организации.
- "environments"... содержит результаты команды
curl, которую вы использовали для сбора статистики выше.