37. MetricsLauncher

Spring Boot Actuator 为Micrometer提供了依赖项 Management 和自动配置,Micrometer是支持众多monitoring systems的应用程序度量外观。

Spring Cloud Stream 支持将任何可用的基于千分尺的度量标准发送到绑定目标,从而允许从流应用程序中定期收集度量标准数据,而无需依赖于轮询各个端点。

通过定义spring.cloud.stream.bindings.applicationMetrics.destination属性来激活“度量标准 Launcher”,该属性指定当前绑定程序用于发布度量标准消息的绑定目标的名称。

For example:

spring.cloud.stream.bindings.applicationMetrics.destination=myMetricDestination

前面的示例指示绑定程序绑定到myMetricDestination(即 Rabbit 交换,Kafka 主题等)。

以下属性可用于自定义 Metrics 的运行:

  • spring.cloud.stream.metrics.key

    • 发出的度量标准的名称。每个应用程序的唯一值。

默认值:${spring.application.name:${vcap.application.name:${spring.config.name:application}}}

  • spring.cloud.stream.metrics.properties

    • 允许白名单应用程序属性添加到度量有效负载

Default: null.

  • spring.cloud.stream.metrics.meter-filter

    • 控制要捕获的“仪表”的模式。例如,指定spring.integration.*将捕获名称以spring.integration.开头的仪表的度量标准信息

默认值:捕获所有“仪表”。

  • spring.cloud.stream.metrics.schedule-interval

    • 控制发布度量标准数据的速率的时间间隔。

默认值:1 分钟

考虑以下:

java -jar time-source.jar \
    --spring.cloud.stream.bindings.applicationMetrics.destination=someMetrics \
    --spring.cloud.stream.metrics.properties=spring.application** \
    --spring.cloud.stream.metrics.meter-filter=spring.integration.*

下面的示例显示由于上述命令而发布到绑定目标的数据的有效负载:

{
	"name": "application",
	"createdTime": "2018-03-23T14:48:12.700Z",
	"properties": {
	},
	"metrics": [
		{
			"id": {
				"name": "spring.integration.send",
				"tags": [
					{
						"key": "exception",
						"value": "none"
					},
					{
						"key": "name",
						"value": "input"
					},
					{
						"key": "result",
						"value": "success"
					},
					{
						"key": "type",
						"value": "channel"
					}
				],
				"type": "TIMER",
				"description": "Send processing time",
				"baseUnit": "milliseconds"
			},
			"timestamp": "2018-03-23T14:48:12.697Z",
			"sum": 130.340546,
			"count": 6,
			"mean": 21.72342433333333,
			"upper": 116.176299,
			"total": 130.340546
		}
	]
}

Note

鉴于在迁移到 Micrometer 后 Metric 消息的格式略有变化,已发布的消息还将STREAM_CLOUD_STREAM_VERSIONHeaders 设置为2.x,以帮助区分 Spring Cloud Stream 的较旧版本中的 Metric 消息。