Los datos no aparecen en los paneles de estadísticas

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

Síntoma

Los paneles de estadísticas (Rendimiento del proxy, Rendimiento objetivo, etc.) no muestran ningún dato en la IU de Edge. Todos los paneles muestran el siguiente mensaje:

No traffic in the selected date range

Mensajes de error

Este problema no genera errores observables.

Causas posibles

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

Causa Para
No hay tráfico de API para la organización en el entorno Perímetro para usuarios de la nube privada
Datos disponibles en la base de datos de Postgres, pero no se muestran en la IU Perímetro para usuarios de la nube privada
No se envían los datos de Analytics a la base de datos de Postgres Perímetro para usuarios de la nube privada
Implementación incorrecta de Analytics Perímetro para usuarios de la nube privada
UUIDs de servidor inactivos de Analytics Perímetro para usuarios de la nube privada

No hay tráfico de API para la organización en el entorno

Diagnóstico

  1. Verifica si hay tráfico para los proxies de API en el entorno de organización específico durante el tiempo que intentas ver los datos de estadísticas mediante uno de los siguientes métodos:
    1. Habilita el seguimiento de cualquiera de las APIs que estén usando los usuarios en ese momento y verifica si puedes obtener solicitudes en el seguimiento.
    2. Consulta los registros de acceso de NGINX (/opt/apigee/var/log/edge-router/nginx/logs/access.log) y observa si hay entradas nuevas para los proxies de API para la duración específica).
    3. Si registras la información de los proxies de API en un servidor de registros como Syslog, Splunk, Loggly, etc., puedes verificar si hay entradas en estos servidores de registros para los proxies de API durante el tiempo específico.
  2. Si no hay tráfico (no hay solicitudes a la API) durante el tiempo específico, los datos de estadísticas no estarán disponibles. Verás el mensaje “No hay tráfico en el período seleccionado” en el panel de estadísticas.

Resolución

  1. Realiza algunas llamadas a uno o más proxies de API en el entorno de organización específico.
  2. Espera unos segundos y, luego, consulta los paneles de estadísticas en la pestaña Hora y comprueba si aparecen los datos.
  3. Si el problema persiste, ve a Datos disponibles en la base de datos de Postgres, pero que no se muestran en la IU.

Datos disponibles en la base de datos de Postgres, pero no se muestran en la IU

Síntoma

Primero, determina la disponibilidad de los datos más recientes de Analytics en la base de datos Postgres.

Para verificar si los datos más recientes de Analytics están disponibles en el nodo principal de Postgres, sigue estos pasos:

  1. Accede a cada uno de los servidores de Postgres y ejecuta el siguiente comando para validar si estás en el nodo principal de Postgres:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    
  2. En el nodo de la instancia principal de Postgres, accede a PostgreSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    
  3. Comprueba si la tabla existe para tu org-env mediante la siguiente consulta en SQL en la base de datos Postgres:
    \d analytics."orgname.envname.fact"
    
  4. Comprueba si los datos más recientes están disponibles en la base de datos Postgres con la siguiente consulta en SQL:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
    
  5. Si la marca de tiempo más reciente es muy antigua (o nula), esto indica que los datos no están disponibles en la base de datos de Postgres. La causa probable de este problema es que los datos no se envían del servidor de Qpid a la base de datos de Postgres. Continúa con el artículo No se envían los datos de Analytics a la base de datos de Postgres.
  6. Si los datos más recientes están disponibles en la base de datos de Postgres en el nodo principal, sigue los siguientes pasos para diagnosticar por qué los datos no se muestran en la IU de Edge.

Diagnóstico

  1. Habilita las Herramientas para desarrolladores en el navegador Chrome y usa la API desde uno de los paneles de estadísticas mediante los siguientes pasos:
    1. Selecciona la pestaña Red en Herramientas para desarrolladores.
    2. Iniciar la grabación
    3. Vuelve a cargar el panel de Analytics.
    4. En el panel izquierdo de las Herramientas para desarrolladores, selecciona la fila que contiene "apiproxy?_optimized...".
    5. En el panel derecho de las Herramientas para desarrolladores, selecciona la pestaña "Encabezados" y toma nota de la "URL de solicitud".
  2. A continuación, se muestra un resultado de ejemplo de las Herramientas para desarrolladores:

    Resultado de ejemplo que muestra la API usada en el panel de rendimiento del proxy de la pestaña Red de las Herramientas para desarrolladores para el panel de rendimiento del proxy

  3. Ejecuta directamente la llamada a la API de Management y verifica si obtienes los resultados. A continuación, se muestra una llamada a la API de ejemplo para la pestaña Día en el panel de rendimiento de proxy:
    curl -u username:password
      "http://management_server_IP_address:8080/v1/organizations/
      org_name/environments/env_name/stats/apiproxy?limit=14400&
      select=sum(message_count),sum(is_error),avg(total_response_time),
      avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error),
      avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+
      18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
    
  4. Si ves una respuesta exitosa, pero sin datos, significa que el servidor de administración no pudo recuperar los datos del servidor de Postgres debido a problemas de conectividad de red.
  5. Verifica si puedes conectarte al servidor de Postgres desde el servidor de administración:
    telnet Postgres_server_IP_address 5432
    
  6. Si no puedes conectarte al servidor de Postgres, verifica si hay restricciones de firewall en el puerto 5432.
  7. Si hay restricciones de firewall, esa podría ser la causa por la que el servidor de administración no puede extraer los datos del servidor de Postgres.

Resolución

  1. Si hay restricciones de firewall, quítalas para que el servidor de administración pueda comunicarse con el servidor de Postgres.
  2. Si no hay restricciones de firewall, este problema podría deberse a una falla de la red.
  3. Si hubo algún problema de red en el servidor de administración, es posible que se solucione el problema si lo reinicias.
  4. Reinicia todos los servidores de administración uno por uno con el siguiente comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. Comprueba si puedes ver los datos de estadísticas en la IU de Edge.

Si aún no ves los datos, comunícate con el equipo de asistencia de Apigee Edge.

No se envían los datos de Analytics a la base de datos de Postgres

Diagnóstico

Si los datos no se envían del servidor Qpid a la base de datos de Postgres como se determina en Datos disponibles en la base de datos de Postgres, pero no se muestran en la IU, sigue estos pasos:

  1. Para verificar si cada uno de los servidores de Qpid está en funcionamiento, ejecuta el siguiente comando:
    /opt/apigee/bin/apigee-service edge-qpid-server status
    
  2. Si algún servidor de Qpid no funciona, reinícialo. De lo contrario, continúa con el paso 5.
    /opt/apigee/bin/apigee-service edge-qpid-server restart
    
  3. Espera un tiempo y vuelve a verificar si los datos más recientes están disponibles en la base de datos de Postgres.
    1. Accede a PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
      
    2. Ejecuta la siguiente consulta en SQL para verificar si los datos más recientes están disponibles:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
      
  4. Si los datos más recientes están disponibles, omite los siguientes pasos y continúa con el último paso de la sección Resolución. Si los datos más recientes no están disponibles, continúa con los siguientes pasos.
  5. Verifica si los mensajes de las colas del servidor Qpid se envían a la base de datos de Postgres.
    1. Ejecuta qpid-stat -q command y verifica los valores de las columnas msgIn y msgOut.
    2. Este es un resultado de ejemplo en el que se indica que msgIn y msgOut no son iguales. Esto indica que los mensajes no se envían desde Qpid Server a la base de datos de Postgres.

  6. Si las columnas msgIn y msgOut no coinciden, verifica los registros del servidor de Qpid /opt/apigee/var/log/edge-qpid-server/system.log y observa si hay algún error.
  7. Es posible que veas mensajes de error como "Prob pasos PG aún está inactivo" o "FATAL: lo siento, ya hay demasiados clientes", como se muestra en la siguiente figura:
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when
      execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d
      Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee
      Initial referenced UUID when execution started in this thread was
      a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used -
      [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create
      PoolableConnectionFactory (FATAL: sorry, too many clients already)
    

Esto podría suceder si el servidor de Postgres está ejecutando demasiadas consultas en SQL o si la CPU está muy alta y, por lo tanto, no puede responder al servidor de Qpid.

Resolución

  1. Reinicia el servidor de Postgres y PostgreSQL como se muestra a continuación:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. Este reinicio garantiza que todas las consultas de SQL anteriores se detengan y debe permitir nuevas conexiones a la base de datos de Postgres.
  3. Vuelve a cargar los paneles de Analytics y verifica si se muestran los datos de Analytics.

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

Implementación incorrecta de Analytics

Diagnóstico

  1. Obtén el estado de la implementación de estadísticas con la siguiente llamada a la API:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
    
  2. Verifica el estado de los servidores de Qpid y Postgres en los resultados de la llamada a la API.
    1. Si el estado de los servidores de Qpid y Postgres se muestra como "SUCCESS", significa que los servidores de estadísticas están conectados correctamente. Continúa con UUIDs del servidor de Analytics inactivos.
    2. Si el estado de los servidores de Qpid/Postgres se muestra como “DESCONOCIDO” o “ERROR”, significa que hay un problema con el servidor correspondiente.

      Por ejemplo, en la siguiente situación, se muestra el estado de los servidores de Postgres como “DESCONOCIDO”:

      Esto puede ocurrir si hay una falla durante la integración de las estadísticas. Este error impide que los mensajes de los servidores de administración lleguen a los servidores de Postgres.

Resolución

Por lo general, este problema se puede resolver reiniciando los servidores que mostraron el error “ERROR” o “DESCONOCIDO”.

  1. Reinicia cada uno de los servidores cuyo estado de cableado de estadísticas indique “ERROR” o “DESCONOCIDO” con el siguiente comando:
    /opt/apigee/apigee-service/bin/apigee-service component restart
    
  2. Por ejemplo:
    1. Si ves el problema en los servidores de Qpid, reinícialos:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
      
    2. Si ves el problema en los servidores de Postgres, reinicia los nodos del servidor de Postgres principal y secundario:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
      
  3. En el ejemplo anterior, el mensaje “DESCONOCIDO” se muestra en los servidores de Postgres, por lo que debes reiniciar los servidores de Postgres principal y secundario:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    

UUIDs de servidores de estadísticas inactivos

Diagnóstico

  1. Obtén la configuración de estadísticas con la siguiente llamada a la API:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
    

    Este es un resultado de ejemplo de la API anterior:

    [ {
      "name" : "axgroup001",
      "properties" : {
        "consumer-type" : "ax"
      },
      "scopes" : [ "myorg~prod", "myorg~test" ],
      "uuids" : {
        "aries-datastore" : [ ],
        "postgres-server" : [ "6777...2db14" ],
        "dw-server" : [ ],
        "qpid-server" : [ "774e...fb23", "29f3...8c11" ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "774e...8c11" ],
        "datastores" : [ "6777...db14" ],
        "properties" : {
        }
      } ],
      "data-processors" : {
      }
    } ]
    
  2. Asegúrate de que la siguiente información del resultado sea correcta:
    1. org-env enumerados en el elemento "scopes".
    2. UUID de los servidores de Postgres y servidores de Qpid.
      • Para obtener los UUIDs de los servidores de Postgres, ejecuta el siguiente comando en cada uno de los nodos del servidor de Postgres:
        curl 0:8084/v1/servers/self/uuid
        
      • Para obtener los UUIDs de Qpid Server, ejecuta el siguiente comando en cada uno de los nodos del servidor de Qpid:
        curl 0:8083/v1/servers/self/uuid
        
  3. Si toda la información es correcta, ve a No se envían los datos de Analytics a la base de datos de Postgres.
  4. Si los UUID de los servidores de Postgres o Qpid son incorrectos, es posible que los servidores de administración se refieran a UUID inactivos.

Resolución

Para quitar los UUID inactivos y agregar los UUID correctos de los servidores, comunícate con el equipo de asistencia de Apigee Edge.