У меня есть метрика, которая не легко вписывается в счетчик или датчик (это просто размер конкретного кеша, который я хочу открыть).Spring Boot Public Metric не экспортируется JmxMetricWriter
Так я изменен существующий класс для реализации PublicMetrics:
@Component
public class MyMetric implements PublicMetrics
, а затем выставить метрику:
@Override
public Collection<Metric<?>> metrics() {
Collection<Metric<?>> metrics = new TreeSet<Metric<?>>();
Metric<Integer> cacheSize = new Metric<Integer>("gauge.cacheSize",cacheSize);
metrics.add(cacheSize);
return metrics;
}
Весна загрузки документы состояние:
«Для того, чтобы добавить дополнительные метрики, которые вычисляются каждый раз, когда вызывается конечная точка метрики, просто регистрируйте дополнительные компоненты реализации PublicMetrics. По умолчанию все такие компоненты собраны endp oint «.
Так что для того, чтобы разоблачить эти дополнительные метрики через JMX, я думал, что это будет экспортировать их вместе с отказом от метрики коробки:
@Bean
@ExportMetricWriter
MetricWriter metricWriter(MBeanExporter exporter) {
return new JmxMetricWriter(exporter);
}
Но мои показатели не появляются, когда я смотрю на mbeans в JConsole или VisualVM.
Что я делаю неправильно здесь с точки зрения их экспорта, и есть ли более простой способ разоблачения какого-либо состояния (я не вводил счетчик или калибровку, поскольку у меня нет подходящего метода для их ввода в)?
Update:
Если я называю данные org.springframework.boot.Endpoint.metricsEndpoint() операция мой калибр правильно возвращается с правильными значениями, это только JMX экспортер, который не экспортирует его как MBean.