spring boot自测_将测微仪与Spring Boot 2一起使用

spring boot自测

这是快速入门,介绍了如何使用出色的Micrometer库来检测基于Spring Boot 2的应用程序并在Prometheus中记录指标

介绍

Micrometer在不同监视工具提供的客户端库上提供了基于Java的外观。

以Prometheus为例,如果我要将Java应用程序与Prometheus集成在一起,我会使用称为Prometheus Client Java的客户端库,使用数据结构(Counter,Gauge等)来收集数据并将数据提供给Prometheus。 如果出于任何原因更改了监视系统,则必须为新系统更改代码。

Micrometer试图通过提供应用程序在编写代码时使用的通用外观来缓解这种情况,绑定到监视系统纯粹是运行时的问题,因此将Prometriceus的Metrics系统更改为Datadog仅需要更改运行时库而无需任何代码更改。

检测Spring Boot 2应用程序

为基于Spring Boot 2的应用获得Micrometer支持并不需要做任何特别的事情,在执行器启动器中添加Micrometer作为传递依赖项:

例如 在基于gradle的项目中,这已足够:

dependencies {compile('org.springframework.boot:spring-boot-starter-actuator')...
}

另外,由于打算将数据发送给Prometheus,因此必须提取依赖项,以提供必要的Micrometer SPI。

dependencies {...runtime("io.micrometer:micrometer-registry-prometheus")...
}

默认情况下,Micrometer提供了一组智能绑定,可对基于Spring的Web和Webflux端点进行检测,并添加计量器以收集持续时间,呼叫次数。 此外,它还提供了绑定以收集JVM指标-内存使用情况,线程池等。

需要启用应用程序属性以公开Prometheus将用来刮取度量标准数据的端点:

endpoints:prometheus:enabled: true

如果此时启动了应用程序,则“ / applications / prometheus”端点应该可用,其中显示了一组丰富的指标,以下是我的计算机上的示例:

默认度量标准非常丰富,应涵盖应用程序的大多数通用度量标准要求,如果需要其他度量标准,则可以很容易地将其添加,如以下代码片段所示:

class MessageHandler {private val counter = Metrics.counter("handler.calls", "uri", "/messages")fun handleMessage(req: ServerRequest): Mono<ServerResponse> {return req.bodyToMono<Message>().flatMap { m ->counter.increment()...
...
}

与Prometheus集成

可以将Prometheus配置为从Spring Boot2应用程序公开的端点中抓取数据,Prometheus配置的片段如下所示:

scrape_configs:- job_name: 'myapp'metrics_path: /application/prometheusstatic_configs:- targets: ['localhost:8080']

这实际上不是生产配置,在生产设置中,最好使用Prometheus Push Gateway来代理度量标准的收集。

Prometheus提供了一个基本的UI来预览其抓取的信息,默认情况下可以在端口9090上对其进行访问。这是一个示例图,其中包含在负载测试期间生成的数据:

结论

Micrometer可以很容易地对应用程序进行检测并收集一组可以在Prometheus中存储和可视化的基本指标。 如果您有兴趣进一步进行此操作,可以在这里找到使用Micrometer的示例应用程序。

翻译自: https://www.javacodegeeks.com/2017/11/using-micrometer-spring-boot-2.html

spring boot自测

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软和 Windows 的发展简史

20世纪60年代中期&#xff0c;美国达特茅斯学院院长、匈牙利人约翰凯梅尼&#xff08;J. Kemeny&#xff09;和数学系教授托马斯卡茨&#xff08;Thomas E. Kurtz&#xff09;认为&#xff0c;像FORTRAN&#xff08;世界上最早出现的计算机高级程序设计语言&#xff09;那样的语…

elaseticsearch 配置ik分词器的热更新_Elasticsearch从入门到放弃:分词器初印象

Elasticsearch 系列回来了&#xff0c;先给因为这个系列关注我的同学说声抱歉&#xff0c;拖了这么久才回来&#xff0c;这个系列虽然叫「Elasticsearch 从入门到放弃」&#xff0c;但只有三篇就放弃还是有点过分的&#xff0c;所以还是回来继续更新。之前我们聊过了 Elasticse…

服务器windows模拟linux环境,科学网—Windows不用虚拟机或双系统,轻松实现shell环境:gitforwindows - 刘永鑫的博文...

windows缺少shell命令支持用过Linux服务器分析数据的小伙伴&#xff0c;一定对Linux强大Shell命令所折服&#xff0c;经常会感觉windows缺少这些命令而感觉不方便。还有想学习Linux Shell命令的小伙伴&#xff0c;一直没有一个很好的学习环境。双系统安装涉及分区改变对硬盘数据…

Mac OS 系统的发展历史

文章目录System 1.0&#xff08;1984&#xff09;System 2.0&#xff08;1985&#xff09;System 3.0&#xff08;1986&#xff09;System 4.0&#xff08;1987&#xff09;System 5.0&#xff08;1987&#xff09;System 6.0 &#xff08;1988&#xff09;System 7 (1991 )Sys…

苹果公司的电脑发展史——硬件篇

文章目录一、Apple I&#xff08;1976&#xff09;二、Apple II&#xff08;1977&#xff09;三、Lisa&#xff08;1983&#xff09;四、Macintosh&#xff08;1984&#xff09;五、PowerBook&#xff08;1991&#xff09;六、iMac&#xff08;1998&#xff09;七、iBook&#…

my.ini修改后服务无法启动_Spring Cloud Eureka 服务实现不停机(Zero-downtime)部署

问题互联网产品高速迭代&#xff0c;通常伴随着高频次的版本发布。部署新版上线需要重启服务&#xff0c;直接 kill 服务进程可能会造成服务短暂不可用&#xff0c;从而影响到正在使用的用户。Spring Cloud 项目中一般会用到 Ribbon 作为负载均衡&#xff0c;那么是不是只要保证…

苹果电脑 Mac OS X 系统诞生的故事和发展历史

文章目录CoplandNeXTRhapsodyOS XPublic Beta (Kodiak)Mac OS X v10.0 (Cheetah)Mac OS X v10.1 (Puma)Mac OS X v10.2 (Jaguar)Mac OS X v10.3 (Panther)Mac OS X v10.4 (Tiger)Mac OS X v10.5 (Leopard)Mac OS X v10.6 (Snow Leopard)Mac OS X Lion2001 年 3 月 24 日&#x…

Mac OS 的历史

文章目录概述1980年代前20世纪80年代20世纪90年代2000年以后概述 纵观电脑之历史&#xff0c;操作系统与计算机硬件的发展息息相关。 操作系统之本意原为提供简单的工作排序能力&#xff0c;后为辅助更新更复杂的硬件设施而渐渐演化。 从最早的批处理模式开始&#xff0c;分…

java 反射 速度_Java反射,但速度更快

java 反射 速度在编译时不知道Java类的最快方法是什么&#xff1f; Java框架通常会这样做。 很多。 它可以直接影响其性能。 因此&#xff0c;让我们对不同的方法进行基准测试&#xff0c;例如反射&#xff0c;方法句柄和代码生成。 用例 假设我们有一个简单的Person类&#x…

macOS 内核之 OS X 系统的起源

文章目录一、苹果公司早期(1972-1991)二、苹果在操作系统上的尝试(1991-1997)2.1 Star Trek 项目 (1992-1993)2.2 Copland-Mac OS 8 (1994-1996)三、收购与转折(1996-1997)四、NeXT 篇章4.1 NEXTSTEP(1985-1997)4.2 OpenStep(1993-1997)五、Mach 的历史5.1 Rochester’s Intell…

docker create_Docker动手教程2.2:容器基本操作2

内容摘要暂停/取消暂停容器删除容器进入容器创建容器暂停/取消暂停容器暂停容器命令&#xff1a;docker pause 容器ID/容器名注意STATUS列&#xff0c;被暂停的容器的状态依旧是“Up”&#xff0c;但是后面括号显示为“Paused”。取消暂停命令&#xff1a;docker unpause 容器I…

关于 Mac OS X 内核技术来源

Mach&#xff08;Multiple Asynchronously Communication Hosts&#xff09; 是一个由卡内基梅隆大学开发的操作系统内核&#xff0c;Mach的开发是为了取代BSD的UNIX核心。 Mach 内核的设计目标之一是要兼容 Unix 系统。 当初他们的设想是&#xff0c;真正的操作系统可以作为一…

用C语言编程画出图形,C语言图形编程(六) -图形程序设计实例:零件图形的绘制...

实例&#xff1a;一个零件图形的绘制有一个零件图&#xff0c;如下&#xff1a;对图3-1中的零件图形&#xff0c;如何根据它所标注的尺寸&#xff0c;按照适当的顺序有步聚地画出该图形&#xff0c;这首先要分析此零件图形的几何关系&#xff0c;了解构成这个图形各线段的性质&…

mfc怎么获取进程的线程数_Python多线程获取小米应用商店App,看看我是怎么做到的

一、【项目背景】小米应用商店给用户发现最好的安卓应用和游戏,安全可靠&#xff0c;可是要下载东西要一个一个的搜索太麻烦了。而且速度并不是很快。今天小编就教大家利用多线程爬取小米应用商店的游戏模块&#xff0c;快速获取我们想要的软件安装包。二、【项目目标】目标 &a…

Linux Distribution Timeline for 2010(Linux 2010 年发行版时间线/族谱/发展图)

此图来自维基百科&#xff08;wikimedia&#xff09;&#xff0c;具体地址为&#xff1a;https://commons.wikimedia.org/wiki/File:Linux_Distribution_Timeline.svg?uselangzh-hans#filehistory

git强制推送_Git 常用命令

Git 常用命令总结1. GIT 工作区add commitworking directory ------- index(stage) ---------- HEAD | | | | | | 工作目录 暂存区 …

golang 泛型_Golang 1.x版本泛型编程

本文介绍了Golang 1.x版本的泛型编程。往期回顾&#xff1a;浅谈动态追踪技术Go是一门天生为服务器程序设计的简洁的语言&#xff0c;因此Go的设计原则聚焦在可扩展性、可读性和并发性&#xff0c;而多态性并不是这门语言的设计初衷&#xff0c;因此就被放在了一边。虽然在2.0版…

jwt令牌_JWT令牌的秘密轮换

jwt令牌当您使用JSON Web令牌 &#xff08; JWT &#xff09;或需要对有效载荷信息进行签名或加密的任何其他令牌技术时&#xff0c;设置令牌的到期日期很重要&#xff0c;因此&#xff0c;如果令牌到期&#xff0c;则可以假定这可能被视为安全漏洞&#xff0c;您拒绝使用此令牌…

jasperreports_JasperReports:棘手的部分

jasperreports如果您使用Java进行编程的时间足够长&#xff0c;则有可能需要为业务用户生成报告。 就我而言&#xff0c;我已经看到几个项目使用JasperReportsLibrary来生成PDF和其他文件格式的报告。 最近&#xff0c;我荣幸地观察了Mike和他的团队使用上述报告库以及他们所面…

电脑运行adb闪退_adb+python进阶使用

之前文章有提到过使用python加adb刷视频&#xff0c;今天带来进阶版——无线多台手机。首先要使用adb连接多台手机&#xff0c;手机和电脑肯定要在统一局域网内。1.打开手机开发者模式&#xff0c;并通过USB接口链接电脑。2.打开cmd&#xff1a;输入adb tcpip 5555, 会得到相关…