可觀測性
Spring for Apache Pulsar 透過 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
。
在可觀測物件啟動後新增的鍵值可能不會出現在 *.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
。
在可觀測物件啟動後新增的鍵值可能不會出現在 *.active 指標中。 |
Micrometer 內部使用 `納秒` 作為基本單位。但是,每個後端決定實際的基本單位。(例如,Prometheus 使用秒) |
包含類 `org.springframework.pulsar.observation.PulsarTemplateObservation` 的完全限定名。
所有標籤必須以 `spring.pulsar.template` 字首開頭! |
名稱 |
描述 |
|
傳送訊息的模板 Bean 名稱。 |
可觀測性 - Span
下面列出了本專案宣告的所有 span。
監聽器可觀測物件 Span
Pulsar 監聽器接收訊息時建立的可觀測物件。
Span 名稱 spring.pulsar.listener
(由約定類 `org.springframework.pulsar.observation.DefaultPulsarListenerObservationConvention` 定義)。
包含類 `org.springframework.pulsar.observation.PulsarListenerObservation` 的完全限定名。
所有標籤必須以 `spring.pulsar.listener` 字首開頭! |
名稱 |
描述 |
|
接收訊息的監聽器容器 ID。 |
模板可觀測物件 Span
Pulsar 模板傳送訊息時建立的可觀測物件。
Span 名稱 spring.pulsar.template
(由約定類 `org.springframework.pulsar.observation.DefaultPulsarTemplateObservationConvention` 定義)。
包含類 `org.springframework.pulsar.observation.PulsarTemplateObservation` 的完全限定名。
所有標籤必須以 `spring.pulsar.template` 字首開頭! |
名稱 |
描述 |
|
傳送訊息的模板 Bean 名稱。 |
更多資訊請參見 Micrometer Tracing。
不使用 Spring Boot 的手動配置
如果您不使用 Spring Boot,則需要配置和提供 `ObservationRegistry` 以及 Micrometer Tracing。更多資訊請參見 Micrometer Tracing。
使用 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,使用 `management.wavefront` 配置 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://:9411/api/v2/spans"
上面的 `tracing.endpoint` 假定 Zipkin 正在本地執行,詳情參見此處。
此時,當您傳送和接收 Pulsar 訊息時,您的應用程式應該會記錄跟蹤。您可以在 Zipkin UI 中檢視它們(在本地執行時,訪問 localhost:9411)。
您也可以在 Spring for Apache Pulsar 示例應用 中檢視上述配置。 |
配置步驟與配置任何其他支援的跟蹤環境非常相似。