让服务可观测及实现服务发现
让服务可观测
在服务部署到生产环境时,通常需要配置指标、结构化日志和跟踪信息,将它们发送到外部服务,如 Prometheus、Elasticsearch 和 Jaegar。为了简化操作,我们先将这些可观测性数据记录到文件中,查看数据的样子。
OpenTelemetry 是云原生计算基金会(CNCF)的一个项目,提供了强大且可移植的 API 和库,可用于服务中的指标和分布式跟踪。不过 OpenTelemetry 的 Go gRPC 集成仅支持跟踪,不支持指标,因此我们使用 OpenCensus 库,因为它的 gRPC 集成两者都支持。目前,OpenTelemetry 和 OpenCensus 都不支持日志记录,后续 OpenTelemetry 计划支持,现在我们使用 Uber 的 Zap 日志库。
大多数 Go 网络 API 支持中间件,我们可以通过中间件为所有请求添加指标、日志和跟踪,让服务变得可观测。以下是具体操作步骤:
- 添加依赖
在项目中运行以下命令添加 OpenCensus 和 Zap 依赖:
$ go get go.uber.org/zap@v1.10.0
$ go get go.opencensus.io@v0.22.2
- 更新导入
打开internal/server/server.go文件,更新导入内容: <
超级会员免费看
订阅专栏 解锁全文
1156

被折叠的 条评论
为什么被折叠?



