Solución de problemas relacionados con la implementación de la política de recopilador de estadísticas

Estás viendo la documentación de Apigee X.
Consulta la documentación de Apigee Edge.

UnsupportedDatatype

Mensaje de error

Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:

Error Deploying Revision [revision_number]
StatisticsCollection [datatype]: Datatype Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is unsupported . Context [context].

Ejemplo de mensaje de error

Error Saving Revision 1
StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.

Captura de pantalla del ejemplo.

Mensaje de error de tipo de datos no admitido.

Causa

Si el tipo de variable especificado por el atributo ref en el elemento <Statistic> de la política de recopilador de estadísticas no es compatible, la implementación del proxy de API falla.

Los tipos de datos admitidos son string, integer, float, long, double y boolean.

Por ejemplo, si el tipo de variable se especifica como char en el elemento <Statistic> de la política de recopilador de estadísticas, la implementación del proxy de API falla.

Diagnóstico

  1. Identifique la política del recopilador de estadísticas en el proxy de API específico en el que se produjo el error.
  2. Identifica el tipo de datos no admitido que se usa en la política de recopilador de estadísticas. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el tipo de datos no admitido es char:

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    
  3. Verifica que el atributo type que se usa en la política de recopilador de estadísticas con errores coincida con el tipo de datos identificado en el mensaje de error (paso 2 anterior). Por ejemplo, la siguiente política especifica el tipo de datos comochar, que coincide con lo que contiene el mensaje de error:

    <StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
      <DisplayName>Statistics Collector 1</DisplayName>
      <Statistics>
          <Statistic name="statName" ref="varName" type="char">defaultStatValue</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  4. Si el atributo de tipo no es un tipo de datos admitido, esa es la causa del error.

    En la política de recopilador de estadísticas de ejemplo que se muestra arriba, recuerda que el atributo type está configurado como char, que no es compatible. Por lo tanto, la implementación del proxy de API falla con el siguiente error:

    StatisticsCollection char: Datatype Revision:1;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is unsupported . Context {2}.
    

Solución

Asegúrate de que el tipo de datos de las variables especificadas por los atributos de referencia en los elementos <Statistic> de la política de recopilador de estadísticas sea compatible y válido. Por ejemplo:

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
    <DisplayName>Statistics Collector 1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="string">defaultStatValue</Statistic>
    </Statistics>
</StatisticsCollector>

InvalidName

Mensaje de error

Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:

Error Deploying Revision [revision_number]
StatisticsCollection: Name: [name] conflicts with system defined variables. Context policy: [policy_name]

Ejemplo de mensaje de error

Error Saving Revision 1
StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

Captura de pantalla del ejemplo.

Mensaje de error de nombre no válido.

Causa

Si el nombre utilizado para hacer referencia a los datos recopilados para la variable especificada definida en el elemento <Statistic> de la política de recopilador de estadísticas entra en conflicto con una variable definida por el sistema, la implementación del proxy de API falla.

Algunas de las variables definidas por el sistema conocidas son organization y environment.

Por ejemplo, si el atributo de nombre se especifica como organization en el elemento <Statistic> de la política de recopilador de estadísticas, la implementación del proxy de API falla.

Diagnóstico

  1. Identifica la política de recopilador de estadísticas en la que se produjo el error y el nombre del elemento <Statistic> en conflicto con una variable definida por el sistema. Puedes encontrar ambos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es StatCollector, el nombre del elemento <Statistic> que entra en conflicto con la variable definida por el sistema es organization:

    StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.
    
  2. Verifica que el nombre del elemento <Statistic> que se usó en el XML de la política del recopilador de estadísticas con errores coincida con el nombre identificado en el mensaje de error (paso 1 anterior). Por ejemplo, la siguiente política especifica el nombre como organization en el elemento <Statistic>, que coincide con el contenido del mensaje de error:

    <StatisticsCollector name="StatCollector">
      <Statistics>
          <Statistic name="organization" ref="organization" type="string">myorg</Statistic>
          <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
      </Statistics>
    </StatisticsCollector>
    
  3. Examina la definición de cada uno de los elementos <Statistic>. Si hay algún elemento <Statistic> en el que el atributo name entra en conflicto con una variable del sistema, esa es la causa del error.

En la política de recopilador de estadísticas de ejemplo que se muestra arriba, recuerda que el atributo de nombre de <Statistic> utilizado es organization, que es un nombre de variable de sistema. Por lo tanto, la implementación del proxy de API falla con el siguiente error:

StatisticsCollection: Name: organization conflicts with system defined variables. Context policy: StatCollector.

Solución

Asegúrate de que el nombre del elemento <Statistic> que se usa para hacer referencia a los datos recopilados para la variable especificada que se define en el elemento <Statistic> de la política de recopilador de estadísticas no sea el mismo que el de las variables definidas por el sistema. Por ejemplo:

<StatisticsCollector name="StatCollector">
    <Statistics>
        <Statistic name="org" ref="org" type="string">myorg</Statistic>
        <Statistic name="traffic" ref="traffic" type="string">999999</Statistic>
    </Statistics>
</StatisticsCollector>

DatatypeMissing

Mensaje de error

Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:

Error Deploying Revision [revision_number]
StatisticsCollection [ref]: Datatype of Revision:[revision_number];APIProxy:[api_proxy];Organization:[org_name];Environment:[env_name] is missing . Context [context].

Ejemplo de mensaje de error

Error Deploying Revision 2 to test
StatisticsCollection product.id: Datatype of Revision:2;APIProxy:StatCollector;Organization:aprabhashankar-eval;Environment:test is missing. Context {2}.

Captura de pantalla del ejemplo.

Mensaje de error de tipo de datos faltante.

Causa

Si falta el tipo de variable especificada por el atributo ref en el elemento <Statistic> de la política de recopilador de estadísticas, la implementación del proxy de API falla.

Diagnóstico

  1. Identifica la política de recopilador de estadísticas en el proxy de API específico en el que se produjo el error.
  2. Examina la definición de cada uno de los elementos <Statistic> en el archivo XML de la política de recopilador de estadísticas con errores. Si falta algún elemento <Statistic> en el que falta el atributo de tipo, esa es la causa del error.

Este es un ejemplo de una política de recopilador de estadísticas:

  <StatisticsCollector name="publishPurchaseDetails"
      <Statistics>
          <Statistic name="productID" ref="product.id">999999</Statistic>
          <Statistic name="price" ref="product.price" type="string">1000</Statistic>
      </Statistics>
  </StatisticsCollector>
  

En la política de recopilador de estadísticas de ejemplo anterior, ten en cuenta que falta el atributo de tipo para los elementos <Statistic>. Por lo tanto, la implementación del proxy de API fallará.

Solución

Asegúrate de que el atributo de tipo de la variable que especifica el atributo ref en el elemento <Statistic> de la política de recopilador de estadísticas se especifique siempre y sea de un tipo de datoscompatible.

Los tipos de datos admitidos son string, integer, float, long, double y boolean.

Por ejemplo:

<StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
        <Statistic name="productID" ref="product.id" type="string">999999</Statistic>
        <Statistic name="price" ref="product.price"  type="string">1000</Statistic>
    </Statistics>
</StatisticsCollector>