更多精彩内容,欢迎观看:
《Elastic(中国)产品应用实战》——七、使用Elastic Stack洞察GitHub开源项目的开发效能(上):https://developer.aliyun.com/article/1220918?spm=a2c6h.13148508.setting.16.653f4f0elLxYNf
9. 分类采集项目其它数据
在成功采集了项目概况数据以后,我们接下逐步采集和分析其它类型的数据包括, 但不限于下列数据:
- • Contributors:此API会按贡献值倒序的方式返回贡献者清单,数据条数不一 定完整,但是我们最多能关注前30的贡献者,排名靠后的大量贡献者,都是非 活动的,贡献次数为10以内的非关键人员。很可能这个清单是无法访问的,项 目所属公司对其限制了访问权限。其他API也可能有这个问题;
- • Releases:关键重要指标数据,但是不是所有项目都很专业的从一开始就维护 reelase清单,有些项目会记录每个release的下载次数和点赞互动次数,有些 项目不跟踪下载次数;
- • Languages:非关键重要数据;
- • Tags:分关键重要数据;
- • Issues:极其关键且重要数据,对于比较火热的项目数量比较大,多则几万条;
- • pulls: pull rquest也是极其关键且重要数据,值得深度分析。火热项目数据量 较大。
顶级开源项目的全量数据文档数会比较轻易的超过5万条。
参考下面的步骤采集以上每一类数据:
1)从示例filebeat.yml配置文件中,复制一段目标的配置参数段落,粘贴到测试 机的 Filebeat配置文件中;
2)修改 request.url, token 和 fields.project 等关键字段;
3)在浏览器中再次确认修改后的request.url是否能正常访问,排除GitHub网站 服务不好的情况。或者在命令行里使用curl命令测试;
4)运行./filebeat test output测试后端Elasticsearch服务器的服务是否正常;
5)运行./filebeat-e开始当前这个新分类的数据采集;
6)等待命令行日志停止滚动,除了 issues和pulls之外,其它分类数据,应该在 分钟级别的就可以完成首次采集。对于数据量大的项目,issues和pulls都可能 会耗时一小时,或者更长时间;
7)filebeat采集的滚动日志在命令行里静止的时候,按ctrl+c结束数据采集;
8)在Kibana中,进入Discovery,点击open菜单,选中对应的查询视图;可能 需要先调整一下时间控件的时间设置,例如选择最近一年,观察数据在时间上 的分布,观察采集到了多少条该类数据,将采集到的文档数与在GitHub上该项 目页面上的数据做比对确认。也很可能需要多个采集周期才能追平这类数据的 条数;
9)打开单个文档,观察和熟悉这类数据都有那些字段,思考还有那些是值得分析 的字段,可以将其添加到当前的数据表格中;对于issues和pull数据文档,还 需要观察project-age这个实时计算字段的数值,它是一个以分钟为单位的计 时器,issue和pull rquest的状态为closed后就不会变化;
10)尝试用右上角的时间选择控件改变时间分析区间,观察其他时间分析区间的数 据分布特性和数值;
11)返回Dashboard-〉GitHub Project Analysis开源项目分析看板,查看相关类别数据的分析图表,也可能需要微调某数据显示控件。选择不同的时间跨度,浏 览项目数据的完整性。有些项目概况数据是保持不变的。
仔细的重复以上11个步骤若干次,知道你认为目标分析项目的所有必要数据都已经抓取到Elasticsearch中了。如果在这个过程中发生了误操作,或者需要换其它项 目重新分析。你可能会使用在Dev Tools中使用到下面的这些命令。
#查看索引中的文档总数 GET filebeat-7/_count #删除索引 DELETE filebeat-7 #删除导入的扩展字段 DELETE _template/add_gh_fields
你可以随时检查文档总数,判断数据下载的进度。在有必要删除所有数据重新开始 的时候,执行删除索引和模板两个操作。如果你访问GitHub的网络条件有限,网页 打开都比较卡的话,这个数据采集的过程可能会比你想象的长。顺利的话,新手也 应该在两三个小时内完成数据采集。
10. 定制项目数据分析看板
如果你已经成功的完成了以上所有操作步骤,你的目标项目数据采集也是基本完整 的,你将看到一个类似于下面的数据分析面板。
11. 修订示例数据显示控件
想要修改某个数据显示控件,可以点击它右上角的齿轮按钮,打开控件编辑菜单选 中“Edit Visualization"选项,进入修订编辑模式。如果你想同时保持着它,可以选 择"clone panel”选项,在克隆的新的控件上修订。
下面是数据显示控件的修订状态。
操作步骤参考说明:
1)修改数据查询条件;
2)选择数据分析算法;
3)修改控件标签;
4)点击Optioins后进入图例修订界面。
还可以点击日期选择控件查看不同时间条件下的数据分析结果。修订满意后,点击 右上角的 "save and return" 按钮。
12. 用 Lens 创建新数据分析
Kibana中的Lens功能是非常方便易用的数据分析工具,在Dashboard界面中, 点击左上角的"Create visualization”按钮默认就进入了这个分析工具。如下图所示:
示例操作说明:
- 1)配置数据搜索条件:90天里的所有关闭pull request数据;
- 2)搜索目标分析字段:project-age;
- 3)用鼠标将这个字段拖拽到右侧的空白处。Lens会智能的推荐数据显示模式。点 击上方的图形模式下拉菜单,或者从推荐的模式中选择显示效果,锁定目标的 数据可视化显示模式;
- 4)点击竖坐标的数据分析算法,调整数值统计方法;
- 5)分析操作完成之后,点击”save and return “按钮,返回Dashboard,用鼠标 拖拽这个控件的边框,改变它的大小和形状,还可以将其拖拽到合适的位置, 与其它数据形成对照和参考的关系。
Kibana的数据分析功能比较简单易用,但是它的功能比较多,学习提升空间很大。 如果你制作了新的数据分析控件,欢迎将你的控件导出后分享给其他人。请提交到 我的这个 GitHub 项目中 https://github.com/martinliu/sdp-dashboard.git,或者 发邮件给我 zheng.liu@elastic.co。
13. 总结
我们通过本教程学会了 Elastic Stack的一个典型的应用场景,包含数据摄入和分析 的全过程。如果你还想将这个分析结果分享给其他人,或者公司的同事。你可以在 —台云主机上完成以上所有操作,然后将Kibana的访问地址分享给其它人。
你还可以使用Elastic Cloud、或者阿里云ES服务作为后台,Filebeat可以运行在本 地(笔记本),在需要更新的时候,运行本地的Filebeat刷新后台的数据。如果你关 注团队的开发效能,建议你深度阅读学习DORA 2019年的行业调查报告,了解研 发效能的四个维度,并将本项目分析看板用于团队的例会。