50.8 指标写入,导出和聚合

Spring Boot提供几个标记接口Exporter的实现,可用于将从内存buffers读取的指标复制到一个分析和展示它们的地方。实际上,如果提供一个实现MetricWriter接口(或GaugeWriter用于简单场景)且注解@ExportMetricWriter@Bean,它将自动挂钩一个Exporter并每5秒反馈下指标更新(通过spring.metrics.export.delay-millis配置)。此外,你定义的所有注解@ExportMetricReaderMetricReader,它们的值将被默认exporter导出。

默认exporter是一个MetricCopyExporter,它会优化自己不去复制那些从上次调用以来没有变化的值(设置spring.metrics.export.send-latest标识可以关闭该优化)。注意Dropwizard MetricRegistry不支持时间戳,所以如果你使用Dropwizard指标服务,该优化是不起作用的(每次都会复制全部指标)。

通过spring.metrics.export.*属性可以设置导出的触发器(delay-millisincludesexcludessend-latest),特殊MetricWriters的值可以通过spring.metrics.export.triggers.<name>.*设置,此处<name>是bean的名称(或匹配bean名称的表达式)。

如果关闭默认的MetricRepository(比如使用Dropwizard指标服务),指标的自动导出将禁用。你可以通过声明自定义类型的MetricReader并注解@ExportMetricReader来获取相同功能。