Kibana Observability 功能中的 APM UI,在主選單中包含了四個選項:
這四個功能貫串了整體 APM 的使用情境,以下我們將會各別介紹這四個功能的主要說明,以及使用的時機。
Service,是我們在 APM Agent 安裝時,指定的一個設定值,也是代表我們某個應用程式或某個服務的名稱,而 Kibana APM UI 也將 Service 定義成為一個主要的資料檢視的分類方式,讓我們能以 Service 的角度來檢視 Infrastructure 中各服務的狀態。
如上圖在 Services 的 Overview 畫面之中,我們會有以下幾個部份:
Production
環境、Staging
環境、或是我們自己定義的其他環境,進行籂選。tag
來篩選,可以專注在某種身份的會員、或是某種類型的產品…等。在這個畫面預設的排序方式,是照『健康狀態』,把最不健康的排最前面,讓我們優先掌握有問題的服務,而『健康狀態』的判定方式,是依照 Machine Learning 的 anomaly detection (異常偵測) 的功能,所以 ML 的這個功能要設定啟用才會有作用。
當我們點選某一個 Services 後,會進入這個 Service 自己的 Overview (總覽) 畫面,當中包含這個 Server 與效能、執行錯誤直接相關的
注意:這邊我們在查閱的
Metrics
預設是Average
,但有時我們要分析效能狀況時,有時會要去掉極度的數據,這時記得可以用這個功能選擇95th percentile
或是99th percentile
。
至於每個服務細部檢視的畫面,都能再進一步查詢這個服務的 Transactions
、Dependencies
、Errors
、Metrics
、Service Map
、Logs
,這部份可以從上方的 GIF 圖檔的動畫查看。
Traces,讓我們能檢視某一個業務處理從頭到尾的過程,也就是對應到我們先前介紹到的 Transaction (交易),中間的處理過程可能橫跨多個 Services,能讓我們做分散式追縱 (Distributed Tracing),同時也會把相同的 Transaction 給 group 在一起,進行相同行為 Transaction 之間的校能比較與分析。
Traces 的總覽,會是以整體篩選條件底下,所有符合的 Transaction 全部一起排列出來,在這個畫面預設的排序方式,是依照 Impact (影響程度),判定方式是依照最常使用以及反應時間最慢來決定影響的程度。
在 Traces 的列表中,點選其中一筆 Trace 的項目之後,其實就會進入到 Service 細部檢視當中的 Transactions (交易) 的畫面。
在這個畫面中,我們可以分析這個 API 在某段時間 Throughtput 較高時,與前一天、前一週、前一個月的同一段時間相比較是否一樣,也能從 Trace 的 Timeline 當中,查詢 Transaction 底下相關的 Spans,可以看到這個處理橫跨哪些服務,以及每個服務裡面執行的細節,這些細節的處理佔用了多少時間,並且在想要進行進一步調查時,可以透過 Investigate 進入 Elastic Observability 整合好的 Metrics 或是 Logs 的內容進行查看。
這部份列出的,是『服務』或『應用程式』,所使用到的其他元件或是第三方服務,像是資料庫、外部的 HTTP 服務…等,並且讓我們從這些 dependencies 來分析對效能的影響。
在 Dependencies 的細部檢視的部份,讓我們除了能觀察這個 dependency 的效能數據,也會讓我們查看他的 Upstream (上游) 服候的效能數據,能協助我們判斷前後的影響關係,並且再進一步連結到 Service 細部檢視的頁面,進行查詢所影響的 Transaction 是哪些,甚至查詢實際執行的指令為何。
這個 Service Map 的檢視方式,是協助我們能以視覺化的方式,查看整體 Infrastructure 的服務與元件之前的相依關係,能協助我們追縱問題時,更精準的關注在需要注意的路徑上。
可以透過 Service Map 以視覺化的圖形,查看整體 Infrastructure。
在 Abnormal Detection 有開啟的情況下,有問題的服務,會被標示成紅色,可以進一步進入 Machine Learning 頁面查看。
或是可以針對某個服務進入 Dependency 或是 Service 的細部檢視的頁面,進行進一步的分析。
以上是使用 Kibana Observability 中的 APM UI 所提供的功能,裡面的資料,是以 前一篇文章 所介紹的 APM Integration Testing 所產生的示範資料,在了解 Elastic APM 可以做到這些功能之後,下一篇我們將介紹進行自行架設的方式。
查看最新 Elasticsearch 或是 Elastic Stack 教育訓練資訊: https://training.onedoggo.com
歡迎追蹤我的 FB 粉絲頁: 喬叔 - Elastic Stack 技術交流
不論是技術分享的文章、公開線上分享、或是實體課程資訊,都會在粉絲頁通知大家哦!