監控是應用程式效能管理的重要面向。隨著應用程式規模的擴大,確保它們平穩運行並持續追蹤系統運行狀況變得勢在必行。在微服務、分散式系統和雲端原生應用程式中,監控工具不僅僅是一個附加元件,而且是基礎架構的關鍵部分。
用於監控現代系統的兩種最受歡迎的工具是 Prometheus 和 Grafana。這些工具通常用於收集、儲存和視覺化指標,幫助開發人員和營運團隊偵測問題、分析效能並保持系統高效運作。
為什麼我們需要監控?
監控對於在問題影響使用者之前識別問題至關重要。無論您使用的是基於 Java 的後端、複雜的微服務環境或任何其他系統,持續監控都可以提供以下見解:
應用程式效能:
追蹤關鍵效能指標,例如回應時間、請求和錯誤率。系統健康狀況:
監控伺服器運作狀況、CPU 使用情況、記憶體使用情況和磁碟空間,以確保基礎架構以最佳狀態運作。警報:
為關鍵指標設定閾值和警報,以便在出現問題時通知您。容量規劃:
收集和分析歷史資料可以幫助您規劃應用程式的擴充。
Prometheus 和 Grafana 提供強大的解決方案來監控、視覺化和分析系統和應用程式中的數據。
Grafana 和 Prometheus 簡介
普羅米修斯
Prometheus 是一個開源監控和警報工具包,旨在提高可靠性和可擴展性。它專注於採集時序數據,支援多維數據採集,可以進行強大的查詢和分析。 Prometheus 透過 HTTP 端點從目標收集指標並儲存在時間序列資料庫中。然後可以使用 Prometheus 的查詢語言 PromQL 來查詢這些指標。
格拉法納
Grafana 是一個用於監控和可觀察性的開源平台。它允許用戶可視化來自多個來源的時間序列數據,包括 Prometheus。 Grafana 能夠創建儀表板、設定警報以及與各種資料來源集成,這使其成為最受歡迎的指標視覺化工具之一。
Prometheus 共同收集指標,而 Grafana 以互動且具有視覺吸引力的方式顯示它們。
在 Docker 中運行 Prometheus
在 Docker 中運行 Prometheus 和 Grafana 是一種簡單有效的快速建立監控環境的方法。讓我們從在 Docker 中運行 Prometheus 開始。
第 1 步:在 Docker 中執行 Prometheus
您可以使用以下命令將 Prometheus 作為容器運行:
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
此指令將:
- 啟動一個Prometheus容器。
- 將本機連接埠9090對應到容器的連接埠9090。
- 使用 Docker Hub 上的官方 Prometheus Docker 映像。 您可以透過開啟瀏覽器並導航至 http://localhost:9090/ 來驗證 Prometheus 是否正在執行。
第 2 步:配置 Prometheus
如果需要將 Prometheus 配置為從特定端點(例如 Java 應用程式)抓取指標,則必須調整 Prometheus 設定檔。透過將其安裝到容器中,您可以使用自訂的 prometheus.yml 檔案來執行 Prometheus。這是一個例子:
docker run \ -p 9090:9090 \ -v /prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
這會將本機 prometheus.yml 檔案掛載到容器中。啟動 Prometheus 後,您可以造訪 http://localhost:9090/ 存取 Prometheus 儀表板。
在 Docker 中運行 Grafana
現在 Prometheus 正在運行,添加 Grafana 來視覺化資料是時候了。
第 3 步:在 Docker 中執行 Grafana
Grafana 透過 Docker 部署起來很簡單。執行以下命令啟動 Grafana 容器:
在 Docker 中執行 Grafana
docker run -d -p 3000:3000 grafana/grafana-enterprise
Grafana 運行後,您可以透過 http://localhost:3000/login 存取 Web UI。預設登入憑證是:
- 使用者名稱:admin
- 密碼:admin
第 4 步:連接 Prometheus 和 Grafana
現在 Prometheus 和 Grafana 都在運行,下一步就是連接它們。 Grafana 需要知道從哪裡取得指標。以下是如何在 Grafana 中加入 Prometheus 作為資料來源:
- 登入Grafana。
- 點選左側邊欄的齒輪圖示開啟設定選單。
- 選擇資料來源。
- 點選新增資料來源。
- 選擇Prometheus作為資料來源類型。
- 在 HTTP 部分中,設定您的 Prometheus 實例的 URL(例如,http://172.0.0.1:9090)。
- 點選儲存並測試以確保Grafana能夠成功連接到Prometheus。
建立範例 Java 項目
讓我們建立一個簡單的基於 Java 的項目,向 Prometheus 公開指標。我們將使用 Micrometer,這是一個基於 JVM 的應用程式的指標收集外觀,它可以輕鬆地與 Prometheus 整合。
第 5 步:建立 Java 應用程式
將必要的依賴項新增至您的 pom.xml 檔案:
連接一切。
docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
然後,在您的 Java 應用程式中,公開 Prometheus 可以抓取的端點。例如:
docker run \ -p 9090:9090 \ -v /prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
此設定建立 Prometheus 可以抓取的端點/指標。它公開了 Micrometer 收集的指標,並以 Prometheus 格式提供。
第 6 步:向 Prometheus 公開指標
現在 Java 應用程式正在收集指標,我們需要告訴 Prometheus 從您的應用程式中抓取 /metrics 端點。更新您的 prometheus.yml 設定檔以包含目標:
docker run -d -p 3000:3000 grafana/grafana-enterprise
如果在同一台電腦上執行,請替換為 IP 位址或本機。 Prometheus 現在將從您的 Java 應用程式收集指標。
連結一切
此時,您已經:
- Prometheus 從您的 Java 應用程式中抓取指標。
- Grafana 設定為視覺化工具。
第 7 步:在 Grafana 中建立儀表板
要在 Grafana 中可視化資料:
- 前往 Grafana 中的 儀表板 選項卡。
- 點選新建儀表板。
- 新增面板並選擇Prometheus作為資料來源。
- 寫 PromQL 查詢來擷取指標,例如 http_requests_total.
您現在可以建立一個包含各種面板的儀表板,顯示請求計數、回應時間和錯誤率等指標。
監控對於維持高可用性和效能至關重要。透過 Prometheus 和 Grafana 等工具,您可以輕鬆為 Java 應用程式設定高效的監控解決方案。
以上是Java 中的 Prometheus 和 Grafana 入門的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Java如何緩解平台特定的問題? Java通過JVM和標準庫來實現平台無關性。 1)使用字節碼和JVM抽像操作系統差異;2)標準庫提供跨平台API,如Paths類處理文件路徑,Charset類處理字符編碼;3)實際項目中使用配置文件和多平台測試來優化和調試。

java'splatformentenceenhancesenhancesmicroservicesharchitecture byferingDeploymentFlexible,一致性,可伸縮性和便攜性。 1)DeploymentFlexibilityAllowsibilityAllowsOllowsOllowSorlowsOllowsOllowsOllowSeStorunonAnyPlatformwithajvM.2)penterencyCrossServAccAcrossServAcrossServiCessImplifififiesDeevelopmentandeDe

GraalVM通過三種方式增強了Java的平台獨立性:1.跨語言互操作,允許Java與其他語言無縫互操作;2.獨立的運行時環境,通過GraalVMNativeImage將Java程序編譯成本地可執行文件;3.性能優化,Graal編譯器生成高效的機器碼,提升Java程序的性能和一致性。

效率testjavaapplicationsforplatformcompatibility oftheSesteps:1)setUpautomatedTestingTestingActingAcrossMultPlatFormSusingCitoolSlikeSlikeJenkinSorgithUbactions.2)contuctualtemualtemalualTesteTESTENRETESTINGINREALHARTWARETOLEALHARDOELHARDOLEATOCATCHISSUSESUSEUSENINCIENVIRENTMENTS.3)schictcross.3)schoscross.3)

Java編譯器通過將源代碼轉換為平台無關的字節碼,實現了Java的平台獨立性,使得Java程序可以在任何安裝了JVM的操作系統上運行。

ByteCodeachievesPlatFormIndenceByByByByByByExecutedBoviratualMachine(VM),允許CodetorunonanyplatformwithTheApprepreprepvm.Forexample,Javabytecodecodecodecodecanrunonanydevicewithajvm

Java不能做到100%的平台獨立性,但其平台獨立性通過JVM和字節碼實現,確保代碼在不同平台上運行。具體實現包括:1.編譯成字節碼;2.JVM的解釋執行;3.標準庫的一致性。然而,JVM實現差異、操作系統和硬件差異以及第三方庫的兼容性可能影響其平台獨立性。

Java通過“一次編寫,到處運行”實現平台獨立性,提升代碼可維護性:1.代碼重用性高,減少重複開發;2.維護成本低,只需一處修改;3.團隊協作效率高,方便知識共享。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1
強大的PHP整合開發環境