Usa la depuración

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

Consulta la documentación de Apigee Edge.

En esta sección, se describe cómo crear y administrar sesiones de depuración y ver los datos de solicitud y respuesta mediante la IU y la API de Apigee.

Usa la Depuración sin conexión para ver y analizar las sesiones de depuración que se descargaron antes.

Crea una sesión de depuración

Cuando creas una sesión de depuración, puedes ver los datos de solicitud y respuesta en la IU, en el caso de solicitudes creadas en la API o alguna otra fuente externa.

Crea una sesión de depuración mediante la IU o la API de Apigee, como se describe en las siguientes secciones.

Editor de proxies nuevo

Para crear una sesión de depuración en el nuevo Editor de proxies, haz lo siguiente:

  1. Si usas la IU de Apigee en la consola de Cloud, selecciona Desarrollo de proxy > Proxies de API.

    Si usas la IU clásica de Apigee, selecciona Desarrollar > Proxies de API y, en el panel Proxies, selecciona el entorno para el proxy que deseas depurar.

  2. Selecciona el proxy de API que deseas depurar. Esto muestra la vista Descripción general del Editor de proxies.

  3. Haz clic en la pestaña Depurar en la parte superior izquierda de la ventana.
  4. Haz clic en Iniciar sesión de depuración en la esquina superior derecha del panel Depurar. Esto muestra el cuadro de diálogo Iniciar sesión de depuración.

    Cuadro de diálogo Iniciar sesión de depuración.

    En el cuadro de diálogo:

    1. Selecciona el Entorno en el que deseas ejecutar la sesión de depuración.
    2. En el menú desplegable Filtro, selecciona un filtro para aplicar a todas las transacciones en la sesión de depuración que creas (opcional). El valor predeterminado es None (All transactions), que incluye todas las transacciones en los datos de depuración.

      Para obtener información sobre el uso de filtros, consulta la sección sobre cómo usar filtros en una sesión de depuración. Para obtener información sobre los filtros incorporados, consulta la sección sobre cómo usar filtros predefinidos.

    3. Haz clic en Start.

La IU de Apigee ahora muestra la vista Sesión de depuración en curso.

Sesión de depuración en curso

La sesión de depuración registra las solicitudes durante 10 minutos después de crearla. En el campo Finaliza dentro de, se muestra la cantidad de tiempo restante de la sesión.

No verás ninguna información en el panel de Depuración hasta que envíes una solicitud al proxy que estás depurando en el entorno seleccionado. entorno para la sesión de depuración.

Una vez que hayas enviado la solicitud, aparecerá en la parte inferior del panel izquierdo.

Cuadro de diálogo Iniciar sesión de depuración.

Nota: Durante una sesión de depuración activa, puedes iniciar otra sesión en la IU de Apigee. Para hacerlo, vuelve a hacer clic en Iniciar sesión de depuración.

Visualiza el diagrama de Gantt de una transacción

Para ver los detalles de una transacción (solicitud y respuesta) en la vista de Depuración, haz clic en la fila de la transacción, como se muestra en la imagen anterior.

Esto muestra un gráfico de Gantt en el panel derecho en el que aparecen los pasos en la solicitud y respuesta.

Diagrama de Gantt de pasos de transacción en el panel de la derecha.

El eje horizontal del diagrama denota los tiempos en los que ocurrió cada paso, medidos en milisegundos. Cada paso se representa con un rectángulo que se extiende desde la hora de inicio hasta la hora de finalización del paso.

Puedes revisar los pasos de una sesión de depuración con los botones Atrás y Siguiente en la parte inferior derecha del panel de depuración. Haz clic en:

  • Atrás para mover la fila seleccionada al paso anterior del diagrama.
  • Siguiente para mover la fila seleccionada al siguiente paso en el diagrama.

En el ejemplo anterior, en el diagrama se muestran dos políticas que se ejecutan en la respuesta:

  • ResponsePayload
  • Agregar CORS

Puedes hacer clic en cualquiera de estos pasos para ver sus detalles. Por ejemplo, si haces clic en la política Agregar CORS, verás detalles como los que se muestran a continuación junto al diagrama de Gantt.

Detalles de la política Agregar CORS.

Si decides cambiar algo en la configuración de la política, puedes hacer clic en Desarrollar para cambiar a la vista Desarrollar, en la que verías las mismas dos políticas en Response PostFlow.

Visualiza la pestaña Desarrollar en relación con una sesión de depuración.

Comparte una sesión de depuración

Puedes compartir una sesión de depuración con otros usuarios que tengan acceso a tu organización y los permisos necesarios. Para hacerlo, envía las URL que se muestran en el navegador cuando veas la sesión de depuración. El vínculo solo es válido durante 24 horas después de que se crea la sesión de depuración.

Descarga una sesión de depuración

Una vez que se completa la sesión de depuración, puedes descargarla para analizarla más tarde en la herramienta Depuración sin conexión. Para hacerlo, haz clic en Descargar sesión en el panel izquierdo.

Descarga una sesión de depuración.

Ten en cuenta que una sesión de depuración se borra dentro de las 24 horas posteriores a su finalización, por lo que, si deseas ver la sesión de depuración después de ese momento, debes descargarla antes de esa fecha.

Cuando descargas una sesión de depuración, el nombre del archivo de descarga tiene el formato “debug-{session ID}.json”, en el que {session ID} es el ID de la sesión de depuración. Sin embargo, puedes cambiar el nombre del archivo si lo deseas.

Editor de proxies clásico

Para crear una sesión de depuración en el Editor de proxies clásico, haz lo siguiente:

  1. Accede a la IU de Apigee.
  2. En el menú principal, seleccione API Proxies:
  3. Selecciona el proxy de API que deseas depurar.

    Aparecerá la pestaña Descripción general.

  4. Haz clic en la pestaña Depuración en la esquina superior derecha de la página:

    Pestañas

    En la vista de Depuración, se muestra lo siguiente:

    Vista de depuración con los paneles Iniciar una sesión de depuración, sesiones de depuración recientes y enviar solicitudes

  5. En el panel Iniciar una sesión de depuración, haz lo siguiente:
    1. En la lista desplegable Entorno, selecciona el entorno y el número de revisión del proxy de API que deseas depurar.
    2. En el siguiente ejemplo, se muestra el panel Iniciar una sesión de depuración:

      Panel de inicio de la sesión de depuración

    3. En el menú desplegable Filtro, selecciona un filtro para aplicar a todas las transacciones en la sesión de depuración que creas (opcional). El valor predeterminado es None, que incluye todas las transacciones en los datos de depuración.

      Para obtener información sobre el uso de filtros, consulta la sección sobre cómo usar filtros en una sesión de depuración. Para obtener información sobre los filtros incorporados, consulta la sección sobre cómo usar filtros predefinidos.

    4. Haz clic en Iniciar sesión de depuración.

      En la IU de Apigee ahora se muestran los detalles sobre la sesión de depuración actual, incluido su ID, en el panel Detalles de la depuración.

      Aunque en la IU, se creó la sesión de depuración, aún debes enviar la solicitud antes de que haya datos para recopilar.

      En el panel Detalles de la depuración, puedes hacer lo siguiente:

      Ícono Función Descripción
      Ícono de descarga Descarga Descarga los datos de depuración de la sesión activa, que luego podrás ver sin conexión.
      Ícono de retorno Devuélvelo Regresa al panel anterior, donde puedes iniciar otra sesión de depuración. La sesión de depuración actual continúa hasta que alcanza su tiempo de espera o su recuento de transacciones.
      Ícono Borrar Borrar Borra los datos de la sesión de depuración seleccionada actualmente. Aquí se borran los datos de la sesión, pero no detiene las sesiones.

      Existe un límite de tiempo de espera predeterminado de 10 minutos para una sesión de depuración que inicias en la IU (es diferente para una sesión que se inicia con la API).

      El reloj comienza a correr en cuanto hagas clic en Iniciar sesión de depuración, por lo que puedes elegir esperar hasta después del siguiente paso antes de hacer clic en Iniciar sesión de depuración para maximizar la cantidad de datos que recopilas.

  6. En el panel Enviar solicitudes, haz lo siguiente:
    1. En el campo URL, ingresa el extremo al que deseas enviar una solicitud. De forma opcional, anexa parámetros de cadena de consulta a la URL. Solo puedes enviar solicitudes que no sean GET.
      Cómo encontrar la URL de extremo
      1. Ve a Administrador > Entornos > Grupos.
      2. La URL es el Nombre de host del entorno correspondiente con el que deseas ejecutar tu sesión de depuración.
    2. El panel Enviar solicitudes solo muestra los datos de las solicitudes basadas en la IU. Sin embargo, ten en cuenta que la depuración también registra los datos de las solicitudes que la IU no inició.

    3. Haga clic en Enviar.

      Apigee envía una solicitud a la URL especificada. Cada vez que haces clic en Enviar, la IU de Apigee registra la solicitud en el panel Detalles de depuración.

      En el siguiente ejemplo, se muestran varias solicitudes exitosas (que generan un código de estado HTTP de 200):

      Solicitudes de depuración capturadas

      Haz clic en Copiar a fin de copiar el ID de depuración para referencias futuras o consultas.

      Además, la IU muestra los datos de depuración en las secciones Mapa de transacciones y Detalles de la fase del panel Enviar solicitudes, y propaga las secciones Extremo del proxy, Encabezados de la solicitud, Contenido de la solicitud y Propiedades, como se muestra en el siguiente ejemplo:

      Solicitudes de depuración capturadas

      Para obtener más información sobre las fases, el mapa de transacciones y otras secciones de la vista Enviar solicitudes, consulta Cómo leer una depuración.

    La sesión de depuración ahora está activa y registra los datos de todas las solicitudes (a menos que se filtren). La sesión permanecerá activa hasta que se alcance el tiempo de espera o se supere el número de solicitudes registradas en la sesión.

  7. Puedes crear cualquier cantidad de sesiones de depuración en la IU. Para obtener más información, consulta Inicia otra sesión de depuración.

Inicia otra sesión de depuración en la IU

Durante una sesión de depuración activa, puedes iniciar otra sesión en la IU de Apigee. Para ello, haz clic en el ícono de la flecha hacia atrás () en el panel Detalles de la depuración:

Flecha hacia atrás que te lleva de vuelta al panel Inicio de sesión de depuración

La IU regresa al panel Iniciar una sesión de depuración, en el que puedes iniciar una nueva sesión de depuración.

¿Cuándo finaliza una sesión de depuración?

No puedes simplemente detener una sesión de depuración activa. Sin embargo, puedes borrar los datos de una sesión activa, como se describe en Borra los datos de la sesión de depuración.

Cuando creas una sesión de depuración, dos propiedades determinan cuándo finaliza:

  • timeout: Es el período durante el cual recopilas datos durante una sesión. La duración predeterminada depende de cómo se inició la sesión (a través de la IU o de la API). El valor máximo es 600 segundos (o 10 minutos).
  • count: Es la cantidad máxima de solicitudes que se registran en una sola sesión por Message Processor. Debido a que la cantidad de procesadores de mensajes en la mayoría de los clústeres es variable, los efectos del recuento pueden ser impredecibles. Apigee no recomienda personalizar esta configuración.

Cuando se alcanza el tiempo de espera o se alcanza la cantidad, finaliza la sesión de depuración de ese Message Processor.

Los siguientes términos se usan para describir el estado de una sesión de depuración:

  • sesión activa es una sesión de depuración que aún no alcanzó el tiempo de espera o superó su recuento. Una sesión activa aún registra los datos de solicitud para solicitudes que no se filtraron.
  • sesión completa es una sesión de depuración que alcanzó su tiempo de espera o superó su recuento. Una sesión completada ya no registra datos sobre las solicitudes nuevas y sus datos se borran dentro de las 24 horas posteriores a la finalización de la sesión.

Cómo leer una depuración

La herramienta de depuración tiene dos partes principales: el mapa de transacciones y los detalles de la fase:

  • El mapa de transacciones usa íconos para marcar cada paso destacado que se produce durante una transacción de proxy de API, incluidas la ejecución de políticas, los pasos condicionales y las transiciones. Coloca el cursor sobre cualquier ícono para ver información de resumen. Los pasos del flujo de solicitud aparecen en la parte superior del mapa de transacciones y los pasos del flujo de respuesta en la parte inferior.
  • La sección de detalles de la fase de la herramienta muestra información sobre el procesamiento interno del proxy, incluidas las variables que se configuraron o leyeron, los encabezados de respuesta y solicitud, y mucho más. Haz clic en cualquier ícono a fin de ver los detalles de la fase de ese paso.

Aquí se incluye un mapa de muestra de depuración con los segmentos principales de depuración del proxy etiquetados:

Mapa de transacciones de la herramienta de depuración

Diagrama de depuración que muestra la solicitud de inicio del proxy para iniciar la solicitud de destino a fin de comenzar la respuesta de destino para iniciar la respuesta del proxy a fin de comenzar el flujo del cliente posterior al proxy

Leyenda del mapa de transacciones

En la siguiente tabla, se describe el intent de los íconos que verás en el mapa de transacciones. Estos íconos marcan cada uno de los pasos destacados del procesamiento en el flujo del proxy.

Íconos del mapa de transacciones

ícono de la app cliente La app cliente que envía una solicitud al ProxyEndpoint del proxy de API.
ícono de extremo de transición Los círculos marcan extremos de transición en el flujo del proxy. Están allí cuando llega una solicitud del cliente, cuando la solicitud va al destino, cuando la respuesta regresa del destino y cuando la respuesta regresa al cliente.
ícono de segmento de flujo

Las barras largas indican el comienzo de un segmento del flujo en el proxy de API. Los segmentos de flujo son: solicitud de ProxyEndpoint, solicitud de TargetEndpoint, respuesta de TargetEndpoint y respuesta de ProxyEndpoint. Un segmento incluye PreFlow, flujos condicionales y PostFlow.

Para obtener más información, consulta Configura flujos.

ícono de estadísticas

Indica que las acciones de estadísticas ocurrieron en segundo plano.

Ícono de condición verdadera

Flujo condicional que se evalúa como verdadero. Para obtener una introducción a los flujos condicionales, consulta Configura flujos.

Ten en cuenta que algunas condiciones las genera Apigee. Por ejemplo, la siguiente es una expresión que Apigee usa para verificar si se produjo un error en el ProxyEndpoint:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))
ícono de condición falsa

Un flujo condicional que se evalúa como falso. Para obtener una introducción a los flujos condicionales, consulta Configura flujos.

Ten en cuenta que algunas condiciones las genera Apigee. Por ejemplo, la siguiente es una expresión que Apigee usa para verificar si se produjo un error en TargetEndpoint:

(((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START)))

ícono de xml a json

ícono de cuota

Políticas Cada tipo de política tiene un ícono único. Este es para la política AssignMessage. Estos íconos te permiten ver dónde se ejecutan las políticas en el orden adecuado y si son exitosas o no. Puedes hacer clic en el ícono de una política para ver los resultados de su ejecución y si se espera o no. Por ejemplo, puedes ver si el mensaje se transformó de forma correcta o si se está almacenando en caché.

Las políticas que se ejecutan de forma correcta se indican claramente mediante marcas de verificación. Si se genera un error, aparecerá un signo de exclamación rojo en el ícono.

ícono del servidor El destino de backend al que llama el proxy de API.
ícono de milisegundos La línea de tiempo indica cuánto tiempo (en milisegundos) tardó en completarse el tiempo de procesamiento. La comparación de los segmentos de tiempo transcurrido te ayuda a aislar las políticas que tardan más en ejecutarse que ralentizan las llamadas a la API.
ícono de épsilon Epsilon indica un intervalo de tiempo menor que un milisegundo.
ícono de inhabilitado

Inhabilitado. Aparece en el ícono de una política cuando está inhabilitada. Se puede inhabilitar una política con la API pública. Consulta la referencia de configuración de proxy de API.

Ícono de error Error. Aparece en un ícono de política cuando la condición del Paso de política se evalúa como falsa (consulta Condiciones y variables de flujo) o en el ícono de la política RaiseFault cuando una política de RaiseFault se ejecuta.
ícono de omitido Omitido. Aparece en un ícono de política cuando la política no se ejecutó porque la condición del paso se evaluó como falsa. Consulta las variables y condiciones de flujo para obtener más información.

Información sobre los detalles de la fase

La parte de Detalles de la fase de la herramienta te indica mucho sobre el estado de tu proxy en cada paso de procesamiento. Estos son algunos de los detalles que se proporcionan en los Detalles de la fase. Haz clic en cualquier ícono de la herramienta de depuración a fin de ver los detalles del paso seleccionado o usa los botones Siguiente/Atrás para pasar de un paso a otro.

Detalle de la fase Descripción
Extremo de proxy Indica qué flujo ProxyEndpoint se seleccionó para realizar la ejecución. Un proxy de API puede tener varios extremos de proxy con nombre.
Variables

Enumera las variables de flujo que una política leyó y a las que les asignó un valor. Consulta Cómo usar variables de flujo.

Nota:

  • Un signo igual (=) indica el valor que se le asignó a la variable.
  • Un signo de igual tachado (≠) indica que a la variable no se le pudo asignar un valor porque es de solo lectura o se produjo un error durante la ejecución de la política.
  • Un campo vacío indica que se leyó el valor de la variable.
Encabezados de la solicitud Muestra una lista de los encabezados de la solicitud HTTP.
Contenido de la solicitud Muestra el cuerpo de la solicitud HTTP.
Propiedades Las propiedades representan el estado interno del proxy de API. Estas no se muestran de forma predeterminada.
Extremo de destino Indica qué TargetEndpoint se seleccionó para su ejecución.
Encabezados de respuesta Enumera los encabezados de respuesta HTTP.
Contenido de la respuesta Muestra el cuerpo de la respuesta HTTP.
PostClientFlow Muestra información sobre PostClientFlow, que se ejecuta después de que se muestra la solicitud en la app cliente solicitante. Solo se pueden adjuntar políticas MessageLogging a PostClientFlow. Por el momento, PostPostFlow se usa en especial para medir el intervalo de tiempo entre las marcas de tiempo de inicio y finalización del mensaje de respuesta.

API de Apigee

Para crear una sesión de depuración con la API, envía una solicitud POST al siguiente recurso:

https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/debugsessions

De manera opcional, puedes hacer lo siguiente:

En el siguiente ejemplo, se muestra cómo crear una sesión de depuración con la API.

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions" \
  -X POST \
  -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 proporciona un ejemplo de la respuesta.

{
  "name":"56382416-c4ed-4242-6381-591bbf2788cf",
  "validity":300,
  "count":10,
  "tracesize":5120,
  "timeout":"600"
}

Las solicitudes posteriores al proxy de API (hasta que se alcance la duración de la sesión o la cantidad máxima de solicitudes) se evaluarán y se almacenarán en los datos de la sesión de depuración.

Para obtener más información, consulta la sección sobre cómo crear la API de sesión de depuración.

Configura la duración de una sesión de depuración mediante la API

Para establecer la duración de una sesión de depuración con la API, incluye lo siguiente como carga útil en tu solicitud de creación de sesión de depuración:

{
  "timeout":"debug_session_length_in_seconds"
}

En el siguiente ejemplo, se crea una sesión de depuración que tiene una duración de solo 42 segundos:

curl https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions"
  -X "POST" \
  -H "Authorization: Bearer $TOKEN" \
  -d ' {
    "timeout":"42"
  } '

Puedes configurar el timeout de una sesión solo en las solicitudes de creación de sesiones de depuración. No puedes cambiar la duración de una sesión después de crearla.

El valor predeterminado de timeout es 300 (5 minutos). El valor máximo es 600 segundos (10 minutos).

Depura con la herramienta de depuración

La depuración te permite ver muchos detalles internos sobre un proxy de API. Por ejemplo:

  • Puedes ver rápidamente qué políticas se ejecutan de forma correcta o fallan.
  • Supongamos que notaste en uno de los paneles de Analytics que una de tus API experimenta una disminución inusual en el rendimiento. Ahora puedes usar la depuración para ayudar a identificar dónde se produce el cuello de botella. La depuración proporciona el tiempo, en milisegundos, que tarda en completarse cada paso de procesamiento. Si notas que un paso tarda demasiado, puedes tomar medidas correctivas.
  • Puedes verificar los encabezados que se envían al backend, ver las variables establecidas por políticas, etcétera.
  • Verifica la ruta base para asegurarte de que una política enrute el mensaje al servidor correcto.

Filtra datos en una sesión de depuración

Cuando creas una sesión de depuración, puedes agregar un filtro a esa sesión para que Apigee muestre solo los datos que deseas. Un filtro es una declaración condicional que Apigee evalúa con los mensajes de solicitud y respuesta a fin de determinar si sus datos de depuración deben incluirse en la sesión de depuración. Por ejemplo, puedes filtrar todas las solicitudes con un código de respuesta HTTP inferior a 599 o comparar los valores de la solicitud con las variables personalizadas.

Ten en cuenta lo siguiente:

  • Las solicitudes que no se incluyen en una sesión de depuración porque se filtran no se tienen en cuenta para la cantidad máxima de transacciones en la sesión de depuración.
  • Apigee no admite la adición de filtros en una cadena de consulta.
  • No puedes agregar un filtro a una sesión de depuración una vez iniciada la sesión. Para agregar un filtro, debes crear una sesión de depuración.

Usa filtros

Usa el filtro cuando crees una sesión de depuración con la IU o la API de Apigee, como se describe en las siguientes secciones.

IU de Apigee

Cuando creas una sesión de depuración en la IU, en la lista desplegable Filtros, puedes elegir un filtro predefinido para aplicar en el panel Iniciar una sesión de depuración o seleccionar Filtro personalizado y compilar uno propio con la sintaxis de filtro.

API de Apigee

Para crear una sesión de depuración con un filtro mediante la API, incluye lo siguiente como carga útil en tu solicitud de creación de sesión de depuración:

{
  "filter":"filter_body"
}

Para obtener información sobre cómo crear filtros, consulta Sintaxis de filtro.

En el siguiente ejemplo, se crea una sesión de depuración que incluye solo transacciones en las que el encabezado A es igual a 42 y el encabezado B es igual a 43, o el código de falla es ExpectedEOF:

curl -H "Authorization: Bearer $TOKEN" -X "POST"
  https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions
  -d ' {
    "filter":"(request.header.A == '42' && request.header.B == '43') || fault.code == 'jsonparser.ExpectedEOF'"
  } '

Puedes definir un filtro solo en las solicitudes de creación de sesiones de depuración. No puedes agregar un filtro a una sesión de depuración existente ni quitar un filtro de una sesión de depuración activa.

Sintaxis de filtro

Los filtros admiten la misma sintaxis que usan las condiciones de Apigee, como se describe en la referencia de condiciones. Incluye lo siguiente:

Además, los filtros pueden acceder a todas las variables de flujo que se describen en la referencia de variables de flujo, así como a las variables personalizadas. En los siguientes ejemplos, se muestran solo algunas de las variables de flujo posibles que puedes usar en los filtros:

# Response codes:
  response.status.code <= 599
  response.status.code >=301 && response.status.code <=420

# Requests/responses:
  request.verb == "GET"
  request.header.A == 'B' || request.queryparam.X == 'Y'

# Query parameters:
  request.queryparam.myparam == 'fish'
  (request.queryparam.param1 == 'X' || request.queryparam.param2 == 'Y') && request.queryparam.param3 == 'Z'

# Faults:
  fault.code != 'messaging.runtime.RouteFailed'
  fault.name == 'IPDeniedAccess'

Para obtener información sobre el uso de variables personalizadas, consulta Cómo usar atributos personalizados en Apigee en la Comunidad de Apigee.

Filtros de IU predefinidos

La IU de Apigee proporciona un conjunto de filtros comunes para que no tengas que escribir tus propios filtros personalizados. Los filtros predefinidos se resumen en la siguiente tabla.

Nombre del filtro Descripción
Response Time Greater Than

Comprueba los problemas de latencia en los siguientes casos:

  • target.duration es la latencia de destino, o la cantidad de tiempo, en milisegundos, que tarda una solicitud en enviarse y recibirse en el destino (calculado como la diferencia entre target.received.end.timestamp y target.sent.start.timestamp)
  • client.duration es la latencia del cliente o la cantidad de tiempo, en milisegundos, que tarda una solicitud en enviarse y recibirse en el cliente (calculada como la diferencia entre client.received.end.timestamp y client.sent.start.timestamp)

Por ejemplo:


target.duration > 420 && client.duration > 1000

Para obtener más información, consulta client y target en Referencia de las variables de flujo.

Response Code

Comprueba si el código de respuesta HTTP coincide con el valor especificado. por ejemplo:


response.status.code <= 599
Header

Verifica si el encabezado de solicitud especificado es igual al valor especificado. Por ejemplo:


request.header.cache-control.1 == "16544"
Path

Comprueba si la solicitud coincide con la ruta de acceso especificada. Puedes usar la coincidencia con comodines en tu valor, por ejemplo:


request.path == /myproxy/customer/4*
Query Param

Comprueba si el parámetro de búsqueda de la solicitud especificado es igual al valor especificado. Por ejemplo:


request.queryparam.lang == "language:en-us"
Custom

Te permite insertar tus propias expresiones. Puedes usar cualquier objeto en la referencia de las variables de flujo y la sintaxis en la referencia de las condiciones. Además, puedes usar variables personalizadas.

Para obtener más información para crear filtros personalizados, consulta Sintaxis de filtro.

 

Visualiza sesiones de depuración

Apigee guarda los datos de la sesión de depuración durante 24 horas. No puedes configurar este valor. Luego de 24 horas, los datos dejarán de estar disponibles. Antes de que esto suceda, podrás ver las sesiones de depuración.

Mira sesiones de depuración recientes con la IU o la API de Apigee, como se describe en las siguientes secciones.

Editor de proxies nuevo

Para ver las sesiones de depuración con el Editor de proxies nuevo, haz lo siguiente:

  1. Si usas la IU de Apigee en la consola de Cloud, selecciona Desarrollo de proxy > Proxies de API.

    Si usas la IU clásica de Apigee, selecciona Desarrollar > Proxies de API y, en el panel Proxies, selecciona el entorno para el proxy que deseas depurar.

  2. Selecciona el proxy que deseas depurar.
  3. Haz clic en la pestaña Depurar.
  4. En Sesiones de depuración recientes, se muestra una lista de las sesiones de depuración disponibles.
  5. Haz clic en el vínculo de la sesión que deseas ver.

Editor de proxies clásico

Para ver las sesiones de depuración con el Editor de proxies clásico, sigue estos pasos:

  1. Accede a la IU de Apigee.
  2. En el menú principal, seleccione API Proxies:
  3. Selecciona el proxy que deseas depurar.
  4. Haz clic en la pestaña Depuración en la esquina superior derecha de la vista Implementaciones.
  5. En el panel Sesiones de depuración recientes, sigue estos pasos:
    1. En la lista desplegable Env, selecciona el entorno del proxy de API cuya sesión de depuración deseas ver.
    2. En la lista desplegable Rev, selecciona el número de revisión del proxy de API cuya sesión de depuración deseas ver.

    La IU de Apigee muestra una lista de sesiones de depuración disponibles.

  6. Haz clic en el vínculo de la sesión que deseas ver.

    La IU de Apigee carga la sesión de depuración y propaga el panel Enviar solicitudes con los datos de depuración.

Selecciona opciones de vista en la IU

En la IU de Apigee, puede elegir las opciones de vista para la sesión de depuración.

ver lista de opciones

Opción Descripción
Mostrar políticas inhabilitadas Mostrar las políticas inhabilitadas. Se puede inhabilitar una política con la API pública. Consulta la referencia de configuración del proxy de API.
Mostrar las fases omitidas Mostrar las fases que se omitieron. Una fase omitida se produce cuando la política no se ejecuta porque la condición del paso se evaluó como falsa. Consulta Condiciones con variables de flujo para obtener más información.
Mostrar todos los FlowInfos Representa transiciones dentro de un segmento de flujo.
Compara automáticamente la fase seleccionada Compara la fase seleccionada con la anterior. Desactiva esta opción para ver solo la fase seleccionada.
Mostrar variables Muestra u oculta variables que se leyeron o a las que se les asignó un valor.
Mostrar propiedades Las propiedades representan el estado interno del proxy de API. (ocultas de manera predeterminada).

API de Apigee

Por medio de la API, puede realizar las siguientes tareas:

Visualiza todas las sesiones de depuración que usan la API

Para ver todas las sesiones de depuración recientes definidas para una revisión del proxy de API en un entorno, envía una solicitud GET al siguiente recurso:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions

De manera opcional, puedes especificar uno de los siguientes parámetros de consulta para controlar la cantidad de datos que se muestran:

  • pageSize: Cantidad máxima de sesiones de depuración para enumerar. El tamaño predeterminado de la página es 25.
  • pageToken: Token de página, que muestra una llamada anterior y que puedes usar para recuperar la página siguiente.

En el siguiente ejemplo, se muestra cómo ver las sesiones de depuración para la revisión 1 del proxy de la API de helloworld en el entorno test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions" \
  -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. Si deseas obtener una descripción de las variables de entorno que se usaron, consulta Configura variables de entorno para solicitudes a la API de Apigee.

La respuesta incluye un objeto sessions que contiene una lista de sesiones de depuración activas en este momento, como se muestra en el siguiente ejemplo:

{
  "sessions": [
    {
      "id": "a423ac73-0902-4cfa-4242-87a353a84d87",
      "timestamp_ms": 1566330186000
    },
    {
      "id": "f1eccbbe-1fa6-2424-83e4-3d063b47728a",
      "timestamp_ms": 1566330286000
    }
  ]
}

Solo depura las sesiones que contengan al menos una transacción incluida en la respuesta; en esta lista, no se incluyen las sesiones de depuración que no tienen transacciones.

Para obtener más información, consulta API de enumeración de sesiones de depuración.

Visualiza todas las transacciones de una sesión de depuración mediante la API

Si deseas ver una lista de transacciones de una sesión de depuración, envía una solicitud GET al siguiente recurso:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

En el ejemplo anterior, debugsession es el ID de una sesión de depuración que se muestra cuando ves las sesiones de depuración.

En el siguiente ejemplo, se muestra cómo ver las transacciones de una sesión de depuración para la revisión 1 de la API de helloworld en el entorno de test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
  -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. Si deseas obtener una descripción de las variables de entorno que se usaron, consulta Configura variables de entorno para solicitudes a la API de Apigee.

En la respuesta, se incluye un array de ID de transacción, como se muestra en el siguiente ejemplo:

[
  "myorg-test-ver-5qxdb-64",
  "myorg-test-ver-5qxdb-65",
  "myorg-test-ver-5qxdb-66",
  "myorg-test-ver-5qxdb-67",
  "myorg-test-ver-5qxdb-68",
  "myorg-test-ver-5qxdb-69",
  "myorg-test-ver-5qxdb-70",
  "myorg-test-ver-5qxdb-71",
  "myorg-test-ver-5qxdb-72"
]

Para obtener más información, consulta API de enumeración de datos de la sesión de depuración.

Visualiza datos de transacciones para una sesión de depuración mediante la API

Para ver los datos de transacciones de una sesión de depuración, envía una solicitud GET al siguiente recurso:

https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/debugsessions/{debugsession}/data/{transactionId}

En el ejemplo anterior, debugsession es el ID de una sesión de depuración que se muestra cuando ves las sesiones de depuración y transactionId es el ID de transacción que se muestra cuando ves una lista de transacciones de una sesión de depuración.

Los datos de transacciones que se guardan durante una sesión de depuración tienen formato JSON. Puedes cargar estos datos en la herramienta de depuración sin conexión.

En el siguiente ejemplo, se muestra cómo descargar los datos de transacciones de una sesión de depuración para la revisión 1 de la API de helloworld en el entorno de test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data/myorg-test-ver-5qxdb-64" \
  -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.

La respuesta consta de una carga útil de JSON que contiene los datos de la transacción especificada, como se describe en Descarga la estructura de datos.

Los datos de depuración contienen toda la información sobre la solicitud y la respuesta de cada parte del flujo en un formato JSON propio. Puedes guardar estos datos y usarlos más tarde en la herramienta de depuración sin conexión.

Si no se agregó ninguna solicitud a la sesión antes de que finalice, la respuesta se verá de la siguiente manera:

[]

Para obtener más información, consulta Obtén la API de datos de la sesión de depuración.

Descarga datos de la sesión de depuración

Puedes descargar un archivo de resultados de depuración sin procesar para reproducirlo sin conexión. El archivo descargado muestra los detalles completos de la sesión de depuración, que incluye el contenido de todos los encabezados, variables y políticas.

Los datos de la sesión de depuración están disponibles para descargarlos o verlos en la IU solo por 24 horas. Después de ese punto, Apigee borra los datos de sesión.

Editor de proxies nuevo

Para descargar la sesión de depuración actual en el Editor de proxies nuevo, haz clic en Descargar sesión en el panel izquierdo de la vista de depuración.

Descarga una sesión de depuración.

Ten en cuenta que una sesión de depuración se borra dentro de las 24 horas posteriores a su finalización, por lo que, si deseas ver la sesión de depuración después de ese momento, debes descargarla antes de esa fecha.

Editor de proxies clásico

Para descargar los datos de la sesión de depuración actual con el editor de proxy clásico, haz lo siguiente:

  • Sesión activa: Haz clic en el ícono Descargar (Ícono de descarga) en el panel Detalles de depuración.
  • Sesión anterior: Haz clic en el nombre de la sesión en el panel Sesiones de depuración recientes, como se describe en Visualiza sesiones de depuración. Luego, haz clic en Ícono de descarga en el panel Detalles de depuración.

API de Apigee

Para ver los ID de todas las transacciones de la sesión de depuración actual con la API de Apigee, ingresa el siguiente comando:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data

En el ejemplo anterior, SESSION_ID es el ID de la sesión de depuración que deseas descargar.

Consulta Enumera los ID de transacción de una sesión de depuración.

Para obtener los datos de depuración de una transacción mediante la API de Apigee, ingresa el siguiente comando:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data/TRANSACTION_ID

Descarga la estructura de datos

La estructura de descarga de los datos de la sesión de depuración es diferente para la IU de Apigee y la API de Apigee.

IU de Apigee

Cuando descargas datos con la IU de Apigee, esto es lo que ocurre con la estructura de datos:

  • Incluye todas las transacciones de la sesión.
  • Almacena transacciones en un arreglo de Messages.
  • Incluye metadatos sobre la sesión (como un objeto DebugSession).

API de Apigee

No puedes usar la API de Apigee para ver todos los datos de una sesión a la vez. Solo puedes usar la API para ver datos de transacciones individuales, como se describe en Visualiza sesiones de depuración.

Por ejemplo:

{
  "completed": true,
  "point": [
    ...
  ...
}

Descarga ejemplos de datos

En el siguiente ejemplo, se destaca un objeto de metadatos DebugSession en los datos descargados. Este objeto está seguido por el array Messages que contiene las transacciones en la sesión.

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": [
    {
      "completed": true,
      "point": [
        {
          "id": "Paused"
        },
        {
          "id": "Resumed"
        },
        {
          "id": "StateChange",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "To",
                    "value": "REQ_HEADERS_PARSED"
                  },
                  {
                    "name": "From",
                    "value": "REQ_START"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            },
            {
              "ActionResult": "RequestMessage",
              "headers": [
                {
                  "name": "accept",
                  "value": "*/*"
                },
                {
                  "name": "accept-encoding",
                  "value": "gzip,gzip,deflate,br"
                },
                {
                  "name": "content-length",
                  "value": "0"
                },
                {
                  "name": "host",
                  "value": "myorg.example.domain.net"
                },
                {
                  "name": "user-agent",
                  "value": "Google-Apigee"
                },
                {
                  "name": "x-b3-sampled",
                  "value": "0"
                },
                {
                  "name": "x-b3-spanid",
                  "value": "d4ee579206759662"
                },
                {
                  "name": "x-b3-traceid",
                  "value": "adc1e171777c237dd4ee579206759662"
                },
                {
                  "name": "x-forwarded-for",
                  "value": "66.102.8.98"
                },
                {
                  "name": "x-forwarded-proto",
                  "value": "https"
                },
                {
                  "name": "x-request-id",
                  "value": "54e05cba-4242-4490-4242-60c45c156f90"
                }
              ],
              "uRI": "/myproxy",
              "verb": "GET"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "environment.name",
                    "value": "prod"
                  },
                  {
                    "name": "environment.qualifiedname",
                    "value": "myorg__prod"
                  },
                  {
                    "name": "environment.orgname",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "organization.name",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "apiproxy.qualifiedname",
                    "value": "myproxy__1"
                  },
                  {
                    "name": "apiproxy.basepath",
                    "value": "/"
                  },
                  {
                    "name": "apiproxy.revision",
                    "value": "1"
                  },
                  {
                    "name": "apiproxy.name",
                    "value": "myproxy"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        ...
      ...
    }
  ]
}

Si la sesión de depuración no incluyó ninguna solicitud, el array Message está vacío, como se muestra en el siguiente ejemplo:

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": []
}

Borra datos de una sesión de depuración

Borra datos de una sesión de depuración mediante la IU o la API de Apigee, como se describe en las siguientes secciones.

Editor de proxies nuevo

Para borrar una sesión de depuración en el Editor de proxies nuevo, haz lo siguiente:

  1. Selecciona la fila de la sesión que deseas borrar.
  2. Haz clic en el menú de tres puntos al final de la fila y selecciona Borrar.

Editor de proxies clásico

Haz clic en Ícono Borrar en el panel Detalles de depuración de la sesión de depuración.

API de Apigee

Para borrar todos los datos de la sesión de depuración con la API, envía una solicitud DELETE al siguiente recurso:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

En el ejemplo anterior, debugsession es el ID de una sesión de depuración que se muestra cuando ves las sesiones de depuración.

En el siguiente ejemplo, se muestra cómo borrar los datos de la sesión de depuración para la revisión 1 de la API de helloworld en el entorno de test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
  -X DELETE \
  -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. Si deseas obtener una descripción de las variables de entorno que se usaron, consulta Configura variables de entorno para solicitudes a la API de Apigee.

Si se ejecuta correctamente, el cuerpo de la respuesta estará vacío.

Los datos de la sesión de depuración se conservan solo durante 24 horas. Si no lo borras de forma explícita antes de ese momento, Apigee lo borrará.