arthasArthas 查看 Mbean 的信息

Posted 九师兄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arthasArthas 查看 Mbean 的信息相关的知识,希望对你有一定的参考价值。

1.概述

转载:Arthas 查看 Mbean 的信息

2.开篇

arthas提供Mbean命令查看或监控 Mbean 的属性信息。

3.原理介绍

MBeanServer是一个包含所有注册MBean的仓库.它是JMX代理层的核心.JMX1.0规范提供一个接口叫 javax.management.MBeanServer. 所有管理的在MBean操作通过MBeanServer执行.使用MBeanServer实例,你能够管理所有MBean.每一个MBean具有一个唯一标志,叫ObjectName.

3.源码分析

    private Set<ObjectName> queryObjectNames() 
        MBeanServer platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
        Set<ObjectName> objectNames = new HashSet<ObjectName>();
        try 
            if (StringUtils.isEmpty(name)) 
                name = "*:*";
            
            objectNames = platformMBeanServer.queryNames(new ObjectName(name), null);
         catch (MalformedObjectNameException e) 
            logger.warn("queryObjectNames error", e);
        
        return objectNames;
    


    private void listMetaData(CommandProcess process) 
        Set<ObjectName> objectNames = queryObjectNames();
        MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        try 
            MBeanModel mbeanModel = new MBeanModel();
            Map<String, MBeanInfo> mbeanMetaData = new LinkedHashMap<String, MBeanInfo>();
            mbeanModel.setMbeanMetadata(mbeanMetaData);
            for (ObjectName objectName : objectNames) 
                MBeanInfo mBeanInfo = mBeanServer.getMBeanInfo(objectName);
                mbeanMetaData.put(objectName.toString(), mBeanInfo);
            
            process.appendResult(mbeanModel);
            process.end();
         catch (Throwable e) 
            logger.warn("listMetaData error", e);
            process.end(1, "list mbean metadata error");
        
    

通过 ManagementFactory.getPlatformMBeanServer()获取MBeanServer。

通过MBeanServer的queryNames获取ObjectName对象。

通过MBeanInfo mBeanInfo = mBeanServer.getMBeanInfo(objectName)获取MBeanInfo

以上是关于arthasArthas 查看 Mbean 的信息的主要内容,如果未能解决你的问题,请参考以下文章

ArthasArthas 导出堆栈信息

ArthasArthas使用watch命令(生产上查看方法出入参)

ArthasArthas使用watch命令(生产上查看方法出入参)

Confluence 6 MBeans

Confluence 6 MBeans

ArthasArthas 类查找和反编译原理