可观测性
Apache Pulsar 的 Spring 支持包含通过 Micrometer 管理可观测性的方法。
可观测性尚未添加到响应式组件中 |
Micrometer 观测指标
PulsarTemplate
和 PulsarListener
使用 Micrometer 观测指标 API 进行检测。提供 Micrometer ObservationRegistry
bean 时,发送和接收操作将被跟踪和计时。
自定义标签
默认实现为模板观测指标添加 bean.name
标签,为侦听器观测指标添加 listener.id
标签。要向计时器和跟踪添加其他标签,请分别将自定义 PulsarTemplateObservationConvention
或 PulsarListenerObservationConvention
配置到模板或侦听器容器。
您可以对 DefaultPulsarTemplateObservationConvention 或 DefaultPulsarListenerObservationConvention 进行子类化,或提供全新的实现。 |
可观测性 - 指标
您可以在下面找到此项目声明的所有指标的列表。
侦听器观测指标
Pulsar 侦听器接收消息时创建的观测指标。
指标名称 spring.pulsar.listener
(由约定类 org.springframework.pulsar.observation.DefaultPulsarListenerObservationConvention
定义)。类型 timer
。
指标名称 spring.pulsar.listener.active
(由约定类 org.springframework.pulsar.observation.DefaultPulsarListenerObservationConvention
定义)。类型 long task timer
。
启动观测指标后添加的 KeyValues 可能在 *.active 指标中缺失。 |
Micrometer 内部使用纳秒 作为基本单位。但是,每个后端都会确定实际的基本单位。(例如,Prometheus 使用秒) |
封闭类的完全限定名 org.springframework.pulsar.observation.PulsarListenerObservation
。
所有标签都必须以 spring.pulsar.listener 前缀开头! |
名称 |
描述 |
|
接收消息的侦听器容器的 ID。 |
模板观测指标
Pulsar 模板发送消息时创建的观测指标。
指标名称 spring.pulsar.template
(由约定类 org.springframework.pulsar.observation.DefaultPulsarTemplateObservationConvention
定义)。类型 timer
。
指标名称 spring.pulsar.template.active
(由约定类 org.springframework.pulsar.observation.DefaultPulsarTemplateObservationConvention
定义)。类型 long task timer
。
启动观测指标后添加的 KeyValues 可能在 *.active 指标中缺失。 |
Micrometer 内部使用纳秒 作为基本单位。但是,每个后端都会确定实际的基本单位。(例如,Prometheus 使用秒) |
封闭类的完全限定名 org.springframework.pulsar.observation.PulsarTemplateObservation
。
所有标签都必须以 spring.pulsar.template 前缀开头! |
名称 |
描述 |
|
发送消息的模板的 Bean 名称。 |
可观测性 - 跨度
您可以在下面找到此项目声明的所有跨度的列表。
侦听器观测跨度
Pulsar 侦听器接收消息时创建的观测指标。
跨度名称 spring.pulsar.listener
(由约定类 org.springframework.pulsar.observation.DefaultPulsarListenerObservationConvention
定义)。
封闭类的完全限定名 org.springframework.pulsar.observation.PulsarListenerObservation
。
所有标签都必须以 spring.pulsar.listener 前缀开头! |
名称 |
描述 |
|
接收消息的侦听器容器的 ID。 |
模板观测跨度
Pulsar 模板发送消息时创建的观测指标。
跨度名称 spring.pulsar.template
(由约定类 org.springframework.pulsar.observation.DefaultPulsarTemplateObservationConvention
定义)。
封闭类的完全限定名 org.springframework.pulsar.observation.PulsarTemplateObservation
。
所有标签都必须以 spring.pulsar.template 前缀开头! |
名称 |
描述 |
|
发送消息的模板的 Bean 名称。 |
有关详细信息,请参阅 Micrometer 跟踪。
无需 Spring Boot 的手动配置
如果您不使用 Spring Boot,则需要配置并提供 ObservationRegistry
以及 Micrometer 跟踪。有关详细信息,请参阅 Micrometer 跟踪。
使用 Spring Boot 的自动配置
如果您使用 Spring Boot,则 Spring Boot Actuator 会为您自动配置 ObservationRegistry
实例。如果 micrometer-core
位于类路径中,则每个停止的观测指标都会导致计时器。
Spring Boot 还会为您自动配置 Micrometer 跟踪。这包括对 Brave OpenTelemetry、Zipkin 和 Wavefront 的支持。使用 Micrometer 观测指标 API 时,完成观测指标会导致报告给 Zipkin 或 Wavefront 的跨度。您可以通过设置 management.tracing
下的属性来控制跟踪。您可以将 Zipkin 与 management.zipkin.tracing
一起使用,而 Wavefront 使用 management.wavefront
。
示例配置
以下示例显示了将 Spring Boot 应用程序配置为与 Brave 一起使用 Zipkin 的步骤。
-
将所需的依赖项添加到您的应用程序(分别在 Maven 或 Gradle 中)
-
Maven
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-tracing-bridge-brave</artifactId> </dependency> <dependency> <groupId>io.zipkin.reporter2</groupId> <artifactId>zipkin-reporter-brave</artifactId> </dependency> <dependency> <groupId>io.zipkin.reporter2</groupId> <artifactId>zipkin-sender-urlconnection</artifactId> </dependency> </dependencies>
Gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-tracing-bridge-brave' implementation 'io.zipkin.reporter2:zipkin-reporter-brave' implementation 'io.zipkin.reporter2:zipkin-sender-urlconnection' }
注意:如果您的应用程序未配置 WebClient 或 RestTemplate,则只需要
'io.zipkin.reporter2:zipkin-sender-urlconnection'
依赖项。 -
-
将所需的属性添加到您的应用程序
management: tracing.enabled: true zipkin: tracing.endpoint: "https://127.0.0.1:9411/api/v2/spans"
上面的
tracing.endpoint
预期 Zipkin 按照 此处 所述在本地运行。
此时,当您发送和接收 Pulsar 消息时,您的应用程序应记录跟踪。您应该能够在 Zipkin UI 中查看它们(在本地运行时为 localhost:9411)。
您还可以在 Apache Pulsar 的 Spring 支持示例应用程序 中查看上述配置。 |
配置其他支持的跟踪环境的步骤非常相似。