最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Prometheus + Grafana 構(gòu)建強(qiáng)大的監(jiān)控和數(shù)據(jù)可視化系統(tǒng)(最新推薦)

 更新時(shí)間:2024年05月14日 11:34:02   作者:牽著貓散步的鼠鼠  
Prometheus?是一個(gè)時(shí)間序列數(shù)據(jù)庫(kù),但是,它不僅僅是一個(gè)時(shí)間序列數(shù)據(jù)庫(kù),它涵蓋了可以綁定的整個(gè)生態(tài)系統(tǒng)工具集及其功能,非常適合Kubernetes集群的監(jiān)控,這篇文章主要介紹了Prometheus + Grafana 構(gòu)建強(qiáng)大的監(jiān)控和數(shù)據(jù)可視化系統(tǒng),需要的朋友可以參考下

前言

1. Grafana 是什么

開(kāi)始前首先要問(wèn)一個(gè)問(wèn)題,Grafana 到底是什么。

Grafana 是一個(gè)監(jiān)控儀表系統(tǒng),它是由 Grafana Labs 公司開(kāi)源的的一個(gè)系統(tǒng)監(jiān)測(cè) (System Monitoring) 工具。它可以大大幫助你簡(jiǎn)化監(jiān)控的復(fù)雜度,你只需要提供你需要監(jiān)控的數(shù)據(jù),它就可以幫你生成各種可視化儀表。同時(shí)它還有報(bào)警功能,可以在系統(tǒng)出現(xiàn)問(wèn)題時(shí)通知你。

Grafana 不對(duì)數(shù)據(jù)源作假設(shè),它支持以下各種數(shù)據(jù),也就是說(shuō)如果你的數(shù)據(jù)源是以下任意一種,它都可以幫助生成儀表。同時(shí)在市面上,如果 Grafana 稱第二,那么應(yīng)該沒(méi)有敢稱第一的儀表可視化工具了。因此,如果你搞定了 Grafana,它幾乎是一個(gè)會(huì)陪伴你到各個(gè)公司的一件稱心應(yīng)手的兵器。

2.Prometheus是什么

Prometheus 是一個(gè)時(shí)間序列數(shù)據(jù)庫(kù)。但是,它不僅僅是一個(gè)時(shí)間序列數(shù)據(jù)庫(kù)。它涵蓋了可以綁定的整個(gè)生態(tài)系統(tǒng)工具集及其功能,非常適合Kubernetes集群的監(jiān)控。Prometheus的基本原理是通過(guò)HTTP協(xié)議周期性抓取被監(jiān)控組件的狀態(tài),任意組件只要提供對(duì)應(yīng)的HTTP接口就可以接入監(jiān)控。不需要任何SDK或者其他的集成過(guò)程。這樣做非常適合做虛擬化環(huán)境監(jiān)控系統(tǒng),比如VM、Docker、Kubernetes等。輸出被監(jiān)控組件信息的HTTP接口被叫做exporter 。目前互聯(lián)網(wǎng)公司常用的組件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系統(tǒng)信息(包括磁盤(pán)、內(nèi)存、CPU、網(wǎng)絡(luò)等等)。Promethus有以下特點(diǎn):

  • 支持多維數(shù)據(jù)模型:由度量名和鍵值對(duì)組成的時(shí)間序列數(shù)據(jù)
  • 內(nèi)置時(shí)間序列數(shù)據(jù)庫(kù)TSDB
  • 支持PromQL查詢語(yǔ)言,可以完成非常復(fù)雜的查詢和分析,對(duì)圖表展示和告警非常有意義
  • 支持HTTP的Pull方式采集時(shí)間序列數(shù)據(jù)
  • 支持PushGateway采集瞬時(shí)任務(wù)的數(shù)據(jù)
  • 支持服務(wù)發(fā)現(xiàn)和靜態(tài)配置兩種方式發(fā)現(xiàn)目標(biāo)
  • 支持接入Grafana

3.Grafana與Prometheus之間的關(guān)系

把 車輛 類比為 計(jì)算機(jī)系統(tǒng) 或者一個(gè) 軟件系統(tǒng):Grafana就是儀表盤(pán),它和車輛的速度表、水溫表是一類的,通過(guò)這些表盤(pán)你可以實(shí)時(shí)了解系統(tǒng)運(yùn)行情況。而Prometheus作為一個(gè)時(shí)序數(shù)據(jù)庫(kù),其實(shí)它和大家熟知的Mysql是一類的東西,都是存儲(chǔ)數(shù)據(jù),提供查詢的,它存儲(chǔ)了計(jì)算機(jī)系統(tǒng)在各個(gè)時(shí)間點(diǎn)上的監(jiān)控?cái)?shù)據(jù)。而Grafana儀表盤(pán)上的數(shù)據(jù),就是通過(guò)查詢Prometheus獲取的。

監(jiān)控儀表盤(pán)效果預(yù)覽

監(jiān)控系統(tǒng)搭建

這套監(jiān)控主要用到了 SpringBoot Actuator + Prometheus + Grafana 三個(gè)技術(shù)模塊,輕量可擴(kuò)展。

1.環(huán)境搭建(Docker部署Prometheus和Grafana)

拉取鏡像

docker pull bitnami/prometheus:2.47.2
docker pull grafana/grafana:10.2.0

2.配置grafana

運(yùn)行g(shù)rafana鏡像,拷貝配置文件

docker run--name grafana -d grafana/grafana:10.2.0
mkdir ./root/docker/Grafana/
docker container cp grafana:/etc/grafana/ ./root/docker/Grafana/

grafana.ini配置文件,路徑如下

/root/docker/Grafana/grafana/grafana.ini

修改grafana服務(wù)端口

# The http port  to usehttp_port = 4000

修改grafana服務(wù)的mysql配置

type=mysql
host=你的mysqlip:3306
name=grafana
user=數(shù)據(jù)庫(kù)賬戶
password=數(shù)據(jù)庫(kù)密碼

接下來(lái)配置數(shù)據(jù)源,這里我們使用的是Prometheus數(shù)據(jù)源

在/root/docker/Grafana/grafana/provisioning/datasources目錄下新建配置文件datasource.yml

apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    access: proxy
    url: http://你的Prometheus服務(wù)ip地址:9090
    isDefault: true

3.配置Prometheus

新建配置文件/root/docker/Grafana/prometheus/prometheus.yml

targets參數(shù)為你要監(jiān)控的應(yīng)用的ip地址

global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'x-api-app'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: [ '192.168.1.1:7070' ]

在/root/docker/Grafana目錄下新建docker-compose.yml文件,方便統(tǒng)一啟動(dòng)

version: '1'
# 啟用腳本;docker-compose -f docker-compose.yml up -d
services:
  # 數(shù)據(jù)采集
  prometheus:
    image: bitnami/prometheus:2.47.2
    container_name: prometheus
    restart: always
    ports:
      - 9090:9090
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
  # 監(jiān)控界面
  grafana:
    image: grafana/grafana:10.2.0
    container_name: grafana
    restart: always
    ports:
      - 4000:4000
    depends_on:
      - prometheus
    volumes:
      - ./grafana:/etc/grafana

在/root/docker/Grafana目錄下執(zhí)行compose運(yùn)行指令

docker compose up -d

如果要停止服務(wù),在docker-compose.yml目錄下輸入docker compose stop命令即可

查看是否正常啟動(dòng)

4.springboot應(yīng)用導(dǎo)入

以上我們成功部署了監(jiān)控環(huán)境,接下來(lái)我們會(huì)講述如何在springboot程序中引入監(jiān)控

導(dǎo)入maven依賴

<!-- 監(jiān)控;actuator-上報(bào)、prometheus-采集、grafana-展示 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
</dependency>

actuator、prometheus 是監(jiān)控所需的內(nèi)容,aspectjweaver 是使用 prometheus 添加自定義的埋點(diǎn),而這個(gè)會(huì)用到切面。

編寫(xiě)配置類PrometheusConfiguration啟動(dòng)監(jiān)聽(tīng)服務(wù)

/**
 * @author www.luckysj.top kitie
 * @description 啟動(dòng)監(jiān)聽(tīng)服務(wù)
 * @create 2023/12/17 15:25:15
 */
@EnableAspectJAutoProxy
@Configuration
public class PrometheusConfiguration {
    @Bean
    public CollectorRegistry collectorRegistry() {
        return new CollectorRegistry();
    }
    @Bean
    public PrometheusMeterRegistry prometheusMeterRegistry(PrometheusConfig config, CollectorRegistry collectorRegistry) {
        return new PrometheusMeterRegistry(config, collectorRegistry, Clock.SYSTEM);
    }
    @Bean
    public TimedAspect timedAspect(MeterRegistry registry) {
        return new TimedAspect(registry);
    }
    @Bean
    public CountedAspect countedAspect(MeterRegistry registry) {
        return new CountedAspect(registry);
    }
}

自定義監(jiān)控埋點(diǎn)

在需要監(jiān)控的方法上添加這個(gè)注解,其中value為監(jiān)控埋點(diǎn)名稱,在grafana儀表盤(pán)添加儀表時(shí)可根據(jù)這個(gè)名稱找到相關(guān)的監(jiān)測(cè)值

@Timed(value="chat_completions_http",description="xxxx接口")

5.儀表盤(pán)配置

訪問(wèn)grafana儀表盤(pán),訪問(wèn)地址如下

http://你的Grafana服務(wù)ip:4000

默認(rèn)賬戶密碼均為admin,第一次進(jìn)入需要更改密碼

接下來(lái)我們導(dǎo)入jvm儀表盤(pán)

儀表盤(pán)代碼輸入4701,這是使用較多的jvm儀表盤(pán),他會(huì)根據(jù)代碼自動(dòng)下載對(duì)應(yīng)儀表盤(pán)

點(diǎn)擊load,儀表盤(pán)加載完成,即可進(jìn)入JVM儀表盤(pán)界面了

欸,怎么你的是中文界面?當(dāng)然,這是可以設(shè)置的

6.自定義儀表

最后再講下自定義儀表吧!

進(jìn)入JVM儀表盤(pán),在右上角位置點(diǎn)擊添加可視化

然后會(huì)進(jìn)入到自定義界面

在這里,你可以選擇顯示的數(shù)據(jù),你在springboot那定義的切面數(shù)據(jù)名可以在這里找到,點(diǎn)擊數(shù)據(jù),并點(diǎn)擊右上角的Run queries

然后對(duì)應(yīng)的數(shù)據(jù)圖表的出來(lái)了

在右側(cè)可對(duì)圖表進(jìn)行定制化的樣式設(shè)置

點(diǎn)擊Apply應(yīng)用圖表到儀表盤(pán)

在儀表盤(pán)界面,可對(duì)圖表進(jìn)行拖動(dòng)位置,調(diào)整大小等操作,很方便!

最后,在儀表盤(pán)界面保存設(shè)置(這點(diǎn)很重要,不然功虧一簣)

更后面多細(xì)節(jié)就靠自己挖掘啦

到此這篇關(guān)于Prometheus + Grafana 構(gòu)建強(qiáng)大的監(jiān)控和數(shù)據(jù)可視化系統(tǒng)的文章就介紹到這了,更多相關(guān)Prometheus 數(shù)據(jù)可視化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談vscode中task.json和launch.json的關(guān)系

    淺談vscode中task.json和launch.json的關(guān)系

    本文主要介紹了淺談vscode中task.json和launch.json的關(guān)系,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • 微信支付、支付寶支付等常用第三方支付通道接口手續(xù)費(fèi)對(duì)比

    微信支付、支付寶支付等常用第三方支付通道接口手續(xù)費(fèi)對(duì)比

    微信支付、支付寶等第三方支付,需要和銀聯(lián)、網(wǎng)聯(lián)對(duì)接,有清算機(jī)構(gòu)和銀行的交易處理通道成本。費(fèi)率指支付手續(xù)費(fèi)的費(fèi)率,不同行業(yè)、不同的支付平臺(tái)、不同的支付額度或次數(shù)所對(duì)應(yīng)的通道費(fèi)率是不一樣的。
    2023-01-01
  • ant?design?vue?圖片預(yù)覽組件自定義樣式

    ant?design?vue?圖片預(yù)覽組件自定義樣式

    這篇文章主要為大家介紹了ant?design?vue?圖片預(yù)覽組件自定義樣式方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • vscode添加GIT和SVN的方法示例

    vscode添加GIT和SVN的方法示例

    這篇文章主要介紹了vscode添加GIT和SVN的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 微信支付--簽名錯(cuò)誤問(wèn)題的解決方法

    微信支付--簽名錯(cuò)誤問(wèn)題的解決方法

    這篇文章主要介紹了微信支付--簽名錯(cuò)誤問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • 微信公眾平臺(tái)開(kāi)發(fā)——群發(fā)信息

    微信公眾平臺(tái)開(kāi)發(fā)——群發(fā)信息

    本文主要介紹微信公眾平臺(tái)開(kāi)發(fā)群發(fā)信息,這里整理了詳細(xì)的資料來(lái)說(shuō)明微信公共平臺(tái)群發(fā)信息的流程,有需要的小伙伴可以參考下
    2016-09-09
  • UE、UI、UCD、Interaction Design、UED、UX、HCI、Usability,IA

    UE、UI、UCD、Interaction Design、UED、UX、HCI、Usability,IA

    最近,總是纏綿在UE、UI、UCD、Interaction Design、UED、UX、HCI、Usability,IA等等名詞間,我一邊搜集,一邊整理,現(xiàn)在放在一次統(tǒng)一解釋,以便比較,以正視聽(tīng)。很多地方未必準(zhǔn)確,歡迎提出修改意見(jiàn)。
    2009-04-04
  • vs2019+cmake實(shí)現(xiàn)Linux遠(yuǎn)程開(kāi)發(fā)的方法步驟

    vs2019+cmake實(shí)現(xiàn)Linux遠(yuǎn)程開(kāi)發(fā)的方法步驟

    這篇文章主要介紹了vs2019+cmake實(shí)現(xiàn)Linux遠(yuǎn)程開(kāi)發(fā)的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • OpenCode 安裝 superpowers 完全攻略

    OpenCode 安裝 superpowers 完全攻略

    本文介紹了如何在maccode安裝超級(jí)編程技能superpowers,它讓AI遵循測(cè)試驅(qū)動(dòng)開(kāi)發(fā)、代碼規(guī)范等工程流程,生成高質(zhì)量代碼,文章詳細(xì)講解了maccode安裝、驗(yàn)證、避坑等步驟,并提供了macos、linux、windows等平臺(tái)的安裝指南
    2026-04-04
  • Web Jmeter–接口測(cè)試工具詳解

    Web Jmeter–接口測(cè)試工具詳解

    本文主要介紹Web Jmeter接口測(cè)試工具,這里整理了詳細(xì)的資料來(lái)說(shuō)明Jmeter 的使用,有需要的小伙伴可以參考下
    2016-09-09

最新評(píng)論

黄龙县| 政和县| 新营市| 景德镇市| 赫章县| 额尔古纳市| 菏泽市| 宁远县| 云阳县| 英德市| 奎屯市| 浦北县| 裕民县| 昌都县| 婺源县| 宁德市| 托克托县| 玉林市| 噶尔县| 华阴市| 宁乡县| 沂南县| 玉田县| 乌审旗| 安泽县| 惠水县| 巢湖市| 四平市| 肥西县| 深泽县| 金乡县| 天等县| 黑龙江省| 东莞市| 安达市| 阜新市| 江门市| 永吉县| 沁阳市| 万山特区| 龙南县|