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:
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.
Selecciona el proxy de API que deseas depurar. Esto muestra la vista Descripción general del Editor de proxies.
- Haz clic en la pestaña Depurar en la parte superior izquierda de la ventana.
- 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.
En el cuadro de diálogo:
- Selecciona el Entorno en el que deseas ejecutar la sesión de depuración.
- 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.
- Haz clic en Iniciar.
La IU de Apigee ahora muestra la vista 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.
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.
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.
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.
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.
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:
- Accede a la IU de Apigee.
- En el menú principal, seleccione API Proxies:
Selecciona el proxy de API que deseas depurar.
Aparecerá la pestaña Descripción general.
- Haz clic en la pestaña Depuración en la esquina superior derecha de la página:
En la vista de Depuración, se muestra lo siguiente:
- En el panel Iniciar una sesión de depuración, haz lo siguiente:
- En la lista desplegable Entorno, selecciona el entorno y el número de revisión del proxy de API que deseas depurar.
- 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.
- 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 Descarga Descarga los datos de depuración de la sesión activa, que luego podrás ver sin conexión. Muestra 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. Borra 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.
En el siguiente ejemplo, se muestra el panel Iniciar una sesión de depuración:
- En el panel Enviar solicitudes, haz lo siguiente:
- 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
- Ve a Administrador > Entornos > Grupos.
- La URL es el Nombre de host del entorno correspondiente con el que deseas ejecutar tu sesión de depuración.
- Haz 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
):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:
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.
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ó.
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.
- 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
- 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: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
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
La app cliente que envía una solicitud al ProxyEndpoint del proxy de API. | |
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. | |
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. |
|
Indica que las acciones de estadísticas ocurrieron en segundo plano. |
|
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))
|
|
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)))
|
|
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. |
|
El destino de backend al que llama el proxy de API. | |
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. | |
Epsilon indica un intervalo de tiempo menor que un milisegundo. | |
Inhabilitada 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. |
|
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. | |
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:
|
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:
- Configura la duración de una sesión de depuración (en segundos). Para ello, pasa la propiedad
timeout
como un parámetros de búsqueda o en el cuerpo de la solicitud. Si se especifican ambos, el valortimeout
especificado en el cuerpo de la solicitud tiene prioridad. - Filtra datos en una sesión de depuración. Para ello, pasa la propiedad
filter
en el cuerpo de la solicitud.
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 clásica 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:
- Agrupación
- AND (
&&
) y OR (|"
) lógicos - Expresiones de ruta de acceso
- Operadores y operandos
- Literales (
null
,true
yfalse
)
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:
Por ejemplo: target.duration > 420 && client.duration > 1000 Para obtener más información, consulta |
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:
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.
- Selecciona el proxy que deseas depurar.
- Haz clic en la pestaña Depurar.
- En Sesiones de depuración recientes, se muestra una lista de las sesiones de depuración disponibles.
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:
- Accede a la IU de Apigee.
- En el menú principal, seleccione API Proxies:
- Selecciona el proxy que deseas depurar.
- Haz clic en la pestaña Depuración en la esquina superior derecha de la vista Implementaciones.
- En el panel Sesiones de depuración recientes, sigue estos pasos:
- En la lista desplegable Env, selecciona el entorno del proxy de API cuya sesión de depuración deseas ver.
- 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.
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.
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:
- Ver todas las sesiones de depuración
- Ver todas las transacciones de una sesión de depuración
- Ver datos de transacción de una sesión de depuración
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.
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 () 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 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 clásica 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:
- Selecciona la fila de la sesión que deseas borrar.
- Haz clic en el menú de tres puntos al final de la fila y selecciona Borrar.
Editor de proxies clásico
Haz clic en 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á.