天天看點

資深開發工程師推薦的8個開源可觀察性及測試工具1.Tracetest2.Malabi3.Prometheus4.Jaeger5.Grafana Tempo6.OpenSearch7.SigNoz8.Postman 總結 

以下為作者觀點:

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.Tracetest2.Malabi3.Prometheus4.Jaeger5.Grafana Tempo6.OpenSearch7.SigNoz8.Postman 總結 

這些資料,對于【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

資深開發工程師推薦的8個開源可觀察性及測試工具1.Tracetest2.Malabi3.Prometheus4.Jaeger5.Grafana Tempo6.OpenSearch7.SigNoz8.Postman 總結