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

Все клиенты 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 и доступом к внешнему Интернету, вы можете использовать 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://ms_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 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

Измерение трафика, которое необходимо собрать. Допустимые значения:

  • apiproducts
  • apiproxy (по умолчанию)
  • apps
  • devs
-d, --days 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 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 ».

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

-z, --time_range_end time_range_end

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

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

-t, --time_unit time_unit

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

  • second
  • minute
  • hour (по умолчанию)
  • day
  • week

Если вы установите -t на week и -d на 365 , Apigee вернет большой объем данных, сгруппированных в 52 отдельные записи (по одной на каждую неделю).

-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.
  • MM/DD/YYYY %20 HH:MM~MM/DD/YYYY %20 HH: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 , которую вы использовали для сбора статистики выше.