Los datos no aparecen en los paneles de estadísticas

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

Síntoma

Los paneles de estadísticas (rendimiento del proxy, rendimiento del destino, 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 y el entorno Usuarios de Edge para la nube privada
Los datos están disponibles en la base de datos de Postgres, pero no se muestran en la IU Usuarios de Edge para la nube privada
Los datos de estadísticas no se envían a la base de datos de Postgres Usuarios de Edge para la nube privada
Implementación incorrecta de Analytics Usuarios de Edge para la nube privada
UUIDs obsoletos del servidor de Analytics Usuarios de Edge para la nube privada

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

Diagnóstico

  1. Verifica si hay tráfico para los proxies de API en la organización y el entorno específicos durante el período específico en el que intentas ver los datos de estadísticas con uno de los siguientes métodos:
    1. Habilita el seguimiento para cualquiera de tus APIs que usen actualmente tus usuarios y verifica si puedes obtener alguna solicitud en el seguimiento.
    2. Consulta los registros de acceso de NGINX (/opt/apigee/var/log/edge-router/nginx/logs/access.log) y verifica si hay entradas nuevas para los proxies de API durante el período específico.
    3. Si registras 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 período específico.
  2. Si no hay tráfico (no hay solicitudes de API) durante el período 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 del panel de estadísticas.

Solución

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

Los datos están disponibles en la base de datos de Postgres, pero no se muestran en la IU

Síntoma

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

Para verificar si los datos de estadísticas más recientes están disponibles en el nodo principal de Postgres , haz lo siguiente:

  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 principal de Postgres, accede a PostgreSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
  3. Verifica si la tabla existe para tu organización y entorno con la siguiente consulta en SQL en la base de datos de Postgres database:
    \d analytics."orgname.envname.fact"
  4. Verifica si los datos más recientes están disponibles en la base de datos de Postgres con la siguiente consulta de 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), indica que los datos no están disponibles en la base de datos de Postgres. La causa probable de este problema sería que los datos no se envían desde el servidor de Qpid a la base de datos de Postgres. Continúa con Los datos de estadísticas no se envían 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 pasos que se indican a continuación para diagnosticar por qué los datos no se muestran en la IU de Edge.

Diagnóstico

  1. Habilita las Herramientas para desarrolladores en tu navegador Chrome y obtén la API que se usa en uno de los paneles de estadísticas con los siguientes pasos:
    1. Selecciona la pestaña Red en las Herramientas para desarrolladores.
    2. Inicia la grabación.
    3. Vuelve a cargar el panel de estadísticas.
    4. En el panel izquierdo de las Herramientas para desarrolladores, selecciona la fila que tiene "apiproxy?_optimized...".
    5. En el panel derecho de las Herramientas para desarrolladores, selecciona la pestaña "Encabezados" y anota la "URL de la solicitud".
  2. Este es un resultado de muestra de las Herramientas para desarrolladores:

    Resultado de muestra que muestra la API que se usa en el panel Rendimiento del proxy en la pestaña Red de las Herramientas para desarrolladores para el panel Rendimiento del proxy

  3. Ejecuta la llamada a la API de administración directamente y verifica si obtienes los resultados. Esta es una llamada de API de muestra para la pestaña Día en el panel Rendimiento del 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 correcta, pero sin datos, indica que el servidor de administración no puede 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.

Solució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 red.
  3. Si hubo alguna falla de red en el servidor de administración, reiniciarlo podría solucionar el problema.
  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. Verifica 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.

Los datos de estadísticas no se envían a la base de datos de Postgres

Diagnóstico

Si los datos no se envían desde el servidor de Qpid a la base de datos de Postgres, como se determinó en Los datos están disponibles en la base de datos de Postgres, pero no se muestran en la IU, realiza los siguientes pasos:

  1. Ejecuta el siguiente comando para verificar si cada uno de los servidores de Qpid está en funcionamiento:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. Si algún servidor de Qpid está inactivo, reinícialo. De lo contrario, ve al paso 5.
    /opt/apigee/apigee-service/bin edge-qpid-server restart
  3. Espera un tiempo y, luego, 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 Solució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 de Qpid se envían a la base de datos de Postgres.
    1. Ejecuta el qpid-stat -q command y verifica los msgIn y msgOut valores de las columnas.
    2. Este es un resultado de muestra que muestra que msgIn y msgOut no son iguales. Esto indica que los mensajes no se envían desde el servidor de Qpid a la base de datos de Postgres.

  6. Si hay una falta de coincidencia en las columnas msgIn y msgOut, consulta los registros del servidor de Qpid /opt/apigee/var/log/edge-qpid-server/system.log y verifica si hay errores.
  7. Es posible que veas mensajes de error como "Probably PG is still down" o "FATAL: sorry, too many clients already" , 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 puede suceder si el servidor de Postgres ejecuta demasiadas consultas de SQL o si la CPU se ejecuta en un nivel alto y, por lo tanto, no puede responder al servidor de Qpid.

Solució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 se detengan todas las consultas de SQL anteriores y debería permitir nuevas conexiones a la base de datos de Postgres.
  3. Vuelve a cargar los paneles de estadísticas y verifica si se muestran los datos de estadísticas.

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 implementación de Analytics 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", indica que los servidores de estadísticas están conectados correctamente. Continúa con UUIDs obsoletos del servidor de Analytics.
    2. Si el estado de los servidores de Qpid o Postgres se muestra como "UNKNOWN" o "FAILURE", entonces indica un problema con el servidor correspondiente.

      Por ejemplo, la siguiente situación muestra el estado de los servidores de Postgres como "UNKNOWN":

      Esto puede suceder si hay una falla durante la incorporación de Analytics. Esta falla impide que los mensajes de los servidores de administración lleguen a los servidores de Postgres.

Solución

Por lo general, este problema se puede resolver reiniciando los servidores que mostraron "FAILURE" o "UNKNOWN".

  1. Reinicia cada uno de los servidores cuyo estado de conexión de estadísticas indicó "FAILURE" o "UNKNOWN" 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, reinicia los servidores de Qpid:
      /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, se muestra el mensaje "UNKNOWN" para 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 obsoletos del servidor de Analytics

Diagnóstico

  1. Obtén la configuración de Analytics 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 muestra 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 en el resultado sea correcta:
    1. Nombres de org-env que aparecen en el elemento "scopes".
    2. UUIDs de los servidores de Postgres y los servidores de Qpid.
      • Para obtener los UUIDs del servidor 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 del servidor de Qpid, 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, continúa con Los datos de estadísticas no se envían a la base de datos de Postgres.
  4. Si los UUIDs de los servidores de Postgres o Qpid son incorrectos, es posible que los servidores de administración hagan referencia a UUIDs obsoletos.

Solución

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