【Kubernetes】Tomcat 启用 Prometheus 监控指标

之前出过一篇文章关于 “自定义监控指标实现业务 HPA 伸缩” ,其中使用了 webapp 应用的指标数据(JVM),接下来,这篇文章将介绍如何在通过 Tomcat 部署的 webapp 中启用  Metrics 指标,一起来看看吧!

  • 下方为《自定义监控指标实现业务 HPA 伸缩》博客链接
  • https://blog.csdn.net/mm1234556/article/details/150494365

1、下载 JMX Exporter 及配置文件

# 下载 JMX Exporter
# https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/<最新版本号>/jmx_prometheus_javaagent-<最新版本号>.jar
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar
# 下载通用配置文件
https://github.com/prometheus/jmx_exporter/blob/release-0.20.0/example_configs/tomcat.yml

2、配置 Tomcat 使用 JMX Exporter

2.1、基本步骤

# 编辑 %CATALINA_HOME%\bin\catalina.bat 或 $CATALINA_HOME/bin/catalina.sh,设置 JAVA_OPTS 添加 javaagent 参数
# Linux
export JAVA_OPTS="$JAVA_OPTS -javaagent:$CATALINA_HOME/jmx/jmx_prometheus_javaagent-0.20.0.jar=9404:$CATALINA_HOME/jmx/tomcat.yml"
# windows
set JAVA_OPTS=%JAVA_OPTS% -javaagent:%CATALINA_HOME%\jmx\jmx_prometheus_javaagent-0.20.0.jar=9404:%CATALINA_HOME%\jmx\tomcat.yml
# 重启 Tomcat 并验证,浏览器访问 http://localhost:9404 可查看到 jvm 指标

2.2、此处举例在 K8s-pod 中配置

# 查看容器 id
docker ps |grep webapp
# 进入容器查看 tomcat_webapp 的部署路径
docker exec -it 0cbf20f3be76  /bin/bash

# 将 jmx_xx.jar 和 tomcat.yml 拷贝进容器中 tomcat 根目录下
docker cp ./jmx 0cbf20f3be76:/etc/test/tomcat-webapp-1.0.0-linux-x64

# 配置 catalina.sh / catalina.bat,推荐新建一个 setenv.sh,此处已有 setenv.sh,修改即可
docker cp 0cbf20f3be76:/etc/test/tomcat-webapp-1.0.0-linux-x64/bin/setenv.sh ./
vi setenv.sh
-----
# set JAVA_OPTS
if [ -f "$WEBAPP_ROOT/bin/javaopts.config" ]; thenconfig_value=$(cat $WEBAPP_ROOT/bin/javaopts.config)
fi
JAVA_OPTS="$JAVA_OPTS $config_value"
JAVA_OPTS="$JAVA_OPTS -javaagent:$WEBAPP_ROOT/jmx/jmx_prometheus_javaagent-0.20.0.jar=9404:$WEBAPP_ROOT/jmx/tomcat.yml"
-----
docker cp setenv.sh 0cbf20f3be76:/etc/test/tomcat-webapp-1.0.0-linux-x64/bin/setenv.sh
# 重启容器
docker restart 0cbf20f3be76
# 查看 webapp 的进程是否添加 JAVA_OTPS 参数
docker exec -it 0cbf20f3be76 ps -ef |grep 9404

# 验证 metrics 配置成功
docker exec -it 0cbf20f3be76 curl localhost:9404

3、配置 Prometheus 拉取 Metrics

  • 配置 Prometheus 拉取 Metrics 可参考下方博客
  • https://blog.csdn.net/mm1234556/article/details/150492509

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

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

相关文章

JVM 三色标记算法详解!

目录1. 什么是三色标记算法&#xff1f;三种颜色及其含义&#xff1a;2. 基础三色标记算法流程 (非并发)3. 并发场景下的挑战&#xff1a;一致性问题3.1. 漏标 (Missing Live Object) - 最严重的问题3.2. 错标 (Floating Garbage) - 不那么严重的问题4. 屏障机制 (Barrier) - 解…

优化神经网络模型以提升R²值至0.99的全面方案

优化神经网络模型以提升R值至0.99的全面方案 1. 问题分析与背景 在深度学习项目中&#xff0c;提升模型的R&#xff08;决定系数&#xff09;值至0.99是一个具有挑战性的目标&#xff0c;特别是在处理复杂的时间序列数据时。我们的现有模型结合了LSTM层、自注意力机制和MLP处理…

pgNow:一款免费的PostgreSQL监控与性能诊断工具

pgNow 是一款免费的桌面工具&#xff0c;可以为 PostgreSQL 数据库提供快速集中的监控与性能诊断。 pgNow 不依赖代理&#xff0c;无需任何配置&#xff0c;可以帮助开发者或数据库管理员&#xff08;DBA&#xff09;直观地查看数据库的统计信息和关键性能指标。 功能特性 跨平…

深入理解栈与队列——从原理理解到实战应用

目录 一、引言 二、栈&#xff08;Stack&#xff09; 2.1 栈的基本概念 2.2 栈的使用 2.3 栈的模拟实现 2.4 栈的实战应用 2.4.1 括号匹配 2.4.2 逆波兰表达式求值 2.4.3 出栈入栈次序匹配 2.4.4 最小栈 三、队列&#xff08;Queue&#xff09; 3.1 队列的基本概念 …

用html5写王者荣耀之王者坟墓的游戏2deepseek版

我将为您创建一个王者荣耀英雄坟墓游戏的提词器HTML页面。这个工具将帮助游戏主播或玩家在游戏中快速查看英雄技能、连招顺序等信息。设计思路 创建英雄选择界面实现提词器显示区域&#xff0c;可自定义文本内容添加字体大小、滚动速度控制设计符合王者荣耀风格的UI下面是…

轻阅读:一键解决浏览器无法预览Office文档的实用方案

在日常办公中&#xff0c;通过浏览器直接打开Word、Excel或PPT等文档时&#xff0c;常遇到“需下载后用本地软件打开”的困扰&#xff0c;不仅流程繁琐&#xff0c;还面临格式兼容、设备存储不足等问题。轻阅读&#xff08;QingYueDu&#xff09;作为一款轻量级文件在线预览工具…

鸿蒙开发实战项目(六十七):常见组件和容器低代码开发示例(ArkTS)

本文详细代码需订阅下面专栏获取(订阅后私信邮箱+项目名): https://blog.csdn.net/m0_68036862/category_12333038.html 目录 介绍 环境搭建 代码结构解读 创建低代码工程 低代码设计界面布局 实现数据动态渲染 手动创建低代码页面 介绍 本篇Codelab是基于ArkTS语言的…

MySQL学习笔记04-DML-数据的增删改

新增数据--insert样例代码-- DML : 数据操作语言 -- DML : 插入数据 - insert -- 1. 为 emp 表的 username, password, name, gender, phone 字段插入值 insert into emp (username,password,name,gender,phone) values(fei,123456,张飞,1,13888888888);-- 2. 为 emp 表的 所有…

拼多多返利app的服务网格(Service Mesh)实践:Istio在导购系统中的应用

拼多多返利app的服务网格&#xff08;Service Mesh&#xff09;实践&#xff1a;Istio在导购系统中的应用 大家好&#xff0c;我是阿可&#xff0c;微赚淘客系统及省赚客APP创始人&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在拼多多返利app的…

【RabbitMQ】高级特性:持久性·发送方确认·重试机制·TTL·死信队列·延迟队列·事务·消息分发

RabbitMQ的高级特性还包括我的上篇博客 【RabbitMQ】-----详解RabbitMQ高级特性之消息确认机制-CSDN博客 目录 RabbitMQ高级特性之持久性 持久性 交换机持久化 队列持久化消息持久化 RabbitMQ高级特性之发送方确认机制 发送方确认 添加配置 常量类 声明队列和交换机…

鸿蒙Next ArkWeb网页多媒体开发实战:从基础到高级应用

解锁鸿蒙ArkWeb的强大多媒体能力&#xff0c;让网页视频音频体验媲美原生应用在日常应用开发中&#xff0c;我们经常需要在应用中嵌入网页并展示其中的多媒体内容。鸿蒙HarmonyOS Next的ArkWeb组件提供了强大的网页渲染能力&#xff0c;尤其对网页中的多媒体元素有出色的支持。…

06. Linux进程概念 1

Linux进程概念 冯诺依曼体系 冯诺依曼体系结构&#xff08;Von Neumann Architecture&#xff09;是现代计算机设计的奠基石&#xff0c;由数学家约翰冯诺依曼于1945年提出。这一架构彻底改变了早期计算机“硬件即程序”的设计方式&#xff0c;使得计算机可以灵活地运行不同程序…

HTTP标头全解析:保护你的Web应用!

在网络攻击频发的时代&#xff0c;你的Web应用是否像一座没有城墙的城堡&#xff0c;任由XSS、点击劫持和中间人攻击入侵&#xff1f;HTTP标头&#xff0c;这些看似不起眼的响应头&#xff0c;其实是Web安全的隐形守护者。想象一个电商网站&#xff0c;用户数据被窃取&#xff…

rt-linux下__slab_alloc里的另外一处可能睡眠的逻辑

一、背景 在之前的博客 tasklet上下文内存分配触发might_alloc检查及同步回收调用链 里&#xff0c;我们讲了一处内存分配时会引起睡眠的调用链&#xff08;这个引起睡眠的这个调用链它是在普通linux里也是存在的&#xff09;。这篇博客里&#xff0c;我们讲一处内存分配路径下…

基于STM32F103C8T6的智能环境监测系统:DHT11温湿度检测与OLED显示实现

引言 你是否曾想实时握身边环境的温湿度变化&#xff1f;无论是居家种植需要精准调控环境&#xff0c;还是实验室存放敏感材料需监控条件&#xff0c;亦或是智能座舱场景下的环境感知&#xff0c;智能环境监测系统正成为连接物理世界与数字管理的重要桥梁。而在众多嵌入式开发…

动态规划在子数组/子串问题

目录 一、最大子数组和&#xff08;LeetCode 53&#xff09; 二、环形子数组的最大和&#xff08;LeetCode 918&#xff09; 三、乘积最大子数组&#xff08;LeetCode 152&#xff09; 四、乘积为正数的最长子数组长度&#xff08;LeetCode 1567&#xff09; 五、等差数列…

微信小程序开发笔记(01_小程序基础与配置文件)

ZZHow(ZZHow1024) 参考课程: 【尚硅谷微信小程序开发教程】 [https://www.bilibili.com/video/BV1LF4m1E7kB] 009_文件和目录结构介绍新建页面与调试基础库 一个完整的小程序项目分为两个部分&#xff1a;主体文件、页面文件 主体文件又称全局文件&#xff0c;能够作用于整…

NLP Subword 之 BPE(Byte Pair Encoding) 算法原理

本文将介绍以下内容&#xff1a; 1. BPE 算法核心原理2. BPE 算法流程3. BPE 算法源码实现DemoBPE最早是一种数据压缩算法&#xff0c;由Sennrich等人于2015年引入到NLP领域并很快得到推广。该算法简单有效&#xff0c;因而目前它是最流行的方法。GPT-2和RoBERTa使用的Subword算…

CSS 伪类选择器

伪类选择器&#xff08;pseudo-class selector&#xff09;是一种用于选择HTML元素特定状态或特征的关键字&#xff0c;它允许开发者基于文档树之外的信息&#xff08;如用户交互、元素位置或状态变化&#xff09;来选择元素并应用样式。伪类选择器以冒号(:)开头&#xff0c;附…

Electron 新特性:2025 版本更新解读

引言&#xff1a;Electron 新特性在 2025 版本更新中的解读核心价值与必要性 在 Electron 框架的持续演进中&#xff0c;新特性的引入是推动桌面开发创新的核心动力&#xff0c;特别是 2025 年的版本更新&#xff0c;更是 Electron 项目从成熟生态到前沿技术的跃进之钥。它不仅…