Suba datos de tráfico de la API a Apigee (versión beta)

Edge for Private Cloud v. 4.17.09

Todos los clientes de Edge para nube privada deben enviar a Apigee estadísticas sobre el tráfico de proxy de la API. Apigee recomienda que los clientes suban esa información una vez al día, posiblemente mediante la creación de un trabajo cron.

Debes enviar los datos de las implementaciones de la API de producción, pero no de las APIs en desarrollo ni de las implementaciones de prueba. En la mayoría de las instalaciones de Edge, definirás organizaciones o entornos específicos para tus APIs de producción. Los datos que envíes son solo para esas organizaciones y esos entornos de producción.

Para ayudar en la carga de estos datos, Apigee proporciona la versión Beta de la utilidad de línea de comandos apigee-analytics-collector. Esta utilidad envía el informe de volumen de llamadas a la API a Apigee. Cada instalación de Edge para la nube privada puede usar esta utilidad para recuperar y generar informes de datos de tráfico a Apigee.

Cómo acceder a los datos subidos por apigee-analytics-collector

Después de subir datos con la utilidad apigee-analytics-collector, puedes verlos en Apigee 360.

Para ver los datos, accede a Apigee 360 y, luego, selecciona la opción Uso. En la página Uso, se muestra un gráfico de uso y una tabla con los datos de uso de cada una de las organizaciones de Edge.

Instala apigee-analytics-collector

La utilidad apigee-analytics-collector es un RPM que se instala con la utilidad apigee-service.

Dónde instalar

El nodo en el que instalas la utilidad apigee-analytics-collector puede ser cualquier nodo que pueda acceder a la API de administración perimetral en el servidor de administración perimetral. Puedes instalarlo directamente en el servidor de administración, en otro nodo de la instalación de Edge o en un nodo independiente, siempre y cuando ese nodo pueda realizar solicitudes de API al servidor de administración.

Requisitos de acceso a Internet

Instala la utilidad apigee-analytics-collector en una máquina con acceso externo a Internet. Luego, la utilidad apigee-analytics-collector puede subir datos directamente a Apigee.

Si no hay ningún nodo con acceso a la API de Edge Management en el servidor de Edge Management y con acceso externo a Internet, puedes usar la API de Edge Management para guardar los datos de tráfico de manera local. Luego, debes transferir los datos a una máquina con acceso a Internet para subirlos a Apigee. En esta situación, no necesitas usar la utilidad apigee-analytics-collector. Consulta Cómo subir datos a Apigee de forma manual a continuación para obtener más información.

Instalación

Usa el siguiente comando para instalar la utilidad apigee-analytics-collector. Debido a que instalas un archivo RPM, el usuario raíz o un usuario que tenga acceso completo sudo debe ejecutar este comando. Para obtener un acceso sudo completo, significa que el usuario tiene acceso sudo para realizar las mismas operaciones que la raíz.

> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install 

Ejecuta apigee-analytics-collector

En esta sección, se describe cómo ejecutar la utilidad apigee-analytics-collector.

Configura un usuario para que ejecute apigee-analytics-collector

Debes ejecutar apigee-analytics-collector como un usuario no raíz. Este usuario debe tener acceso completo de sudo al usuario “apigee”.

Si deseas configurar un usuario para que tenga acceso completo de sudo al usuario “apigee”, usa el comando “visudo” para editar el archivo sudoers y agregar lo siguiente:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

donde analyticsUser es el nombre de usuario de la persona que ejecuta la utilidad apigee-analytics-collector.

Después de instalar la utilidad apigee-analytics-collector y configurar el usuario, puedes probarla ejecutando el comando de ayuda de la utilidad apigee-analytics-collector:

> /opt/apigee/apigee-service/bin/ apigee-service apigee-analytics-collector export traffic --help

Información obligatoria para ejecutar apigee-analytics-collector

Necesitas la siguiente información para ejecutar el comando apigee-analytics-collector y reenviar datos a Apigee:

  • apigee_mgmt_api_uri: Es la URL base de la API de Edge en tu servidor de administración. Por lo general, esta URL tiene el siguiente formato:
    http://ms_IP:8080/v1

    En la que ms_IP es la dirección IP o el servidor de administración, y 8080 es el puerto que usa la API de Edge. Si creaste una entrada de DNS para la API de Edge, la URL tendrá el siguiente formato:
    http://ms_DNS/v1

    Si habilitas TLS en la API de Edge Management, la URL tendrá el siguiente formato:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: Es la dirección de correo electrónico de una cuenta con acceso a las APIs de /stats de Edge. A menudo, será el correo electrónico del administrador del sistema de Edge o el correo electrónico del administrador de la organización de producción.
  • apigee_mgmt_api_password: La contraseña de Edge para la cuenta que especifica apigee_mgmt_api_email.
  • apigee_analytics_client_id y apigee_analytics_secret: Son tus credenciales para subir datos a Apigee. Envía un ticket a la asistencia de Apigee para obtener apigee_analytics_client_id y apigee_analytics_secret.

Comandos de ejemplo

A continuación, se muestra un comando de ejemplo para recuperar datos de tráfico de todas las organizaciones y entornos de la instalación de Edge y subirlos a Apigee. Observa cómo se usa apigee-service para ejecutar el comando 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

Ten en cuenta que el comando contiene toda la información requerida, como tu apigee_analytics_client_id y apigee_analytics_secret.

Deberías ver los resultados en el siguiente formato:

[
  {
    "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
      }
    ]
  }
]

Usa opciones de línea de comandos para controlar sus acciones. Usa las siguientes opciones para especificar las organizaciones y los entornos que se incluirán en los datos generados:

  • -i, --include_orgs <lista de elementos separados por comas>
  • -x, --exclude_orgs <lista de elementos separados por comas>
  • -n, --include_envs <lista de elementos separados por comas>
  • -e, --exclude_envs <lista de elementos separados por comas>

Por ejemplo, para especificar solo las organizaciones y los entornos de producción, usa las opciones -i (o -include_orgs) y -n (o -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

En este ejemplo, solo recopilas datos del entorno de producción de myOrg.

Para volcar los datos en una pantalla y examinarlos antes de enviarlos a Apigee, usa la opción -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 

La opción -S omite la carga de datos a Apigee. Luego, puedes volver a ejecutar el comando sin la opción -S para enviar los datos a Apigee.

Una razón para usar la opción -S es que puedes mostrar diferentes tipos de datos de forma local. Apigee solo requiere que subas datos de tráfico de la API, pero la opción -D te permite mostrar datos sobre productos, desarrolladores, apps o proxies de la API. En el siguiente ejemplo, se usan las opciones -D y -S para mostrar los datos del desarrollador de forma local:

>  /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 

Incluye la opción -v para obtener un resultado detallado y la opción -R para ver los comandos curl que genera 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 

La siguiente sección contiene una lista completa de las opciones de línea de comandos.

Parámetros de comando

En la siguiente tabla, se enumera el conjunto completo de opciones de la utilidad apigee-analytics-collector:

Comando

Uso

-h, --help

Proporciona información sobre el uso

-D, --dimension <dimension>

Es la dimensión del tráfico que se recopilará. Dimensiones válidas: apiproducts, devs, apps, apiproxy (predeterminada)

-d, --días <days>

Es la cantidad de días anteriores, a partir de la fecha actual, de datos que se recopilarán. El valor predeterminado es 3.

Si especificas -d, no especifiques -s ni -z para establecer un rango de tiempo.

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

URL a la API de Edge Management.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

Es la dirección de correo electrónico de una cuenta con acceso a las APIs de Edge /stats. A menudo, será el correo electrónico del administrador del sistema perimetral o del administrador de la organización de tus organizaciones de producción.

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

Es la contraseña asociada a la cuenta de correo electrónico de la API de administración de Edge que se especifica con -u.

-i, --include_orgs <items>

Es una lista de organizaciones separadas por comas que se deben incluir en el resultado.

-x, --excluir_organizaciones <items>

Lista separada por comas de las organizaciones que se excluirán del resultado.

-n, --include_envs <items>

Lista de entornos separados por comas para incluir en el resultado.

-e, --exclude_envs <items>

Es una lista de entornos separados por comas que se incluirán en el resultado.

-o, --output <path>

Ruta de acceso y nombre de archivo para guardar el resultado.

-s, --time_range_start <time_range_start>

Es el período desde el que se deben consultar las estadísticas de tráfico, en el formato "01/03/2016 00:00".

Si especificas -d, no especifiques -s ni -z para establecer un intervalo de tiempo.

-z, --time_range_end <time_range_end>

Es el final del intervalo para consultar las estadísticas de tráfico, en el formato "01/04/2016 24:00".

Si especificas -d, no especifiques -s ni -z para establecer un intervalo de tiempo.

-t, --time_unit <time_unit>

Es la unidad de tiempo para los datos de tráfico. Semana predeterminada. Unidades predeterminadas por hora. Unidades de tiempo válidas: segundo, minuto, hora, día, semana

-S, --standard_output

Escribe la salida en la terminal (stdout), en lugar de subirlo a Apigee.

-c, --apigee_analytics_client_id &lt;apigee_analytics_client_id&gt;

Tu ID para subir datos a Apigee. Para obtenerla, envía un ticket al equipo de asistencia de Apigee.

-r, --apigee_analytics_secret <apigee_analytics_secret>

Tu secreto para subir datos a Apigee. Envía un ticket al equipo de asistencia de Apigee para obtenerlo.

-R, --include_curl_commands

Incluye los comandos cURL generados en el resultado para la depuración.

-v, --detallado

Muestra un resultado detallado.

Cómo subir datos a Apigee de forma manual

Apigee recomienda que instales la utilidad apigee-analytics-collector en una máquina con acceso externo a Internet. Luego, la utilidad apigee-analytics-collector puede subir datos directamente a Apigee.

Sin embargo, si la máquina no tiene acceso externo a Internet, usa la API de administración de Edge para recopilar datos de tráfico y, luego, usa los comandos cURL para subirlos a Apigee desde una máquina con acceso a Internet. Debes repetir este proceso para cada organización y entorno de producción en tu instalación de Edge.

Usa el siguiente comando de cURL para recopilar datos de tráfico de una organización y un entorno específicos durante un intervalo de tiempo determinado:

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://<ms_IP>:8080/v1/organizations/{org_name}/environments/{env_name}/stats/?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM"

Este comando usa la API de recuento de mensajes de la API de Edge Get. En este comando, la siguiente instrucción:

  • apigee_mgmt_api_email:apigee_mgmt_api_password especifica la dirección de correo electrónico de una cuenta con acceso a las API de Edge /stats.
  • <ms_IP> es la dirección IP o el nombre de DNS del servidor de administración de Edge.
  • {org_name} y {env_name} especifican la organización y el entorno.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM especifica el período de las estadísticas que se recopilarán. Ten en cuenta que el comando cURL usa el código hexadecimal %20 para los espacios en el intervalo de tiempo.

Por ejemplo, para recopilar estadísticas de un período de 24 horas, usa el siguiente comando:

curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/?select=sum(message_count)&timeRange=08/29/2016%2000:00~08/30/2016%2000:00"

Deberías ver una respuesta en el formulario como la siguiente:

{
  "environments" : [ {
    "metrics" : [ {
      "name" : "sum(message_count)",
      "values" : [ "42.0" ]
    } ],
    "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" ]
  }
}

Luego, para subir esos datos a Apigee desde una máquina con acceso a Internet, usa el siguiente comando 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"...}'

Donde:

  • apigee_analytics_client_id:apigee_analytics_secret especifica tus credenciales para subir datos a Apigee que obtuviste del equipo de asistencia de Apigee.
  • {org_name} especifica la organización.
  • {"environments"...} contiene los resultados del comando cURL que usaste para recopilar estadísticas anteriormente.