actuator--基础--6.2--端点解析--metrics端点

2023-10-27

actuator–基础–6.2–端点解析–metrics端点


代码位置

https://gitee.com/DanShenGuiZu/learnDemo/tree/master/actuator-learn/actuator01

1、介绍

用于查看当前应用的各类重要度量指标

1.1、查看当前应用的各类重要度量指标

http://127.0.0.1:8080/actuator/metrics

在这里插入图片描述

1.2、各个指标说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、查看某个度量的详细信息

2.1、命令


http://127.0.0.1:8080/actuator/metrics/{MetricName}

2.2、案例

查看JVM最大内存的详细信息

http://127.0.0.1:8080/actuator/metrics/jvm.memory.max

在这里插入图片描述

3、查看 某个度量 某个区域 的详细信息

用query param的方式查看 某个区域 的详细信息

3.1、案例

# 查看tag=id的Metaspace区域 的详细信息
http://127.0.0.1:8080/actuator/metrics/jvm.memory.max?tag=id:Metaspace

3.1.1、查看tag=id的Metaspace区域 的详细信息

在这里插入图片描述

3.1.2、结果

在这里插入图片描述

4、添加自定义统计指标

  1. 除了使用 metrics 端点默认的这些统计指标外,我们还可以实现自定义统计指标。
  2. Metrics 提供 4 种基本的度量类型:Gauge、Counter、Timer、Summary。

4.1、Gauge(计量器)

  1. Gauge(计量器)是最简单的度量类型,只有一个简单的返回值
  2. 用来记录一些对象或者事物的瞬时值。

4.1.1、定义一个计量器

我们在一个 Contoller 使用一个类型为 Gauge 的计数器来记录一个数值

在这里插入图片描述

@RestController
public class GaugeController {
    @GetMapping("/gauge/hello")
    public String hello() {
        Metrics.gauge("user.test.gauge", 3);
        return " gauge hello";
    }
}

4.1.2、执行请求

http://127.0.0.1:8080/gauge/hello

4.1.3、查看自定义指标

# 查看自定义的指标
http://127.0.0.1:8080/actuator/metrics/
# 查看自定义指标的明细
http://127.0.0.1:8080/actuator/metrics/user.test.gauge

在这里插入图片描述在这里插入图片描述

4.2、Counter(计数器)

  1. Counter(计数器)简单理解就是一种只增不减的计数器。
  2. 通常用于记录服务的请求数量、完成的任务数量、错误的发生数量等等。

4.2.1、代码

在这里插入图片描述
在这里插入图片描述


/**
 * 通过http请求,触发这个服务
 */
@RestController
public class MyCounterController {
    
    @Autowired
    MyCounterService myCounterService;
    
    @GetMapping("/counter/hello")
    public String hello() {
        // 触发这个服务
        myCounterService.processCollectResult();
        return " counter hello";
    }
}

/**
 * 自定义一个计数器服务:
 */
@Service
public class MyCounterService {
    static final Counter userCounter = Metrics.counter("user.counter.total", "services", "demo");
    
    // 自定义一个计数器服务
    public void processCollectResult() {
        userCounter.increment(1D);
    }
}

4.2.2、查看自定义的指标

# 查看自定义的指标
http://127.0.0.1:8080/actuator/metrics/ 

在这里插入图片描述

4.2.3、查看自定义的指标明细

# 执行这个请求7次
http://127.0.0.1:8080/counter/hello
 
# 查看自定义的指标明细,可以看到计数次数为7
http://127.0.0.1:8080/actuator/metrics/user.counter.total

在这里插入图片描述

4.3、Timer(计时器)

  1. 可以同时测量一个特定的代码逻辑块的调用(执行)速度和它的时间分布。
  2. 简单来说,就是在调用结束的时间点记录整个调用块执行的总时间
  3. 适用于测量短时间执行的事件的耗时分布,例如消息队列消息的消费速率。

4.3.1、定义一个计时器

在这里插入图片描述

@RestController
public class TimeController {
    
    private Timer timer = Metrics.timer("user.test.timer", "timer", "timersample");
    
    @GetMapping("/time/hello")
    public String hello() {
        // 执行createOrder方法并记录执行时间
        timer.record(() -> createOrder());
        return " time hello";
    }
    
    // 模拟方法耗时
    private void createOrder() {
        try {
            // 耗时3秒
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
        }
    }
}

4.3.2、执行请求

# 请求3次
http://127.0.0.1:8080/time/hello

4.3.3、查看自定义度量的信息

# 查看自定义指标 
http://127.0.0.1:8080/actuator/metrics/
# 查看自定义指标的明细
http://127.0.0.1:8080/actuator/metrics/user.test.timer

在这里插入图片描述
在这里插入图片描述

4.4、Summary(摘要)

  1. Summary(摘要)用于跟踪事件的分布
  2. 它类似于一个计时器,但更一般的情况是,它的大小并不一定是一段时间的测量值。
  3. 在 micrometer 中,对应的类是 DistributionSummary,它的用法有点像 Timer,但是记录的值是需要直接指定,而不是通过测量一个任务的执行时间。

4.4.1、定义一个Summary

@RestController
public class SummaryController {
    
    private DistributionSummary summary = Metrics.summary("user.test.summary", "summary", "summarysample");
    
    @GetMapping("/summary/hello")
    public String hello() {
        // 使用 Summary 来连续记录三次值
        summary.record(2D);
        summary.record(3D);
        summary.record(4D);
        return " summary hello";
    }
}


在这里插入图片描述

4.4.2、查看自定义指标

# 执行请求,这里执行了16次
http://127.0.0.1:8080/summary/hello

# 查看自定义的指标
http://127.0.0.1:8080/actuator/metrics/
# 查看自定义指标的明细
http://127.0.0.1:8080/actuator/metrics/user.test.summary

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

actuator--基础--6.2--端点解析--metrics端点 的相关文章

随机推荐

  • 容器查看与删除

    lcc lcc docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ad424be7a46b mysql docker entrypoint s About an
  • 部分手机拍照屏幕旋转, 导致imageview不能显示的问题???

    在项目开发的过程中 碰见了一个非常诡异的事情 拍照之后的imageview不能正常显示图片 从而导致十行代码中间的几句代码不执行 不执行 不执行 代码中包括imageview setImageBitmap bitmap 一度认为这个bitm
  • Leetcode_146. LRU 缓存

    C语言纯暴力解法 能AC我没想到 typedef struct int key int val int time LRUCache int g cap 全局变量记录缓存容量 int g time 利用全局变量更新put和get操作时关键值的
  • 常见的服务器部署SSL证书的安装方法介绍

    很多网络管理员对于SSL证书安装还是处于一个比较懵懂的状态 不同的服务器部署SSL证书方法也不一样 但是步骤确是类似的 生成证书请求文件 CRS 向CA机构申请SSL证书 下载证书 然后根据不同的系统安装部署SSL证书 最后测试证书 下面根
  • Windows下 flex + bison 小例子

    下载flex和bison 网址是http gnuwin32 sourceforge net packages flex htm 和http gnuwin32 sourceforge net packages bison htm 如果这两个链
  • MySQL数据库的安装、创建库、创建表、向数据库添加测试数据及连接取数、遍历输出数据库查询结果ResultSet、使用“Class.forName(JDBC_DRIVER);”来注册加载驱动的原因

    MySQL数据库的安装 创建库 创建表 向数据库添加测试数据及连接取数 MySQL数据库简介 Java对于数据库常用操作的封装 安装MySQL数据库 下载MySQL安装包 Linux MySQL在ubuntu Linux下的多版本选择 DE
  • linux学习笔记7(PHP安装)

    49 安装PHP PHP PHP Hypertext Preprocessor 即 超文本预处理器 是在服务器端执行的脚本语言 尤其适用于Web开发并可嵌入HTML中 PHP语法学习了C语言 吸纳Java和Perl多个语言的特色发展出自己的
  • kettle使用常见问题解决-01

    kettle常见问题解决 1 kettle界面connect消失 第一步 检查IE浏览器 不能低于10 第二步 在数据资源仓库的database里描述写中文 导致repositories xml出现乱码 解决方法 1 找到 kettle目录
  • ant design pro 一个页面两个表单,提交会相互影响,需将表单写为自定义组件

    描述 在页面 组件 中 只能有一个 Form create 意味着this props form唯一 如果一个页面有两个表单 提交其中一个 另一个也会提交 然而你只想提交一个 解决方法 1 如果表单多且复杂 请单独自定义一个页面 组件 我这
  • 了解Hadoop输入输出系统

    与任何I O子系统不同 Hadoop还带有一组原语 这些原始的考虑因素虽然本质上是通用的 但与Hadoop IO系统一起也具有一些特殊的含义 Hadoop处理数TB的数据集 对这些原语的特殊考虑将使你了解Hadoop如何处理数据输入和输出
  • 华为、腾讯、阿里、网易员工下班时间大曝光,靠加班,你是赢不了他们的

    这年头 不加班都不好意思说自己是上班族的 但有一种行业的疯狂加班程度 已经逐渐成为加班领域的一颗新星 那就是 互联网行业从事者 也许你对华为 阿里的加班水平早有耳闻 但你是否见过他们疯狂加班的样子呢 首先出场的阿里巴巴 19 55 00 0
  • 生成10个随机数保存于数组中,并找出其最大值和最小值

    上代码吧 bin bash 生成19个随机数保存于数组中 并找出其最大值和最小值 declare a rand declare i max min for i in 0 9 do rand i RANDOM echo rand i if i
  • CTFHUB-WEB

    HTTP协议 题目 请求方式 思路一 我们知道http请求方式中没有CTFB方式 就想到CTFHUB 使用BP抓包 将原来的数据包请求方式GET改成CTFHUB 点击Forward 放包 得到flag 积累 HTTP协议的八种请求方式 1
  • 典型案例 3:十分钟搭建弹性可扩展的 Web API

    作者 萧起 阿里云云原生团队 导读 本节课程主要分为三个部分 基本概念中介绍基于函数计算的 WebAPI 与普通的 WebAPI 的区别及优势 开发流程中介绍如何在函数计算的控制台进行 WebAPI 的开发 操作演示中会实例演示函数计算 W
  • mysql-索引_MySQL-索引

    mysql 索引 MySQL 索引 MySQL INDEXES A database index is a data structure that improves the speed of operations in a table In
  • 基于MATLAB的图像复原视图分析技术

    基于MATLAB的图像复原视图分析技术 摘要 图像质量的好与坏受很多方面因素的影响 其中运动模糊以及失真是较为主要的因素 这些因素贯穿在图像获取 传输以及储存的全过程中 本次设计用到的是MATLAB软件然后进行仿真 对模糊图像建立退化模型
  • Spring系列文章:Spring事务

    一 事务简述 1 什么是事务 Transaction tx 在 个业务流程当中 通常需要多条DML insert delete update 语句共同联合才能完成 这 多条DML语句必须同时成功 或者同时失败 这样才能保证数据的安全 多条D
  • 单机redis和redisCluster集群获取所有key

    对于单机redis keys 对于redis cluster集群 redis cli c a CLUSTER AUTH cluster call CLUSTER IP CLUSTER POPRT keys 如 redis cli c clu
  • L1正则和L2正则的比较分析详解

    感受 上次有个面试官问我l1正则和l2正则有什么区别 当时把我给问傻了 于是就回来找了资料写了这篇博客 我参照的是英文博客 吸取别人的长处 希望能帮助大家 如有错误或者需要补充的 欢迎指正 咱们共同进步 范数 norm 数学上 范数是一个向
  • actuator--基础--6.2--端点解析--metrics端点

    actuator 基础 6 2 端点解析 metrics端点 代码位置 https gitee com DanShenGuiZu learnDemo tree master actuator learn actuator01 1 介绍 用于