网站制作最高端网站建设网站定制

张小明 2026/1/9 16:02:20
网站制作最,高端网站建设网站定制,三字广告公司名称,如何做外贸soho做网站MX 是什么#xff1f;JMX 是 “Java Management Extensions” 的缩写#xff0c;中文通常称为 “Java 管理扩展”。它是 Java 平台提供的一套标准框架#xff0c;用于对 Java 应用程序、设备、系统资源进行监控和管理。JMX 的核心作用包括#xff1a;监控 Java 程序运行状态…MX 是什么JMX 是 “Java Management Extensions” 的缩写中文通常称为 “Java 管理扩展”。它是 Java 平台提供的一套标准框架用于对 Java 应用程序、设备、系统资源进行监控和管理。JMX 的核心作用包括监控 Java 程序运行状态如内存使用、线程数、类加载情况等动态修改配置参数无需重启应用远程管理 Java 应用通过 JConsole、VisualVM 等工具集成到监控系统中实现对 JVM 的集中监控。很多 Java 应用如 Kafka、Hadoop、Tomcat 等都通过 JMX 暴露运行时指标方便运维人员进行监控和故障排查。在监控领域你就可以简单的理解 JMX 是一种 Java 应用暴露指标的标准方式。很多新的开源项目直接暴露 Prometheus 协议的监控数据确实更方便但很多老的 Java 应用仍然通过 JMX 暴露指标数据所以掌握 JMX 监控方式等于掌握了一批 Java 应用的监控方式。OpenTelemetry 的标准已经被业界普遍使用JMX 也可以和 OpenTelemetry 集成。用于 JMX 的 OpenTelemetry 集成利用 YAML 中指定的配置文件来描述应用程序的指标应如何转换为 OpenTelemetry 指标。这些规则会提供给与 JMX API 交互的 JMX 指标抓取工具。许多现有的 Java 应用程序可配置为通过 JMX 发出指标。以下应用程序具有社区支持的预定义规则文件ActivemqCassandraHbaseHadoopJettyJvmKafkaSolrTomcatWildfly这意味着在使用 JMX 抓取工具时可以将目标应用程序识别为上述选项之一无需任何额外配置即可自动抓取指标。使用 OpenTelemetry 的 JMX 集成从应用程序中提取数据有多种方法运行 JMX 指标收集器 JAR 并将其指向您的应用程序将 OpenTelemetry Java 代理与应用程序一起运行运行 OpenTelemetry Collector 并配置 JMX 接收器以通过 JMX 获取指标JMX 指标收集器是一种简单便捷的方法可用于测试从 Java 应用程序导出指标且所需的额外依赖最少。OpenTelemetry Java 代理是一种更成熟且经过验证的机制但由于它引入了额外的 instrumentation可能也会带来一些开销。如果在你的环境中运行单独的进程或工作负载是可接受的那么 OpenTelemetry 收集器是一个可靠的替代方案。本文将探讨这三种选择。配置在深入了解 OpenTelemetry 集成之前有必要确保将要测试的应用程序正确暴露 JMX 端点。以下命令在 Docker 容器中启动 Tomcat 服务器以减少本地系统所需的依赖项数量。它使用 JAVA_OPTS 环境变量启用 JMX并使其在 9999 端口上可用。$ docker run -it --rm -p 9999:9999 -p 8888:8080 -e JAVA_OPTS-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.onlyfalse -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.port9999 -Dcom.sun.management.jmxremote.rmi.port9999 -Djava.rmi.server.hostname0.0.0.0 -Dcom.sun.management.jmxremote.sslfalse tomcat:9.0有许多工具可以验证 JMX 端口是否可访问以及是否在生成指标。以下使用 JConsole 并连接到已打开的端口$ jconsole localhost:9999这将弹出一个应用程序它可能会提示您连接不安全。在本地开发时此警告可以安全地忽略。image这些数据可通过远程 JMX 端口访问我们已准备好与 OpenTelemetry 集成。直接使用 JMX scraper如前所述JMX 抓取工具是最简便的入门方式。以下命令将从 Maven 下载 JMX 抓取工具的最新发布版本运行 JMX 抓取工具将其配置为从 Tomcat 收集遥测数据并通过 JMX 收集指标然后将这些指标输出到本地控制台。$ wget https://repo1.maven.org/maven2/io/opentelemetry/contrib/opentelemetry-jmx-scraper/1.49.0-alpha/opentelemetry-jmx-scraper-1.49.0-alpha.jar$ OTEL_METRICS_EXPORTERconsole java -jar opentelemetry-jmx-scraper-1.49.0-alpha.jar -config - EOFotel.jmx.service.urlservice:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmiotel.jmx.target.systemtomcatEOF该命令的输出让我们知道连接已建立并且一些度量工具已创建WARNING: A terminally deprecated method in sun.misc.Unsafe has been calledWARNING: sun.misc.Unsafe::objectFieldOffset has been called by io.opentelemetry.internal.shaded.jctools.util.UnsafeAccess (file:/Users/alex/Downloads/opentelemetry-jmx-scraper-1.49.0-alpha.jar)WARNING: Please consider reporting this to the maintainers of class io.opentelemetry.internal.shaded.jctools.util.UnsafeAccessWARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release2025-08-27 10:28:48 INFO metrics export interval (seconds) 602025-08-27 10:28:48 WARNING SASL unsupported in current environment: class io.opentelemetry.contrib.jmxscraper.JmxConnectorBuilder cannot access class com.sun.security.sasl.Provider (in module java.security.sasl) because module java.security.sasl does not export com.sun.security.sasl to unnamed module 24313fcc2025-08-27 10:28:48 INFO Connecting to service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi2025-08-27 10:28:48 INFO tomcat: found 3 metric rules2025-08-27 10:28:48 INFO JMX scraping started2025-08-27 10:28:49 INFO Created Counter for tomcat.error.count2025-08-27 10:28:49 INFO Created Counter for tomcat.request.count2025-08-27 10:28:49 INFO Created Gauge for tomcat.request.duration.max2025-08-27 10:28:49 INFO Created Counter for tomcat.request.duration.sum2025-08-27 10:28:49 INFO Created Counter for tomcat.network.io2025-08-27 10:28:49 INFO Created Counter for tomcat.network.io2025-08-27 10:28:49 INFO Created UpDownCounter for tomcat.thread.count2025-08-27 10:28:49 INFO Created UpDownCounter for tomcat.thread.limit2025-08-27 10:28:49 INFO Created UpDownCounter for tomcat.thread.busy.count使用JMX抓取工具是个不错的入门方法但它确实需要一个额外的 JAR 包如果我们已经在使用 Java 代理可能就不希望这样了。使用 OpenTelemetry Java 代理除了提供 JMX 集成外Java 代理还提供了自动检测应用程序的功能。出于这个原因它比 JMX 抓取工具更常用。以下命令下载最新发布版本的 OpenTelemetry Java agent jar通过将本地目录挂载到容器中将 jar 包归档文件添加到 Docker 环境中使用一些额外的环境变量运行与之前相同的 Tomcat 应用程序以加载 agent jar 包$ wget https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.19.0/opentelemetry-javaagent.jar$ docker run -it -v pwd:/tmp --rm \-e OTEL_LOGS_EXPORTERconsole \-e OTEL_TRACES_EXPORTERconsole \-e OTEL_METRICS_EXPORTERconsole \-e CATALINA_OPTS$CATALINA_OPTS -javaagent:/tmp/opentelemetry-javaagent.jar \-e JAVA_OPTS-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.onlyfalse -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.port9999 -Dcom.sun.management.jmxremote.rmi.port9999 -Djava.rmi.server.hostname0.0.0.0 -Dcom.sun.management.jmxremote.sslfalse -Dotel.jmx.target.systemtomcat \tomcat:9.0该命令的输出将与运行 JMX scraper 的输出非常相似04-Sep-2025 21:43:40.251 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [48] milliseconds[otel.javaagent 2025-09-04 21:43:40:787 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created Counter for tomcat.error.count[otel.javaagent 2025-09-04 21:43:40:787 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created Counter for tomcat.request.count[otel.javaagent 2025-09-04 21:43:40:789 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created Gauge for tomcat.request.duration.max[otel.javaagent 2025-09-04 21:43:40:789 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created Counter for tomcat.request.duration.sum[otel.javaagent 2025-09-04 21:43:40:789 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created Counter for tomcat.network.io[otel.javaagent 2025-09-04 21:43:40:789 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created Counter for tomcat.network.io[otel.javaagent 2025-09-04 21:43:40:790 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created UpDownCounter for tomcat.thread.count[otel.javaagent 2025-09-04 21:43:40:790 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created UpDownCounter for tomcat.thread.limit[otel.javaagent 2025-09-04 21:43:40:791 0000] [jmx_bean_finder] INFO io.opentelemetry.javaagent.shaded.instrumentation.jmx.engine.MetricRegistrar - Created UpDownCounter for tomcat.thread.busy.count如果我们的部署已经在使用 OpenTelemetry Java 代理现在我们就有了一种无需引入额外工具即可收集 JMX 指标的方法。但如果我们更倾向于使用外部工具那该怎么办呢别担心OpenTelemetry 这把“瑞士军刀”已经为你准备好了使用 OpenTelemetry Collector 和 JMX receiver我们将要探讨的最后一种将JMX指标转换为 OpenTelemetry 的方法是使用 OpenTelemetry Collector。Collector 提供了许多集成功能通常作为遥测管道的一部分部署在基础设施内部。Collector 由许多组件构成其中之一是 JMX receiver它在底层使用 JMX scraper 与 Java 应用程序进行交互。在本示例中我们将继续使用之前一直在用的 tomcat 应用程序并使用由社区发布和维护的 OpenTelemetry Collector Contrib 发行版。运行带有调试导出器的 Collector 需要以下配置文件该调试导出器会将指标输出到控制台。由于 Collector 便于配置多个导出器我们还添加了一个 OpenTelemetry 协议OTLP导出器用于将数据发送到 Honeycomb译者注一个可观测性云厂商receivers:jmx/tomcat:jar_path: /tmp/opentelemetry-jmx-scraper-1.48.0-alpha.jarendpoint: localhost:9999target_system: tomcatcollection_interval: 10sexporters:otlphttp:endpoint: https://api.honeycomb.io:443headers:x-honeycomb-team: ${env:HONEYCOMB_API_KEY}x-honeycomb-dataset: jmx-testdebug:verbosity: detailedservice:telemetry:logs:level: debugpipelines:metrics:receivers: [jmx/tomcat]exporters: [debug, otlphttp]请注意要使此配置生效我们需要指定 JMX 抓取器 JAR 的位置因为接收器本身并不包含该 JAR。有了这份配置以下命令将下载最新发布的 Collector Contrib 发行版并运行它$ wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.133.0/otelcol-contrib_0.133.0_darwin_arm64.tar.gz -O - | tar -xz​​$ ./otelcol-contrib --config configuration.yaml收集器的输出将包含来自JMX抓取器的详细信息以及来自调试导出器的日志以验证数据是否按照配置进行导出。使用 Collector 使我们能够收集指标而无需修改应用程序或应用程序运行的环境只要该应用程序远程暴露 JMX 端口即可。 Collector 还增加了一些灵活性可以根据需要对数据进行转换或丰富。自定义应用的监控采集OpenTelemetry 社区支持的应用程序列表不足以处理所有现有的Java应用程序。幸运的是可以定义自定义规则配置文件来支持自定义应用程序。该项目的官方文档更详细地描述了编写自定义配置的语法。在下面的示例中我们创建的规则为Resin服务器暴露的指标提供了映射。此配置将resin命名空间中ThreadPool托管BeanMBean的JMX属性ThreadActiveCount映射到OpenTelemetry中名为resin.threadpool.active.count的 gauge量规rules:- bean: resin:typeThreadPooltype: gaugeunit: {thread}mapping:ThreadActiveCount:metric: resin.threadpool.active.countdesc: Current number of active threads in the pool将OpenTelemetry与JMX集成的每种方法都支持自定义配置文件。JMX抓取器通过otel.jmx.config属性来支持这一点。收集器中的JMX接收器可以使用jmx_configs而非target_system进行配置。允许收集器使用此自定义文件的配置如下receivers:jmx/resin:jar_path: /Users/alex/Downloads/opentelemetry-jmx-scraper-1.48.0-alpha.jarendpoint: localhost:9999jmx_configs: /tmp/resin.rules.yamlcollection_interval: 10s总结有了这些我们现在就具备了将生成JMX遥测数据的应用程序集成到任何支持 OpenTelemetry 的遥测管道中的工具。可以灵活选择使用JMX抓取器、Java代理或收集器这确保我们能够选用适合自身环境的工具同时对现有工作流程的影响降至最低。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

phpcms建设网站苏州网站设计kgwl

Miniconda-Python3.10:构建高效、可复现的AI开发环境 在当今人工智能与数据科学项目日益复杂的背景下,一个常见的痛点浮出水面:为什么代码在一个机器上运行正常,换到另一台却频频报错?很多时候,问题并不在于…

张小明 2026/1/4 3:54:38 网站建设

该网站想要跳转百度app海外pvn加速器

WSL2下运行PyTorch-CUDA-v2.7镜像的完整配置流程 在深度学习项目中,最让人头疼的往往不是模型设计本身,而是环境搭建——尤其是当你面对“CUDA版本不匹配”、“驱动加载失败”或“明明代码没错却跑不起来”的时候。对于 Windows 用户来说,这…

张小明 2026/1/3 18:08:02 网站建设

网站建设与百度推广瀑布流网站源码下载

使用Miniconda管理PyTorch与Gradio交互界面 在高校实验室里,一个研究生正为他的图像分类模型焦头烂额:明明本地训练效果很好,换到服务器上却报错“torchvision版本不兼容”;另一位工程师则苦恼于如何向产品经理展示刚完成的文本生…

张小明 2026/1/4 9:20:53 网站建设

判断网站的好坏网站从哪些方面做优化

深蓝词库转换工具完整教程:轻松实现输入法数据迁移 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 还在为更换输入法时丢失个人词库而烦恼吗?…

张小明 2026/1/4 19:53:37 网站建设

济南润尔网站建设技术公司盈利的网站

常见Web安全问题及应对策略 1. 确保功能级访问控制 功能级访问控制旨在防止匿名或未经授权的用户调用特定功能。根据相关标准,缺乏此类控制是Web应用程序中第七大关键安全问题。以下是提升应用程序功能级访问控制的建议: - 步骤一:检查工作流权限 - 确保在工作流的每一…

张小明 2026/1/5 5:36:17 网站建设

电影网站建设多少钱如何对网站进行爬虫

Blender USDZ插件完全指南:从零开始掌握AR模型导出 【免费下载链接】BlenderUSDZ Simple USDZ file exporter plugin for Blender3D 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderUSDZ 你是否曾经在AR应用开发中,因为模型格式不兼容而头疼…

张小明 2026/1/4 15:57:18 网站建设