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

简介: 《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可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
打赏
0
0
0
0
50
分享
相关文章
【够用就好002】外行第一次发布github项目仓库
#deepseek#自学 记录外行学习代码的历程 今天是上传自己的工具代码到github仓库,一直以来是伸手党克隆别人的项目,今天在deepseek的辅导下上传自己的内容。
|
2月前
|
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
220 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
vscode推送项目到github仓库故障解决1
本文介绍了如何优雅解决本地仓库与远程仓库历史记录不一致的问题,并提供避免未来问题的最佳实践。核心在于理解问题根源(如历史记录差异和常见原因),采用推荐的解决方案(先本地初始化再关联远程仓库),并遵循一致的工作流程、团队协作规范及熟悉 Git 命令。通过强制推送或合并无关历史记录等方式处理现有冲突,同时养成良好习惯以预防类似问题。
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
50 1
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
156 3
Dpanel:Star2k,短短时间就被大家称为GitHub开源神器!轻量化Docker面板,还在等什么
如今的软件开发和运维领域,Docker容器技术已经成为一种主流的解决方案,它允许开发者和系统管理员以更高效、更灵活的方式部署和管理应用程序。然而,Docker的命令行界面虽然强大,但对于某些用户来说可能不够直观。今天,我们要介绍的开源项目——dpanel,就是一个轻量化的Docker可视化管理面板,它以其简洁、高效的特点,为用户提供了一个易于操作的界面来管理Docker容器和镜像。
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
PeterCat 是一款开源的智能答疑机器人,能够自动抓取 GitHub 上的文档和 issue 构建知识库,提供对话式答疑服务,帮助开发者和社区维护者高效解决技术问题。
267 7
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
一键部署 200+ 开源Github 2k+ 星星的软件
Websoft9面板是一款基于Web的PaaS/Linux面板,支持在个人服务器上一键部署200多种热门开源应用,适用于个人开发者、中小企业、创业团队、教育机构和技术爱好者。它集成了丰富的开源软件,提供便捷的部署方式、高效的资源利用、良好的可扩展性及低技术门槛,帮助用户快速搭建和管理各类应用。
MaskGCT:登上GitHub趋势榜榜首的TTS开源大模型
近日,香港中文大学(深圳)联手趣丸科技推出了新一代大规模声音克隆TTS模型——MaskGCT。一起看看该模型的一些表现吧!
|
7月前
|
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私
在一次意外中,作者因三年前将测试代码遗忘在GitHub上而遭遇了代码被他人fork的问题。为解决这一危机,作者详细介绍了如何通过GitHub的DMCA下架通知流程安全删除敏感代码,包括处理私人信息和商标侵权的具体步骤。本文不仅提供了实用的操作指南,还强调了及时响应的重要性,帮助读者避免类似风险
179 1
【事故】记一次意外把公司项目放到GitHub并被fork,如何使用DMCA下架政策保障隐私

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等