Observability
面向 Apache Pulsar 的 Spring 包括一种通过 Micrometer 管理可观察性的方式。
可观测性尚未添加到 Reactive 组件中 |
Micrometer Observations
PulsarTemplate
和 PulsarListener
使用 Micrometer 可观察性 API 进行检测。当提供 Micrometer ObservationRegistry
bean 时,发送和接收操作将被追踪和计时。
Custom tags
默认实现为模板可观察性添加 bean.name
标签,并为侦听器可观察性添加 listener.id
标签。要向计时器和追踪添加其他标签,请分别将自定义 PulsarTemplateObservationConvention
或 PulsarListenerObservationConvention
配置到模板或侦听器容器。
您可以将 |
Unresolved include directive in modules/ROOT/pages/reference/observability.adoc - include::partial$_metrics.adoc[]
Unresolved include directive in modules/ROOT/pages/reference/observability.adoc - include::partial$_spans.adoc[]
有关更多信息,请参见 Micrometer Tracing。
Manual Configuration without Spring Boot
如果不使用 Spring Boot,则需要配置和提供 ObservationRegistry
以及微米追踪。有关更多信息,请参见 Micrometer Tracing。
Auto-Configuration with Spring Boot
如果你使用 Spring Boot,Spring Boot Actuator 将为你自动配置一个 ObservationRegistry
实例。如果类路径上有 micrometer-core
,则每个停止的可观察性都会导致一个计时器。
Spring Boot 也为你自动配置了 Micrometer Tracing。其中包括对 Brave OpenTelemetry、Zipkin 和 Wavefront 的支持。在使用 Micrometer Observation API 时,完成观察会导致将 span 报告给 Zipkin 或 Wavefront。你可以通过设置 management.tracing
下的属性来控制跟踪。你可以使用 management.zipkin.tracing
和 Zipkin,而 Wavefront 使用 `management.wavefront。
Example Configuration
下面的示例演示了将 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>
dependencies {
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'` 依赖项。 . 将所需的属性添加到您的应用程序中:[source, yaml]
management: tracing.enabled: true zipkin: tracing.endpoint: "http://localhost:9411/api/v2/spans"
如 tracing.endpoint
所述,Zipkin 在本地运行,如 here 中所述。
此时,您的应用程序在发送和接收 Pulsar 消息时应该会记录追踪。在 Zipkin UI(在 [role="bare"][role="bare"]http://localhost:9411,本地运行中)中,您应该可以查看追踪。
您还可以在 Spring for Apache Pulsar Sample Apps 上看到前面的配置。 |
这些步骤与配置任何所支持的其它跟踪环境非常相似。