通過(guò)應(yīng)用程序的 Aria 操作在可觀測(cè)性中查看開(kāi)放遙測(cè)指標(biāo)和跟蹤數(shù)據(jù)

2022-12-30 14:18:55 來(lái)源:51CTO博客

這篇文章由Travis Keep和Sri Harsha Yayi撰寫。


【資料圖】

現(xiàn)代應(yīng)用程序體系結(jié)構(gòu)很復(fù)雜,通常由數(shù)百個(gè)以不同語(yǔ)言和不同團(tuán)隊(duì)實(shí)現(xiàn)的分布式微服務(wù)組成。作為開(kāi)發(fā)人員、站點(diǎn)可靠性工程師或 DevOps 專業(yè)人員,您負(fù)責(zé)這些復(fù)雜系統(tǒng)的可靠性和性能。借助可觀測(cè)性,可以詢問(wèn)有關(guān)系統(tǒng)的問(wèn)題,并根據(jù)系統(tǒng)生成的遙測(cè)數(shù)據(jù)獲取答案。指標(biāo)數(shù)據(jù)以及應(yīng)用程序的 Aria 操作警報(bào)可以在需要注意時(shí)通知你。分布式跟蹤可以幫助您查明故障的根本原因,并通過(guò)分析跨服務(wù)移動(dòng)的每個(gè)請(qǐng)求來(lái)識(shí)別性能瓶頸。那么,我們?nèi)绾螜z測(cè)我們的服務(wù)以發(fā)出指標(biāo)和跟蹤呢?

應(yīng)用程序的 Aria 操作?支持指標(biāo)和跟蹤的各種檢測(cè)和引入方法。現(xiàn)在這包括對(duì)OpenTelemetry?的支持,這是一個(gè)新的行業(yè)標(biāo)準(zhǔn),它合并了OpenTracing和OpenCensus項(xiàng)目,為監(jiān)控分布式系統(tǒng)提供了一個(gè)完整的遙測(cè)系統(tǒng)。OpenTelemetry 提供了一組 API、SDK 和集成,用于收集和導(dǎo)出分布式微服務(wù)?生成的指標(biāo)、跟蹤和日志,以便可以使用應(yīng)用程序的 Aria 操作等平臺(tái)對(duì)其進(jìn)行監(jiān)視和分析。您可以將應(yīng)用程序配置為使用波前代理將指標(biāo)和跟蹤數(shù)據(jù)發(fā)送到應(yīng)用程序的 Aria 操作。

不熟悉開(kāi)放遙測(cè)?不用擔(dān)心!使用開(kāi)放式遙測(cè),不需要手動(dòng)檢測(cè)。讓我們探討一下如何開(kāi)始使用應(yīng)用程序的 OpenTelemetry 和 Aria 操作,而無(wú)需手動(dòng)檢測(cè)Java 應(yīng)用程序。事實(shí)上,我們可以通過(guò)三個(gè)簡(jiǎn)單的步驟帶您到達(dá)那里。

在我們開(kāi)始之前,有幾個(gè)先決條件:

您需要一個(gè)應(yīng)用程序的 Aria 操作帳戶來(lái)可視化和監(jiān)視應(yīng)用程序運(yùn)行狀況。如果您還沒(méi)有,可以在此處注冊(cè)。碼頭工人Java 11 或更高版本馬文

步驟 1:安裝波前代理

配置應(yīng)用程序的 Aria 操作 URL 和令牌。(如果您已注冊(cè)免費(fèi)試用版,請(qǐng)按以下步驟獲取令牌。

1.確保您具有代理權(quán)限。可以通過(guò)轉(zhuǎn)到??https://{cluster}.wavefront.com/userprofile/groups??來(lái)查看您是否具有代理管理權(quán)限。“代理”旁邊的復(fù)選框表示您擁有權(quán)限。如果您沒(méi)有在“代理”旁邊看到復(fù)選框,則您的管理員需要將此權(quán)限添加到您的用戶帳戶。

2. 如果您注冊(cè)了免費(fèi)試用版,請(qǐng)按照以下步驟獲取 API 令牌。

3. 運(yùn)行以下命令以安裝代理:

??docker run -d \??

??-e WAVEFRONT_URL=https://{CLUSTER}.wavefront.com/api/ \??

??-e WAVEFRONT_TOKEN={TOKEN} \??

??-e JAVA_HEAP_USAGE=512m \??

??-e WAVEFRONT_PROXY_ARGS="-–otlpGrpcListenerPorts 4317" \??

??-p 2878:2878 \??

??-p 4317:4317 \??

??wavefronthq/proxy:11.4??

在這里,將 {CLUSTER} 替換為您的 Wavefront 集群的名稱,并將 {TOKEN} 替換為您生成的 API 令牌。請(qǐng)注意,您至少需要 11.4 版的波前代理才能正確引入 OpenTelemetry 數(shù)據(jù)。

4. 確認(rèn)代理正在運(yùn)行。??docker ps??

如果未列出波前代理,則表示波前代理停止運(yùn)行。如果發(fā)生這種情況,請(qǐng)使用 查看日志并查找問(wèn)題。在步驟 3 中運(yùn)行的 docker 命令會(huì)打印出容器 ID。??docker ps????docker logs ??

步驟 2:運(yùn)行自動(dòng)檢測(cè)的應(yīng)用程序

對(duì)于檢測(cè),您可以使用 OpenTelemetry 提供的 Java 代理,該代理可以附加到任何 Java 應(yīng)用程序。此代理動(dòng)態(tài)注入字節(jié)碼以收集遙測(cè)數(shù)據(jù),開(kāi)發(fā)人員可以避免手動(dòng)檢測(cè)。

1. 克隆 Spring 寵物診所應(yīng)用程序并導(dǎo)航到目錄。

??git clone https://github.com/spring-projects/spring-petclinic.git??

??cd spring-petclinic??

2. 從項(xiàng)目的根目錄運(yùn)行。??./mvnw package??

3. 下載OpenTelemetry Java 代理。

4. 將文件路徑分配給JAVA_AGENT變量。??JAVA_AGENT= ??

5. 連接 Java 代理并啟動(dòng) Spring Petclinic 應(yīng)用程序。

??java -javaagent:$JAVA_AGENT -Dotel.service.name=petclinic -Dotel.resource.attributes=application=demo-petclinic -Dotel.traces.exporter=otlp -Dotel.metrics.exporter=otlp -jar target/*.jar??

6. 導(dǎo)航到??http://localhost:8080??并與 Petclinic 應(yīng)用程序交互以生成遙測(cè)數(shù)據(jù)。

步驟 3:查看指標(biāo)和分布式跟蹤

痕跡

可以通過(guò)以下方式查看分布式跟蹤數(shù)據(jù):

1. 在波前頂部的菜單欄中,轉(zhuǎn)到應(yīng)用程序 -> 跟蹤。

2.您將看到類似于以下內(nèi)容的屏幕:

如果您轉(zhuǎn)到應(yīng)用程序 ->應(yīng)用程序狀態(tài),您將看到類似于以下屏幕截圖的內(nèi)容:

如果您單擊Petclinic并從彈出菜單中選擇“查看服務(wù)儀表板”,您將看到類似于以下屏幕截圖的內(nèi)容。服務(wù)儀表板提供服務(wù)級(jí)別的運(yùn)行狀況概述。

指標(biāo)

當(dāng)從 Wavefront 代理收集的指標(biāo)數(shù)據(jù)發(fā)送到應(yīng)用程序的 Aria 操作時(shí),您可以在應(yīng)用程序的 Aria 操作用戶界面中檢查它們。

例如,查詢 ts(jvm.threads.live) 顯示 Petclinic 應(yīng)用程序中的活動(dòng)線程總數(shù)。

此查詢顯示過(guò)去 15 分鐘內(nèi) HTTP 響應(yīng)時(shí)間的第 85 個(gè)百分位數(shù):cumulativePercentile(85, mavg(15m, deriv(sum(ts(http.server.duration), le))))。在這種情況下,85% 的 HTTP 響應(yīng)時(shí)間為 98.75 毫秒或更短。

注意:此查詢最多可能需要 15 分鐘才能完成。

VMware Aria Applications Operations 的遙測(cè)數(shù)據(jù)功能提供了分布式系統(tǒng)的單一、簡(jiǎn)潔的視圖,但只有檢測(cè)的應(yīng)用程序才能實(shí)現(xiàn)。好消息是,OpenTelemetry提供了一組標(biāo)準(zhǔn)的API和庫(kù)來(lái)檢測(cè)我們的系統(tǒng),它為跨語(yǔ)言和框架自動(dòng)檢測(cè)應(yīng)用程序提供了基礎(chǔ)。

標(biāo)簽: 應(yīng)用程序 遙測(cè)數(shù)據(jù) 屏幕截圖

上一篇:世界今亮點(diǎn)!【技術(shù)分享】無(wú)紙化會(huì)議|智慧教室同屏走RTSP組播還是RTMP?
下一篇:焦點(diǎn)速訊:消除在 KubeAcademy 上使用學(xué)習(xí)路徑學(xué)習(xí) Kubernetes 時(shí)的猜測(cè)