Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Apigee registra una amplia variedad de datos operativos y empresariales que se transfieren a través de las APIs. Las métricas derivadas de estos datos son útiles para la monitorización operativa y empresarial. Con Apigee Analytics, puedes, por ejemplo, determinar qué APIs tienen un buen o mal rendimiento, qué desarrolladores ofrecen el tráfico de mayor valor y qué aplicaciones están causando la mayoría de los problemas en tus servicios backend.
Para acceder fácilmente a estos datos de métricas, usa la API Metrics cuando necesites automatizar determinadas funciones analíticas, como recuperar métricas periódicamente mediante un cliente o una secuencia de comandos de automatización. También puedes usar la API para crear tus propias visualizaciones en forma de widgets personalizados que puedes insertar en portales o aplicaciones personalizadas.
Para saber cómo usar Analytics en la interfaz de usuario de Apigee, consulta la descripción general de Apigee Analytics.
Acerca de la API de métricas
.Hay dos formas de usar la API Metrics:
- Obtener métricas de una organización y un entorno
durante un periodo, como una hora, un día o una semana.
Este método devuelve métricas sin procesar de toda la organización y el entorno.
Por ejemplo, si quieres obtener los datos de la semana anterior:
- Número de errores de políticas
- Tiempo medio de respuesta
- Tráfico total
Obtén métricas organizadas por dimensión durante un periodo de tiempo para una organización y un entorno.
Por ejemplo, en la semana anterior, puede usar dimensiones para agrupar métricas por producto de API, proxy de API y correo electrónico del desarrollador (que también puede ser un ID de AppGroup) para obtener lo siguiente:
- Número de errores de políticas por producto de API
- Tiempo medio de respuesta por proxy de API
- Tráfico total por correo del desarrollador
Para gestionar el resultado devuelto, la API Metrics admite las siguientes funciones:
Para obtener más información, consulta la referencia de la API Metrics.
Empezar a usar la API Metrics
La URL de solicitud de la API Metrics es la siguiente:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats[dimension]
Por ejemplo, para obtener métricas agrupadas por proxy de API, use la siguiente URL para llamar a la API de Apigee:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?timeRange=07/21/2018+00:00:00~08/23/2018+00:00:00
Omita la dimensión para devolver métricas sin procesar de toda la organización y el entorno durante el periodo especificado:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats?timeRange=07/21/2019+00:00:00~08/23/2018+00:00:00
Especificar las métricas que se van a devolver
Usa el parámetro de consulta
select
para especificar las métricas que quieres obtener y una función de agregación opcional, con el siguiente formato:?select=metric
También puedes hacerlo de esta otra forma, si lo prefieres:
?select=aggFunction(metric)
Donde:
- metric especifica los datos que quieres devolver. Por ejemplo, el número de solicitudes a la API, de resultados en caché o de errores de política. Consulta las métricas
para ver una tabla que especifica el nombre de la métrica que se debe usar con el parámetro de consulta
select
. aggFunction especifica la función de agregación opcional que se ejecuta en la métrica. Por ejemplo, puede usar las siguientes funciones de agregación con la métrica de latencia de procesamiento:
avg
: devuelve la latencia media de procesamiento.min
: devuelve la latencia de procesamiento mínima.max
: devuelve la latencia máxima de procesamiento.-
sum
: devuelve la suma de todas las latencias de procesamiento. -
p50
: devuelve el percentil 50 de las latencias de procesamiento, calculado mediantepercentile(latency_metric,50)&aggTable=agg_percentile
. -
p95
: devuelve el percentil 95 de las latencias de procesamiento, calculado mediantepercentile(latency_metric,95)&aggTable=agg_percentile
. -
p99
: devuelve el percentil 99 de las latencias de procesamiento, calculado mediantepercentile(latency_metric,99)&aggTable=agg_percentile
.
El
latency_metric
puede ser:total_response_time
target_response_time
response_processing_latency
request_processing_latency
No todas las métricas admiten todas las funciones de agregación. En la documentación sobre métricas, se incluye una tabla que especifica el nombre de la métrica y la función (
sum
,avg
,min
omax
) que admite.
Por ejemplo, para devolver el número medio de transacciones (es decir, solicitudes de proxy de API) por segundo, haz lo siguiente:
?select=tps
Ten en cuenta que este ejemplo no requiere una función de agregación. En el siguiente ejemplo se usa una función de agregación para devolver la suma de aciertos de caché:
?select=sum(cache_hit)
Puedes devolver varias métricas en una sola llamada a la API. Para obtener métricas de la suma de errores de política y el tamaño medio de las solicitudes, defina el parámetro de consulta
select
con una lista de métricas separadas por comas:?select=sum(policy_error),avg(request_size)
Especificar el periodo
La API Metrics devuelve datos de un periodo concreto. Usa el parámetro de consulta
timeRange
(6 meses como máximo) para especificar el periodo. El formato es el siguiente:?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM
Fíjate en el
%20
antes deHH:MM
. El parámetrotimeRange
requiere un carácter de espacio codificado como URL antes deHH:MM
o un carácter+
, como en el siguiente ejemplo:MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM
.Por ejemplo:
?timeRange=03/01/2018%2000:00~03/30/2018%2023:59
No uses las 24:00 como hora, ya que se convierte en las 00:00. Usa las 23:59.
Ejemplos de llamadas a la API de métricas
En esta sección se proporcionan ejemplos de uso de la API de métricas. Consulta más ejemplos en Ejemplos de la API Metrics.
Devuelve el número total de llamadas realizadas a tus APIs durante un mes
Para devolver el número total de llamadas realizadas a todas las APIs de tu organización y entorno durante un mes, usa una llamada similar a la siguiente:
curl -v "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/?select=sum(message_count)&timeRange=03/01/2018%2000:00~03/31/2018%2023:59" \ -H "Authorization: Bearer $TOKEN"
Donde
$TOKEN
es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones decurl
que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.A continuación, se muestra un ejemplo de la respuesta:
{ "environments": [ { "metrics": [ { "name": "sum(message_count)", "values": [ "7.44944088E8" ] } ], "name": "prod" } ], ... }
Devuelve el número total de mensajes por proxy de API durante dos días
En este ejemplo, se devuelven métricas del número de solicitudes recibidas por todos los proxies de API durante un periodo de dos días. El parámetro de consulta
select
define la función de agregaciónsum
de la métricamessage_count
en la dimensiónapiproxy
. El informe devuelve el rendimiento de mensajes de solicitud de todas las APIs del tráfico recibido entre el inicio del 20/06/2018 y el final del 21/06/2018, en hora UTC:curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59" \ -H "Authorization: Bearer $TOKEN"
Donde
$TOKEN
es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones decurl
que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.A continuación, se muestra un ejemplo de la respuesta:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ { "timestamp" : 1498003200000, "value" : "1100.0" } ] } ], "name" : "target-reroute" } ], "name" : "test" } ]... }
Esta respuesta indica que un proxy de API llamado "target-reroute" ha recibido 1100 mensajes en el entorno de prueba entre el 20 y el 21 de junio del 2018.
Para obtener métricas de otras dimensiones, especifique otra dimensión como parámetro URI. Por ejemplo, puedes especificar la dimensión
developer_app
para obtener métricas de las aplicaciones de desarrolladores. La siguiente llamada a la API devuelve el rendimiento total (mensajes recibidos) de cualquier aplicación durante el intervalo de tiempo especificado:curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/developer_app?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59&timeUnit=day" \ -H "Authorization: Bearer $TOKEN"
A continuación, se muestra un ejemplo de la respuesta:
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "886.0" } ] } ], "name": "Test-App" }, { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "6645.0" } ] } ], "name": "johndoe_app" }, { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "1109.0" } ] } ], "name": "marys_app" } ]... }
Ordenar los resultados por clasificación relativa
Muchas veces, al obtener métricas, solo quieres obtener resultados de un subconjunto del conjunto total de datos. Normalmente, tienes que obtener los resultados de los 10 primeros elementos, por ejemplo, las 10 APIs más lentas o las 10 aplicaciones más activas. Para ello, puedes usar el parámetro de consulta
topk
como parte de la solicitud.Por ejemplo, puede que te interese saber quiénes son tus principales desarrolladores, medidos por el rendimiento, o cuáles son los que tienen un rendimiento más bajo (es decir, más lentas") se ordenan por latencia.
La
topk
(es decir, las entidades principales) permite generar informes sobre las entidades asociadas al valor más alto de una métrica determinada. De esta forma, puede filtrar las métricas de una lista de entidades que cumplan una condición concreta.Por ejemplo, para saber qué URL de destino ha sido la que ha tenido más errores durante la última semana, se añade el parámetro
topk
a la solicitud con el valor1
:curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&topk=1" \ -H "Authorization: Bearer $TOKEN"
Donde
$TOKEN
es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones decurl
que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.A continuación, se muestra un ejemplo de la respuesta:
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(is_error)", "values": [ { "timestamp": 1494201600000, "value": "12077.0" } ] } ], "name": "http://api.company.com" } ]... }
El resultado de esta solicitud es un conjunto de métricas que muestra que la URL de destino con más errores es
http://api.company.com
.También puede usar el parámetro
topk
para ordenar las APIs que experimentan el mayor rendimiento. En el siguiente ejemplo se obtienen métricas de la API mejor clasificada, definida por el mayor rendimiento de la última semana:curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV}/stats/apiproxy?"select=sum(message_count)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=day&sortby=sum(message_count)&sort=DESC&topk=1" \ -H "Authorization: Bearer $TOKEN"
A continuación, se muestra un ejemplo de la respuesta:
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1494720000000, "value": "5750.0" }, { "timestamp": 1494633600000, "value": "5752.0" }, { "timestamp": 1494547200000, "value": "5747.0" }, { "timestamp": 1494460800000, "value": "5751.0" }, { "timestamp": 1494374400000, "value": "5753.0" }, { "timestamp": 1494288000000, "value": "5751.0" }, { "timestamp": 1494201600000, "value": "5752.0" } ] } ], "name": "testCache" } ], "name": "test" } ]... }
Filtrar resultados
Para obtener una mayor granularidad, puede filtrar los resultados para limitar los datos devueltos. Cuando uses filtros, debes usar dimensiones como propiedades de filtro.
Por ejemplo, supongamos que necesitas obtener un recuento de errores de los servicios de backend filtrados por el verbo HTTP de la solicitud. Tu objetivo es averiguar cuántas solicitudes POST y PUT generan errores por servicio backend. Para ello, usa la dimensión
target_url
junto con el filtrorequest_verb
:curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&filter=(request_verb%20in%20'POST','PUT')" \ -H "Authorization: Bearer $TOKEN"
Donde
$TOKEN
es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones decurl
que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.A continuación, se muestra un ejemplo de la respuesta:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(is_error)", "values" : [ { "timestamp" : 1519516800000, "value" : "1.0" } ] } ], "name" : "testCache" } ], "name" : "test" } ]... }
Paginación de resultados
En los entornos de producción, algunas solicitudes a la API Analytics de Apigee devuelven conjuntos de datos muy grandes. Para que sea fácil mostrar grandes conjuntos de datos en el contexto de una aplicación basada en una interfaz de usuario, la API admite la paginación de forma nativa.
Para paginar los resultados, usa los parámetros de consulta
offset
ylimit
, así como el parámetro de ordenaciónsortby
para asegurarte de que los elementos se ordenen de forma coherente.Por ejemplo, es probable que la siguiente solicitud devuelva un conjunto de datos grande, ya que obtiene métricas de todos los errores de todas las APIs del entorno de producción de la última semana.
curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)" \ -H "Authorization: Bearer $TOKEN"
Donde
$TOKEN
es tu token de acceso OAuth 2.0, tal como se describe en Obtener un token de acceso OAuth 2.0. Para obtener información sobre las opciones decurl
que se usan en este ejemplo, consulta Usar curl. Para ver una descripción de las variables de entorno que puedes usar, consulta Definir variables de entorno para solicitudes a la API de Apigee.Si tu aplicación basada en interfaz de usuario puede mostrar razonablemente 50 resultados por página, puedes definir el límite en 50. Como 0 cuenta como el primer elemento, la siguiente llamada devuelve los elementos del 0 al 49 en orden descendente (
sort=DESC
es el valor predeterminado).curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=0" \ -H "Authorization: Bearer $TOKEN"
Para la segunda "página" de resultados, usa el parámetro de consulta offset, como se indica a continuación. Ten en cuenta que el límite y el desplazamiento son idénticos. Esto se debe a que 0 cuenta como el primer elemento. Con un límite de 50 y un desplazamiento de 0, se devuelven los elementos del 0 al 49. Con un desplazamiento de 50, se devuelven los elementos del 50 al 99.
curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=50" \ -H "Authorization: Bearer $TOKEN"