Kitex接入可觀測鏈路 OpenTelemetry 版
本文演示如何將Kitex應用接入可觀測鏈路 OpenTelemetry 版。
ARMS應用監(jiān)控針對Golang語言提供了商業(yè)化版本的自研探針,提供了無侵入的埋點能力,擁有更加豐富的功能和更高的穩(wěn)定性。詳細信息,請參見開始監(jiān)控Golang應用。
前提條件
背景信息
CloudWeGo-Kitex是字節(jié)跳動開源的Golang微服務RPC框架,具有高性能、強可擴展的主要特點。其默認支持Thrift、Kitex Protobuf和gRPC消息協(xié)議,且支持豐富服務治理能力及擴展能力。
步驟一:接入Kitex
在您的Kitex應用中,添加如下代碼。
import (
"github.com/kitex-contrib/obs-opentelemetry/provider"
"github.com/kitex-contrib/obs-opentelemetry/tracing"
// ...
)
func main() {
// 省略部分初始化代碼
// **接入OpenTelemetry,默認從環(huán)境變量配置**
p := provider.NewOpenTelemetryProvider(
provider.WithServiceName(constants.NoteServiceName),
provider.WithEnableMetrics(false),
)
defer p.Shutdown(context.Background())
Init()
svr := note.NewServer(new(NoteServiceImpl),
server.WithServerBasicInfo(&rpcinfo.EndpointBasicInfo{ServiceName: constants.NoteServiceName}), // server name
// ...
// **注入tracing到server實例中**
server.WithSuite(tracing.NewServerSuite()),
)
err = svr.Run()
if err != nil {
klog.Fatal(err)
}
}
步驟二:獲取接入點信息
新版控制臺
登錄可觀測鏈路 OpenTelemetry 版控制臺,在左側導航欄單擊接入中心。
在開源框架區(qū)域單擊OpenTelemetry卡片。
在彈出的OpenTelemetry面板中選擇數(shù)據(jù)需要上報的地域。
說明初次接入的地域將會自動進行資源初始化。
選擇連接方式和上報方式,然后復制接入點信息。
連接方式:若您的服務部署在阿里云上,且所屬地域與選擇的接入地域一致,推薦使用阿里云內(nèi)網(wǎng)方式,否則選擇公網(wǎng)方式。
上報方式:根據(jù)客戶端支持的協(xié)議類型選擇HTTP或gRPC協(xié)議上報數(shù)據(jù)。
舊版控制臺
在左側導航欄單擊集群配置,然后在右側頁面單擊接入點信息頁簽。
在頁面頂部選擇需要接入的地域,然后在集群信息區(qū)域打開顯示Token開關。
在客戶端采集工具區(qū)域單擊OpenTelemetry。
在相關信息列中,獲取接入點信息。
說明如果應用部署于阿里云生產(chǎn)環(huán)境,則選擇阿里云VPC網(wǎng)絡接入點,否則選擇公網(wǎng)接入點。
步驟三:部署應用
如果您使用的是ACK服務,可以在容器服務管理控制臺目標集群的 頁面創(chuàng)建Deployment。具體操作,請參見創(chuàng)建無狀態(tài)工作負載Deployment。
根據(jù)上文步驟二獲取的接入點信息配置如下環(huán)境變量,從而上報數(shù)據(jù)到可觀測鏈路 OpenTelemetry 版。
Key
說明
示例值
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
Trace上報的Endpoint。
http://tracing-analysis-dc-zb.aliyuncs.com:8090
OTEL_EXPORTER_OTLP_TRACES_HEADERS
OTEL上報會帶上的Header,用于鑒權。
authentication=cx0xxxxx@285xxxxx_cx0xxxxx@53xxxxx
驗證
啟動應用并引入流量。
在可觀測鏈路 OpenTelemetry 版控制臺的應用列表頁面選擇目標應用,查看鏈路數(shù)據(jù)。