¿Existe una solución similar a Google Analytics para rastrear llamadas REST a un servicio web? [cerrado]


Me pregunto si hay alguna solución lista para usar para esto, no estoy muy familiarizado con la api de analytics, tal vez pueda escribir un js simple que actualice analytics antes de ir a mi servicio, etc. -- de lo contrario voy a tener que atenerme a los buenos registros de la tienda en la base de datos.

Cualquier ayuda apreciada!

Author: JohnIdol, 2011-12-11

8 answers

Parece que hay algunas soluciones por ahí, aunque en su mayoría parecen implicar cambiar la arquitectura de la API.

Podría utilizar una de las bibliotecas de seguimiento del lado del servidor de Google Analytics .

Veo que estás usando AppEngine; también corro una API usando AppEngine, y recientemente he estado jugando con un Google Analytics Biblioteca para App Engine . No es una solución perfecta, pero hay una cantidad decente de datos de calidad.

Tenga en cuenta que el modelado de datos de Google Analytics realmente no es tan similar al de una API; dependiendo de su API, la noción de una "visita" no tiene sentido.

 10
Author: Yahel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-12 05:46:17

Creo que Keen IO sería un gran ajuste aquí. Es una plataforma de análisis solo para API (lo que significa que tanto envía datos como consume análisis a través de una API REST).

Revelación completa: Soy el CEO. No estoy escribiendo esta respuesta para autopromocionarme, sino porque honestamente, nuestro producto fue diseñado específicamente para casos de uso como el suyo.

Varios usuarios de IO entusiastas son empresas de API que lo utilizan para hacer análisis sobre cómo sus usuarios utilizan sus API.

A riesgo de ser un poco demasiado meta: Utilizamos la API de E / S de Keen internamente para recopilar eventos y realizar análisis de cómo nuestros clientes usan la API de E / s de Keen externamente, y a modo de ejemplo, nuestro modelo de datos de dos eventos se ve algo como esto: *

  • analysis_call
    • solicitud (objeto)
      • client_library_version (string)
      • API_version (número)
      • query_parameters (objeto clave-valor)
      • post_parameters (objeto clave-valor)
      • origin_ip (ip dirección)
      • URI (cadena)
    • num_events (integer)
    • includes_geolocation (booleano)
    • user_agent (cadena)
    • respuesta (objeto)
      • HTTP_code (número)
      • latencia (número)
      • encabezados (objeto)
      • body (object: el objeto de respuesta JSON completo real, si es inferior a 1K)
  • events_added_call
    • client_library_version (string)
    • API_version (número)
    • origin_ip (dirección ip)
    • solicitud (objeto)
    • response (object: el objeto de respuesta JSON completo real)

* En realidad usamos un lote más propiedades que esto, las he despojado para que esto sea más claro

 12
Author: Kyle Wild,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-11 21:51:41

Bueno, te vendría bien...google analytics

En el servidor, en una función de controlador de API REST, realice una solicitud HTTP GET a http://www.google-analytics.com/__utm.gif con los parámetros correctos, y ya está. Preferiblemente asíncrona.

Https://developers.google.com/analytics/resources/concepts/gaConceptsTrackingOverview

 5
Author: Neil McGuigan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-17 04:22:25

Usted podría hacer esto ahora con GA usando el nuevo Protocolo de medición el está actualmente en beta pública.

 4
Author: Andre Lackmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-12 06:48:22

Creo que lo que estás buscando es algo como apigee: http://apigee.com

 2
Author: jverdi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-12 01:52:21

¿Qué información está buscando específicamente? Es posible que pueda obtener lo que necesita de los registros de acceso http.

 1
Author: Bill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-11 14:55:01

No creo que Google Analytics pueda rastrear llamadas rest, porque se activa mediante un fragmento de JavaScript que incrustas en tu HTML.

Para ver los registros, puede ir a appengine console, elegir su aplicación y seleccionar Logs.

Para acceder a tus logs mediante programación, tienes que descargarlos (con Java , con Python ), pero parece que hasta ahora no puedes hacerlo dentro de tu motor de app, así que tienes que hacerlo ya sea en estación de trabajo o tal vez en una instancia de Amazon EC2 (tal vez micro).

Por otro lado, si decide almacenar registros en el almacén de datos, realice la actualización dentro de una cola de tareas, para no ralentizar su API (Colas de tareas con Java, Colas de tareas con Python ).

 1
Author: stivlo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-12 02:20:43

Creo que esta solución podría ser una muy buena opción si está interesado en rastrear específicamente las llamadas REST: http://apianalytics.com Parece que tiene todo lo que necesitas. Un poco como el Mixpanel de APIs.

Descargo de responsabilidad: Un buen amigo mío ha construido esto

 1
Author: API_sheriff_orlie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-07 12:51:24