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

Edge para la nube privada v4.18.01

Todos los clientes de Edge para la nube privada deben enviar estadísticas de Apigee sobre el tráfico del 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 para las implementaciones de tus API de producción, pero no para las APIs en implementaciones de prueba o desarrollo. 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ías son solo para esas organizaciones y entornos de producción.

Para ayudar a subir 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 del volumen de llamadas a la API de vuelta a Apigee. Cada Edge para la instalación de la nube privada puede usar esta utilidad a fin de recuperar y, también, informar datos de tráfico a Apigee.

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 verlos, 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 instalas mediante la utilidad apigee-service.

Dónde instalar la app

El nodo en el que instalas la utilidad apigee-analytics-collector puede ser cualquier nodo que pueda acceder a la API de Edge Management en Edge Management Server. Puedes instalarlo directamente en el servidor de administración, en otro nodo de la instalación de Edge o en un nodo independiente, siempre que ese nodo pueda realizar solicitudes a la 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 un nodo con acceso a la API de Edge Management en Edge Management Server y con acceso externo a Internet, puedes usar la API de Edge Management para guardar los datos de tráfico de forma 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 Sube 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 estás instalando un archivo RPM, un usuario raíz o un usuario con acceso sudo completo debe ejecutar este comando. Para el acceso sudo completo, significa que el usuario tiene acceso sudo para realizar las mismas operaciones que el usuario 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 ejecutar apigee-analytics-collector

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

Si quieres configurar un usuario para que tenga acceso sudo completo al usuario de “apigee”, usa el comando “visudo” para editar el archivo sudoers que se agregará:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

en el que 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 si ejecutas el comando de ayuda para 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 el servidor de administración. Por lo general, tiene el siguiente formato:
    http://ms_IP:8080/v1

    En el que ms_IP es la dirección IP o tu 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, tendrá el siguiente formato:
    https://ms_IP:8080/v1
    https://ms_DNS/v1
  • apigee_mgmt_api_email: La dirección de correo electrónico de una cuenta con acceso a las API /stats de Edge. A menudo, este será el correo electrónico del administrador del sistema Edge o el del administrador de la organización para las organizaciones de producción.
  • apigee_mgmt_api_password: Es la contraseña de Edge para la cuenta que especifica apigee_mgmt_api_email.
  • apigee_analytics_client_id y apigee_analytics_secret: Tus credenciales para subir datos a Apigee Envía un ticket al equipo de 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 en la instalación de Edge y subirlos a Apigee. Observa cómo usas 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

Observa que el comando contiene toda la información requerida, como 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 deseas incluir en los datos generados:

  • -i, --include_orgs <lista de elementos separados por comas>
  • -x, --excluir_orgs <lista de elementos separados por comas>
  • -n, --include_envs <lista de elementos separados por comas>
  • -e, --excluir_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 se recopilan datos del entorno de producción de myOrg.

Si quieres volcar los datos en una pantalla para 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.

Un motivo para usar la opción -S es que puedas mostrar diferentes tipos de datos de forma local. Apigee solo requiere que subas datos de tráfico de API, pero la opción -D te permite mostrar datos sobre productos de API, desarrolladores, apps o proxies de 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 a fin de ver los comandos curl generados por 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 opciones de la línea de comandos.

Parámetros de comando

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

Comando

Uso

-h, --help

Información de uso de salida

-D, --dimensión <dimension>

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

-d, --días <días>

La última cantidad de días, a partir de la fecha actual, de datos que se deben recopilar. El valor predeterminado es 3.

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

-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri>

URL de la API de Edge Management.

-u, --apigee_mgmt_api_email <apigee_mgmt_api_email>

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

-p, --apigee_mgmt_api_password <apigee_mgmt_api_password>

Contraseña asociada con la cuenta de correo electrónico de la API de Edge Management especificada por -u.

-i, --include_orgs <elementos>

Lista de organizaciones separadas por comas para incluir en el resultado.

-x, --exclusion_orgs <artículos>

Es una lista separada por comas de las organizaciones que se excluirán del resultado.

-n, --include_envs <items>

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

-e, --excluir_envs <items>

Lista separada por comas de entornos para incluir desde 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 intervalo de tiempo para comenzar a consultar las estadísticas de tráfico, con el formato “03/01/2016 00:00”.

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

-z, --time_range_end <time_range_end>

Finalización del intervalo de tiempo para consultar estadísticas de tráfico, con el formato “04/01/2016 24:00”.

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

-t, --time_unit <unidad_de_tiempo>

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

Escribir el resultado en la terminal (stdout), en lugar de subirlo a Apigee

-c, --apigee_analytics_client_id <apigee_analytics_client_id>

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

-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 y --verbose

Muestra un resultado detallado.

Sube 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 Edge Management para recopilar datos de tráfico y, luego, usa comandos cURL a fin de 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 la 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 en un intervalo de tiempo específico:

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"

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 perimetral.
  • {org_name} y {env_name} especifican la organización y el entorno.
  • apiproxy es la dimensión que agrupa las métricas por proxies de API.
  • MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour especifica el intervalo de tiempo dividido en unidades de tiempo de las métricas 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 los recuentos de mensajes del proxy de la API hora por hora durante un período de 24 horas, usa la siguiente llamada a la API de administración. timeRange contiene caracteres codificados para 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"

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

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

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 a Apigee los datos que obtuviste de la asistencia de Apigee.
  • {org_name} especifica la organización.
  • {"environments"...} contiene los resultados del comando cURL que usaste para recopilar las estadísticas anteriores.