Esta página se aplica a Apigee y Apigee híbrido .
Ver la documentación de Apigee Edge .
Apigee registra una amplia variedad de datos operativos y comerciales que fluyen entre las API. Las métricas derivadas de estos datos son útiles para la monitorización operativa y empresarial. Con Apigee Analytics, puede, por ejemplo, determinar qué API tienen un rendimiento adecuado o deficiente, qué desarrolladores generan el tráfico más valioso y qué aplicaciones causan más problemas en sus servicios de backend.
Para acceder fácilmente a estos datos de métricas, utilice la API de métricas cuando necesite automatizar ciertas funciones analíticas, como la recuperación periódica de métricas mediante un cliente o script de automatización. También puede usar la API para crear sus propias visualizaciones en forma de widgets personalizados que puede integrar en portales o aplicaciones personalizadas.
Para aprender a usar Analytics en la interfaz de usuario de Apigee, consulte Descripción general de Apigee Analytics .
Acerca de la API de métricas
Hay dos formas de utilizar la API de métricas:
- Obtenga métricas de una organización y un entorno durante un período de tiempo, 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, para la semana anterior desea obtener:
- Número de errores de política
- Tiempo promedio de respuesta
- Tráfico total
Obtenga métricas organizadas por dimensión durante un período de tiempo para una organización y un entorno.
Por ejemplo, durante 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:
- Número de errores de política por producto API
- Tiempo de respuesta promedio por proxy API
- Tráfico total por correo electrónico de desarrollador
Para administrar el resultado devuelto, la API de métricas admite las siguientes funciones:
Para obtener más información, consulte la referencia de la API de métricas .
Introducción al uso de la API de métricas
La URL de solicitud para la API de métricas es:
https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats[dimension]
Por ejemplo, para obtener métricas agrupadas por proxy 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 para toda la organización y el entorno durante el período de tiempo 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 a devolver
Utilice el parámetro de consulta
select
para especificar las métricas a recuperar y una función de agregación opcional, en el formato:?select=metric
o:
?select=aggFunction(metric)
Dónde:
- metric especifica los datos que desea devolver. Por ejemplo, el número de solicitudes de API, accesos a la caché o errores de política. Consulte la tabla de métricas para obtener información sobre el nombre de la métrica que se usará con el parámetro de consulta
select
. aggFunction especifica la función de agregación opcional que se ejecuta con 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 de procesamiento promedio. -
min
: Devuelve la latencia mínima de procesamiento. -
max
: Devuelve la latencia máxima de procesamiento. -
sum
: Devuelve la suma de todas las latencias de procesamiento. -
p50
: Devuelve el percentil 50 para las latencias de procesamiento. -
p95
: Devuelve el percentil 95 para las latencias de procesamiento. -
p99
: Devuelve el percentil 99 para latencias de procesamiento.
No todas las métricas admiten todas las funciones de agregación. La documentación sobre métricas contiene una tabla que especifica el nombre de la métrica y la función (
sum
,avg
,min
,max
) que admite.-
Por ejemplo, para devolver el número promedio de transacciones, es decir, solicitudes de proxy de API, por segundo:
?select=tps
Tenga en cuenta que este ejemplo no requiere una función de agregación. El siguiente ejemplo utiliza una función de agregación para devolver la suma de los aciertos de caché:
?select=sum(cache_hit)
Puede devolver varias métricas para una sola llamada a la API. Para obtener las métricas de la suma de errores de política y el tamaño promedio de la solicitud, configure el parámetro de consulta
select
con una lista de métricas separadas por comas:?select=sum(policy_error),avg(request_size)
Especificar el período de tiempo
La API de métricas devuelve datos correspondientes a un período específico. Utilice el parámetro de consulta
timeRange
(máximo 6 meses) para especificar el período, con el siguiente formato:?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM
Observe el
%20
antes deHH:MM
. El parámetrotimeRange
requiere un espacio codificado en URL antes deHH:MM
, o un carácter+
, como en:MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM
.Por ejemplo:
?timeRange=03/01/2018%2000:00~03/30/2018%2023:59
No utilice 24:00 como hora, ya que se reinicia en 00:00. Utilice 23:59.
Ejemplos de llamadas a la API de métricas
Esta sección proporciona ejemplos del uso de la API de métricas. Consulte Ejemplos de la API de métricas para obtener más ejemplos.
Devuelve el número total de llamadas realizadas a tus API durante un mes
Para devolver el número total de llamadas realizadas a todas las API de su organización y entorno durante un mes, utilice 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
se establece en su token de acceso de OAuth 2.0, como se describe en "Obtención de un token de acceso de OAuth 2.0" . Para obtener información sobre las opcionescurl
utilizadas en este ejemplo, consulte "Uso de curl" . Para obtener una descripción de las variables de entorno utilizadas, consulte "Configuración de variables de entorno para solicitudes de la API de Apigee" .A continuación se ofrece un ejemplo de la respuesta:
{ "environments": [ { "metrics": [ { "name": "sum(message_count)", "values": [ "7.44944088E8" ] } ], "name": "prod" } ], ... }
Devuelve el recuento total de mensajes por proxy 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 período de dos días. El parámetro de consulta
select
define lasum
de la función agregada para la métrica "message_count
en la dimensiónapiproxy
. El informe devuelve el rendimiento de los mensajes de solicitud para todas las API, correspondiente al tráfico recibido entre principios del 20/06/2018 y finales 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
se establece en su token de acceso de OAuth 2.0, como se describe en "Obtención de un token de acceso de OAuth 2.0" . Para obtener información sobre las opcionescurl
utilizadas en este ejemplo, consulte "Uso de curl" . Para obtener una descripción de las variables de entorno utilizadas, consulte "Configuración de variables de entorno para solicitudes de la API de Apigee" .A continuación se ofrece 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 se recibieron 1100 mensajes en un proxy API llamado 'target-reroute' que se ejecuta en el entorno de prueba entre el inicio del 20/6/2018 y el final del 21/6/2018.
Para obtener métricas de otras dimensiones, especifique una dimensión diferente como parámetro URI. Por ejemplo, puede especificar la dimensión
developer_app
para obtener métricas de aplicaciones para 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 ofrece 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 resultados por clasificación relativa
Muchas veces, al obtener métricas, solo se desea obtener resultados para un subconjunto del conjunto total de datos. Normalmente, se necesitan los resultados del "top 10", por ejemplo, las "10 API más lentas" o las "10 aplicaciones más activas". Puede hacerlo utilizando el parámetro de consulta
topk
como parte de la solicitud.Por ejemplo, puede que le interese saber quiénes son sus mejores desarrolladores, medidos por rendimiento, o cuáles son sus API de destino con peor rendimiento (es decir, las "más lentas") en términos de latencia.
El
topk
(que significa "entidades principales k") permite generar informes sobre las entidades asociadas con el valor más alto para una métrica determinada. Esto permite filtrar las métricas para obtener una lista de entidades que ejemplifican una condición específica.Por ejemplo, para encontrar qué URL de destino fue la más propensa a errores durante la última semana, se agrega el parámetro
topk
a la solicitud, con un valor de1
: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
se establece en su token de acceso de OAuth 2.0, como se describe en "Obtención de un token de acceso de OAuth 2.0" . Para obtener información sobre las opcionescurl
utilizadas en este ejemplo, consulte "Uso de curl" . Para obtener una descripción de las variables de entorno utilizadas, consulte "Configuración de variables de entorno para solicitudes de la API de Apigee" .A continuación se ofrece 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 API con mayor rendimiento. El siguiente ejemplo recupera las métricas de la API mejor clasificada, definidas según 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 ofrece 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 mayor granularidad, puede filtrar los resultados para limitar los datos devueltos. Al usar filtros, debe usar dimensiones como propiedades de filtro.
Por ejemplo, supongamos que necesita recuperar un recuento de errores de los servicios backend filtrados por el verbo HTTP de la solicitud. Su objetivo es averiguar cuántas solicitudes POST y PUT generan errores por servicio backend. Para ello, utilice 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
se establece en su token de acceso de OAuth 2.0, como se describe en "Obtención de un token de acceso de OAuth 2.0" . Para obtener información sobre las opcionescurl
utilizadas en este ejemplo, consulte "Uso de curl" . Para obtener una descripción de las variables de entorno utilizadas, consulte "Configuración de variables de entorno para solicitudes de la API de Apigee" .A continuación se ofrece 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 entornos de producción, algunas solicitudes a la API de análisis de Apigee devuelven conjuntos de datos muy grandes. Para facilitar la visualización de grandes conjuntos de datos en el contexto de una aplicación basada en interfaz de usuario, la API admite la paginación de forma nativa.
Para paginar los resultados, utilice los parámetros de consulta
offset
ylimit
, junto con el parámetro de ordenaciónsortby
para garantizar un ordenamiento consistente de los elementos.Por ejemplo, la siguiente solicitud probablemente devolverá un conjunto de datos grande, ya que recupera métricas de todos los errores en todas las API en el entorno del producto durante 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
se establece en su token de acceso de OAuth 2.0, como se describe en "Obtención de un token de acceso de OAuth 2.0" . Para obtener información sobre las opcionescurl
utilizadas en este ejemplo, consulte "Uso de curl" . Para obtener una descripción de las variables de entorno utilizadas, consulte "Configuración de variables de entorno para solicitudes de la API de Apigee" .Si su aplicación basada en UI puede mostrar razonablemente 50 resultados por página, puede establecer el límite en 50. Dado que 0 cuenta como el primer elemento, la siguiente llamada devuelve los elementos 0 a 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, utilice el parámetro de consulta "offset", como se indica a continuación. Tenga en cuenta que el límite y el offset son idénticos. Esto se debe a que 0 se considera el primer elemento. Con un límite de 50 y un offset de 0, se devuelven los elementos del 0 al 49. Con un offset 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"