13

我正在使用 Python ( Flask ) 运行RESTful API

我希望能够跟踪:

  • 提出了哪些请求
  • 这些请求是什么时候发生的
  • 发送响应需要多长时间

我想为此使用Google Analytics,因为它有很好的仪表板和扩展功能。

我的问题

如何在 REST API 中实现 Google Analytics?
或者有人知道可以实现的另一个工具/库吗?

这是我目前发现的:

4

2 回答 2

10

实际上有两种方法可以将服务器端数据发送到 Google Analytics。标准方法是 GIF 图片请求 API,它与 ga.js 在客户端使用的 API 相同。Google 已经开始开发一种新的 REST API,称为 Measurement Protocol,但这只是开发者预览版。

服务器端 GA

尝试将服务器端数据发送到 GA 时需要解决一些问题。

就像@mehaase 上面指出的那样,gif API 从请求中获取 IP 地址,因此您的所有服务器端请求都将显示为来自您服务器位置的用户。测量协议也不允许您更改请求的 ip。我将在这个答案中假设公开可用的 gif API。

另一个问题是 gif 端点需要客户端 cookie。您可以在每个请求上伪造此 cookie,但这会导致每个事件看起来像一个新访问者。只要您将服务器端 API 和网站保存在单独的 Google Analytics(分析)配置文件中,就可以了。

另请注意,一旦您发送活动,Google 最多可能需要一个小时来显示您的活动。这会使调试有点痛苦,所以请耐心等待。

以下是 GA cookie 中每个变量的含义的细分,以及将服务器端数据发送到 GA 的一个很好的 node.js 示例。

其他事件跟踪选项

尽管 GA 非常适合跟踪网站指标,但它并不是为跟踪服务器端事件而构建的。一类称为事件跟踪的分析是用于静态 API 使用跟踪的完美应用程序。

API 通常如下所示:

analytics.track('API Response', {
    method  : 'POST',
    endpoint: '/comments'
    duration: 124
    status  : 500
});

并让您查看有关每个事件和事件属性的频率和分布的报告 您可以回答以下问题:今天发生了多少 /comments API 调用?200有多少?有多少响应高于 200 毫秒?等等

以下是一些可以帮助您执行此操作的事件跟踪工具:

  1. 混合面板
  2. KissMetrics
  3. 敏锐.IO

我是Segment.io的联合创始人,该公司为客户端、服务器端和移动分析提供简单的 API。我们允许您从 python、php、ruby、node、java、.net、javascript 和 iOS 发送数据,我们会将其转发到 Google Analytics、Mixpanel、KissMetrics、Keen.IO 或我们任何其他支持的服务,无需你必须学习他们的 API。

最后,这是我们分析学院的一篇文章,解释了为什么事件跟踪很有用。

于 2013-03-21T00:45:09.443 回答
1

我知道这是很老的帖子。我在 Python 中遇到了谷歌分析支持

https://developers.google.com/api-client-library/python/apis/analytics/v3

认为这也是记录的正确地方(y)

于 2017-08-12T19:38:49.390 回答