8、构建可观测性与服务发现的服务

构建可观测性与服务发现的服务

让服务具备可观测性

为了让服务具备可观测性,我们可以添加指标、结构化日志和跟踪信息。在生产环境中,通常会将这些可观测性数据配置到外部服务,如 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
  1. 更新导入 :打开 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值