La variable personalizada no es visible para los informes personalizados de Analytics

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Síntoma

La variable personalizada creada con la política StatisticsCollector no está visible en Dimensiones personalizadas en los Informes personalizados de Analytics en la IU de Edge.

Mensajes de error

No se observan errores.

Causas posibles

En la siguiente tabla, se enumeran las posibles causas de este problema:

Causa Para
La variable personalizada no cumple con los lineamientos estándar Usuarios de la nube privada y pública de Edge
No hay tráfico en el proxy de API que implementa la política StatisticsCollector Usuarios de la nube privada y pública de Edge
La variable personalizada no se envió al servidor de Postgres Usuarios de la nube privada de Edge

Haz clic en un vínculo de la tabla para ver las posibles soluciones a esa causa.

La variable personalizada no cumple con los lineamientos estándar

Diagnóstico

Si el nombre de la variable personalizada que se usa en la política StatisticsCollector no cumple con los lineamientos estándar (consulta Solución), no aparecerá en los Informes personalizados.

El siguiente fragmento de código muestra que el nombre de la variable "product id" tiene un espacio, por lo que no aparecerá en la Dimensión personalizada del Informe personalizado.

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

Solución

Los nombres de las variables personalizadas que se usan en la política StatisticsCollector dentro del proxy de API deben cumplir con los siguientes lineamientos:

  • Los nombres pueden incluir [a-z][0-9] y "_".
  • Los nombres no pueden incluir espacios. Por ejemplo, en la muestra de código que se mostró antes, el nombre de la variable debe cambiarse a "product_id".
  • No se hace distinción entre mayúsculas y minúsculas.
  • No se permiten las palabras clave reservadas que se enumeran en la tabla del siguiente vínculo. Por ejemplo, no se permite "user". Para obtener más información, consulta Palabras clave de SQL.

Si el problema persiste, continúa con No hay tráfico en el proxy de API que implementa la política StatisticsCollector.

No hay tráfico en el proxy de API que implementa la política StatisticsCollector

Diagnóstico

Si no hay tráfico en el proxy de API que implementa la política StatisticsCollector, la variable personalizada no aparecerá en los Informes personalizados.

Solución

Realiza algunas llamadas al proxy de API que implementa la política StatisticsCollector.

Espera un tiempo y verifica si las variables personalizadas aparecen en las dimensiones personalizadas del Informe personalizado.

Si el problema persiste, continúa con La variable personalizada no se envió al servidor de Postgres.

La variable personalizada no se envió al servidor de Postgres

Diagnóstico

Cuando se crea una variable personalizada en el proxy de API y se realizan llamadas a la API, la variable primero se almacena en la memoria del Message Processor. Luego, el procesador de mensajes envía la información sobre la variable nueva a ZooKeeper, que, a su vez, la envía al servidor de Postgres para agregarla como una columna en la base de datos de Postgres.

A veces, es posible que la notificación de ZooKeeper no llegue al servidor de Postgres debido a problemas de red. Debido a este error, es posible que la variable personalizada no aparezca en el Informe personalizado.

Para identificar dónde falta la variable personalizada, haz lo siguiente:

  1. Genera el árbol de ZooKeeper con el siguiente comando:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. Busca la variable personalizada en el resultado del árbol de ZooKeeper.
  3. Si la variable personalizada existe en el árbol de ZooKeeper, ejecuta los siguientes comandos para verificar si se agregó a la base de datos de Postgres:
    1. En el nodo de Postgres, accede a PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Ejecuta la siguiente consulta en SQL:
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. Es muy probable que veas que falta la columna de la variable personalizada en la tabla de hechos, que es el motivo por el que no aparece en las Dimensiones personalizadas.

Solución

Solución 1: Reinicia el servidor de Postgres

  1. Reinicia el servidor de Postgres para forzarlo a leer toda la información pertinente a Analytics de Zookeeper:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    Si el problema persiste, aplica la Solución 2.

Solución 2: Habilita la propiedad forceonboard

Habilita la propiedad forceonboard con los siguientes pasos:

  1. Crea el archivo /opt/apigee/customer/application/postgres-server.properties en la máquina del servidor de Postgres, si aún no existe.
  2. Agrega la siguiente línea a este archivo:
    conf_pg-agent_forceonboard=true
  3. Asegúrate de que Apigee sea el propietario de este archivo con el siguiente comando:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. Reinicia el servidor de Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. Si tienes más de un servidor de Postgres, repite los pasos anteriores en todos los servidores de Postgres.
  6. Anula la implementación y vuelve a implementar el proxy de API que usa la política StatisticsCollector política.
  7. Ejecuta las llamadas a la API.
  8. Verifica si las variables personalizadas aparecen en las dimensiones personalizadas del Informe personalizado.

Si el problema persiste, comunícate con el equipo de asistencia al cliente de Apigee Edge.