指标发射器
Spring Cloud Stream提供了一个名为spring-cloud-stream-metrics
的模块,可以用来从Spring Boot度量端点到命名通道发出任何可用度量。该模块允许运营商从流应用收集指标,而不依赖轮询其端点。
当您设置度量绑定的目标名称(例如spring.cloud.stream.bindings.applicationMetrics.destination=<DESTINATION_NAME>
)时,该模块将被激活。可以以与任何其他生成器绑定相似的方式配置applicationMetrics
。applicationMetrics
的contentType
默认设置为application/json
。
以下属性可用于自定义度量标准的排放:
- spring.cloud.stream.metrics.key
要发射的度量的名称。应该是每个应用程序的唯一值。
- 默认
${spring.application.name:${vcap.application.name:${spring.config.name:application}}}
- spring.cloud.stream.metrics.prefix
前缀字符串,以前缀到度量键。
默认值:``
- spring.cloud.stream.metrics.properties
就像
includes
选项一样,它允许将白名单应用程序属性添加到度量有效负载默认值:null。
有关度量导出过程的详细概述,请参见Spring Boot参考文档。Spring Cloud Stream提供了一个名为application
的指标导出器,可以通过常规Spring Boot指标配置属性进行配置。
可以通过使用出口商的全局Spring Boot配置设置或使用特定于导出器的属性来配置导出器。要使用全局配置设置,属性应以spring.metric.export
为前缀(例如spring.metric.export.includes=integration**
)。这些配置选项将适用于所有出口商(除非它们的配置不同)。或者,如果要使用与其他出口商不同的配置设置(例如,限制发布的度量数量),则可以使用前缀spring.metrics.export.triggers.application
配置Spring Cloud Stream提供的度量导出器(例如spring.metrics.export.triggers.application.includes=integration**
)。
注意 | 由于Spring Boot的轻松约束,所包含的属性的值可能与原始值稍有不同。 作为经验法则,度量导出器将尝试使用点符号(例如 规范化的目标是使下游用户能够始终如一地接收属性名称,无论它们如何设置在受监视的应用程序上( |
以下是通过以下命令以JSON格式发布到频道的数据的示例:
java -jar time-source.jar \
--spring.cloud.stream.bindings.applicationMetrics.destination=someMetrics \
--spring.cloud.stream.metrics.properties=spring.application** \
--spring.metrics.export.includes=integration.channel.input**,integration.channel.output**
得到的JSON是:
{
"name":"time-source",
"metrics":[
{
"name":"integration.channel.output.errorRate.mean",
"value":0.0,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.errorRate.max",
"value":0.0,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.errorRate.min",
"value":0.0,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.errorRate.stdev",
"value":0.0,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.errorRate.count",
"value":0.0,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.sendCount",
"value":6.0,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.sendRate.mean",
"value":0.994885872292989,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.sendRate.max",
"value":1.006247080013156,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.sendRate.min",
"value":1.0012035220116378,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.sendRate.stdev",
"value":6.505181111084848E-4,
"timestamp":"2017-04-11T16:56:35.790Z"
},
{
"name":"integration.channel.output.sendRate.count",
"value":6.0,
"timestamp":"2017-04-11T16:56:35.790Z"
}
],
"createdTime":"2017-04-11T20:56:35.790Z",
"properties":{
"spring.application.name":"time-source",
"spring.application.index":"0"
}
}