可观察性
Spring for Apache Pulsar 包括一种通过 Micrometer 管理可观测性的方法。
可观察性尚未添加到 Reactive 组件中 |
千分尺观测
和 使用 Micrometer observations API 进行检测。
当提供 Micrometer bean 时,将跟踪发送和接收操作并对其进行计时。PulsarTemplate
PulsarListener
ObservationRegistry
自定义标签
默认实现添加模板观察的标签和侦听器观察的标签。
要向计时器和跟踪添加其他标签,请分别配置自定义或模板或侦听器容器。bean.name
listener.id
PulsarTemplateObservationConvention
PulsarListenerObservationConvention
您可以子类化 or 或 提供全新的实现。DefaultPulsarTemplateObservationConvention DefaultPulsarListenerObservationConvention |
可观测性 - 指标
您可以在下面找到此项目声明的所有指标的列表。
侦听器观察
当 Pulsar 侦听器收到消息时创建的 Observation。
度量名称(由 convention class 定义)。键入 。spring.pulsar.listener
org.springframework.pulsar.observation.DefaultPulsarListenerObservationConvention
timer
度量名称(由 convention class 定义)。键入 。spring.pulsar.listener.active
org.springframework.pulsar.observation.DefaultPulsarListenerObservationConvention
long task timer
*.active 指标中可能缺少在开始观察后添加的 KeyValue。 |
Micrometer 内部用于 baseunit。但是,每个后端都决定了实际的 baseunit。(即 Prometheus 使用秒)nanoseconds |
封闭类 的完全限定名称 。org.springframework.pulsar.observation.PulsarListenerObservation
所有标签都必须以 prefix 为前缀!spring.pulsar.listener |
名字 |
描述 |
|
接收消息的侦听器容器的 ID。 |
模板观察
当 Pulsar 模板发送消息时创建的 Observation。
度量名称(由 convention class 定义)。键入 。spring.pulsar.template
org.springframework.pulsar.observation.DefaultPulsarTemplateObservationConvention
timer
度量名称(由 convention class 定义)。键入 。spring.pulsar.template.active
org.springframework.pulsar.observation.DefaultPulsarTemplateObservationConvention
long task timer
*.active 指标中可能缺少在开始观察后添加的 KeyValue。 |
Micrometer 内部用于 baseunit。但是,每个后端都决定了实际的 baseunit。(即 Prometheus 使用秒)nanoseconds |
封闭类 的完全限定名称 。org.springframework.pulsar.observation.PulsarTemplateObservation
所有标签都必须以 prefix 为前缀!spring.pulsar.template |
名字 |
描述 |
|
发送消息的模板的 Bean 名称。 |
可观测性 - Span
您可以在下面找到此项目声明的所有 span 的列表。
侦听器观察跨度
当 Pulsar 侦听器收到消息时创建的 Observation。
Span name (由 convention class 定义)。spring.pulsar.listener
org.springframework.pulsar.observation.DefaultPulsarListenerObservationConvention
封闭类 的完全限定名称 。org.springframework.pulsar.observation.PulsarListenerObservation
所有标签都必须以 prefix 为前缀!spring.pulsar.listener |
名字 |
描述 |
|
接收消息的侦听器容器的 ID。 |
模板观察跨度
当 Pulsar 模板发送消息时创建的 Observation。
Span name (由 convention class 定义)。spring.pulsar.template
org.springframework.pulsar.observation.DefaultPulsarTemplateObservationConvention
封闭类 的完全限定名称 。org.springframework.pulsar.observation.PulsarTemplateObservation
所有标签都必须以 prefix 为前缀!spring.pulsar.template |
名字 |
描述 |
|
发送消息的模板的 Bean 名称。 |
有关更多信息,请参阅 Micrometer Tracing 。
不使用 Spring Boot 的手动配置
如果您不使用 Spring Boot,则需要配置并提供 以及 Micrometer Tracing。有关更多信息,请参阅 Micrometer Tracing 。ObservationRegistry
使用 Spring Boot 进行自动配置
如果使用 Spring Boot,则 Spring Boot Actuator 会自动为您配置实例。
如果位于 Classpath 上,则每个停止的观察都会导致一个计时器。ObservationRegistry
micrometer-core
Spring Boot 还为您自动配置了 Micrometer Tracing。这包括对 Brave OpenTelemetry、Zipkin 和 Wavefront 的支持。使用 Micrometer Observation API 时,完成观测会导致向 Zipkin 或 Wavefront 报告跨度。您可以通过在 中设置 属性来控制跟踪。您可以将 Zipkin 与 一起使用,而 Wavefront 使用 .management.tracing
management.zipkin.tracing
management.wavefront
示例配置
以下示例显示了将 Spring Boot 应用程序配置为将 Zipkin 与 Brave 一起使用的步骤。
-
将所需的依赖项添加到您的应用程序(分别在 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: "http://localhost:9411/api/v2/spans"
以上期望 Zipkin 在本地运行,如此处所述。
tracing.endpoint
此时,你的应用程序应该在发送和接收 Pulsar 消息时记录跟踪。您应该能够在 Zipkin UI 中查看它们(在本地运行时,位于 localhost:9411)。
您还可以在 Spring for Apache Pulsar Sample Apps 上查看上述配置。 |
这些步骤与配置任何其他受支持的跟踪环境非常相似。