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

讲解“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日

相关文章

  • Vue引入sass并配置全局变量的方法

    当使用Vue开发项目时,可以通过以下步骤引入Sass并配置全局变量: 安装依赖: 在项目根目录下打开终端,执行以下命令安装所需的依赖: npm install sass-loader node-sass –save-dev 配置webpack: 在项目根目录下找到vue.config.js文件(如果没有则创建一个),并添加以下代码: javascript …

    other 2023年7月29日
    00
  • UEFI开发实战用户交互界面使用说明VFR文件

    这里我给出关于UEFI开发实战用户交互界面使用说明VFR文件的完整攻略。 什么是VFR文件? VFR是Visual Forms Representation的缩写,是一种为UEFI界面开发的预处理器源文件格式。通过VFR文件,UEFI开发人员可以定义界面元素和语言本地化字符串。 如何创建VFR文件? 一般情况下,我们使用文本编辑器(如Notepad++)创建…

    other 2023年6月27日
    00
  • C++利用链表模板类实现简易队列

    首先我们需要了解链表和模板类,然后才能进一步学习如何利用链表模板类实现队列。 链表 链表是一种非常常用的数据结构,它通过“链”把一系列节点串在一起。每个节点包含一个存储数据的值和一个指向下一个节点的指针。链表可以分为单向链表和双向链表,其中单向链表中只能指向下一个节点,而双向链表中可以同时指向上一个和下一个节点。 下面是一个用C++实现单向链表的示例代码: …

    other 2023年6月27日
    00
  • WPS Office Pro2016专业增强版详细安装激活教程(附序列号)

    WPS Office Pro2016专业增强版详细安装激活教程 WPS Office Pro2016专业增强版是一款功能强大的办公软件,在安装和激活过程中需要注意以下几个步骤。 步骤一:下载安装WPS Office Pro2016专业增强版 在官方网站(http://www.wps.cn/)上下载WPS Office Pro2016专业增强版安装包。下载完成…

    other 2023年6月26日
    00
  • iOS 七大手势之轻拍,长按,旋转手势识别器方法

    iOS 七大手势之轻拍、长按、旋转手势识别器方法的完整攻略 本文将为您提供iOS七大手势之轻拍、长按、旋转手势识别器方法的完整攻略,包括手势识别器的定义、手势识别器的使用、手势识别器的示例说明等内容。 手势识别器的定义 手势识别器是iOS中的一种机制,用于识别用户在屏幕上的手势操作。iOS中提供了七种手势识别器,包括轻拍、长按、滑动、捏合、旋转、轻扫和屏幕边…

    other 2023年5月6日
    00
  • 解析鸿蒙轻内核静态内存的使用

    解析鸿蒙轻内核静态内存的使用攻略 鸿蒙轻内核是华为公司开发的一种轻量级操作系统内核,它具有高效、安全和可靠的特点。在使用鸿蒙轻内核时,了解如何使用静态内存是非常重要的。本攻略将详细介绍解析鸿蒙轻内核静态内存的使用方法,并提供两个示例说明。 1. 静态内存的概念 静态内存是在编译时分配的内存,它在程序运行期间一直存在。与动态内存相比,静态内存的分配和释放是在编…

    other 2023年8月1日
    00
  • JavaScript 变量作用域分析

    JavaScript 变量作用域分析攻略 在 JavaScript 中,变量作用域是指变量在代码中可访问的范围。了解变量作用域对于编写可维护和可扩展的代码非常重要。本攻略将详细讲解 JavaScript 变量作用域的概念和使用。 全局作用域 全局作用域是指在代码的任何地方都可以访问的变量。在 JavaScript 中,如果变量在任何函数之外声明,它就是一个全…

    other 2023年8月19日
    00
  • asp.net 编译器错误信息: CS0006: 未能找到元数据文件 该死的.NET

    CS0006是ASP.NET编译器错误之一,它通常与未能找到元数据文件有关。这意味着编译器无法访问它需要的程序集或引用。以下是解决此错误的步骤: 步骤1:检查应用程序文件的配置您可以检查应用程序的配置文件并确保它们引用了正确的程序集。例如,如果您在Web.config中引用了一个程序集,并且此程序集不在GAC中,则可能会引发此错误。您可以按照以下步骤解决此问…

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