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

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

Síntoma

La variable personalizada que se creó con la política de Statistics Collector no se puede ver 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ándares Usuarios de la nube pública y privada de Edge
No hay tráfico en el proxy de API que implementa la política Statistics Collector Usuarios de la nube pública y privada de Edge
No se envió la variable personalizada al servidor de Postgres Usuarios de la nube privada perimetral

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

La variable personalizada no cumple con los lineamientos estándares

Diagnóstico

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

En el siguiente fragmento de código, se muestra que el nombre de 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>

Resolución

Los nombres de variables personalizadas que se usan en la política de Statistics Collector 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 anterior, 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 aparecen en la tabla del siguiente vínculo. Por ejemplo, no se permite usar "usuario". Para obtener más información, consulta Palabras clave de SQL.

Si el problema persiste, ve a No hay tráfico en el proxy de API que implementa la política Statistics Collector.

El proxy de API no tiene tráfico que implementa la política Statistics Collector

Diagnóstico

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

Resolución

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

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

Si el problema persiste, ve a Variable personalizada no enviada al servidor de Postgres.

No se envió la variable personalizada 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, haga 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 notes que falta la columna de variable personalizada en la tabla de hechos, por lo que no aparece en las dimensiones personalizadas.

Resolución

Solución 1: Reinicia el servidor de Postgres

  1. Reinicia el servidor de Postgres a fin de forzar la lectura de toda la información relevante de Zookeeper para Analytics:
    /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

Para habilitar la propiedad forceonboard, sigue estos 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 este archivo sea propiedad de Apigee 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, luego, implementa el proxy de la API que usa la política Statistics Collector.
  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 de Apigee Edge.