以下为作者观点:

DevOps和 "左移 "心态正影响着后端工程师的工作方式。

你需要监控一个应用程序的运行情况。你需要监控一个应用程序在你的CI/CD管道将其部署到生产中后的表现。这些新的责任包括可观察性和测试,传统上这并不总是后端工程师需要担心的工作。

可观察性工具可以通过检查分布式跟踪来测量分布式系统的内部状态,对于从事分布式系统工作的人来说,跟踪是一种快速增长的、立即有价值的资源。

测试工具帮可以助你了解分布式应用或服务是否通过自动化按照其设计和业务要求执行。人们可以测试不同的服务是否按照预期一起工作(集成测试),应用程序是否从一个动作返回正确的输出(功能测试),复制用户行为(端到端)等等。

所以,越早把可观察性和测试工具整合到你的工作流程中,你的工作就可以更顺畅地开展。在开发过程的早期,对后端服务进行检测,也可以更容易地排除问题,从而发布高质量的代码。

让我们来看看,如今有哪些可以帮助你进行可观察性和测试的开源工具吧!


1.Tracetest

Tracetest是一个基于分布式跟踪的开源测试工具,它使你能够通过在分布式跟踪中断言跨度来测试分布式应用。它允许使用OpenTelemetry仪器代码上生成的跟踪数据来检查和断言应用程序是否具有测试定义所定义的预期行为。

它旨在帮助后端工程师实现可观察性驱动的开发,即后端工程师在开发过程中用分布式跟踪记录他们的服务,以获得高质量的可观察性。

你可以利用基于跟踪的测试,在一个地方针对代码建立、执行和查看测试。Tracetest基于任何使用OpenTelemetry等分布式跟踪的分布式系统自动生成端到端的测试,并与Jaeger、Grafana Tempo、New Relic、Lightstep、Opensearch、Datadog等轻松集成,未来还将有更多的集成计划。

Tracetest是云原生计算基金会(Cloud Native Computing Foundation, 简称CNCF)的一个新成员,并且是100%开源的。

Tracetest的可观察性特点

  • 从已经收集的跟踪数据中获取价值。

  • 与最流行的跟踪数据存储进行开箱即用的集成。

  • 通过添加OpenTelemetry instrumentation,将可观察性融入后端代码。

  • 通过对服务间通信的可见性,找到基础设施中的 "未知数"。

Tracetest测试功能的特点

  • 针对跟踪创建测试,以确保分布式系统按照预期和要求处理微服务之间的请求。

  • 针对响应和分布式跟踪定义断言,确保响应和底层流程都能无误工作。

  • 帮助QA工程师用可视化UI编写有价值的端到端测试。

  • 通过强大的过滤引擎,在多个微服务中重复使用测试和断言。

2.Malabi

Malabi是一个开源的测试框架。通过Malabi,可以在测试运行期间从微服务中收集数据,然后暴露一个端点,对这些数据进行断言,从而在分布式系统上编写集成测试。维护者说Malabi实现了基于跟踪的测试,类似于Tracetest。Malabi使用OpenTelemetry来收集跟踪数据。

当你挑选任何产品或平台--开源、封闭的SaaS网络应用,或任何介于两者之间的产品或平台时,开发速度是很重要的考虑因素。但是,Malabi在一年内没有向GitHub提交过任何东西,这可能预示着如果你遇到问题,可能不能及时得到更多的功能或技术支持。

Malabi的可观察性特点

Malabi在设计时没有考虑到可观察性,这意味着它没有这方面的功能。

Malabi的测试功能

  • 在推送到生产之前,验证分布式系统各部分之间的任何集成。

  • 将一个简单的基于JavaScript的断言库添加到你想要测试的任何微服务中。

3.Prometheus

Prometheus专注于收集指标和启用警报,其中包括可观察性,它使用一个强大的时间序列数据库来存储高分辨率的指标数据,并使用多种模式使得从后端服务中收集的数据可视化。

Prometheus是一个非常受欢迎的开源项目,在GitHub上有46.5万颗星,并获得CNCF的正式毕业资格,对于需要强大的可观察性工具的后端工程师来说,Prometheus所提供的价值无疑得到了大量的社区支持和喜爱。

Prometheus的可观察性特点

  • 存储长期指标数据,用于历史分析,具有高效的时间序列数据库和通过分片和联合的扩展功能。

  • 使用PromQL创建强大的警报,这是一种灵活的查询语言,可以维护维度信息。

  • 通过开源客户端库和集成,将指标或警报推送给可观察性基础设施中的其他工具。

Prometheus的测试功能

由于Prometheus只是一个指标收集和警报工具,它对希望测试其服务的后端开发人员其实没有很大的帮助。

4.Jaeger

Jaeger是一个开源的端到端跟踪工具,旨在帮助开发人员监控分布式环境并排除故障,其目的是简化开发人员调试分布式服务的方式。

Jaeger是完全开源的,该项目始于Uber,Uber发布了源代码,并最终将该项目捐赠给CNCF。

Jaeger的可观察性特点

  • 监控分布式服务之间的交易,以了解基础设施的状况和性能。

  • 通过深入研究导致面向用户的问题的单个事务,进行根本原因分析。

  • 通过发现哪些服务对请求的响应最慢来优化性能和延时。

Jaeger的测试功能

Jaeger是为端到端追踪而设计的,但它没有任何工具来帮助你为后端服务开发测试。

5.Grafana Tempo

Grafana Tempo是一个开源的、高规模的分布式追踪后端,负责收集和存储追踪数据。该项目在AGPLv3许可下是开源的。它由Grafana Labs构建和维护,该公司是其他开源项目的幕后推手,如用于日志的Loki、用于指标数据可视化和警报的Grafana,以及用于存储指标数据的Mimir。它于2020年10月首次宣布,并于2021年开始普遍使用。

Grafana Tempo的可观察性特点

  • 从最流行的开源追踪协议中摄取追踪数据,包括OpenTelmetry、Jaeger和Zipkin。

  • 负担得起的跟踪数据的长期存储,以解锁历史数据趋势和分析。

Grafana Tempo的测试功能

虽然Grafana Tempo帮助在后端服务中实现追踪,但它并没有编写或执行测试的工具。

6.OpenSearch

OpenSearch是一个开源的数据库,用于摄取、搜索、可视化和分析数据。它建立在Apache Lucene之上,Apache Lucene是一个用于索引和搜索的自由软件库,OpenSearch利用它来实现更高级的分析能力,如异常检测、机器学习、全文搜索等等。

OpenSearch诞生于一场开源的争论。在2021年初,Elastic宣布他们将改变Elasticsearch和Kibana项目的许可模式。AWS的回应是将这些项目分别分开为OpenSearch和OpenSearch Dashboards,并采用更宽松的ALv2许可。

OpenSearch的可观察性特点

  • 从OpenTelemetry或Jaeger摄取跟踪数据,这些数据可用于可视化和识别性能问题。

  • 利用社区插件从Prometheus收集可观察性数据,并以丰富的可视化方式定制输出。

  • 过滤、转换、规范化和聚合数据,使分析和可视化更相关,更简单。

OpenSearch测试功能

虽然OpenSearch可以收集指标、跟踪和日志,所有这些都可以用来验证测试,但它没有任何功能来帮助开发人员创建、部署或管理这些测试,使用者需要找到一个独立的工具并将其输出连接到OpenSearch。

7.SigNoz

SigNoz背后的团队将自己描述为企业级观察性平台(如Datadog、New Relic等)的开源替代品。与一些更通用的工具不同,SigNoz专注于应用性能监控(APM),它试图从最终用户体验的角度测量性能,帮助开发人员在真正的用户受到影响之前修复问题。

自2021年1月启动以来,SigNoz项目已经积累了近12k颗GitHub星,并提供了一个由其团队管理的付费(200美元/月)的云端版软件。

SigNoz的可观察性特点

  • 支持OpenTelemetry,可以作为应用程序生成跟踪数据的基础。

  • 为指标、跟踪和日志提供统一的UI,不需要像其他可观察性工具(如Prometheus和Jaeger)之间进行上下文切换以调试和排除问题。

  • Flamegraphs和单个请求跟踪,帮助发现性能问题的根源。

  • 根据日志中的属性建立仪表盘和警报。

  • 快速可视化应用程序中最慢的端点。

SigNoz的测试功能

因为SigNoz是一个纯观察性的工具,它目前没有任何具体的功能来帮助后端开发者了解分布式系统的状况和性能。

8.Postman

Postman与我们刚才介绍的以追踪和观察为重点的工具有所不同。相反,Postman是一个用于构建和使用API的云平台。在Postman上,后端团队可以有一个单一的地方来创建、记录、模拟和测试API,贯穿整个生命周期。

Postman本身不是开源的而是一个封闭的云平台,但该公司有一个既定的开源理念,并维护着一些开源项目,如Newman,用于在CLI上运行和测试Postman集合,或各种编程语言的SDK和代码生成器。作为Postman持久生命力的证明,该公司最近在2021年8月获得了融资,D轮融资2.25亿美元,对该公司的估值为56亿美元。

Postman的可观察性特点

作为一个API开发平台,Postman不提供任何可观察性功能。

Postman的测试功能

  • 在一个集中的位置存储和管理所有API规格、文档、测试用例、度量等。

  • 用一个支持使用HTTP、REST、SOAP、GraphQL和Websockets的复杂请求的客户端来调试和测试API,这些请求可以被捆绑到Postman集合中以便重复使用。

  • 将API生命周期与源码控制、CI/CD管道、API网关和应用性能监控(APM)平台相结合。

总结

介绍了这么多,我试图涵盖这个快速发展的领域中的一些不同种类的主要工具,它们都是GitHub上的免费开源软件。

一个明显的启示是,用分布式跟踪和OpenTelemetry来检测后端代码的巨大价值,宜早不宜迟。许多流行的可观察性和测试工具与OpenTelemetry的收集器或SDK集成,这意味着你可以一次检测并测试多个工具,以找到最适合你所在公司的后端开发的工作流程。

最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

资深开发工程师推荐的8个开源可观察性及测试工具相关推荐

  1. 我是如何在2年内逆袭成为BAT年薪40W的资深开发工程师的?

    坐标:杭州 | 工作时间:2年 | 年薪:40W 毕业院校:普通二本(非计算机专业) 现任职位:BAT某公司资深开发工程师 身边的师弟师妹经常问到:非计算机专业出身,你是在2年内如何逆袭成BAT年薪4 ...

  2. Atitit 工程师程序员技术级别对应表与主要特征 P1--p6 说明 类别 职称 对应技术标志 P5 高级工程师 工程师类 一般四五年 P6 资深开发 工程师类 78年经历 P7 P7

    Atitit 工程师程序员技术级别对应表与主要特征 P1--p6 说明 类别 职称 对应技术标志 P5 高级工程师 工程师类 一般四五年 P6 资深开发 工程师类 78年经历 P7 P7 一般是技术专 ...

  3. Hitchhiker:原创开源API协作测试工具

    原文:Hitchhiker:原创开源API协作测试工具 关于作者: Hitchhiker 是一款开源的 Restful Api 集成测试工具,支持Schedule, 数据对比,压力测试,可以轻松部署到 ...

  4. 开源的压力测试工具 PyLot

    为什么80%的码农都做不了架构师?>>>    一.什么是Pylot: Pylot(www.pylot.org)是一款开源的用以测试 Web Service性能和扩展性的工具,它运行 ...

  5. soapui工具_基于开源的API测试工具!不再为web服务负载测试而发愁

    通过一个可视化.拖拽式的界面,LoadUI允许您实时.交互式地创建.配置和重分配负载测试.在单一测试环境下,LoadUI提供完整的测试覆盖,支持所有标准的协议和技术.它功能强大,能从任意数量的本地和远 ...

  6. 开源网络负载测试工具-基准测试

    译者注:在上一篇<开源网络负载测试工具测评>文章中,我以我微薄的翻译功底向大家展现了Ragnar Lönn先生对当前主流开源负载测试工具的一些看法.Ragnar Lönn先生主要以测试工具 ...

  7. TC工具后台模式_C++资深开发工程师带你深入浅出了解Linux后台开发

    我们知道,Linux 是一个多任务的操作系统,也就是说,在同一时间,系统可以运行多个任务.在带界面的 Linux 发行版下,我们可以很轻松通过鼠标来进行多任务的切换.今天小编就带大家一起来看看资深的C ...

  8. 阿里资深软件测试工程师推荐—混沌工程(Chaos Engineering)初识

    Chaos Engineering is the discipline of experimenting on a distributed system in order to build confi ...

  9. 佳铁怎样传输程序_阿里资深开发工程师合著《Java开发手册》,影响250万程序员附pdf...

    写在前面 <码出高效: Java开发手册> 源于影响了全球250万名工程师的<阿里巴巴Java开发手册),作者静心沉淀,对Java规约内容的来龙去脉进行了全面而彻底的梳理.本书以实战 ...

最新文章

  1. seq2seq nlp 这篇博文的引用相当好
  2. 关于sigma pix的理解
  3. 爬取小说1--高并发
  4. 太阳光是平行光吗_阳光照耀,万物生长——神奇的太阳光,到底是什么?
  5. ORACLE多表查询优化(引)
  6. 算法 --- 归并排序的js实现
  7. Flutter、ReactNative、uniapp对比
  8. 吃鱼可以不挑刺了?华中农业大学发现鳊鱼肌间刺表达基因,可培育“无刺鱼”...
  9. (计算机组成原理)408之外内容补充(非统考考生需要了解|以白中英教材为准)
  10. Android App性能优化十技巧
  11. CIO,马上就没有线下灾备了,不要做最后一个
  12. docker安装sentinel的超简单步骤
  13. Centos 启动盘制作与安装以及遇到的问题
  14. ffplay不能直播red5上的直播流问题解决
  15. 开发类 - Fiddler 中文版 链接手机 进行抓包
  16. 【JS】经典的对联广告代码,JS代码实现
  17. python计算复数模_python 模拟casio复数计算器【施工中】
  18. python学习-第9课
  19. 2021-10-09
  20. 业务流程图绘制方法经验谈(下篇)

热门文章

  1. 从centos裸机到davinci的配置
  2. IntelliJ IDEA使用Project Structure
  3. 云客Drupal源码分析之实体Entity概述
  4. 你应该掌握的 7 种回归模型!
  5. 纽约时报全景爆料 Facebook :混乱和危机
  6. jQuery基础以及下载
  7. 基于SSH航空订票系统
  8. 店盈通:拼多多商家售后规则是什么?有哪些新调整?
  9. 常用linux命令 超级精炼版
  10. Android Studio 报错:No variants found for ‘app‘