Skip to content

使用 GRAFANA 、Prometheus 和 OPENTELEMETRY 設置和觀察 Spring Boot 應用程序

原文: SET UP AND OBSERVE A SPRING BOOT APPLICATION WITH GRAFANA CLOUD, PROMETHEUS, AND OPENTELEMETRY

Spring Boot 是一個非常流行的微服務框架,它通過為 Java 開發人員提供一個平台來開始使用可自動配置的生產級 Spring 應用程序,從而顯著簡化了 Web 應用程序的開發。

在本文中,我們將詳細介紹如何觀察 Spring Boot 應用程序,方法是使用 Prometheus 和 OpenTelementry 對其進行檢測,並從 Grafana 中的應用程序收集和關聯日誌、指標和跟踪。

更具體地說,我們將:

  1. 使用 OpenTelemetry 檢測一個簡單的 Spring Boot 應用程序 Hello Observability,並使用 Grafana Agent 將 trace 數據發送到 Grafana。
  2. 自動記錄對應用程序的每個請求,並使用 Grafana Agent 將這些日誌發送到 Grafana。然後將日誌與來自應用程序的跟踪和指標相關聯。
  3. 使用 Prometheus 來檢測應用程序,以便我們可以收集指標,並將指標與利用 Grafana exemplars 跟踪相關聯。

非常令人興奮!讓我先介紹一下非常簡單的 Spring Boot 應用程序 Hello Observability。

Spring Boot 應用程序簡介

Hello Observability 應用程序非常簡單。它主要包含一個 Java 類 HelloObservabilityBootApp,其中包含兩個可以服務 HTTP 請求的方法。

Clone 存儲庫查看代碼,然後構建應用程序和應用程序容器:

$ git clone https://github.com/adamquan/hello-observability.git 
$ cd hello-observability/hello-observability 
$ ./mvnw package 
$ docker build -t hello-observability .

然後,您可以直接運行該應用程序並在此處訪問它:http://localhost:8080/hello。非常簡單的應用程序,確實!

$ java -jar target/*.jar

您也可以使用以下命令在 Docker 容器中運行它,並在此處訪問應用程序:http://localhost:8080/hello

$ docker run -d -p 8080:8080 --name hello-observability hello-observability

使用以下命令停止 docker 容器:

docker stop hello-observability

到目前為止,我們還沒有進行任何工具來收集日誌、指標和跟踪。為此,您必須使用 docker-compose 啟動所有服務。生成和收集日誌、指標和跟踪所需的所有配置均已配置。

現在讓我們在 Docker 中本地運行整個堆棧以查看它的運行情況。整個堆棧包含:

  • The Hello Observability application
  • A simple load runner
  • Prometheus for metrics
  • Grafana Loki for logs
  • Grafana Tempo for traces
  • Grafana Agent to collect logs, metrics, and traces
  • Grafana
cd hello-observability/local 
docker-compose up

所有容器都啟動後,您可以在此處訪問應用程序:http://localhost:8080/hello 和 Grafana:http://localhost:3000。還預加載了一個名為 Hello Observability 的儀表板。

希望這能讓你興奮!在查看儀器詳細信息之前,我們將在接下來快速介紹 Grafana Cloud 和 Grafana Agent。