大家好,又见面了,我是 GitHub 精选君!
背景介绍在现代软件开发生命周期中,可观测性(Observability)成为确保应用健康、高性能的一个关键因素。它帮助开发者理解软件在生产环境中的表现,以及系统之间是如何交互的。随着微服务架构的流行,系统之间的交互变得更加复杂,传统的日志、监控等手段已不能全面覆盖可观测性需求,这就需要更先进的工具来捕获、分析和管理数据。然而,构建这样一个流程往往需要大量的工作,并且要求开发者有相对深厚的专业知识。
![](http://image.uc.cn/s/wemedia/s/upload/2024/9b944f76ae05e3e68e81fa04596eee63.png)
今天要给大家推荐一个 GitHub 开源项目 opentelemetry-go,该项目在 GitHub 有超过 4.9k Star。
![](http://image.uc.cn/s/wemedia/s/upload/2024/3dd77d861f82a1bb92543f1bafa27cbf.png)
一句话介绍该项目:OpenTelemetry Go API and SDK
![](http://image.uc.cn/s/wemedia/s/upload/2024/d7c5ea0b795e39043b240df47dd0a8c0.png)
OpenTelemetry-Go 是 OpenTelemetry 的 Go 实现版本,旨在提供一套简单而强大的 API 以直接测量你的软件性能和行为,并将这些数据发送到可观测性平台。现阶段, OpenTelemetry-Go 对 Traces(追踪) 和 Metrics(度量) 提供稳定支持,对 Logs(日志) 提供 Beta 阶段的支持。
![](http://image.uc.cn/s/wemedia/s/upload/2024/ca5a0fa357573a532a96ad4b15fec189.png)
该项目兼顾了简单性与可扩展性,即使是没有深厚技术背景的开发者也能轻松上手,并快速集成到现有的 Go 应用中。
![](http://image.uc.cn/s/wemedia/s/upload/2024/058bb6c46c3baff0b1b055286b1ee870.png)
首先需要安装 Go SDK。可以通过访问 opentelemetry.io 文档来获取开始指南。以下是对如何安装和简单使用的总结:
1、添加 OpenTelemetry-Go 依赖到你的 Go 项目中。
2、选择和配置合适的 Exporter(导出器),以将数据发送到你选择的观测平台。
3、通过官方或第三方 instrumentation 库,或直接使用 API 来对你的应用进行插桩。
代码示例如下:
package mainimport ( "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}以下是该项目 Star 趋势图(代表项目的活跃程度):
![](http://image.uc.cn/s/wemedia/s/upload/2024/5aebf149de9d470aab9273c1edce0a08.png)
更多项目详情请查看如下链接。
开源项目地址:https://github.com/open-telemetry/opentelemetry-go
开源项目作者:open-telemetry
以下是参与项目建设的所有成员:
![](http://image.uc.cn/s/wemedia/s/upload/2024/8b448f030e35700ed5d1aa31ba31704c.png)
关注我们,一起探索有意思的开源项目。