5.4 OpenTelemetry 追蹤支援

對於在 Linux 系統上使用舊版 JDBC API (即非 X DevAPI 或 X DevAPI for C) 且使用 OpenTelemetry (OTel) 檢測的應用程式,連接器會將查詢和連線跨度新增至應用程式碼產生的追蹤,並將目前的 OpenTelemetry 環境定義轉發至伺服器。OpenTelemetry 追蹤是在 Connector/C++ 8.1.0 版本中導入的。

注意

OTel 環境定義轉發僅適用於商業產品 MySQL Enterprise Edition。若要進一步了解商業產品,請參閱 https://mysql.dev.org.tw/products/

啟用和停用追蹤

根據預設,只有在檢測過的應用程式連結所需的 OpenTelemetry SDK 程式庫並設定追蹤匯出器,將追蹤資料傳送到某個目的地時,連接器才會產生跨度。如果應用程式碼沒有使用檢測,則舊版連接器也不會使用它。

Connector/C++ 支援連線屬性選項 OPT_OPENTELEMETRY,其具有下列值

  • OTEL_DISABLED:連接器不會建立 OpenTelemetry 跨度,也不會將 OpenTelemetry 環境定義轉發至伺服器。

  • OTEL_PREFERRED:預設值。如果所需的 OpenTelemetry 檢測可用,則在連線中使用檢測。否則,允許連線在沒有任何 OpenTelemetry 檢測的情況下運作。

OPT_OPENTELEMETRY 選項也接受布林值,其中 false 對應於 OTEL_DISABLEDfalse 是此選項唯一接受的布林值;將其設定為 true 沒有意義,且會發出錯誤。

例如,應用程式可以使用採用選項對應引數的 connect() 語法,以任一種形式指定 OPT_OPENTELEMETRY

connection_properties["OPT_OPENTELEMETRY"] = false;
connection_properties["OPT_OPENTELEMETRY"] = OTEL_DISABLED;

當您建置連結到 Connector/C++ 並使用 OTel 檢測的程式碼時,連接器產生的額外跨度會出現在您的程式碼產生的追蹤中。連接器產生的跨度會傳送到使用者程式碼設定的其他跨度所傳送的相同目的地 (追蹤匯出器)。無法將連接器產生的跨度傳送到任何其他目的地。

此實作與透過 MySQL 用戶端程式庫 (或相關的 telemetry_client 用戶端外掛程式) 提供的實作不同。