《Elastic(中国)产品应用实战》——七、使用Elastic Stack洞察GitHub开源项目的开发效能(下)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 《Elastic(中国)产品应用实战》——七、使用Elastic Stack洞察GitHub开源项目的开发效能(下)

更多精彩内容,欢迎观看:

《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)等待命令行日志停止滚动,除了 issuespulls之外,其它分类数据,应该在 分钟级别的就可以完成首次采集。对于数据量大的项目,issuespulls都可能 会耗时一小时,或者更长时间;

7)filebeat采集的滚动日志在命令行里静止的时候ctrl+c结束数据采集

8)Kibana中,进入Discovery点击open菜单,选中对应的查询视图可能 需要先调整一下时间控件的时间设置,例如选择最近一年,观察数据在时间上 的分布,观察采集到了多少条该类数据,将采集到的文档数与在GitHub上该项 目页面上的数据做比对确认。也很可能需要多个采集周期才能追平这类数据的 条数;

9)打开单个文档,观察和熟悉这类数据都有那些字段,思考还有那些是值得分析 的字段可以将其添加到当前的数据表格中对于issuespull数据文档还 需要观察project-age这个实时计算字段的数值它是一个以分钟为单位的计 时器issuepull 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. 定制项目数据分析看板


如果你已经成功的完成了以上所有操作步骤,你的目标项目数据采集也是基本完整 的,你将看到一个类似于下面的数据分析面板。

image.png

11. 修订示例数据显示控件


想要修改某个数据显示控件,可以点击它右上角的齿轮按钮,打开控件编辑菜单选 中“Edit Visualization"选项,进入修订编辑模式。如果你想同时保持着它,可以选 择"clone panel”选项,在克隆的新的控件上修订。

image.png

 

下面是数据显示控件的修订状态。

image.png

操作步骤参考说明:


1)修改数据查询条件;

2)选择数据分析算法;

3)修改控件标签;

4)点击Optioins后进入图例修订界面。


还可以点击日期选择控件查看不同时间条件下的数据分析结果。修订满意后,点击 右上角的 "save and return" 按钮。


12. 用 Lens 创建新数据分析


Kibana中的Lens功能是非常方便易用的数据分析工具,在Dashboard界面中, 点击左上角的"Create visualization”按钮默认就进入了这个分析工具。如下图所示:

image.png

 示例操作说明:


  • 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年的行业调查报告,了解研 发效能的四个维度,并将本项目分析看板用于团队的例会。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
77 3
|
23天前
|
编解码 人工智能 自然语言处理
MaskGCT:登上GitHub趋势榜榜首的TTS开源大模型
近日,香港中文大学(深圳)联手趣丸科技推出了新一代大规模声音克隆TTS模型——MaskGCT。一起看看该模型的一些表现吧!
|
1月前
|
数据采集 应用服务中间件 Go
开源的键鼠共享工具「GitHub 热点速览」
开源的键鼠共享工具「GitHub 热点速览」
|
1月前
|
存储 IDE 开发工具
来咯,他来咯 看GitHub Codespaces 如何帮助缩短开发设置时间
来咯,他来咯 看GitHub Codespaces 如何帮助缩短开发设置时间
24 0
|
3月前
|
SQL JavaScript 前端开发
Github 2024-08-05 开源项目周报 Top15
根据 Github Trendings 的统计,本周(2024年8月5日统计)共有15个项目上榜。以下是根据开发语言汇总的项目数量: - Go 项目:4个 - JavaScript 项目:3个 - Python 项目:3个 - Java 项目:2个 - TypeScript 项目:2个 - C 项目:1个 - Shell 项目:1个 - Dockerfile 项目:1个 - 非开发语言项目:1个
116 2
|
3月前
|
人工智能 Rust JavaScript
Github 2024-08-26 开源项目周报Top15
根据Github Trendings的统计,本周共有15个项目上榜。以下是按开发语言汇总的项目数量:Python项目8个,TypeScript、C++ 和 Rust 项目各2个,Jupyter Notebook、Shell、Swift 和 Dart 项目各1个。其中,RustDesk 是一款用 Rust 编写的开源远程桌面软件,可作为 TeamViewer 的替代品;Whisper 是一个通用的语音识别模型,基于大规模音频数据集训练而成;初学者的生成式人工智能(第2版)则是由微软提供的18门课程,教授构建生成式AI应用所需的知识。
126 1
|
3月前
|
Rust Dart 前端开发
Github 2024-08-19 开源项目周报Top15
根据Github Trendings的统计,本周(2024年8月19日统计)共有15个项目上榜。按开发语言分类,上榜项目数量如下:Python项目最多,有7项;其次是JavaScript和TypeScript,各有3项;Dart有2项;HTML、PowerShell、Clojure和C++各1项。此外,还介绍了多个热门项目,包括Bootstrap 5、RustDesk、ComfyUI、易采集、Penpot等,涵盖了Web开发、远程桌面、自动化测试、设计工具等多个领域。
110 1
|
3月前
|
JavaScript 前端开发 Go
Github 2024-08-12 开源项目周报 Top14
本周Github Trendings共有14个项目上榜,按开发语言汇总如下:Python项目7个,TypeScript项目5个,C项目2个,JavaScript项目2个,Go和Batchfile项目各1个。其中亮点包括开发者职业成长指南、Windows激活工具、ComfyUI图形界面、AFFiNE知识库、易采集可视化爬虫等项目,涵盖多种实用工具和开源平台。
126 1
|
3月前
|
存储 安全 Java
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
在一次意外中,作者因三年前将测试代码遗忘在GitHub上而遭遇了代码被他人fork的问题。为解决这一危机,作者详细介绍了如何通过GitHub的DMCA下架通知流程安全删除敏感代码,包括处理私人信息和商标侵权的具体步骤。本文不仅提供了实用的操作指南,还强调了及时响应的重要性,帮助读者避免类似风险
40 0
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
|
3月前
|
开发者 存储 API
Xamarin 开发者的社区资源概览:从官方文档到GitHub示例,全面探索提升开发技能与解决问题的多元化渠道与实用工具
【8月更文挑战第31天】Xamarin 开发者社区资源概览旨在提升开发效率与解决问题,涵盖官方文档、社区论坛、GitHub 项目等。官方文档详尽,涵盖 Xamarin.Forms 使用、性能优化等;社区论坛供交流心得;GitHub 提供示例代码。此外,第三方博客、视频教程及 Xamarin University 等资源也丰富多样,适合各阶段开发者学习与提升。通过综合利用这些资源,开发者可不断进步,应对技术挑战。
48 0