问题标签 [mbeanexporter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3881 浏览

java - 如何使自定义 Spring MBeanExporter 在候选类上使用 @Managed... 注释

我编写了一个自定义 Spring MBeanExporter,它采用一组预先创建的对象并为它们创建 mbean。它显然使用“默认”策略来确定属性和操作,只是采用关联类的现有属性和操作。

我只有一个“afterPropertiesSet()”方法可以做一些工作,填充基本的“beans”列表,然后调用它的超类方法。这工作得相当好。

我现在想看看是否可以让它利用关联类上的任何“@Managed ...”注释。对于我的第一次尝试,我只是将预期的注释放在关联的类上,而不更改“bean”列表的填充和处理方式。不幸的是,这没有奏效。我在类、属性和操作中添加了几个“描述”属性,但这些没有出现在 VisualVM 中。

我可以做些什么来使 MBeanExporter 机制在关联类上使用 @Managed... 注释?

请注意,我当前的类扩展了 MBeanExporter。如果我将其更改为扩展 AnnotationMBeanExporter,那么它会在没有 @Managed... 注释的类上失败。我需要默认为“MBeanExporter”所做的事情,除非它在类中找到@Managed... 注释。

我想我需要展示一些代码,但这主要是伪代码。

我的 MBeanExporter 看起来像这样:

放入列表中的 bean 之一具有如下所示的类:

当它在 VisualVM 中呈现时,不会使用 @Managed... 注释中描述的任何元数据。我可以肯定地告诉这一点,因为生成的 ObjectName 不是我在“@ManagedResource”注释中指定的覆盖值。

如果我改为将基类更改为“AnnotationMBeanExporter”,那么与此类关联的 bean 会获得我在注释中指定的元数据。但是,与没有“@ManagedResource”注释的类关联的所有其他 bean 都会失败,并出现如下异常:

我的临时解决方法是简单地定义我的 MBeanExporter 子类,以便它可以表现为普通的 MBeanExporter 或 AnnotationMBeanExporter,具体取决于构造函数标志。然后,我可以简单地定义它的两个实例,一个带有标志,一个没有标志,并且具有一组不同的处理路径。这行得通。

我接下来要尝试的是拥有一个内部管理 MBeanExporter 和 AnnotationMBeanExporter 的单个“假”MBeanExporter。它将构建初始 bean 列表,然后处理每一个,查看与 bean 关联的类以查看是否存在 @ManagedResource 注释。这将表明它将最终出现在要由 AnnotationMBeanExporter 处理的 bean 列表中还是常规的 bean 列表中。

更新: 我遇到了这个策略的问题,因为我不能只创建一个原始 AnnotationMBeanExporter 并在其上调用“afterPropertiesSet()”。它失败了:

0 投票
0 回答
421 浏览

xml - MBeanExporter 映射的值覆盖

我正在尝试覆盖在父 xml 和子 xml 中定义的键的映射值,该键在 MBeanExporter 的上下文中导入父 bean。我尝试了几种组合,bean 的“父”属性、“registrationBehaviorName”属性以及地图本身的“合并”属性(所有这些都出现在下面的代码中):

父 Xml

儿童 Xml

我正在寻找为父母获取键“theKey”的值“parentValue”和为孩子获取键“theKey”的值“childvalue”。根据从互联网收集的属性/属性的使用组合,我目前遇到两个不同的错误......

或一个BeanAlreadyExistsException。我知道父子可能不是实现我想要做的事情的最佳方式,但我正在一个更大的环境中工作,这个结构不能被修改(因为我没有包含在代码中的许多其他 bean 是当下)。

我正在尝试做的实际上可能吗?我不是 Spring 专家,我无法在文档和其他来源上找到可行的解决方案。

0 投票
0 回答
559 浏览

jmx - 如何在 spring 集成中配置 jmx 导出以进行并行部署

为了在 tomcat 7 中使用“并行部署”(在维护旧版本的同时部署新版本),我们需要将 JMX bean 配置为“替换现有”

这对我们的豆子来说很容易,只需添加

但是,对于 spring 集成通道,自动创建

这里“注册”不起作用,这是我能找到的唯一参考

我找不到在哪里/如何设置相同的行为,所以应用程序在部署时失败,因为通道等已经有一个 JMX bean 并且新的不能工作

也许听起来很简单,但我一直在搜索/谷歌搜索并没有找到答案

非常感谢

0 投票
1 回答
1786 浏览

spring - Spring JMX 代理接口问题

我正在我的项目中尝试 Spring + JMX bean 配置。我是 JMX 技术的新手。我需要在托管 bean 中实现代理接口方式。尝试时,我收到以下提到的错误。

谁能指导我?我正在尝试在 tomcat 中部署我的战争。在启动时应用程序的上下文初始化中,我收到InvalidInvocationException

界面

实现类

在 AppLoader 中使用

service.xml 片段

全栈跟踪

在 init() 中添加 Try-Catch 并打印堆栈跟踪(见下文)

OperationException() 导致 getLocation()

编辑:我仍然面临问题。我在https://github.com/appu-86/JMX-Test创建了一个示例项目。任何人都可以帮助/提示我示例项目中代理接口问题的原因吗?

0 投票
1 回答
787 浏览

spring - 如何限制对 JMX 属性的访问

我们的应用程序需要限制用户访问给定 MBean 的 JMX 属性和操作子集。例如,C3P0 MBean 公开了很多属性/操作。假设我们不希望用户更改最小池大小。因此,我们想在 JMX 控制台中抑制该属性的设置器。

查看 Spring 文档,我认为这是可能的: http: //docs.spring.io/spring/docs/current/spring-framework-reference/html/jmx.html

下面是我与 Hibernate MBean 的约会:

我希望 JMX 控制台中的 Hibernate MBean 只会显示清晰的方法。然而,上面的配置暴露了所有原始的 Hibernate MBean 方法。

其次,C3P0 Mbean默认是暴露的,我不需要Spring bean来暴露。该 MBean 在控制台中显示为“PooledDataSource[2spw3u98bqgqeg1697gnx|73302995]”。我不确定为该 MBean 仅公开一部分属性和操作的正确方法是什么。

感谢您的帮助/指点。谢谢。

0 投票
1 回答
775 浏览

java - 非单例(原型)Spring bean JMX 可监控

我是 Spring JMX 的新手。我想通过 Spring JMX 监视我的项目中的原型 bean,我创建了一个示例项目来使用 Spring 的 MbeanExporter 注册一个 bean(Singleton) 正在工作。然后我用谷歌搜索用 Spring JMX 注册 Non-Singleton bean 并监视它,但我没有发现任何有用的东西。

我遇到了一个描述我的问题的Spring 论坛帖子,但这个答案并不重要。

0 投票
0 回答
205 浏览

java - 尝试以编程方式通过 JMX 公开 MBeanServer 时出现奇怪的 RMI 错误

有关 Java 管理的文档中,在标题为“使用 JMX 远程 API 模拟开箱即用管理”的部分(见页面底部)中,它向您展示了如何通过 JMX 手动公开您的 MBeanServer。像这样的东西:

如果您尝试运行此代码,则会重复抛出此异常(并且您无法远程连接到服务器):

我想“一定是注册表不是用相关的套接字工厂创建的”,所以我取消了相关参数的注释LocateRegistry.createRegistry。但是现在抛出了这个异常(并且应用程序无法启动)

注意:应用程序在设置相关javax.net.ssl系统属性的情况下运行,如教程中所述。有谁知道发生了什么?

0 投票
1 回答
147 浏览

java - 使用 @EnableMBeanExport 时如何使用 Spring JMX 集成设置通知侦听器映射

正如Spring参考https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#jmx-notifications-listeners所说,我需要MBeanExporter.setNotificationListenerMappings在通知监听器之后通过调用方法来设置监听器映射宣布。

当使用基于 XML 的配置或 @Bean 注解配置MBeanExporter显式声明 a 时,setNotificationListenerMappings操作很容易完成。如以下代码所示:

但是当使用@EnableMBeanExport 时,它会自动定义一个AnnotationMBeanExporter,我找不到将监听器映射设置为MBeanExporter 的方法。那么,有没有办法在我使用时设置通知侦听器映射@EnableMBeanExport

谢谢。

0 投票
3 回答
2801 浏览

jmx - Prometheus jmx 导出器模式匹配属性和项目

我正在尝试使用 jmx_exporter java 代理(https://github.com/prometheus/jmx_exporter)对普罗米修斯指标进行模式匹配和命名。

在处理CompositeType.

例如,我达到了我以这种方式进行模式的地步:

但是,如果您在 VisualVM 中查看HeapMemoryUsed属性。您还可以在Attribute Description以下内容中看到openType

我希望能够根据这些项目命名指标。例如,我想要一个指标,例如:

  • jmx_jvm_memory_HeapMemoryUsed_used
  • jmx_jvm_memory_HeapMemoryUsed_max

ETC...

谢谢!

0 投票
0 回答
394 浏览

xml - Prometheus 导出器将 xml 输出转换为名称-值对

几乎没有配置的 Websphere 监控提供了从 PMI 中提取 XML 格式的监控数据的 URL。是否有将 XML 数据从 PMI 转换为名称=值对/JSON 格式的导出器?我正在尝试修改 JMX 收集器中的逻辑以适应这一点。寻找任何其他更好的想法?