Prometheus+Grafana構建企業級監控方案

1.prometheus工作原理:

Prometheus將指標收集并存儲為時間序列數據庫(時序數據庫),即指標信息與記錄它的時間戳一起存儲,以及稱為標簽的可選鍵值對。

特性:

具有由指標名稱和鍵/值對識別的時間序列數據的多維數據模型

·PromQL,一種利用此維度的靈活查詢語言

不依賴集中式存儲;單個服務器節點是自治的

時間序列收集通過http上的拉模型進行

通過中間網關支持推送時間序列

通過服務發現或靜態配置發現目標

多種圖形和儀表板支持模式

指標:
指標是通俗意義上的數值測量。時間序列是指記錄隨時間的變化。用戶想要衡量的指標因應用而異。對于Web 服務器,可能是請求時間;對于數據庫,可能是活動連接數或活動查詢數,等等

指標在了解應用程序為何以某種方式工作方面發揮著重要作用。假設您正在運行一個Web 應用程序,并發現它很慢。為了了解應用程序發生了什么,您需要一些信息。例如,當請求數量很高時,應用程序可能會變慢。如果您有請求計數指標,則可以確定原因并增加服務器數量以處理負載。

工作原理:

應用服務通過導出器暴露自己的指標,Prometheus定時去拉取導出器暴露的數據,然后數據會持久化落盤做時序數據庫存儲,客戶端如Grafana會通過PromQL查詢Prometheus中的指標數據。exporter導出器相當于一個Web應用,遵循Prometheus協議,導出器完成兩件事:拿到指標,然后封裝指標。

SpringBoot會自帶一個actuator,相當于導出器的功能,可以暴露監控指標
為了安全考慮,我們通常將監控服務部署在內網,部署架構如下:

2.SpringBoot整合Prometheus示例

1.新建SpringBoot項目并引入監控相關核心依賴

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
<!--        rometheus 注冊表實現,用于將應用的度量指標按照 Prometheus 的格式進行暴露。--><dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId><scope>runtime</scope></dependency>

2.配置application.yml

spring:application:name: spring-boot-prometheus-demo# 暴露所有監控指標
management:endpoints:web:exposure:include: "*"

3.查看指標

查看暴露的指標列表:

localhost:8080/actuator/metrics

查看某一詳細指標(上述路徑+具體指標):

localhost:8080/actuator/metrics/disk.free

刷新頁面,上述監控數據實時變化

查看prometheus格式的數據:

localhost:8080/actuator/prometheus

一條指標的格式:

3.Promethus+Grafana整合實戰整合

1.Docker部署項目

項目打jar包并編寫如下的Dockerfile文件:

# 一個鏡像就是一個小型linux系統
# 基礎運行環境
FROM openjdk:17# 把產品復制到運行環境的linux系統中 /app 目錄下,改名叫 boot.jar
COPY target/*.jar /app/boot.jar# 啟動占用端口
EXPOSE 9090# 應用啟動命令 'java -jar /app/boot.jar';
# CMD 可以被啟動的時候重新修改,、
# ENTRYPOINT(入口),不能被啟動的時候修改
ENTRYPOINT ["java","-jar","/app/boot.jar"]

將項目整體打成壓縮包并上傳到服務器,在服務解壓壓縮包并進入項目目錄

執行指令構建鏡像:

docker build -f Dockerfile -t boot-app:v1.0 .

根據鏡像起服務容器:

docker run -d -p 6379:9090 --name boot boot-app:v1.0

成功從外網訪問監控:

2.配置Prometheus

創建配置存放路徑

在此路徑下創建?prometheus.yml編寫配置內容:

global :
scrape_interval:15 #抓取配置
sevaluation_interval:15s #計算
scrape_configs:-job_name:'prometheus' #抓取自己指標static_configs:-targets:['localhost:9090']-job_name:'bootapp-exporter'metrics_path:'/actuator/prometheus' #指定抓取的路徑static_configs:-targets:['172.20.221.50:9090']# 注意改為服務器私有IP地址labels :appname:'bootapp

啟動prometheus

回到根目錄下創建compose.yaml文件,批量啟動應用:prometheus,grafana

name: prom
services:prometheus:image: prom/prometheuscontainer_name:prometheusrestart: alwaysvolumes -/app/prom/conf/prometheus.yml:/etc/prometheus/prometheus.yml-/etc/localtime:/etc/localtime:roports:-"6379:9090'networks:- backendgrafana :image: grafana/grafanacontainer_name:grafanarestart: alwaysvolumes:-/etc/localtime:/etc/localtime:rodepends_on:- prometheusports:-"3306:3306'networks:- backendnetworks:backendname: backend

批量啟動服務:

docker compose -f compose.yaml up -d

服務啟動,訪問promethus端口,進入promethus監控

登錄進入Grafana登錄頁面

配置promethus數據源

查看某些指標

配置監控面板

主機,數據庫等中間件的監控同理配置

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922391.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第23課:行業解決方案設計

第23課:行業解決方案設計 課程目標 掌握金融、醫療、教育等行業應用 學習領域特定Agent設計 了解行業標準集成 實踐設計行業解決方案 課程內容 23.1 金融行業解決方案 金融Agent系統 class FinancialAgentSystem {constructor() {this.agents =

Go語言快速入門教程(JAVA轉go)——2 環境搭建與入門

安裝go Go官網下載地址&#xff1a;https://golang.org/dl/ 中國區官方鏡像站&#xff08;推薦&#xff09;&#xff1a;https://golang.google.cn/dl/ windows安裝 下載好后選擇安裝路徑即可&#xff0c;安裝完成后&#xff0c;winr 輸入cmd調出命令行窗口&#xff0c;輸入…

ffplay播放pcm

用 ffplay 播放 PCM 裸流時&#xff0c;必須手動告訴它“沒有封裝頭、采樣率、聲道數、采樣格式”四個關鍵點。命令模板如下&#xff1a; ffplay -f <采樣格式> -ar <采樣率> -ac <聲道數> -i <pcm文件>常用組合示例 48 kHz、16 bit、小端、雙聲道 ffp…

【LLM】大模型訓練中的穩定性問題

訓練穩定性問題 &#x1f4cb; 概述 本文檔詳細介紹了在項目中解決訓練穩定性問題的方法、原理分析以及實際應用。涵蓋了梯度裁剪、損失函數優化、數值穩定化處理和學習率調度等關鍵技術。&#x1f6a8; 問題描述 現象: 訓練過程中出現數值不穩定&#xff0c;損失函數波動劇烈 …

【linux系統】6. 基礎開發工具(一)

一. 軟件包管理器 1&#xff09;Linux下安裝軟件的常用方法 1. 源代碼安裝 下載程序的源代碼&#xff0c;本地編譯成二進制文件&#xff0c;拷貝到系統指定路徑下。 2. rpm包安裝 已經編譯好的安裝包&#xff0c;使用rpm對應的指令去安裝&#xff0c;也比較麻煩。 3. 包…

ffplay數據結構分析

struct VideoState 播放器封裝 typedef struct VideoState {SDL_Thread *read_tid; // 讀線程句柄AVInputFormat *iformat; // 指向demuxerint abort_request; // 1時請求退出播放int force_refresh; // 1時刷新畫面&#xff0c;請求立即刷新畫面的意思int paused; …

OpenCV:銀行卡號識別

目錄 一、項目原理與核心技術 二、環境準備與工具包導入 1. 環境依賴 2. 工具包導入 三、自定義工具類 myutils.py 實現 四、主程序核心流程&#xff08;銀行卡識別.py&#xff09; 1. 命令行參數設置 2. 銀行卡類型映射 3. 輔助函數&#xff1a;圖像展示 五、步驟 1…

基于spark的澳洲光伏發電站選址預測

基于spark的澳洲光伏發電站選址預測項目概況 [&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;&#x1f447;] 點這里,查看所有項目 [&#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x1f446;&#x…

Kibana 雙棧網絡(Dual-Stack)支持能力評估

#作者&#xff1a;Unstopabler 文章目錄一&#xff0e;測試目標二&#xff0e;測試環境三&#xff0e;Kibana1、查詢 Kibana pod信息2、查詢Kibana service信息3、Kibana service 設置四&#xff0e;驗證測試1、Kibana 監聽參數設置2、Kibana節點IPv4狀態檢查3、Kibana節點IPv6…

標準CAN幀介紹

標準CAN幀介紹標準CAN&#xff08;Controller Area Network&#xff09;結構1.幀起始&#xff08;SOF-Start Of Frame&#xff09;2.仲裁段&#xff08;Arbitration Field&#xff09;3.控制段&#xff08;Control Field&#xff09;4.數據段&#xff08;Data Field&#xff09…

easyPoi實現動表頭Excel的導入和導出

easyPoi實現動表頭Excel的導入和導出 Maven依賴 !-- EasyPoi 核心依賴 --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.4.0</version></dependency><!-- EasyPoi Web…

瘋狂星期四文案網第67天運營日記

網站運營第67天&#xff0c;點擊觀站&#xff1a; 瘋狂星期四 crazy-thursday.com 全網最全的瘋狂星期四文案網站 運營報告 今日訪問量 今日搜索引擎收錄情況

CAS理解

CAS&#xff08;Compare And Swap&#xff09; 是非阻塞同步的實現原理&#xff0c;它是CPU硬件層面的一種指令&#xff1b; CAS制定操作包含三個參數 內存值&#xff08;內存地址&#xff09;v預期值E新增值N 當CAS指令執行時&#xff0c;當且僅當預期值E和內存值V相同時&…

【SQL】指定日期的產品價格

目錄 題目 分析 代碼 題目 產品數據表: Products ------------------------ | Column Name | Type | ------------------------ | product_id | int | | new_price | int | | change_date | date | ------------------------ (product_id, chang…

《突破Unity+騰訊云聯機瓶頸:多人游戲同步延遲與數據安全的雙維度優化》

在Unity開發的多人聯機游戲中&#xff0c;騰訊云的云服務器&#xff08;CVM&#xff09;、游戲多媒體引擎&#xff08;GME&#xff09;與云數據庫&#xff08;CDB&#xff09;共同構成了聯機體驗的核心支撐。但隨著玩家并發量提升與游戲玩法復雜度增加&#xff0c;“實時同步延…

BisenetV1/2網絡以及模型推理轉換

BisenetV1/2網絡以及模型推理轉換 文章目錄BisenetV1/2網絡以及模型推理轉換1 BiSenetV11.1 Contex Path1.2 Spatial Path1.3 ARM1.4 FFM1.5 backbone2 模型推理代碼流程分析2.1 加載模型2.2 模型推理① 轉換張量② 輸入尺寸調整③ 模型推理④ 輸出尺寸還原⑤ 類別預測⑥ 保存繪…

Android開發-文本輸入

一、EditText 基礎&#xff1a;不僅僅是輸入框EditText 是 TextView 的子類&#xff0c;允許用戶輸入和編輯文本。1. 基本布局<EditTextandroid:id"id/et_username"android:layout_width"match_parent"android:layout_height"wrap_content"an…

數據化存儲菜單,國際化方案

djangoclass Menu(models.Model):parent_id models.BigIntegerField(default0, verbose_name父菜單ID)name models.CharField(max_length50, verbose_name菜單名稱)icon models.CharField(max_length50, blankTrue, nullTrue, verbose_name菜單圖標)path models.CharField(…

SQL-用戶管理與操作權限

在 SQL 中&#xff0c;用戶管理和權限操作是數據庫安全管理的核心組成部分&#xff0c;用于控制 “誰能訪問數據庫” 以及 “能對數據庫做什么”。它們共同保障數據庫的安全性、完整性和合規性。一、用戶管理&#xff1a;控制 “誰能訪問數據庫”用戶管理是指對數據庫用戶的創建…

計算機視覺案例分享之答題卡識別

目錄 一、基本流程 二、代碼實現 1. 導入工具包和定義常量 2. 輔助函數定義 2.1 坐標點排序函數 2.2 透視變換函數 2.3 輪廓排序函數 2.4 圖像顯示函數 3. 主程序處理流程 3.1 圖像預處理 3.2 輪廓檢測與透視變換 3.3 閾值處理與選項檢測 3.4 答案識別與評分 我們…