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

Edge for Private Cloud v4.18.01

Todos los clientes de Edge para la nube privada deben enviar estadísticas de Apigee sobre la API el tráfico del proxy. 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 para tus APIs de producción. Los datos que envíes son solo para esas organizaciones y esos entornos de producción.

Para ayudarte 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 de volumen de llamadas a la API a Apigee. Todas las ventajas de la La instalación de nube privada puede usar esta utilidad para recuperar datos de tráfico e informarlos a Apigee

Acceder a los datos subidos por apigee-analytics-collector

Después de subir datos con la utilidad apigee-analytics-collector, puedes verla 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 de datos de uso para cada una de tus 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 la app

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

Acceso a Internet requisitos

Instalar la utilidad apigee-analytics-collector en un 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 administración de Edge en el servidor de administración de Edge y con acceso externo a Internet, puedes usar la API de administración de Edge 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 este caso, no necesitas usar la utilidad apigee-analytics-collector. Consulta Carga manual de datos a Apigee 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, el usuario raíz o un usuario que tenga acceso completo a sudo debe ejecutar este comando. Para obtener acceso completo sudo, el usuario tiene acceso sudo para realizar el mismo de servicio como 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”.

Configurar un usuario para que tenga acceso completo sudo a “apigee” usuario, utiliza el comando "visudo" para edita el archivo sudoers y agrega lo siguiente:

analyticsUser        ALL=(apigee)      NOPASSWD: ALL

en el que analyticsUser es el nombre de usuario de la persona que dirige la utilidad apigee-analytics-collector.

Después de instalar la utilidad apigee-analytics-collector y configurar el usuario, puedes probar la utilidad ejecutando el comando help 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

    Donde 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 tiene el siguiente formato:
    http://ms_DNS/v1

    Si habilitas TLS en la API de administración de Edge, la URL tiene 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, esto será el correo electrónico del administrador del sistema perimetral o 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 especificada por 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 usar apigee-service para Ejecuta 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 tus 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 los datos subir 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 datos del desarrollador locally:

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

En la siguiente sección, se incluye una lista completa de 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, --dimensión &lt;dimension&gt;

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

-d, --days <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 especifica -s ni -z para establecer una hora del rango de destino de la ruta.

-m, --apigee_mgmt_api_uri &lt;apigee_mgmt_api_uri&gt;

URL a la API de Edge Management.

-u, --apigee_mgmt_api_email &lt;apigee_mgmt_api_email&gt;

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 de Edge o el correo electrónico del administrador de la organización 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, --exclude_orgs <items>

Es una lista de organizaciones separadas por comas que se deben excluir del resultado.

-n, --include_envs <items>

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

-e, --Exclude_envs &lt;items&gt;

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 &lt;time_range_start&gt;

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 &lt;time_range_end&gt;

Finalización del intervalo de tiempo para consultar las 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 <time_unit>

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

-S, --standard_output

Escribe la salida en la terminal (stdout), en lugar de subirla 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. Para obtenerla, envía un ticket al equipo de asistencia de Apigee.

-R, --include_curl_commands

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

-v, --detallado

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 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 cURL para recopilar datos de tráfico de una organización específica y entorno durante 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 APIs de Edge /stats.
  • &lt;ms_IP&gt; es la dirección IP o el nombre de DNS del perímetro de Google.
  • {org_name} y {org_name} especifican la organización y entorno.
  • apiproxy es la dimensión que agrupa las métricas por proxies de API.
  • DD/MM/AAAA%20HH:MM~DD/MM/AAAA%20HH:MM&timeUnit=hour especifica el período 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 del intervalo de tiempo.

Por ejemplo, para recopilar recuentos de mensajes del proxy de API hora por hora durante un período de 24 horas, usa el siguiendo a a la API de Cloud Management. El objeto timeRange contiene caracteres codificados en 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" ]
  }
}

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