成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Prometheus和Grafana監控Spring Boot應用

開發 前端
本文介紹兩個開源工具:Grafana和Prometheus。Prometheus以時間序列格式收集和存儲指標數據,而Grafana使用Prometheus作為數據源,在儀表板上可視化這些數據。

1 簡介

每個部署到生產環境的應用程序都需要監控方式來評估其性能情況,這可以幫助開發人員判斷應用程序是否按預期運行,是否需要采取措施以達到期望的性能水平。這些數據被稱為應用程序性能指標(APM),現在有許多商業工具如Newrelic、Datadog APM等提供這些功能的SAAS服務。

本文介紹兩個開源工具:Grafana和Prometheus。Prometheus以時間序列格式收集和存儲指標數據,而Grafana使用Prometheus作為數據源,在儀表板上可視化這些數據。

我們從創建一個應用程序并使用Grafana進行監控開始。

2 創建Spring Boot應用程序

訪問https://start.spring.io,創建一個帶有以下依賴項的簡單應用程序。

  • Spring Boot Actuator(運維)
  • Prometheus(可觀測性)
  • Spring Web(可選:僅用于創建一個簡單的REST控制器。)

接下來,需要通過一個管理端點暴露出來,Prometheus將使用該端點以Prometheus可理解的格式收集指標數據。為此,添加以下屬性。

management:
  endpoints:
    web:
      exposure:
        include:
        - prometheus

然后,添加一個簡單的控制器,用于生成一些警告日志。將使用它來監控收到的警告數量。

@RestController
@SpringBootApplication
public class PrometheusIntegrationApplication {

    final static Logger logger = LoggerFactory.getLogger(PrometheusIntegrationApplication.class);

    public static void main(String[] args) {
        SpringApplication.run(PrometheusIntegrationApplication.class, args);
    }

    @GetMapping("/something")
    public ResponseEntity<String> createLogs() {
        logger.warn("Just checking");
        return ResponseEntity.ok().body("All Ok");
    }

有了這些,來啟動應用程序并打開以下URL。

http://localhost:8080/actuator/prometheus

3 理解指標數據

在打開上述端點后,會發現以下格式的一些指標數據:

jvm_memory_used_bytes{area="heap",id="G1 Survivor Space",} 1005592.0

第一部分jvm_memory_used_bytes被稱為標簽(label),而花括號內的字段被稱為屬性(attribute)。每個標簽代表一個特定的指標,屬性提供了一種查詢方式,以獲取值。

接下來,配置Prometheus來讀取這些數據。

4 配置Prometheus

為了啟動Prometheus,使用一個Prometheus Docker鏡像,并提供一些配置來從應用程序中收集指標數據。它通過創建作業來從端點抓取數據。因此,在prometheus.yaml配置文件中定義作業,如下所示。

scrape_configs:
  - job_name: 'Spring Boot Application input'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 2s
    static_configs:
      - targets: ['localhost:8000']
        labels:
          application: "My Spring Boot Application"

在這里,定義了一個作業,每2秒調用應用程序上的管理端點以獲取指標數據。

接下來,創建一個docker-compose文件,用于啟動和運行Prometheus Docker鏡像。

services:
  prometheus:
      image: prom/prometheus:v2.35.0
      network_mode: host
      container_name: prometheus
      restart: unless-stopped
      volumes:
        - ./data/prometheus/config:/etc/prometheus/
      command:
        - "--config.file=/etc/prometheus/prometheus.yaml"

在這里,將配置文件掛載到/etc/prometheus位置,并將配置文件的位置作為命令的參數。為了簡單起見,使用了主機網絡模式,這樣Prometheus可以直接訪問應用程序端點。

有了這些,使用docker compose up啟動docker鏡像,并在瀏覽器上打開URL http://localhost:9090。

現在搜索標簽logback_events_total。

圖片圖片

正如所看到的,可以看到Prometheus在特定時間收集的指標。

如果找不到該標簽,可以通過導航到“Status > Targets”來檢查作業是否正在運行。應該看到狀態為“UP”,如下所示。

圖片圖片

因此,通過這種方式,數據每2秒就會被攝入到Prometheus中。

現在使用Grafana來可視化這些數據。

5 在Grafana中可視化指標

使用Grafana的Docker鏡像,將其添加到docker-compose文件中。

grafana:
    image: grafana/grafana-oss:8.5.2
    pull_policy: always
    network_mode: host
    container_name: grafana
    restart: unless-stopped
    links:
      - prometheus:prometheus
    volumes:
      - ./data/grafana:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
      - GF_SERVER_DOMAIN=localhost

在這里,也使用了主機網絡模式,以便和Grafana可以輕松訪問Prometheus端點。

接下來,打開URL http://localhost:3000,使用用戶名和密碼“admin”訪問Grafana。

6 配置Grafana數據源

首先,添加Prometheus數據源。在"添加數據源"中選擇Prometheus,然后只需添加一個屬性,即Prometheus的URL:http://localhost:9090。

圖片圖片

點擊"保存并測試",現在,創建第一個儀表板。

7 創建Grafana儀表板

點擊左側的"+"圖標,選擇"創建儀表板"。現在,添加第一個面板。

接下來,在指標瀏覽器中查詢一個標簽,例如logback_events_total。

圖片圖片

正如在這里所看到的,我們可以得到各種類型日志的計數。這些計數目前來自應用程序的啟動日志,并以時間序列的形式顯示。

我們僅查看警告日志。為此,需要在屬性中添加level="warn",如下所示。

圖片圖片

剛剛創建了一個簡單的指標可視化面板,用于查看警告日志的數量。

通常,我們希望查看一定時間內錯誤或警告日志的速率。這將幫助我們了解系統是否存在問題。為此,可以使用rate函數來計算一段時間內日志的速率。

因此,在觸發Spring Boot應用程序上的控制器端點后,它生成了一些警告日志,從而得到了這個圖表。

圖片圖片

保存這個面板,完成了。剛剛創建了第一個具有警告日志指標面板的Grafana儀表板。

圖片圖片

現在不需要從頭開始創建儀表板。實際上,有許多社區提供的儀表板可供使用。因此,可以從這里使用針對Spring Boot應用程序的現成儀表板。但是,在嘗試使用時會遇到一些問題,因為數據無法正確地可視化。所以這里對儀表板進行了更新。

圖片圖片

責任編輯:武曉燕 來源: Java學研大本營
相關推薦

2021-07-01 11:29:45

KubernetesGrafana監控

2022-05-18 08:32:05

服務監控Prometheus開源

2022-07-11 09:36:38

SpringJava開發

2022-02-09 20:39:52

Actuator應用監控

2020-11-10 09:19:23

Spring BootJava開發

2020-11-20 08:15:40

Grafana + P

2023-12-27 08:47:41

PrometheusLinux架構

2023-12-28 08:01:17

SpringAPI數據

2018-10-22 15:34:31

Spring Boo監控視化

2020-12-30 05:34:25

監控PrometheusGrafana

2021-02-03 12:47:09

Spring Boot應用監控

2023-04-26 00:01:04

2022-07-29 21:23:54

Grafana微服務

2023-02-28 22:52:47

2021-05-18 07:30:36

開發Spring Boot日志

2018-06-27 14:50:06

Cloud StudiSpring Boot應用

2023-10-11 09:58:07

2023-07-27 08:53:44

2022-07-08 08:00:31

Prometheus監控

2023-10-09 07:31:25

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区高清在线观看 | 高清国产午夜精品久久久久久 | 91精品久久久久久久 | 色婷婷综合久久久中字幕精品久久 | 天天看天天操 | 综合久久综合久久 | 亚洲精品视频在线观看免费 | 国产精品亚洲精品 | 国产精品一区久久久 | 91pron在线 | 色999日韩 | 中文字幕中文字幕 | 日韩精品a在线观看图片 | av免费看片 | 亚洲成av人片在线观看无码 | 久久中文高清 | 一区二区在线不卡 | 成人依人| 亚洲成人精品 | 国产免费va | 日韩蜜桃视频 | 国产精品成人一区二区 | 日本不卡一区 | 黄色片av | a级毛片毛片免费观看久潮喷 | 婷婷丁香在线视频 | 精品视频在线一区 | 成人激情视频在线播放 | 国产一二区视频 | 精品一区二区免费视频 | 少妇特黄a一区二区三区88av | 羞羞的视频免费在线观看 | 成人在线一区二区三区 | 视频三区 | 免费精品 | 一区二区三区四区在线视频 | 日本免费一区二区三区四区 | 伊人超碰在线 | 97精品超碰一区二区三区 | av在线播放网站 | 国产日韩欧美激情 |