springboot prometheus 整合

XML 复制代码
 <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
            <version>1.9.0</version>
        </dependency>

application.yml

XML 复制代码
management:
  endpoints:
    web:
      exposure:
        include: "*"
  metrics:
    tags:
      application: ${spring.application.name}
      instance: ${spring.application.instance_id:${random.value}}
      service: ${spring.application.name}
      service-instance-id: ${spring.application.instance_id:${random.value}}
#      http://localhost:8081/actuator/prometheus

案例

java 复制代码
package com.me.stress1.controller;

import cn.hutool.core.date.TimeInterval;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.me.stress1.domain.IdmsUser;
import com.me.stress1.mapper.IdmsUserMapper;
import com.me.stress1.service.IdmsUserService;
import io.micrometer.core.annotation.Timed;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Counter;
import org.apache.ibatis.cursor.Cursor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;

@RestController
public class IndexController {

    private Logger logger = LoggerFactory.getLogger(IndexController.class);

    @Timed("basic.createID")
    @RequestMapping("/generateId")
    public String createID(){

        System.out.println("fffffldlfdlfld");
        logger.info("createID");
        return UUID.randomUUID().toString();
    }


  
    @Autowired
    private MeterRegistry meterRegistry;
    private Counter counter;


    /**
     *
     *  使用  jmeter  进行压力测试使用
     *   默认 单笔   或2笔数据
     *   测试其相应速度
     *   qps 相关指标
     *
     * @param idmsUser
     * @return
     */
    @PostMapping("/add")
    public JSONObject add(@RequestBody List<IdmsUser> idmsUser){
        /**
         *  统计 调用次数
         */
        counter  = meterRegistry.counter("app_requests_method_count","method","com.me.stress1.controller.IndexController.add");

        /**
         * 
         *  业务逻辑
         */
        JSONObject object = new JSONObject();
        object.put("code",200);
        object.put("msg","ok");
        object.put("data",idmsUser);
        counter.increment();
        return object;
    }
   
}

把项目的端口地址配置到 prometheus 配置文件中去 即可实现微服务监控

相关推荐
源码_V_saaskw4 小时前
JAVA校园跑腿校园外卖源码校园外卖小程序校园代买帮忙外卖源码社区外卖源码小程序+公众号+h5
java·开发语言·微信小程序·小程序
源码哥_博纳软云4 小时前
JAVA同城预约服务家政服务美容美发洗车保洁搬家维修家装系统源码小程序+公众号+h5
java·开发语言·微信小程序·小程序
Cc00108524 小时前
【AI学习笔记】用AI生成spring boot + redis
spring boot·笔记·学习·ai编程
红尘客栈24 小时前
Kubernetes 集群调度
java·linux·网络·容器·kubernetes
编程岁月4 小时前
java面试-0203-java集合并发修改异常、快速/安全失败原理、解决方法?
java·开发语言·面试
whltaoin4 小时前
AI 超级智能体全栈项目阶段五:RAG 四大流程详解、最佳实践与调优(基于 Spring AI 实现)
java·人工智能·spring·rag·springai
junnhwan4 小时前
【苍穹外卖笔记】Day05--Redis入门与店铺营业状态设置
java·数据库·redis·笔记·后端·苍穹外卖
thginWalker5 小时前
使用Spring Boot构建Web服务层
spring boot
摇滚侠5 小时前
Spring Boot 3零基础教程,Spring Boot 特性介绍,笔记02
java·spring boot·笔记
Excuse_lighttime5 小时前
只出现一次的数字(位运算算法)
java·数据结构·算法·leetcode·eclipse