首页 > 其他分享 >Prometheus+Grafana 监控搭建

Prometheus+Grafana 监控搭建

时间:2025-01-22 11:43:02浏览次数:1  
标签:seconds create prometheus scrape Grafana Prometheus order 搭建

Prometheus+Grafana 监控搭建

Prometheus 是使用 Golang 开发的,安装和运行都非常简单,只需直接运行可执行文件即可。个人认为,只要理解了 Prometheus 的架构图,整体概念就会变得非常清晰。

Prometheus 做的挺成熟,使用非常简单,主要是想自己记录一下,方便后续记忆。

1、Prometheus 架构图

image

  • Prometheus server : Prometheus 的核心组件,负责收集监控数据并提供 HTTP 接口用于查询和访问这些数据。
  • Alertmanager : 告警模块。
  • Pushgateway : Prometheus 采用 PULL 模式收集数据,这种模式需要在配置文件中预先配置数据源的地址信息。对于某些任务,其地址可能无法提前预知,需要任务主动上报数据。Pushgateway 作为一个中转组件,可以接收这些任务上报的数据,只需在 Prometheus 的配置中添加对 Pushgateway 的配置即可完成数据的抓取。
  • Prometheus web UI : 使用 PromQL 查询提供可视化服务。

2、安装配置 Prometheus

2.1、安装

下载地址 https://prometheus.io/download/

wget --no-check-certificate https://github.com/prometheus/prometheus/releases/download/v3.1.0/prometheus-3.1.0.linux-amd64.tar.gz

解压

tar -zxvf prometheus-3.1.0.linux-amd64.tar.gz

运行

./prometheus-3.1.0.linux-amd64/prometheus

2.2、配置

配置文件在解压目录中:prometheus.yml。内容如下:

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label job=<job_name> to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]

这里先不做任何配置,默认 Prometheus 对自己的数据进行了采集,后续涉及到再进行配置。

2、安装 Grafana

基本上也不用说,下载下来运行就可以了。运行后端口为:3000,首次访问用户名密码均为:admin 。添加数据源为 Prometheus 输入地址信息保存即可。

3、监控 Spring Boot 应用

关于这一块文档说明:https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/actuator.html

3.1、添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
    <version>1.9.17</version>
</dependency>

3.2、配置暴露 endpoints

编辑 application.yml

management:
  endpoints:
    web:
      exposure:
        include: "prometheus"
  metrics:
    tags:
      application: ${spring.application.name}

3.3、对于某些重点接口单独监控

有一些重要交易接口想单独监控指标,那么可以使用 io.micrometer.core.annotation.Timed 注解进行修饰,例如:@Timed("order.create") 那么则会生成对应的指标信息,如下:

# HELP order_create_seconds Duration of HTTP server request handling
# TYPE order_create_seconds summary
order_create_seconds_count{application="learn-springboot",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/order/create",} 1.0
order_create_seconds_sum{application="learn-springboot",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/order/create",} 0.0320229
# HELP order_create_seconds_max Duration of HTTP server request handling
# TYPE order_create_seconds_max gauge
order_create_seconds_max{application="learn-springboot",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/order/create",} 0.0320229

这样就可以在 Grafana 中配置指标进行检测了。例如:

每分钟QPS
rate(http_server_requests_seconds_count[1m])

每分钟平均响应时长
rate(http_server_requests_seconds_sum[1m])/rate(http_server_requests_seconds_count[1m])

3.4、配置 Prometheus PULL 数据

编辑 prometheus.yml 配置文件,加入一下内容:

scrape_configs:
  - job_name: "learn-springboot"
    scrape_interval: 10s
    metrics_path: "/actuator/prometheus"
    static_configs:
      - targets: ["127.0.0.1:8081"]
  • scrape_interval 10s 表示 10s 秒拉取一次数据,如果不配置就会使用 global 中配置项。

标签:seconds,create,prometheus,scrape,Grafana,Prometheus,order,搭建
From: https://www.cnblogs.com/chenglistart/p/18685460

相关文章

  • OpenFeign在SpringCloud项目中的搭建
    1、添加依赖首先,在项目中的pom.xml中添加feign和springCloud相关依赖:<dependencies><!--SpringCloudOpenFeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ope......
  • GD32F303 GCC 环境搭建
    一、引言在嵌入式开发领域,GD32F303微控制器以其出色的性能和丰富的功能被广泛应用。为了充分发挥其潜力,搭建一个高效的开发环境并深入理解项目构建过程至关重要。本文将详细介绍如何基于GCC工具链搭建GD32F303的开发环境,重点聚焦于Makefile文件的编写与解析,助力开发......
  • grafana插件开发
    搭建环境&创建项目npminstall-g@grafana/toolkitgrafana-toolkitplugin:createmy-grafana-plugin插件项目结构一个典型的Grafana插件项目包含以下主要文件和目录:src:包含插件的源代码。module.ts:用于导入和导出插件模块。plugin.ts:插件的主要实现文件,通常包含Pa......
  • 使用 Express 搭建 RESTful API:实现用户管理系统的增删改查
    在现代Web开发中,后端接口的实现通常是基于RESTfulAPI的设计。Express是一个轻量级、灵活的Node.jsWeb框架,非常适合快速搭建RESTfulAPI。本文将通过一个完整的示例,展示如何使用Express和CORS中间件搭建一个支持增删改查(CRUD)操作的用户管理系统。我们将实现以下功......
  • 「youlai-boot」入门篇:从0到1搭建 Java、Spring Boot、Spring Security 企业级权限管
    ......
  • 一文搭建本地镜像仓
    一文搭建本地镜像仓拉取registry镜像dockerpullregistry:2运行registry容器第1种方式:不加持久化dockerrun-d-p5000:5000--restart=always--name=registryregistry:2第2种方式:对初始化配置文件,加持久化#创建数据卷,用于挂载dockercreatevolumeregistryvolume......
  • Kubernetes 中 JVM 监控实战:Prometheus + JMX Exporter 全解析
    背景skywalking采集的jvm要自己在页面选择endpoint来查看,不合符开发者使用习惯前置知识prometheus-operator的四个CRD作用Prometheus:由Operator依据一个自定义资源kind:Prometheus类型中,所描述的内容而部署的PrometheusServer集群,可以将这个自定义资源看作是一......
  • 节省时间与成本:购买源码搭建体育比分网站的好处
    节省开发时间和成本快速上线:购买现成的源码,省去了从零开始开发的时间,可以更快地将网站或应用上线。降低成本:相比于从头开发,购买源码通常成本更低,尤其是对于复杂的功能。减少开发风险成熟的解决方案:现成的源码通常已经经过测试和使用,减少了开发过程中的不确定性和错误。技术......
  • Prometheus +VictoriaMetrics+Consul+Granafa安装部署
    测试环境prometheus-2.54.1.linux-amd64.tar.gz下载地址:https://www.prometheus.io/download/https://github.com/prometheus/prometheus/releases/download/v2.54.1/prometheus-2.54.1.linux-amd64.tar.gznode_exporter-1.8.2.linux-amd64.tar.gz下载地址:https://github.c......
  • 【原创】MAC OS 本地搭建部署 dify
     一、什么是dify?Dify是一个开源的大语言模型(LLM)应用开发平台,融合了后端即服务(BackendasService,BaaS)和LLMOps理念,旨在简化和加速生成式AI应用的创建和部署。它支持多种大型语言模型(如OpenAI的GPT系列、Claude3等),并提供强大的数据集管理功能、可视化的Prompt编排以及......