Jenkins,OpenTelemetry,可觀測性

發布日期:2022/05/13

如果您像大多數組織一樣,那麼會利用 Jenkins 來做很多事情,如部署管線、自動化 API 測試,甚至美化 CRON 作業等。 

您如何深入了解這些不同類型的管線?
•    建立日誌:適合稽核和故障排除,但很難用於長期指標趨勢。
•    時間序列指標:非常適合觀看 Jenkins 執行個體的健康狀況,並識別較長時間的問題。由於屬性很多,不太適合收集特定操作和/或操作步驟的資料。
•    追蹤/應用程式效能管理 (APM):不常見的方法,用於提供每次執行和步驟的詳細瀑布圖。可以一目了然地檢查結果和每個步驟的資料。可將其視為建立日誌詳細資訊和時間序列視覺化的組合。 

隨著 OpenTelemetry 專案和 OpenTelemetry Jenkins 外掛程式 (由 Cyrille Le Clerc 維護) 的出現,在 Jenkins 中進行追蹤和 APM 更簡單了。設定完成後,只要按一下滑鼠就能從 Jenkins 工作切換到整個管線執行的詳細瀑布圖!



 
為什麼我想要來自 Jenkins 的 APM 資料?
結合 OpenTelemetry (OTEL)、Jenkins 和 Splunk APM 的強大功能,您可以利用分散式追蹤的精細度,了解以前在完全控制資料時難以發現的 Jenkins 使用情形。 

建立序列的時間開始拖得很長?快速找出導致 Jenkins 時間異常的版本和步驟。

注意到在整個組織中執行管線所需的時間慢慢增加?透過 Splunk Log Observer 傳送 Jenkins APM 資料,可以發出所有步驟的時間序列指標,並輕鬆看出在所有作業的各個步驟上花費的時間是否增加 (或減少),即使在您的 Jenkins 資料已經不需要 APM 了。 

呼叫外部服務的時間是否比平均時間長?也許 git checkout 指令花費的時間比平均時間長,或者是特定 API 的回應逐漸變慢。Splunk APM 的 Tag Spotlight 可以透過 P50、P90 和 P99 數值幫助視覺化管線中呼叫外部服務時間較久的呼叫。

想知道其他團隊的版本何時發生會影響您的服務的狀況?在他們的部署中安裝偵測器,並在您的儀表板上放置一個事件標記,以快速掌握他們的部署是否影響了您的服務效能。

APM (或對歷史趨勢的分散式追蹤) 是了解特定程序在整個生命週期中發生哪些互動的強大工具;在此指的是 Jenkins 部署。它不僅會為您提供一個漂亮的瀑布圖,顯示 Jenkins 部署每個步驟所花費的時間,還能提供額外的資料,以便與常見的時間序列指標和傳統版本日誌進行彙整。貴組織的各部門都能從 Jenkins 追蹤資料獲益:
1.    IT 營運/支援分析人員:作為 IT 營運團隊的成員 (或負責人),我希望獲得重要服務的最新版本資訊,以便在最近的部署導致服務中斷或與其有關時通知軟體團隊。 
2.    開發營運人員 (DevOps)/網站可靠性工程師 (SRE):作為開發營運人員或 SRE 團隊的成員 (或負責人),我需要確保服務是健康的,若否,就必須快速追查原因。讓相關負責人了解問題因部署應用程式和基礎架構而引發的能力,可幫助他們改進軟體開發和部署實務,從而改善整體的平均偵測時間 (MTTD)。
3.    軟體開發人員:作為軟體開發團隊的成員 (或負責人),我想在客戶受到影響之前就知道我的軟體或上游服務的最近部署是否有問題,而且無須在不同的工具和 UI 介面之間切換。
4.    持續整合/持續交付:作為負責持續整合/持續交付 (CI/CD) 解決方案的團隊成員 (或負責人),我想了解我們的 CI/CD 管線為何以及在何處變慢,以及如何盡快解決問題以快速改進提供改開發營運、SRE 和軟體開發團隊的 CI/CD 服務。 

借助 Jenkins,Splunk APM 可以在一個地方快速解決這些問題,而無須受困於多種工具。您無需使用多種工具,也無須在 Jenkins、日誌記錄和監控資料的各種介面切換,就能了解發生了什麼問題。 


安裝:如何開始
若要開始安裝,請快速查看 Github 儲存庫,了解 OpenTelemetry 收集器的設定範例、文件和 2 個 Splunk Observability Cloud Dashboard 匯出設定,即可開始上手。透過這些工件和 OpenTelemetry 收集器,您能夠快速為 IT 營運、CI/CD 團隊和開發營運人員提供更詳細的 Jenkins 深入資訊。 
 


圖 1-1使用 Jenkins APM 資料取得詳細的 Jenkins 管線指標


立即即用的儀表板
本文中連結的 Github 儲存庫包括兩個儀表板,目的是幫助您了解特定的 Jenkins 管線以及整體 Jenkins 健康狀況。它們可以直接使用,也可以用來改成您自訂的部署儀表板。

Github 儲存庫中還提供安裝偵測器以通知您部署失敗的說明和 SignalFlow 程式。這種偵測器不僅能讓您了解部署何時出現問題,還能知道您使用的上游服務何時部署失敗 (或成功) 而導致問題。在儀表板上顯示這類事件有助於以更少工具提供更多資訊。

您現在如何獲得這些見解?需要付出多少努力?


 
圖 1-2 Jenkins 整體健康情況:一目了然地觀察有用 Jenkins 代理程式、版本序列,甚至是詳細的步驟指標 (使用 Log Observer)。


未來
OpenTelemetry、APM 和基礎架構監控都是不可或缺的工具,對於了解您的服務狀態非常重要,但到目前為止它們都還是分開的。藉由將它們結合在一個工具中,您將更快地看到部署效果,了解 Jenkins 的效能,並能快速通知團隊有關本身或其他與軟體建置與版本相關的服務的問題。未來還將不止於此!這些對 Jenkins 的額外見解有助於獲得指標以外的資訊,以便更為了解開發營運對組織造成的影響。

Jenkins 和開發營運研究與評估是最佳的開發營運夥伴

開發營運研究與評估 (DORA) 指標解決了在評估開發營運活動和效能時的一系列基本問題。與 DORA 相關且可能受惠或需要額外 Jenkins 相關內容的四個關鍵指標是:
•    部署頻率:您多常使用 Jenkins 部署程式碼?或許只要多花一些工夫,您就可以找到並回報這些資料。但是,如果每個組織、團隊或服務的儀表板都能利用 Jenkins 發出的 APM 或 Log Observer 資料在圖表中顯示這個數字有多好。
•    改版失敗率:伴隨著部署頻率增加的改版失敗率。類似於我們熟悉的錯誤率監控指標,您可以利用 Jenkins APM 資料快速視覺化不同等級的組織複雜度的改版失敗率。在判斷與安排改進軟體交付和部署相關的開發營運工作時,這項指標非常有用。
•    改版的前置期:了解何時部署,是進行改版需要多少開發時間 (確定從工單開始到最終部署到生產環境中) 的關鍵要素 。使用 Observability Cloud 中的 Jenkins 資料以及來自其他軟體 (如 Jira 和 Github) 的一些額外訊號,您就可以建立一套從工單、開發到部署的可追蹤流程。
•    復原時間:DORA 的最後一塊拼圖,與它以可觀察性為重點的平均復原時間 (MTTR) 元件有關。若要了解復原時間,需要 Jenkins 指標來了解部署何時出現重大改版,以及修正最終部署到生產環境的時間
 
下一步
利用您的新 Jenkins 指標和 APM 資料,開始檢查管線、評估部署,並將您的開發營運魔法推向極限!

想快速開始了解您的 Jenkins 部署嗎?請註冊並開始免費試用 Splunk Observability Cloud 產品套件!
________________________________________
這篇文章由 Splunk 可觀察性現場解決方案工程師 Jeremy Hicks 撰寫,並感謝:Splunk 的 Doug Erkkila、Adam Schalock、Todd DeCapua、Tom Martin、Marie Duran 和 Joel Schoenberg。

 
作者
Jeremy Hicks
Jeremy Hicks 是多家財星 500 大 (Fortune 500) 電子商務公司的可觀察性推廣大使和 SRE 專家。他對監控、韌性工程、雲端運算和開發營運實務極具熱情,為可觀察性領域提供了獨特的觀點。

 

返回上一頁