【回顧】構(gòu)建高性能可觀測(cè)應(yīng)用的利器
共 2531字,需瀏覽 6分鐘
·
2024-11-29 19:30
大家好,又見面了,我是 GitHub 精選君!
背景介紹
在現(xiàn)代軟件開發(fā)生命周期中,可觀測(cè)性(Observability)成為確保應(yīng)用健康、高性能的一個(gè)關(guān)鍵因素。它幫助開發(fā)者理解軟件在生產(chǎn)環(huán)境中的表現(xiàn),以及系統(tǒng)之間是如何交互的。隨著微服務(wù)架構(gòu)的流行,系統(tǒng)之間的交互變得更加復(fù)雜,傳統(tǒng)的日志、監(jiān)控等手段已不能全面覆蓋可觀測(cè)性需求,這就需要更先進(jìn)的工具來(lái)捕獲、分析和管理數(shù)據(jù)。然而,構(gòu)建這樣一個(gè)流程往往需要大量的工作,并且要求開發(fā)者有相對(duì)深厚的專業(yè)知識(shí)。
今天要給大家推薦一個(gè) GitHub 開源項(xiàng)目 opentelemetry-go,該項(xiàng)目在 GitHub 有超過(guò) 4.9k Star。
一句話介紹該項(xiàng)目:OpenTelemetry Go API and SDK
項(xiàng)目介紹
OpenTelemetry-Go 是 OpenTelemetry 的 Go 實(shí)現(xiàn)版本,旨在提供一套簡(jiǎn)單而強(qiáng)大的 API 以直接測(cè)量你的軟件性能和行為,并將這些數(shù)據(jù)發(fā)送到可觀測(cè)性平臺(tái)。現(xiàn)階段, OpenTelemetry-Go 對(duì) Traces(追蹤) 和 Metrics(度量) 提供穩(wěn)定支持,對(duì) Logs(日志) 提供 Beta 階段的支持。
該項(xiàng)目兼顧了簡(jiǎn)單性與可擴(kuò)展性,即使是沒有深厚技術(shù)背景的開發(fā)者也能輕松上手,并快速集成到現(xiàn)有的 Go 應(yīng)用中。
如何使用
首先需要安裝 Go SDK??梢酝ㄟ^(guò)訪問(wèn) opentelemetry.io 文檔來(lái)獲取開始指南。以下是對(duì)如何安裝和簡(jiǎn)單使用的總結(jié):
1、添加 OpenTelemetry-Go 依賴到你的 Go 項(xiàng)目中。
2、選擇和配置合適的 Exporter(導(dǎo)出器),以將數(shù)據(jù)發(fā)送到你選擇的觀測(cè)平臺(tái)。
3、通過(guò)官方或第三方 instrumentation 庫(kù),或直接使用 API 來(lái)對(duì)你的應(yīng)用進(jìn)行插樁。
代碼示例如下:
package main
import (
"context"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/sdk/resource"
semconv "go.opentelemetry.io/otel/semconv/v1.7.0"
"go.opentelemetry.io/otel/sdk/trace"
)
func main() {
ctx := context.Background()
exporter, err := otlptrace.New(ctx, otlptracegrpc.NewClient())
if err != nil { // handle error
}
// Create Tracer provider
tp := trace.NewTracerProvider(
trace.WithBatcher(exporter),
trace.WithResource(resource.NewSchemaless(semconv.ServiceNameKey.String("your-service-name"))),
)
otel.SetTracerProvider(tp)
// Start by your app code
}
以下是該項(xiàng)目 Star 趨勢(shì)圖(代表項(xiàng)目的活躍程度):
更多項(xiàng)目詳情請(qǐng)查看如下鏈接。
開源項(xiàng)目地址:https://github.com/open-telemetry/opentelemetry-go
開源項(xiàng)目作者:open-telemetry
關(guān)注我們,一起探索有意思的開源項(xiàng)目。
點(diǎn)擊如下卡片后臺(tái)回復(fù):加群,與技術(shù)極客們一起交流人工智能、開源項(xiàng)目,一起成長(zhǎng)。如果你正在尋求開源項(xiàng)目推廣、DevOps、AIGC 大模型、軟件開發(fā)等領(lǐng)域的付費(fèi)服務(wù),可參考推文了解詳情。
讀者專屬插件:github.com/ZhuPeng/github_linker
