prometheus监控springboot应用简单使用介绍详解

yizhihongxing

讲解“prometheus监控springboot应用简单使用介绍详解”的完整攻略

1. 准备工作

在使用 Prometheus 监控 Spring Boot 应用之前,需要先引入 Prometheus 相关的依赖。可以使用 Maven 或 Gradle 引入以下依赖:

<!-- Prometheus 客户端依赖 -->
<dependency>
  <groupId>io.prometheus</groupId>
  <artifactId>simpleclient</artifactId>
  <version>0.11.0</version>
</dependency>
<dependency>
  <groupId>io.prometheus</groupId>
  <artifactId>simpleclient_spring_boot</artifactId>
  <version>0.11.0</version>
</dependency>

<!-- Prometheus 数据暴露依赖 -->
<dependency>
  <groupId>io.prometheus</groupId>
  <artifactId>simpleclient_pushgateway</artifactId>
  <version>0.11.0</version>
</dependency>

2. 配置 Spring Boot 应用

在 Spring Boot 应用配置中,需要增加以下配置项:

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    prometheus:
      enabled: true

这里的配置项是开启了 Spring Boot Actuator,默认情况下是关闭的。为了方便测试,暴露了所有的 Actuator 端点。

3. 配置 Prometheus

在 Prometheus 的配置文件 prometheus.yml 中增加以下配置项:

# 配置需要监控的目标
scrape_configs:
- job_name: 'spring-boot-app'
  metrics_path: '/actuator/prometheus'
  static_configs:
  - targets: ['localhost:8080']

metrics_path 指定了 Spring Boot 应用中的 Prometheus 暴露的数据 URL,targets 指定了需要监控的目标。

4. 测试

完成上述配置后,可以启动 Spring Boot 应用和 Prometheus 服务。在 Prometheus 的 Web 界面中输入以下查询语句可以查看监控数据:

http_server_requests_seconds_count{method="GET",status="200"}

这里的查询语句是查询所有 HTTP GET 请求返回码为 200 的数量。

5. 示例说明

下面将演示一个简单的示例,在 Spring Boot 应用中增加一个计数器,每次访问该接口都会自增。具体步骤如下:

5.1. 增加计数器

在 Spring Boot 应用中增加计数器:

package com.example.demo;

import io.prometheus.client.Counter;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class DemoController {

    private final Counter counter = Counter.build()
        .name("demo_counter")
        .help("A simple counter for demo purpose.")
        .register();

    @GetMapping("/")
    @ResponseBody
    public String home() {
        counter.inc();
        return "Hello World!";
    }
}

5.2. 配置 Prometheus

在 Prometheus 的配置文件 prometheus.yml 中增加以下配置项:

# 注册 demo_counter 计数器
- job_name: 'spring-boot-app'
  metrics_path: '/actuator/prometheus'
  static_configs:
  - targets: ['localhost:8080']
  metric_relabel_configs:
  - source_labels: [__name__]
    regex: 'demo_counter'
    action: keep

这里的配置项增加了一个 metric_relabel_configs,用来对监控数据进行筛选,只选择 demo_counter 相关的数据。

5.3. 测试

测试过程同上,通过查询语句 demo_counter 可以查看计数器的值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:prometheus监控springboot应用简单使用介绍详解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • eDiary电子日记本软件如何使用?eDiary图文使用教程

    当您第一次进入eDiary电子日记本软件时,您将看到一个简单而清晰的界面,您可以根据提示快速创建一个新的日记。 创建日记 要创建新的日记,请按照以下步骤操作: 点击主界面左上角的“新建日记”按钮 输入日记标题和内容 点击“保存”按钮以保存新的日记 示例: 假设您想记录一次旅行的体验,那么您可以按照以下步骤创建一篇新的旅行日记: 点击主界面左上角的“新建日记”…

    other 2023年6月27日
    00
  • 详解Java 中的嵌套类与内部类

    ” + outerData); } }} 在上面的示例中,`InnerClass`是一个非静态内部类,它可以访问外部类`OuterClass`的静态和非静态成员`outerData`。可以通过以下方式使用非静态内部类: “`java OuterClass outerObject = new OuterClass(); OuterClass.InnerCla…

    other 2023年7月27日
    00
  • golang学习笔记—rand

    以下是详细讲解“golang学习笔记—rand”的完整攻略,过程中包含两个示例说明: golang学习笔记—rand 在Go语言中,rand包提供了伪随机数生成器,可以用于生成随机数。本攻略将介绍rand包的基本概念、函数和两个示例说明。 基本概念 在开始使用rand包之前,我们需要了解一些基本概念: 伪随机数:伪随数是一种看起来像随机数的数列,但是…

    other 2023年5月10日
    00
  • 深入理解vue中的 slot-scope=“scope“

    当然!下面是关于\”深入理解Vue中的slot-scope=“scope”\”的完整攻略,包含两个示例说明。 … … … … 示例1:使用slot-scope获取父组件数据 <template> <div> <h1>父组件</h1> <child-component> <tem…

    other 2023年8月20日
    00
  • 一文搞懂Spring中的Bean作用域

    一文搞懂Spring中的Bean作用域 在Spring框架中,Bean作用域定义了在应用程序中创建和管理Bean实例的方式。Spring提供了多种Bean作用域,每种作用域都有不同的生命周期和可见性。本文将详细介绍Spring中的Bean作用域,并提供两个示例来说明其用法。 Singleton作用域 Singleton作用域是Spring中默认的作用域,它表…

    other 2023年8月19日
    00
  • 在IDEA使用中directory和package的操作

    当在IntelliJ IDEA中使用directory和package时,可以按照以下步骤进行操作: 创建一个新的directory(目录): 在项目视图中,右键单击想要创建目录的位置。 选择“New”(新建)并选择“Directory”(目录)。 输入目录的名称并按下Enter键。 创建一个新的package(包): 在项目视图中,右键单击想要创建包的目录…

    other 2023年9月7日
    00
  • scatterlist&&dma

    Scatterlist和DMA Scatterlist和DMA是Linux内核中的两个重要概念,它们可以用于高效地传输数据。本攻略将介绍Scatterlist和DMA的特点和方法,包括如何它进行数据传输。 Scatterlist Scatterlist是一种数据结构,它可以用于将数据分散到多个物理内存页面中。Scatterlist通常用于高速缓存和网络设备中…

    other 2023年5月7日
    00
  • C++类中的特殊成员函数示例详解

    下面我来详细讲解“C++类中的特殊成员函数示例详解”的攻略。 一、什么是C++类中的特殊成员函数? 在C++中,类和结构体都有一些特殊的成员函数,也称为特殊成员函数。这些函数在特定情况下会自动创建或者被调用。C++中的特殊成员函数有以下几种: 默认构造函数 拷贝构造函数 拷贝赋值函数 移动构造函数 移动赋值函数 析构函数 二、示例说明 1. 默认构造函数 默…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部