Usa la API de informes personalizados asíncronos

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

Apigee Analytics proporciona un amplio conjunto de paneles interactivos, generadores de informes personalizados y las funciones que están relacionadas. Sin embargo, el propósito de estas funciones es que sean interactivas: debes enviar una solicitud a la API o a la IU y la solicitud se bloqueará hasta que el servidor de análisis proporcione una respuesta.

Sin embargo, es posible que se agote el tiempo de espera de las solicitudes de estadísticas si tardan demasiado en completarse. Si una solicitud de consulta necesita procesar una gran cantidad de datos (por ejemplo, 100 s de GB), puede fallar debido a que se agota el tiempo de espera.

El procesamiento de consultas asíncronas te permite consultar conjuntos de datos muy grandes y recuperar los resultados más adelante. Puedes considerar el uso de una consulta sin conexión cuando descubras que tus consultas interactivas agotan el tiempo de espera. Algunos casos en los que el procesamiento de consultas asíncronas puede ser una buena alternativa incluyen los siguientes:

  • Análisis y creación de informes que abarquen intervalos grandes
  • Análisis de datos con una variedad de dimensiones de agrupación y otras restricciones que agregan complejidad a la consulta.
  • Administración de consultas cuando se descubre que los volúmenes de datos aumentaron de forma significativa para algunos usuarios u organizaciones.

En este documento, se describe cómo iniciar una consulta asíncrona mediante la API. También puedes usar la IU, como se describe en Ejecuta un informe personalizado.

Compara la API de informes con la IU

En Crea y administra informes personalizados, se describe cómo usar la IU de Apigee para crear y ejecutar informes personalizados. Puedes ejecutar esos informes de forma síncrona o asíncrona.

La mayoría de los conceptos para generar informes personalizados con la IU se aplican al uso de la API. Es decir, cuando creas informes personalizados con la API, especificas métricas, dimensiones y filtros integrados en Apigee.

La principal diferencia entre los informes generados con la API y la IU es que los primeros se escriben en archivos CSV o JSON (delimitados por saltos de línea), mientras que los segundos se muestran en la IU.

Límite de tiempo de las consultas

Apigee aplica un máximo de 365 días en el intervalo de tiempo para una consulta asíncrona.

Cómo realizar una consulta de análisis asíncrono

Haz consultas de estadísticas asíncronas en tres pasos:

  1. Envía la consulta.

  2. Obtén el estado de la consulta.

  3. Recupera los resultados de la consulta.

Paso 1: Envía la consulta

Debes enviar una solicitud POST a la API de consultas. Esta API le indica a Apigee que procese tu solicitud en segundo plano. Si el envío de la consulta se realiza correctamente, la API muestra un estado 201 y un ID que usarás para hacer referencia a la consulta en pasos posteriores.

Por ejemplo:

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @json-query-file

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

El cuerpo de la solicitud es una descripción JSON de la consulta. En el cuerpo JSON, especifica las métricas, las dimensiones y los filtros que definen el informe.

A continuación, se muestra un ejemplo de archivo json-query-file:

{ 
   "metrics":  [
     {
         "name": "message_count",
         "function": "sum",
         "alias": "sum_txn"
    }
        ],
    "dimensions": ["apiproxy"],
    "timeRange": "last24hours",
    "limit": 14400,
    "filter":"(message_count ge 0)"
}

Consulta Información del cuerpo de la solicitud a continuación para obtener una descripción completa de la sintaxis del cuerpo de la solicitud.

Respuesta de muestra:

Ten en cuenta que el ID de la consulta 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd se incluye en la respuesta. Además del estado HTTP 201, el state de enqueued significa que la solicitud se realizó de forma correcta.

HTTP/1.1 201 Created

{  
  "self":"/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
  "created":"2018-05-10T07:11:10Z",
  "state":"enqueued",
  "error":"false",
}

Paso 2. Obtén el estado de la consulta

Para solicitar el estado de la consulta, envía una solicitud GET a la API de consultas. Proporciona el ID de consulta que se mostró en la llamada POST. Por ejemplo:

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

Ejemplos de respuesta:

Si la consulta aún está en curso, obtendrás una respuesta como esta, en la que el state está en running:

{
    "self": "/organizations/myorg/environments/myenv/queries/1577884c-4f48-4735-9728-5da4b05876ab",
    "state": "running",
    "created": "2018-02-23T14:07:27Z",
    "updated": "2018-02-23T14:07:54Z"
}

Una vez que la consulta se complete de forma correcta, verás una respuesta como esta, en la que state está configurado como completed:

{
      "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
      "state": "completed",
      "result": {
        "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result",
        "expires": "2017-05-22T14:56:31Z"
      },
      "resultRows": 1,
      "resultFileSize": "922KB",
      "executionTime": "11 sec",
      "created": "2018-05-10T07:11:10Z",
      "updated": "2018-05-10T07:13:22Z"
}

Paso 3: Recupera los resultados de la consulta

Una vez que el estado de la consulta sea completed, existen dos métodos que puedes usar para recuperar los resultados de la consulta:

  • getResulturl (recomendado): Es un método más reciente que muestra una URL en la que puedes ver los resultados de la consulta. Este método no tiene límite de tamaño para los resultados de una consulta.
  • getResult: Este es un método más antiguo que descarga un archivo ZIP que contiene los resultados de la consulta. Este método aplica un límite de tamaño de 32 MB para los resultados de una consulta.

En las siguientes pestañas, se muestran las llamadas a la API para recuperar los resultados de la consulta con cualquiera de los métodos. Como se indicó anteriormente, el ID de la consulta es 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID/resulturl" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

A continuación, se muestra una respuesta de ejemplo a la llamada:

{
  "urls": [
    "uri": "https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T181309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f169edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa8496def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dcc1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c20580e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b133447032ea7abedc098d2eb14a7",
  "md5": "23db6982caef9e9152f1a5b2589e6ca3",
  "sizeBytes": 1024
  ]
}

La respuesta contiene una lista urls[] con los siguientes campos:

  • uri: Es una cadena que es la URL firmada de los datos JSON del informe. Puedes ver el informe en la URL.
  • md5: Es el hash MD5 de los datos JSON.
  • sizeBytes: El tamaño del contenido devuelto, en bytes.

Consulta Acerca de los resultados de la consulta para ver un resultado de muestra en formato JSON.

getResult

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID/result" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

Con el fin de recuperar el archivo descargado, debes configurar la herramienta que usas para que guarde un archivo descargado en tu sistema. Por ejemplo:

  • Si usas cURL, puedes usar las opciones de -O -J, como se muestra arriba.
  • Si usas Postman, debes seleccionar el botón Guardar y descargar. En este caso, se descarga un archivo ZIP llamado response.
  • Si usas el navegador Chrome, la descarga se acepta automáticamente.

Si la solicitud se realiza correctamente y hay un conjunto de resultados que no es cero, el resultado se descarga al cliente como un archivo JSON comprimido (delimitado por saltos de línea). El nombre del archivo descargado será OfflineQueryResult-.zip.

Por ejemplo: OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip .

El archivo ZIP contiene un archivo .gz de los resultados de JSON. Para acceder al archivo JSON, descomprime el archivo y, luego, usa el comando gzip a fin de extraerlo:

unzip OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip
gzip -d QueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd-000000000000.json.gz

Información del cuerpo de la solicitud

En esta sección, se describe cada uno de los parámetros que puedes usar en el cuerpo de la solicitud JSON para una consulta. Para obtener más detalles sobre las métricas y dimensiones que puedes usar en tu consulta, consulta Referencia de Analytics.

{  
   "metrics":[  
      {  
        "name":"metric_name",
        "function":"aggregation_function",
        "alias":"metric_display_name_in_results",
        "operator":"post_processing_operator",
        "value":"post_processing_operand"
      },
   ...
   ],
   "dimensions":[  
      "dimension_name",
      ...
   ],
   "timeRange":"time_range",
   "limit":results_limit,
   "filter":"filter",
   "groupByTimeUnit": "grouping",
   "outputFormat": "format",
   "csvDelimiter": "delimiter"
}
Propiedad Descripción ¿Es obligatorio?
metrics

Array de métricas. Puedes especificar una o más métricas para una consulta en la que se incluya cada una. Solo se requiere el nombre de la métrica:

  • name: Es el nombre de la métrica tal como lo define la tabla en métricas (obligatorio).
  • function: Es la función de agregación como avg, min, max o sum (opcional).

    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 (avg, min, max y sum) compatible. por la métrica.

  • alias: El nombre de la propiedad que contiene los datos de métrica en el resultado (opcional). Si se omite, el valor predeterminado es el nombre de la métrica combinado con el nombre de la función de agregación.
  • operator: Una operación que se realiza en la métrica después de que se calcula su valor (opcional). Funciona con la propiedad value. Las operaciones admitidas incluyen lo siguiente: + - / % *.
  • value: El valor aplicado a la métrica calculada según el operator especificado (opcional).

Las propiedades operator y value definen una operación de procesamiento posterior realizada en la métrica. Por ejemplo, si especificas la métrica response_processing_latency, la métrica muestra la latencia de procesamiento de respuesta promedio con una unidad de milisegundos. Para convertir las unidades en segundos, establece operator en "/" y value en ”1000.0“:

"metrics":[  
  {  
    "name":"response_processing_latency",
    "function":"avg",
    "alias":"average_response_time_in_seconds",
    "operator":"/",
    "value":"1000"
  }
]

Para obtener más información, consulta Referencia de métricas, dimensiones y filtros de Analytics.

dimensions Array de dimensiones para agrupar las métricas. Para obtener más información, consulta la lista de dimensiones compatibles. Puede especificar varias dimensiones.
timeRange Intervalo para la consulta.

Puedes usar las siguientes strings predefinidas para especificar el intervalo:

  • last60minutes
  • last24hours
  • last7days

También puedes especificar el timeRange como una estructura que describe las marcas de tiempo de inicio y de finalización en el formato ISO: yyyy-mm-ddThh:mm:ssZ. Por ejemplo:

"timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
}
limit Cantidad máxima de filas que se pueden mostrar en el resultado. No
filter Expresión booleana que se puede usar para filtrar datos Las expresiones de filtro se pueden combinar con términos AND y OR y deben estar entre paréntesis para evitar la ambigüedad. Consulta la referencia de métricas, dimensiones y filtros de Analytics si deseas obtener más información sobre los campos disponibles para filtrar. Si deseas obtener más información sobre los tokens que usas para compilar expresiones de filtro, consulta Sintaxis de expresión de filtro. No
groupByTimeUnit Es la unidad de tiempo que se usa para agrupar el conjunto de resultados. Entre los valores válidos, se incluyen: second, minute, hour, day, week o month.

Si una consulta incluye groupByTimeUnit, el resultado es una agregación basada en la unidad de tiempo especificada y la marca de tiempo resultante no incluye una precisión de milisegundos. Si una consulta omite groupByTimeUnit, la marca de tiempo resultante incluye una precisión de milisegundos.

No
outputFormat Formato de salida. Entre los valores válidos, se incluyen csv o json. La configuración predeterminada es json, que corresponde al formato JSON delimitado por saltos de línea.

Nota: Configura el delimitador para la salida de CSV mediante la propiedad csvDelimiter.

No
csvDelimiter El delimitador que se usa en el archivo CSV, si outputFormat se configura como csv. El valor predeterminado es el carácter , (coma). Los caracteres delimitadores admitidos incluyen coma (,), barra vertical (|) y tabulación (\t). No

Sintaxis de la expresión de filtro

En esta sección de referencia, se describen los tokens que puedes usar para compilar expresiones de filtro en el cuerpo de la solicitud. Por ejemplo, la siguiente expresión usa el token “ge” (mayor o igual que):

"filter":"(message_count ge 0)"
Token Descripción Ejemplos
in Incluir en la lista
(apiproxy in 'ethorapi','weather-api')

(apiproxy in 'ethorapi')

(apiproxy in 'Search','ViewItem')

(response_status_code in 400,401,500,501)

Nota: Las strings deben estar entre comillas.

notin Excluir de la lista
(response_status_code notin 400,401,500,501)
eq Igual que ==)
(response_status_code eq 504)

(apiproxy eq 'non-prod')
ne No igual a (!=)
(response_status_code ne 500)

(apiproxy ne 'non-prod')
gt Mayor que >)
(response_status_code gt 500)
lt Menor que <)
(response_status_code lt 500)
ge Mayor que o igual que >=)
(target_response_code ge 400)
le Menor o igual que <=)
(target_response_code le 300)
like Muestra verdadero si el patrón de string coincide con el patrón proporcionado.

El ejemplo de la derecha coincide de la siguiente manera:

- cualquier valor que tenga la palabra “comprar”

- cualquier valor que finalice en “elemento”

- cualquier valor que comience con “Prod”

- cualquier valor que comience con 4, nota que response_status_code es numérico.

(apiproxy like '%buy%')

(apiproxy like '%item')

(apiproxy like 'Prod%')
not like Muestra falso si el patrón de string coincide con el patrón proporcionado.
(apiproxy not like '%buy%')

(apiproxy not like '%item')

(apiproxy not like 'Prod%')
and Te permite usar la lógica "and" para incluir más de una expresión de filtro. El filtro incluye los datos que cumplen con todas las condiciones.
(target_response_code gt 399) and (response_status_code ge 400)
or Te permite usar la lógica 'or' para evaluar diferentes expresiones de filtro posibles. El filtro incluye los datos que cumplen con al menos una de las condiciones.
(response_size ge 1000) or (response_status_code eq 500)

Restricciones y valores predeterminados

A continuación, se muestra una lista de restricciones y valores predeterminados para la función de procesamiento de consultas asíncronas.

Restricción Predeterminado Descripción
Límite de llamadas a consultas Consulta Descripción Puedes realizar hasta siete llamadas a la API de Apigee por hora /queries para iniciar un informe asíncrono. Si excedes la cuota de llamada, la API muestra una respuesta HTTP 429.
Límite de consulta activa 10 Puedes tener hasta 10 consultas activas para una organización o entorno.
Límite de tiempo de ejecución de la consulta 6 horas Las consultas que tarden más de 6 horas se finalizarán.
Rango de tiempo de consulta Consulta Descripción El intervalo máximo permitido para una consulta es de 365 días.
Límite de dimensiones y métricas 25 El número máximo de dimensiones y métricas que puedes especificar en la carga útil de la consulta.

Información acerca de los resultados de la consulta

El siguiente es un resultado de ejemplo en formato JSON. La forma en que veas los resultados depende del método que hayas usado para recuperar los resultados de la consulta:

  • Si usaste el método getResulturl, puedes ver los resultados en la URL que se proporciona en el campo uri del resultado. Este método no tiene límite de tamaño para los resultados de una consulta.
  • Si usaste el método getResult, los resultados se descargarán en un archivo ZIP.

    El método getResult aplica un límite de tamaño de 32 MB para los resultados de una consulta. Si los resultados superan los 32 MB, la consulta mostrará un código de estado 400 con el mensaje "el resultado de la consulta es mayor que 32 MB". Para evitar este límite, usa el método getReulturl como se describe en Cómo recuperar los resultados de la consulta.

Los resultados consisten en filas de JSON separadas por un delimitador de línea nueva, como se muestra en el siguiente ejemplo:

{"message_count":"10209","apiproxy":"guest-auth-v3","hour":"2018-08-07 19:26:00 UTC"}
{"message_count":"2462","apiproxy":"carts-v2","hour":"2018-08-06 13:16:00 UTC"}    
…

Puedes recuperar los resultados de la URL hasta el vencimiento de los datos en el repositorio. Consulta Restricciones y valores predeterminados.

Ejemplos

Ejemplo 1: Suma de la cantidad de mensajes

La consulta de la suma de recuentos de mensajes de los últimos 60 minutos.

Consulta

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @last60minutes.json

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

Cuerpo de la solicitud de last60minutes.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":"last60minutes"
}

Ejemplo 2: Intervalo personalizado

Consulta mediante un intervalo personalizado.

Consulta

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @custom-timerange.json

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

Cuerpo de la solicitud de custom-timerange.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Ejemplo 3: Transacciones por minuto

Consulta la métrica por transacciones por minuto (tpm).

Consulta

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @tpm.json

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

Cuerpo de la solicitud de tpm.json

{  
   "metrics":[  
      {  
         "name":"tpm"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-07-01T11:00:00Z",
      "end":"2018-07-30T11:00:00Z"
   }
}

Resultado de muestra

Salto del archivo de resultados:

{"tpm":149995.0,"apiproxy":"proxy_1","minute":"2018-07-06 12:16:00 UTC"}
{"tpm":149998.0,"apiproxy":"proxy_1","minute":"2018-07-09 15:12:00 UTC"}
{"tpm":3.0,"apiproxy":"proxy_2","minute":"2018-07-11 16:18:00 UTC"}
{"tpm":148916.0,"apiproxy":"proxy_1","minute":"2018-07-15 17:14:00 UTC"}
{"tpm":150002.0,"apiproxy":"proxy_1","minute":"2018-07-18 18:11:00 UTC"}
...

Ejemplo 4: Usa una expresión de filtro

Consulta con una expresión de filtro que use un operador booleano.

Consulta

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @filterCombo.json

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

Cuerpo de la solicitud de filterCombo.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "filter":"(apiproxy ne \u0027proxy_1\u0027) and (apiproxy ne \u0027proxy_2\u0027)",
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Ejemplo 5: Pasa una expresión en el parámetro de las métricas

Consulta con una expresión que se pasa como parte del parámetro de métricas. Solo puedes usar expresiones simples de un operador.

Consulta

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @metricsExpression.json

En el ejemplo anterior, $TOKEN está configurado como tu token de acceso de OAuth 2.0, como se describe en Obtén un token de acceso de OAuth 2.0. Para obtener información sobre las opciones de curl que se usan en este ejemplo, consulta Usa curl. Para obtener una descripción de las variables de entorno utilizadas, consulta Configura variables de entorno para solicitudes a la API de Apigee.

Cuerpo de la solicitud de metricsExpression.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum",
         "operator":"/",
         "value":"7"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":10,
   "timeRange":"last60minutes"
}