我有一个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来实现这一目标?
答案 0 :(得分:0)
我们最终想通过重写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();