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

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



