Cdnjs: 建议 - 发布库下载统计/分析数字和图表

创建于 2013-03-22  ·  36评论  ·  资料来源: cdnjs/cdnjs

CDNJS 是否会跟踪从其 CDN 中提取单个文件的次数? 如果 CDNJS 做到了这一点,然后有最新的图表和数据表显示每个文件的下载量,那就太棒了。

这将是史诗般的,因为它允许开发人员选择他们希望用户下载的库版本。 开发人员希望选择与他们的代码明显兼容的库版本,但他们也会选择在过去 X 时间内下载次数最多的库版本。

例如,假设最新的 jQuery 刚刚发布并放在 CDNJS 上。 几天过去了,过去一周 jQuery 的统计数据如下所示:

jQuery 1.9.1 = 20,000 次下载
jQuery 1.9.0 = 50,000 次下载
jQuery 1.8.3 = 560,000 次下载
jQuery 1.8.2 = 120,000 次下载
等等...

开发人员可以查看这个并知道他们的访问者更有可能已经缓存了 jQuery 1.8.3 而不是 1.9.1,因为它是新的。 所以只要他们的代码兼容 1.8.3,他们就会选择这个。

而且由于这些数字会随着时间的推移而变化,也许一个月后,开发人员回到 CDNJS 并看到现在 1.9.1 的统计数据高于 1.8.3,所以再说一次,只要他的代码是 1.9.1 编译器,他就可以安全地将他的站点切换到使用 1.9.1,因为他的访问者现在更有可能已经缓存了 1.9.1。

这有意义吗? 对我来说,这将非常有用。 CDNJS 的全部意义在于让开发人员共享库和资源。 所以随着时间的推移,随着越来越多的库被添加到 CDNJS 中,并且这些库的版本也越来越多,拥有这样的工具是非常宝贵的,以便开发人员根据哪些库和资源做出明智的决定被分享最多。


想要支持这个问题吗? 悬赏吧! 我们通过Bountysource接受赏金。

Help wanted ⛅️ Waiting for Cloudflare 📒 Documentation

最有用的评论

目前正在等待 Cloudflare 为我们建立一种方法来访问cdnjs.cloudflare.com域的统计信息/日志。 我会在收到更新后发布更新。

所有36条评论

@Jakobud很好的建议杰克。 你绝对正确,这真的很有用,这是一个受欢迎的请求: https :

我们现在正在集思广益解决方案,因此我们很高兴让您参与对话。

已关闭的旧问题 #405 在此处继续对话

标记为高优先级,有人对如何解析几十亿行有任何绝妙的想法吗?

典型的日志文件有多少行? 您是否将日志文件拆分为每天一个或更小? 日志文件是否只是说明下载了http://path/file 的内容? 或者它是否引用了数据库行 id(我假设存储在数据库中的每个文件名的 id)?

每个边缘位置(当前为 23 个)彼此独立处理。

所以我们每天每个边缘位置有一个或多个日志文件,我们
获得了大量的点击量。

2013 年 6 月 28 日星期五,杰克威尔逊写道:

典型的日志文件有多少行? 您是否将日志文件拆分为
一天一个或更小?


直接回复本邮件或在Gi tHub上查看
.

如果您可以发布日志文件的摘录,那将是一个起点。

这方面有什么进展吗? 你们需要任何帮助吗? 我知道可能有很多巨大的日志文件,但我认为这只是一个简单的 python 脚本,它在日志文件中流式传输并将数据保存到数据库或类似的东西。 这将是一个长期运行的过程,但实际上可能不会那么复杂。

仅供参考,我不知道 cdnjs 是否在后端使用 AWS 服务,但这是一篇有趣的文章,可能与此问题非常相关:

http://aws.amazon.com/blogs/aws/all-your-data-fluentd/

它讨论了使用名为 Fluentd 的软件将日志文件更改流式传输到数据存储中。 因此,对于 CDNJS,它可以将库访问日志流式传输到某种可用于显示使用统计数据的使用数据库中。

另外,仅供参考,如果您可以透露有关您的日志记录的详细信息,你们可以找人帮助您解决此问题。 它是如何工作的,文件的存储位置,让我们可以访问一天或几周的日志等......有人可以为您找到解决方案。

给你们的另一个建议,就是公开你的日志。 将它们放在 AWS S3 或其他东西上,并允许任何人获取它们。 我保证有人(或可能是多人)会为您提出分析解决方案。

只是想再次就这个问题伸出援手。 我再说一遍,提供一些示例日志文件,某个地方的某个人会为您整理一个解析器,该解析器将提取库下载统计信息。

@托马斯戴维斯

哦,我们仍然没有统计数据。

为 cdnjs 创建一个 api 服务会很好。 就像是:

api.cdnjs.com/lib/jquery/stats

然后,我们可以使用此服务来获取 cdnjs 网站中的统计信息。 :four_leaf_clover:

来自网站的统计数据很容易,但人们想要来自 cdn 的统计数据,我记得 cloudflare 没有给我们这些信息或访问日志。

抄送@thomasdavis @ryankirkman @terinjokes

我们可以访问日志,但是日志量太大我们需要
找出聚合策略
2015 年 5 月 24 日星期日上午 12:28 Peter Dave Hello [email protected]
写道:

来自网站的统计数据很容易,但人们想要来自 CDN 的统计数据,我记得
cloudflare 没有向我们提供该信息或访问日志。

抄送@thomasdavis https://github.com/thomasdavis @ryankirkman
https://github.com/ryankirkman @terinjokes
https://github.com/terinjokes


直接回复此邮件或在 GitHub 上查看
https://github.com/cdnjs/cdnjs/issues/1078#issuecomment -104988412。

近似的统计数据几乎一样好。 如果日志量有问题,可以对日志进行采样。

那是真实的! 即使是一天的流量 * 30 也会很有趣。

日志现在在哪里? 它们可以以任何形式访问吗? 我认为在某些 S3 存储上转储每日日志是可行的,然后有人可以编写一些解析它们的东西。

我会很高兴编写一个工具来解析日志! 无论如何,我参与了一些统计和可视化项目,所以那会很棒。 :烟火:

就像我之前说的,CDNJS 需要做的就是让日志以某种形式可访问,有人会加紧编写一个很酷的解析器来生成使用情况统计信息。

我们现在在做,日志中的IP地址会很敏感,要小心。

这事有进一步更新吗? 作为另一个愿意编写解析器的人,我把我的帽子扔到了戒指上。

嘿,亲爱的,恐怕不是,还有一些更重要的问题,但会尽力尽快拥有此功能。

顺便说一句,感谢那些想为我们编写解析器的人,如果你不介意,你仍然可以为 cdnjs 的其他部分做出贡献,比如bower自动更新程序或其他东西,谢谢!

关于这一点还有更多更新吗? 已经超过 2 1/2 年了。 你们是否考虑过以某种形式公开访问您的日志?

帮助我们 帮助您!

虽然 ping @thomasdavis @ryankirkman @terinjokes @drewfreyling ...

嘿,所以我知道在#405 上的问题是钱。 日志是通用格式的,但是要拉下 500 万条日志,每天需要花费 300 美元或类似的费用。 (2 1/2 年后,你们每天的点击量可能超过 500 万)。

因此,抛出的解决方案是在 EC2 实例上设置解析。 这将是最好的解决方案。 只要您的 EC2 实例与您的 S3 容器位于同一区域,将日志文件从 S3 传输到您的 EC2 实例就不会产生任何费用。

所以本质上,解决方案是让某种日常任务发生:

  1. EC2 实例启动
  2. 脚本从 S3 容器中提取过去 24 小时的日志
  3. 脚本解析日志
  4. 脚本删除本地日志
  5. 脚本以您想要的任何形式将数据转储到某个数据库中
  6. 脚本终止 EC2 实例

所以这绝对是最低的成本。 您只需为实例处于活动状态的时间付费。 安排一个 EC2 实例每 24 小时开启一次应该不会太难。 而且我很确定您可以以编程方式自行终止 EC2 实例。

只是一个想法。 老实说,弄清楚它并不会太难......

实际上更好的解决方案是使用 AWS Data Pipeline

http://aws.amazon.com/documentation/data-pipeline/

和 AWS Elastic Map Reduce

https://aws.amazon.com/elasticmapreduce/

这些工具完全可以做你们需要做的事情:以经济高效的方式分析数据/日志。

嗨,杰克,

您提出的解决方案非常优雅,但不幸的是我们没有使用
Cloudfront 不再用于托管 CDN。 Cloudflare 是主要网络
提供者。

至于统计解决方案,我们没有很好的答案,但很抱歉杰克。
2015 年 11 月 19 日星期四上午 9:35 Jake Wilson通知@github.com
写道:

实际上更好的解决方案是使用 AWS Data Pipeline

http://aws.amazon.com/documentation/data-pipeline/

和 AWS Elastic Map Reduce

https://aws.amazon.com/elasticmapreduce/

这些工具是为了做你们需要做的事情:分析
以经济高效的方式存储数据/日志。


直接回复此邮件或在 GitHub 上查看
https://github.com/cdnjs/cdnjs/issues/1078#issuecomment -158129912。

@ryankirkman我们可以评估每天所需的磁盘大小,也许我可以找到存储空间。

您是否可以以某种形式、可下载或通过 API 或任何方式访问 Cloudflare 日志? 此外,EC2 转让定价:

从 Internet 传入 Amazon EC2 的数据每 GB 0.00 美元

https://aws.amazon.com/ec2/pricing/

所以我认为这意味着您可以以编程方式拉入 Cloudflare 日志并解析它们或执行任何操作,并且它仍然只会在 EC2 实例处于活动状态时花费您。

看起来这个问题一直停滞不前 - 现在是否有替代/可行的解决方案来确定库使用统计数据或百分比?

以 jQuery 为例 - 作为站点所有者,您关心到达时已缓存所需 jquery 版本的用户的百分比,并且 cdnjs 可以提供的任何统计信息都可以很好地确定这一点。

目前正在等待 Cloudflare 为我们建立一种方法来访问cdnjs.cloudflare.com域的统计信息/日志。 我会在收到更新后发布更新。

从 #6186 中注意到,更深入的统计数据会很有用,例如国家/地区细分。

@dknecht请我们可以使用这个问题来跟踪对cdnjs.cloudflare.com域的进一步统计/日志访问的任何更新。 谢谢 :)

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

lucasRolff picture lucasRolff  ·  4评论

ulyan picture ulyan  ·  6评论

sufuf3 picture sufuf3  ·  3评论

PeterDaveHello picture PeterDaveHello  ·  6评论

ogewan picture ogewan  ·  6评论