Загрузка данных трафика API в Apigee — бета-версия

Edge для частного облака v4.19.01

Все клиенты Edge for Private Cloud обязаны отправлять в Apigee статистику о трафике прокси-сервера API. Apigee рекомендует клиентам загружать эту информацию один раз в день, возможно, создав задание cron.

Вы должны предоставить данные для своих производственных развертываний API, но не для API, находящихся в стадии разработки или тестирования. В большинстве установок Edge вы определяете конкретные организации или среды для своих рабочих API. Данные, которые вы отправляете, предназначены только для этих производственных организаций и сред.

Чтобы помочь в загрузке этих данных, 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 Management Server. Вы можете установить его непосредственно на Сервере управления, на другом узле установки Edge или на отдельном узле, если этот узел может отправлять запросы API к Серверу управления.

Требования к доступу в Интернет

Установите утилиту apigee-analytics-collector на машине с внешним доступом в Интернет. Затем утилита apigee-analytics-collector сможет загрузить данные непосредственно в Apigee.

Если нет узла с доступом к API управления Edge на сервере Edge Management Server и внешним доступом к Интернету, вы можете использовать API управления Edge для локального сохранения данных трафика. Затем вам необходимо перенести данные на компьютер с доступом в Интернет для загрузки в Apigee. В этом сценарии вам не нужно использовать утилиту apigee-analytics-collector . Дополнительную информацию см. в разделе «Загрузка данных в Apigee вручную» ниже.

Установка

Используйте следующую команду для установки утилиты apigee-analytics-collector . Поскольку вы устанавливаете файл RPM, эту команду должен запускать пользователь root или пользователь, имеющий полный доступ к sudo. Полный доступ к 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 и настройки пользователя вы можете протестировать утилиту, выполнив команду help для утилиты 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 для Edge API, URL-адрес будет иметь вид:
    http:// мс_DNS /v1

    Если вы включите TLS в API управления Edge, он будет иметь вид:
    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 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 <список элементов, разделенных запятыми>
  • -x, --exclude_orgs <список элементов, разделенных запятыми>
  • -n, --include_envs <список элементов, разделенных запятыми>
  • -e, --exclude_envs <список элементов, разделенных запятыми>

Например, чтобы указать только производственные организации и среды, используйте параметры -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 :

Команда

Использовать

-х, --help

Вывод информации об использовании

-D, --dimension <размерность>

Измерение трафика, которое необходимо собрать. Допустимые размеры: apiproducts , devs , apps , apiproxy (по умолчанию).

-d, --days <дни>

Прошедшее количество дней, начиная с текущей даты, в течение которых необходимо собрать данные. Значение по умолчанию — 3.

Если вы укажете -d , не указывайте также -s и -z для установки диапазона времени.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

URL-адрес API управления Edge.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

Адрес электронной почты учетной записи с доступом к API Edge /stats . Часто это адрес электронной почты системного администратора Edge или адрес электронной почты администратора вашей производственной организации.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

Пароль, связанный с учетной записью электронной почты API управления Edge, указанной с помощью -u .

-i, --include_orgs <предметы>

Список организаций, разделенных запятыми, которые будут включены в выходные данные.

-x, --exclude_orgs <предметы>

Список организаций, разделенных запятыми, которые следует исключить из вывода.

-n, --include_envs <предметы>

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

-e, --exclude_envs <предметы>

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

-o, --output <путь>

Путь и имя файла для сохранения вывода.

-s, --time_range_start <time_range_start>

Диапазон времени начала запроса статистики трафика в виде: «01.03.2016 00:00».

Если вы укажете -d, не указывайте также -s и -z для установки диапазона времени.

-z, --time_range_end <конец_временного_диапазона>

Конец временного диапазона для запроса статистики трафика в виде: «01.04.2016 24:00».

Если вы укажете -d, не указывайте также -s и -z для установки диапазона времени.

-t, --time_unit <единица_времени>

Единица времени для данных о дорожном движении. Единицы по умолчанию — hour . Допустимые единицы времени: секунда, минута, час, день, неделя.

-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

Включите сгенерированные команды cURL в выходные данные для отладки.

-v, --verbose

Отображение подробного вывода.

Ручная загрузка данных в Apigee

Apigee рекомендует установить утилиту apigee-analytics-collector на компьютер с внешним доступом в Интернет. Затем утилита apigee-analytics-collector сможет загрузить данные непосредственно в Apigee.

Однако, если у компьютера нет внешнего доступа к Интернету, используйте API управления Edge для сбора данных о трафике, а затем используйте команды cURL для загрузки их в Apigee с компьютера с доступом в Интернет. Вам придется повторить этот процесс для каждой производственной организации и среды в вашей установке 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. В этой команде:

  • apigee_mgmt_api_email:apigee_mgmt_api_password указывает адрес электронной почты учетной записи с доступом к API Edge/stats.
  • <ms_IP> — это IP-адрес или DNS-имя пограничного сервера управления.
  • {org_name} и {env_name} определяют организацию и среду.
  • apiproxy — это параметр, который группирует метрики по прокси-серверам API.
  • ММ/ДД/ГГГГ%20ЧЧ:ММ~ММ/ДД/ГГГГ%20ЧЧ:ММ&timeUnit=час указывает диапазон времени, разделенный на единицы времени для собираемых показателей. Обратите внимание, что команда 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&timeUnit=hour"

Вы должны увидеть ответ в виде:

{
  "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, которую вы использовали для сбора статистики выше.