Edge для частного облака версии 4.17.01
Все клиенты Edge for Private Cloud должны отправлять в Apigee статистику трафика прокси API. Apigee рекомендует клиентам загружать эту информацию раз в день, например создав задание cron.
Отправлять данные нужно только для рабочих версий API, но не для тех, которые находятся в разработке или на этапе тестирования. В большинстве случаев для рабочих API в Edge определяются определенные организации или среды. Данные, которые вы отправляете, предназначены только для этих производственных организаций и сред.
Чтобы помочь вам загрузить эти данные, Apigee предоставляет бета-версию утилиты командной строки apigee-analytics-collector. Эта утилита отправляет отчет об объеме вызовов API в Apigee. Каждая установка Edge для частного облака может использовать эту утилиту для получения данных о трафике и отправки отчетов в Apigee.
Дополнительную информацию о процессе загрузки данных о дорожной обстановке в Apigee можно найти в разделе Часто задаваемые вопросы.
Посмотрите короткое видео, чтобы увидеть инструмент в действии.
Как установить apigee-analytics-collector
Утилита apigee-analytics-collector представляет собой модуль Node.js, который устанавливается с помощью npm.
Требования к установке
Утилита apigee-analytics-collector требует:
- npm 2.x или более поздней версии
- Node.js 4.x.
Где установить
Узел, на котором вы устанавливаете утилиту apigee-analytics-collector, может быть любым узлом, имеющим доступ к Edge Management API на сервере управления Edge. Его можно установить непосредственно на сервере управления, на другом узле установки Edge или на отдельном узле, если этот узел может отправлять запросы API на сервер управления.
Требования к доступу в интернет
Установите утилиту apigee-analytics-collector на компьютере с внешним доступом к интернету. После этого утилита apigee-analytics-collector сможет загружать данные непосредственно в Apigee.
Если нет узла, у которого есть доступ к Edge Management API на сервере Edge Management и внешний доступ к интернету, вы можете использовать Edge Management API, чтобы сохранить данные о трафике локально. Затем вам нужно перенести данные на компьютер с доступом к интернету, чтобы загрузить их в Apigee. В этом случае вам не нужно использовать утилиту apigee-analytics-collector. Подробнее о том, как вручную загрузить данные в Apigee…
Установка
Чтобы установить утилиту apigee-analytics-collector, используйте следующую команду:
> npm install apigee-analytics-collector -g
Запуск apigee-analytics-collector
В этом разделе рассказывается, как запустить утилиту apigee-analytics-collector.
Информация, необходимая для запуска apigee-analytics-collector
Чтобы выполнить команду apigee-analytics-collector и переслать данные в Apigee, вам потребуется следующая информация:
- apigee_mgmt_api_uri – базовый URL API Edge на сервере управления. Обычно URL имеет следующий вид:
http://ms_IP:8080/v1
где ms_IP – это IP-адрес вашего сервера управления, а 8080 – порт, используемый Edge API. Если вы создали запись DNS для API Edge, URL будет иметь следующий вид:
http://ms_DNS/v1
Если вы включили TLS для API управления Edge, URL будет иметь следующий вид:
https://ms_IP:8080/v1
https://ms_DNS/v1 - apigee_mgmt_api_email – адрес электронной почты аккаунта с доступом к API Edge /stats. Чаще всего это адрес электронной почты системного администратора Edge или администратора организации для ваших производственных организаций.
- apigee_mgmt_api_password – пароль Edge для аккаунта, указанного в параметре apigee_mgmt_api_email.
- apigee_analytics_client_id и apigee_analytics_secret – учетные данные для загрузки данных в Apigee. Чтобы получить apigee_analytics_client_id и apigee_analytics_secret, отправьте запрос в службу поддержки Apigee.
Примеры команд
Ниже приведен пример команды для получения данных о трафике для всех организаций и сред в установке Edge и загрузки этих данных в Apigee:
> 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 <список элементов, разделенных запятыми>
- -x, --exclude_orgs <список элементов, разделенных запятыми>
- -n, --include_envs <список элементов, разделенных запятыми>
- -e, --exclude_envs <список элементов, разделенных запятыми>
Например, чтобы указать только производственные организации и среды, используйте параметры -i (или --include_orgs) и -n (или --include_envs):
> 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:
> 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, чтобы отобразить данные разработчика локально:
> 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, а чтобы посмотреть команды curl, сгенерированные apigee-analytics-collector, добавьте параметр -R:
> 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:
|
Command |
Использование |
|---|---|
|
-h, --help |
Информация об использовании выходных данных |
|
-D, --dimension <dimension> |
Параметр трафика, который нужно собирать. Допустимые параметры: apiproducts, devs, apps, apiproxy (по умолчанию). |
|
-d, --days <days> |
Количество дней, начиная с текущей даты, за которые нужно собрать данные. Значение по умолчанию – 3. Если вы укажете параметр -d, не используйте параметры -s и -z, чтобы задать диапазон времени. |
|
-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri> |
URL для Edge Management API. |
|
-u, --apigee_mgmt_api_email <apigee_mgmt_api_email> |
Адрес электронной почты аккаунта с доступом к API Edge /stats. Чаще всего это адрес электронной почты системного администратора Edge или администратора организации для ваших производственных организаций. |
|
-p, --apigee_mgmt_api_password <apigee_mgmt_api_password> |
Пароль, связанный с адресом электронной почты аккаунта Edge Management API, указанным в параметре -u. |
|
-i, --include_orgs <элементы> |
Список организаций, которые нужно включить в выходные данные. Элементы списка разделяются запятыми. |
|
-x, --exclude_orgs <items> |
Список организаций, которые нужно исключить из выходных данных. Элементы списка разделяются запятыми. |
|
-n, --include_envs <элементы> |
Список сред, которые нужно включить в выходные данные. Перечисляются через запятую. |
|
-e, --exclude_envs <items> |
Список сред, которые нужно включить в выходные данные. Перечисляются через запятую. |
|
-o, --output <путь> |
Путь и название файла для сохранения выходных данных. |
|
-s, --time_range_start <time_range_start> |
Временной диапазон, с которого нужно начать запрос статистики трафика, в формате "03/01/2016 00:00". Если вы укажете параметр -d, не используйте параметры -s и -z для настройки диапазона времени. |
|
-z, --time_range_end <time_range_end> |
Конец временного диапазона для запроса статистики трафика в формате "04/01/2016 24:00". Если вы укажете параметр -d, не используйте параметры -s и -z для настройки диапазона времени. |
|
-t, --time_unit <time_unit> |
Единица времени для данных о дорожной обстановке. Неделя по умолчанию. Единицы по умолчанию в час. Допустимые единицы времени: секунда, минута, час, день, неделя. |
|
-S, --standard_output |
Записывает выходные данные в терминал (stdout), а не загружает их в Apigee. |
|
-c, --apigee_analytics_client_id <apigee_analytics_client_id> |
Ваш идентификатор для загрузки данных в Apigee. Чтобы получить его, отправьте запрос в службу поддержки Apigee. |
|
-r, --apigee_analytics_secret <apigee_analytics_secret> |
Секрет для загрузки данных в Apigee. Чтобы получить его, отправьте запрос в службу поддержки Apigee. |
|
-R, --include_curl_commands |
Включите в выходные данные сгенерированные команды cURL для отладки. |
|
-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 управления. Параметр timeRange содержит символы, закодированные в URL.
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"
Вы должны увидеть ответ в следующем формате:
{
"environments" : [ {
"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"
} ],
"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, которую вы использовали для сбора статистики выше.