Política de TraceCapture

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

Consulta la documentación de Apigee Edge.

Icono de política

Información general

La política TraceCapture te permite añadir variables adicionales a los datos de seguimiento del tiempo de ejecución de Apigee. Si has habilitado el rastreo distribuido en el tiempo de ejecución de Apigee, este rastrea de forma predeterminada un conjunto de variables predefinidas. Para obtener más información, consulta Variables de seguimiento predeterminadas en el informe de seguimiento. Sin embargo, si quieres que el tiempo de ejecución de Apigee rastree variables de flujo, de política o personalizadas adicionales, usa la política TraceCapture. Puedes usar esta política en el flujo de solicitudes o en el de respuestas. En el informe de seguimiento distribuido, puede ver las variables añadidas por la política TraceCapture en el TraceCaptureExecution.

Esta política es una política extensible y su uso puede tener implicaciones en cuanto a costes o utilización, en función de tu licencia de Apigee. Para obtener información sobre los tipos de políticas y las implicaciones de uso, consulta Tipos de políticas.

<TraceCapture>

Define la política TraceCapture.

Valor predeterminado N/A
¿Es obligatorio? Obligatorio
Tipo Tipo complejo
Elemento principal N/A
Elementos secundarios <DisplayName>
<IgnoreUnresolvedVariables>
<ThrowExceptionOnLimit>
<Variables>

El elemento <TraceCapture> utiliza la siguiente sintaxis:

Sintaxis

<?xml version="1.0" encoding="UTF-8"?>
<TraceCapture continueOnError="true" enabled="true" name="DistributedTraceCapture-1">
    <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
    <Variables>
        <Variable name="TRACE_VARIABLE_NAME" ref="FLOW_VARIABLE_NAME">DEFAULT_VALUE</Variable>
        <Variable name="TRACE_VARIABLE_NAME" ref="FLOW_VARIABLE_NAME">DEFAULT_VALUE</Variable>
    </Variables>
    <IgnoreUnresolvedVariables>BOOLEAN_VALUE</IgnoreUnresolvedVariables>
    <ThrowExceptionOnLimit>BOOLEAN_VALUE</ThrowExceptionOnLimit>
</TraceCapture>

Ejemplo

En el ejemplo siguiente se muestra la definición de la política TraceCapture:

<?xml version="1.0" encoding="UTF-8"?>
<TraceCapture continueOnError="true" enabled="true" name="DistributedTraceCapture-1">
    <DisplayName>Distributed-Trace-Capture-Policy-1</DisplayName>
    <Variables>
        <Variable name="trace-variable-1" ref="flow-variable-1">default-val-1</Variable>
        <Variable name="trace-variable-2" ref="flow-variable-2">default-val-2</Variable>
    </Variables>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ThrowExceptionOnLimit>false</ThrowExceptionOnLimit>
</TraceCapture>

Este elemento tiene los siguientes atributos, que son comunes a todas las políticas:

Atributo Predeterminado ¿Es obligatorio? Descripción
name N/A Obligatorio

El nombre interno de la política. El valor del atributo name puede contener letras, números, espacios, guiones, guiones bajos y puntos. Este valor no puede superar los 255 caracteres.

Opcionalmente, usa el elemento <DisplayName> para etiquetar la política en el editor de proxy de la interfaz de gestión con un nombre diferente en lenguaje natural.

continueOnError falso Opcional Asigna el valor false para devolver un error cuando falle una política. Este es el comportamiento esperado de la mayoría de las políticas. Asigna el valor true para que la ejecución del flujo continúe incluso después de que falle una política. Consulta también:
enabled true Opcional Asigna el valor true para aplicar la política. Selecciona false para desactivar la política. La política no se aplicará aunque siga adjunta a un flujo.
async   falso Obsoleto Este atributo está obsoleto.

En la siguiente tabla se ofrece una descripción general de los elementos secundarios de <TraceCapture>:

Elemento secundario ¿Es obligatorio? Descripción
<DisplayName> Opcional Especifica un nombre personalizado para la política.
<Variables> Opcional Especifica la lista de variables que se van a monitorizar.
<IgnoreUnresolvedVariables> Opcional Especifica si el procesamiento se detiene cuando se encuentra una variable sin resolver.
<ThrowExceptionOnLimit> Opcional Especifica si se debe truncar una variable si su tamaño supera el límite de 256 bytes.
Otros elementos secundarios
<MergeBehavior> Opcional Especifica el comportamiento de combinación de los mensajes de respuesta.

Referencia de elemento secundario

En esta sección se describen los elementos secundarios de <TraceCapture>.

<DisplayName>

Se usa junto con el atributo name para etiquetar la política en el editor de proxy de la interfaz de usuario de gestión con un nombre diferente que suene más natural.

El elemento <DisplayName> es común a todas las políticas.

Valor predeterminado N/A
¿Es obligatorio? Opcional. Si omite <DisplayName>, se usará el valor del atributo name de la política.
Tipo Cadena
Elemento principal <PolicyElement>
Elementos secundarios Ninguno

El elemento <DisplayName> utiliza la siguiente sintaxis:

Sintaxis

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Ejemplo

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

El elemento <DisplayName> no tiene atributos ni elementos secundarios.

<Variables>

Especifica la lista de variables que se van a monitorizar.

Valor predeterminado N/A
¿Es obligatorio? Obligatorio
Tipo Tipo complejo
Elemento principal <TraceCapture>
Elementos secundarios <Variable>

El elemento <Variables> utiliza la siguiente sintaxis:

Sintaxis

<Variables>
    <Variable name="TRACE_VARIABLE_NAME" ref="FLOW_VARIABLE_NAME">DEFAULT_VALUE</Variable>
    <Variable name="TRACE_VARIABLE_NAME" ref="FLOW_VARIABLE_NAME">DEFAULT_VALUE</Variable>
</Variables>

Ejemplo

En el siguiente ejemplo se hace un seguimiento de las variables de flujo flow-variable-1 y flow-variable-2:

<Variables>
    <Variable name="trace-variable-1" ref="flow-variable-1">default-val-1</Variable>
    <Variable name="trace-variable-2" ref="flow-variable-2">default-val-2</Variable>
</Variables>

<Variable>

Especifica las variables que se van a añadir a los datos de la traza.

Valor predeterminado N/A
¿Es obligatorio? Obligatorio
Tipo Tipo complejo
Elemento principal <Variables>
Elementos secundarios Ninguno

El elemento <Variable> utiliza la siguiente sintaxis:

Sintaxis
<Variable name="TRACE_VARIABLE_NAME" ref="FLOW_VARIABLE_NAME">DEFAULT_VALUE</Variable>
Ejemplo

En el ejemplo siguiente se asigna a la variable de seguimiento trace-variable-1 el valor de la variable de flujo flow-variable-1:

<Variable name="trace-variable-1" ref="flow-variable-1">default-val-1</Variable>

Si la variable de flujo flow-variable-1 no está disponible, trace-variable-1 se asigna al valor predeterminado default-val-1.

En la siguiente tabla se describen los atributos de <Variable>:

Atributo ¿Es obligatorio? Tipo Descripción
name Obligatorio Cadena Nombre que se usará para hacer referencia a los datos recogidos de la variable especificada. Este nombre se mostrará en el informe de seguimiento distribuido.
ref Obligatorio Cadena La variable de la que está recogiendo los datos de la traza. Esta variable puede ser una variable de flujo predefinida por Apigee o una variable personalizada de tu proxy de API.

<IgnoreUnresolvedVariables>

Determina si el procesamiento se detiene cuando se encuentra una variable sin resolver.

Valor predeterminado N/A
¿Es obligatorio? Opcional
Tipo Booleano
Elemento principal <TraceCapture>
Elementos secundarios Ninguno

Asigna el valor true para ignorar las variables sin resolver y continuar con el procesamiento. De lo contrario, asigna el valor false. El valor predeterminado es true.

Asignar el valor true a <IgnoreUnresolvedVariables> no es lo mismo que asignar el valor true a continueOnError de <TraceCapture>. Si asigna el valor true a continueOnError, Apigee ignora todos los errores, no solo los de las variables.

El elemento <IgnoreUnresolvedVariables> utiliza la siguiente sintaxis:

Sintaxis

<IgnoreUnresolvedVariables>BOOLEAN_VALUE</IgnoreUnresolvedVariables>

Ejemplo

En el siguiente ejemplo se asigna false a <IgnoreUnresolvedVariables>:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<ThrowExceptionOnLimit>

Especifica el comportamiento de la política cuando el tamaño de la variable supera el límite de 256 bytes.

  • Si se define como true, la política genera un error si el tamaño de una variable supera el límite.
  • Si se define como false, la política trunca la variable que supere el límite. La variable se trunca al tamaño del límite.
Valor predeterminado N/A
¿Es obligatorio? Opcional
Tipo Booleano
Elemento principal <TraceCapture>
Elementos secundarios Ninguno

El elemento <ThrowExceptionOnLimit> utiliza la siguiente sintaxis:

Sintaxis

<ThrowExceptionOnLimit>BOOLEAN_VALUE</ThrowExceptionOnLimit>

Ejemplo

En el siguiente ejemplo se asigna el valor true a <ThrowExceptionOnLimit>.

<ThrowExceptionOnLimit>false</ThrowExceptionOnLimit>

Códigos de error

En esta sección se describen los códigos de error y los mensajes de error que devuelve Apigee, así como las variables de error que define, cuando esta política activa un error. Es importante que conozcas esta información si vas a desarrollar reglas de errores para gestionarlos. Para obtener más información, consulta Qué debes saber sobre los errores de políticas y Cómo gestionar los fallos.

Errores de tiempo de ejecución

Estos errores pueden producirse cuando se ejecuta la política.

Código de fallo Estado de HTTP Causa
steps.tracecapture.UnresolvedVariable 500

Este error se produce si una variable especificada en la política TraceCapture es:

  • Fuera del ámbito (no disponible en el flujo específico en el que se está ejecutando la política)
  • o
  • No se puede resolver (no está definido)
steps.tracecapture.VariableValueLimitExceeded 500

Este error se produce si el elemento <ThrowExceptionOnLimit> tiene el valor true y el tamaño de alguna variable supera los 256 bytes.

Variables de error

Cuando se producen errores de ejecución en una política, Apigee genera mensajes de error. Puedes ver estos mensajes de error en la respuesta de error. En muchas ocasiones, los mensajes de error generados por el sistema pueden no ser relevantes en el contexto de su producto. Puede que quieras personalizar los mensajes de error en función del tipo de error para que sean más significativos.

Para personalizar los mensajes de error, puedes usar reglas de error o la política RaiseFault. Para obtener información sobre las diferencias entre las reglas de errores y la política RaiseFault, consulta Reglas de errores frente a la política RaiseFault. Debes comprobar las condiciones mediante el elemento Condition tanto en las reglas de errores como en la política RaiseFault. Apigee proporciona variables de error únicas para cada política. Los valores de las variables de error se definen cuando una política activa errores de tiempo de ejecución. Al usar estas variables, puede comprobar si se dan condiciones de error específicas y tomar las medidas oportunas. Para obtener más información sobre cómo comprobar las condiciones de error, consulta Crear condiciones.

En la siguiente tabla se describen las variables de error específicas de esta política.

Variables Dónde Ejemplo
fault.name El fault.name puede coincidir con cualquiera de los errores que se indican en la tabla Errores de tiempo de ejecución. El nombre del error es la última parte del código de error. fault.name Matches "UnresolvedVariable"
tracecapture.POLICY_NAME.failed POLICY_NAME es el nombre de la política especificado por el usuario que ha provocado el error. tracecapture.trace-capture-1.failed = true
Para obtener más información sobre los errores de las políticas, consulta Qué debes saber sobre los errores de las políticas.