可觀測性
適用於 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 內部使用 nanoseconds 作為基本單位。但是,每個後端都會決定實際的基本單位。(例如 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 內部使用 nanoseconds 作為基本單位。但是,每個後端都會決定實際的基本單位。(例如 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 搭配使用,而 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 範例應用程式 上看到先前的組態。 |
這些步驟與組態任何其他支援的追蹤環境非常相似。