2014 年 12 月 11 日
关注 @hankeTL;DR:我们有一个新的指标API,你现在可以使用。
在过去的九个月中,我们一直有一个指标 API,我们通过它收集每个 pod 的数据,目前仅从 GitHub 中收集。
API
目前,API 提供每个 pod 的 GitHub 指标。提供的格式为 JSON,这也是默认格式。
最好你自己尝试一下。这是一个热门的 pod:http://metrics.cocoapods.org/api/v1/pods/AFNetworking.json
这是一个尚未流行的 pod:http://metrics.cocoapods.org/api/v1/pods/KFData.json
API 模式是,你猜到了:http://metrics.cocoapods.org/api/v1/pods/PODNAME.json
每个 pod 的数据大约每 2 小时更新一次。
要检查指标应用程序的状态,你可以调用:http://metrics.cocoapods.org/api/v1/status
这将告诉你 pod 的总数,以及在 GitHub 上找到的 pod 的数量,以及尝试三次后仍未找到的 pod 的数量。
设计
指标应用程序非常简单。它存在于 Heroku 上,由两部分组成:循环更新程序和重置程序。
更新程序在 Web 应用程序启动时分叉出来。它会一直运行,逐个遍历每个 pod。每秒,它会向 GitHub 查询另一个 pod 的指标数据。目前,所有 pod 大约每两个小时更新一次。
如果找不到 pod,它会将该 pod 标记为未找到一次。如果你的 pod 在 GitHub 上未找到三次(大约 6 小时),它将放弃该 pod。目前有 117 个 pod 在 GitHub 上没有对应的 repo 页面。这是可以的,因为并非每个人都在 GitHub 上或需要在 GitHub 上。
如果找不到 pod,指标是否永远不会再尝试?我们已经考虑到了这一点。重置程序监听 Trunk(你将 pod 推送到该位置)Web 钩子。Trunk Web 钩子系统会 ping 许多 CocoaPods 网站,以通知它们 pod 已更新。如果添加了新 pod,只是新版本或新提交 - 它会 ping 例如指标 Web 应用程序。如果指标应用程序收到 Trunk 应用程序的蝙蝠信号,它会重置 pod 的未找到计数。从那时起,指标将尝试再次在 GitHub 上找到 pod 的指标。
结束语
为什么使用它而不是 GitHub API?你可以通过 pod 的名称访问它,并且它被设计为可扩展的,因此将添加更多激动人心的指标。
我们希望你将 API 用于成功和获利。如果你这样做,请告诉我们。
此外,如果你强烈认为应该包含另一项服务(除了 GitHub),请告知我们。
继续前进并进行测量!