我正在寻找一种将 Spring Boot 指标导出到 Spring Boot 2 中的文件的方法。
在 Spring Boot 1.5.10 中,我们使用了一个自定义MetricsExporter类,它实现了 MetricWriter并覆盖了 set 和 increment 方法来使用记录器编写指标。我们使用日志文件是因为我们有不同的机制来处理日志文件以进行度量分析。
我们还使用了 MetricsConfig 类,它使用 bean MetricsEndpointMetricReader从自定义配置类中的指标端点读取器读取指标。
但是,当我们升级到 Spring Boot 2.0.1 时,这些都不起作用,因为现有指标类发生了重大变化。
有人可以帮助我们在使用 Spring Boot 2.0 时如何导出指标并使用记录器编写它们吗?
@ExportMetricWriter
public class MetricsExporter implements MetricWriter {
private static Logger LOGGER = LoggerFactory.getLogger("metrics");
@Override
public void set(Metric<?> value) {
// Write the Gauge metrics to log file
LOGGER.info("timestamp={}, name={}, value={}", value.getTimestamp(), value.getName(),value.getValue());
}
@Override
public void increment(Delta<?> delta) {
//Write the Counter metrics to log file
LOGGER.info("timestamp={}, name={}, value={}", delta.getTimestamp(), delta.getName(),delta.getValue());
}
@Override
public void reset(String metricName) {
}
}
MetricsConfig类如下,
@Configuration
public class MetricsConfig {
//Define the MetricsExporter bean to export metrics at regular interval to a log file
@Bean
public MetricsExporter metricsExporter() {
return new MetricsExporter();
}
//Define the MetricsEndpointMetricReader bean to export both push(counters and gauges) and pull(public) metrics
@Bean
public MetricsEndpointMetricReader metricsEndpointMetricReader(MetricsEndpoint metricsEndpoint) {
return new MetricsEndpointMetricReader(metricsEndpoint);
}
}