内容简介:这周很值得纪念,首先是刚刚在开头稍微为这一个月发生的事情做了个小总结。接下来说一下本次的重点,也就是目前先推出了 4 种呼声较高的 API,后续可能还会有其他 API 被添加进来。
前言
这周很值得纪念,首先是 goproxy.cn 已缓存的模块版本总数突破了 一百万 ,这甚至比起 Go 官方的 proxy.golang.org 已缓存的还要多出不少。其次是 goproxy.cn 的日访问量已稳定在 千万级 ,正在朝着亿级进发,目前这在国内我了解到的别的几个同类服务中是最多的了。另外尤为重要的一点是,经过我们的不懈努力,甚至付出了两次事故的代价(详见: status.goproxy.cn ),我们终于使得 goproxy.cn 达到了 零错误率 !现在的 goproxy.cn 可以说是很稳的了,大家可以放心使用。
刚刚在开头稍微为这一个月发生的事情做了个小总结。接下来说一下本次的重点,也就是 goproxy.cn 推出了 Go 模块代理世界中的 首个 统计数据 API(文档详见: goproxy.cn/stats ),这是个原本计划在二月底就发布的特性。统计数据 API 其实很早就开发完了(几个月前就基本完工了),但却迟迟未发布,主要原因是跟我们前一阵子在探索零错误率相关,我们想在一个完美的时间点把它介绍给大家。这一阵子有很多大佬催过我,比如光无闻大哥一人就已经催过我很多次了……在这里统一道个歉……当然,迟到总比不到好,让大家久等了!
目前先推出了 4 种呼声较高的 API,后续可能还会有其他 API 被添加进来。
注意:目前 goproxy.cn 的统计数据 API 所展示的只是最近三个月的数据。
API:获取服务摘要
首先是一个用于获取服务摘要信息的 API,通过调用这个 API 你可以获取到 goproxy.cn 中诸如所有模块版本的总尺寸和总数等信息。
获取服务摘要 API 的 URL 是固定的,没有路径参数: goproxy.cn/stats/summary
。
{ "cacher_size": 2663405247231, "module_version_count": 1035421, "module_host_count": 1120, "top_10_module_hosts": [ {"module_host": "github.com", "module_version_count": 921606}, {"module_host": "k8s.io", "module_version_count": 24982}, {"module_host": "gitlab.com", "module_version_count": 13172}, {"module_host": "gopkg.in", "module_version_count": 10479}, {"module_host": "golang.org", "module_version_count": 8000}, {"module_host": "gitee.com", "module_version_count": 4650}, {"module_host": "bitbucket.org", "module_version_count": 4177}, {"module_host": "sigs.k8s.io", "module_version_count": 3280}, {"module_host": "google.golang.org", "module_version_count": 2703}, {"module_host": "istio.io", "module_version_count": 2487} ] }
上面的示例响应中各字段的含义如下:
cacher_size module_version_count module_host_count top_10_module_hosts top_10_module_hosts.module_host top_10_module_hosts.module_version_count
API:获取模块趋势
然后呼声蛮高的一个 API 就是获取服务中的模块趋势,有很多人好奇自己的模块在 goproxy.cn 中的活跃度排名究竟是怎样的。
目前我们提供了三类趋势,它们均只返回一段时间内的最活跃的最多前 1000 个模块:
goproxy.cn/stats/trends/latest goproxy.cn/stats/trends/last-7-days goproxy.cn/stats/trends/last-30-days
[ {"module_path": "golang.org/x/sys", "download_count": 1822180}, {"module_path": "golang.org/x/net", "download_count": 1713080}, {"module_path": "golang.org/x/tools", "download_count": 1503522}, {"module_path": "golang.org/x/crypto", "download_count": 1032270}, {"module_path": "gopkg.in/yaml.v2", "download_count": 578120} ]
上面的示例响应中各字段的含义如下:
module_path download_count
API:获取模块(版本)统计
当然,我们支持获取服务中指定模块(版本)的统计,这也算是统计数据 API 的刚需了。
获取模块(版本)统计的 API 的 URL 格式为 goproxy.cn/stats/<module-path>[@<module-version>]
。如 goproxy.cn/stats/golang.org/x/text
表示获取模块路径为 golang.org/x/text
的模块的所有模块版本的总统计,而 goproxy.cn/stats/golang.org/x/text@v0.3.2
表示获取该模块的 v0.3.2
版本的统计。
{ "download_count": 476705, "last_30_days": [ {"date": "2020-03-25T00:00:00Z", "download_count": 15940}, {"date": "2020-03-24T00:00:00Z", "download_count": 16884}, {"date": "2020-03-23T00:00:00Z", "download_count": 15842}, {"date": "2020-03-22T00:00:00Z", "download_count": 11232}, {"date": "2020-03-21T00:00:00Z", "download_count": 11894}, {"date": "2020-03-20T00:00:00Z", "download_count": 14968}, {"date": "2020-03-19T00:00:00Z", "download_count": 11017}, {"date": "2020-03-18T00:00:00Z", "download_count": 5209}, {"date": "2020-03-17T00:00:00Z", "download_count": 5759}, {"date": "2020-03-16T00:00:00Z", "download_count": 4166}, {"date": "2020-03-15T00:00:00Z", "download_count": 2145}, {"date": "2020-03-14T00:00:00Z", "download_count": 2218}, {"date": "2020-03-13T00:00:00Z", "download_count": 4609}, {"date": "2020-03-12T00:00:00Z", "download_count": 5503}, {"date": "2020-03-11T00:00:00Z", "download_count": 5412}, {"date": "2020-03-10T00:00:00Z", "download_count": 6453}, {"date": "2020-03-09T00:00:00Z", "download_count": 4798}, {"date": "2020-03-08T00:00:00Z", "download_count": 2323}, {"date": "2020-03-07T00:00:00Z", "download_count": 2332}, {"date": "2020-03-06T00:00:00Z", "download_count": 4806}, {"date": "2020-03-05T00:00:00Z", "download_count": 6339}, {"date": "2020-03-04T00:00:00Z", "download_count": 5858}, {"date": "2020-03-03T00:00:00Z", "download_count": 5579}, {"date": "2020-03-02T00:00:00Z", "download_count": 8862}, {"date": "2020-03-01T00:00:00Z", "download_count": 2119}, {"date": "2020-02-29T00:00:00Z", "download_count": 2053}, {"date": "2020-02-28T00:00:00Z", "download_count": 4735}, {"date": "2020-02-27T00:00:00Z", "download_count": 6578}, {"date": "2020-02-26T00:00:00Z", "download_count": 4954}, {"date": "2020-02-25T00:00:00Z", "download_count": 5318} ], "top_10_module_versions": [ {"module_version": "v0.3.2", "download_count": 232795}, {"module_version": "v0.3.0", "download_count": 146009}, {"module_version": "v0.3.1-0.20180807135948-17ff2d5776d2", "download_count": 67096}, {"module_version": "v0.3.1-0.20181227161524-e6919f6577db", "download_count": 11494}, {"module_version": "v0.0.0-20160726164857-2910a502d2bf", "download_count": 11223}, {"module_version": "v0.0.0-20170915032832-14c0d48ead0c", "download_count": 3991}, {"module_version": "v0.3.1-0.20171227012246-e19ae1496984", "download_count": 1128}, {"module_version": "v0.0.0-20170915090833-1cbadb444a80", "download_count": 937}, {"module_version": "v0.3.1-0.20181030141323-6f44c5a2ea40", "download_count": 480}, {"module_version": "v0.3.1", "download_count": 353} ] }
上面的示例响应中各字段的含义如下:
download_count last_30_days last_30_days.date last_30_days.downlaod_count top_10_module_versions top_10_module_versions.module_version top_10_module_versions.download_count
API:获取模块总下载次数徽章
为了使模块作者们能更好地展示自己的模块在 goproxy.cn 的总下载次数,我们支持了 SVG 徽章。
获取模块总下载次数徽章的 API 的 URL 格式为 goproxy.cn/stats/<module-path>/badges/download-count.svg
。
你可以通过下述 Markdown 语法轻松地将指定模块的总下载次数徽章放入项目 README.md
中:
[![goproxy.cn](https://goproxy.cn/stats/<module-path>/badges/download-count.svg)](https://goproxy.cn)
比如 goproxy.cn/stats/golang.org/x/text/badges/download-count.svg :
结语
由于我们是首家支持统计数据 API 的 Go 模块代理,所以我们预留了一段时间的功能探索期,在此期间内我们欢迎大家随时通过 goproxy.cn/stats 页面中提到的联系方式来分享你们的意见建议,一起为咱们中国 Go 语言社区的这个 Go 模块代理打造出一个功能性良好的统计数据 API。
最后再强调一点, goproxy.cn 由七牛运营,服务于 Go 语言社区,它永久免费,也一如既往地不加以任何形式的带宽限制、速率限制,大家可以敞开了用、放心地用。有问题?问;有建议?提。我们一直那里,欢迎随时来访。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API
- 首发特性:goproxy.cn 现已推出首个 Go 模块代理统计数据 API
- [译]使用 Pandas 对 Kaggle 数据集进行统计数据分析
- Ubuntu 公布用户统计数据:中文用户占 4%
- 微信小程序数据统计和错误统计的实现
- 实时数据指标统计对数方案
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
一站式学习C编程
宋劲杉 / 电子工业出版社 / 2011-3 / 59.00元
《一站式学习c编程》有两条线索,一条线索是以linux平台为载体全面深入地介绍c语言的语法和程序的工作原理,另一条线索是介绍程序设计的基本思想和开发调试方法。本书分为两部分:第一部分讲解编程语言和程序设计的基本思想方法,让读者从概念上认识c语言;第二部分结合操作系统和体系结构的知识讲解程序的工作原理,让读者从本质上认识c语言。 《一站式学习c编程》适合做零基础的初学者学习c语言的第一本教材,......一起来看看 《一站式学习C编程》 这本书的介绍吧!