【问题标题】:io.dropwizard.metrics per webapp in TomcatTomcat 中每个 webapp 的 io.dropwizard.metrics
【发布时间】:2017-11-02 15:45:11
【问题描述】:

我有一个 tomcat 部署,其中部署了多个(相同的)webapp。

我希望通过 JMX 获取 webapp 级别的指标。

所以当我查看 jconsole 时

我正在寻找类似的东西:

com.orgName
              /webapp1
                /timer-metric1
                /timer-metric2
              /webapp2
                /timer-metric1
                /timer-metric2

我无法通过网络应用获取此内容。 我试过了:

final JmxReporter reporter = JmxReporter.forRegistry(metricsRegistry).inDomain("com.orgName=/getContextName(),Type=TestBean,Name=com.orgName.TestBean")
).build();

有人知道使用 metrics.dropwizard.io 的任何方法吗?

【问题讨论】:

    标签: tomcat dropwizard metrics


    【解决方案1】:

    我们终于想通了覆盖 createName 方法

            ObjectNameFactory objectNameFactory = new ObjectNameFactory() {
            @Override
            public ObjectName createName(String type, String domain, String name) {
                ObjectName objectName = null;
                StringBuilder nameString = new StringBuilder();
                nameString.append(domain + ":");
                nameString.append("Context=").append("/").append(getContextName()).append(",");
    
                nameString.append("Type=").append(type).append(",");
                nameString.append("Name=").append(name);
                try {
                    objectName= new ObjectName(nameString.toString());
                } catch (MalformedObjectNameException e) {
                    e.printStackTrace();
                }
                return objectName;
            }
        };
    
        final JmxReporter reporter = JmxReporter.forRegistry(metricsRegistry)
                .inDomain("com.orgName")
                .createsObjectNamesWith(objectNameFactory)
                .build();
    
        reporter.start();
    

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2012-01-18
      • 1970-01-01
      • 2012-08-12
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      相关资源
      最近更新 更多