Help us shape the future of Go! Take the 2026 Go Developer Survey

ekit-observability

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2026 License: MIT

README

ekit-observability

可观测性门面层——统一日志、链路追踪 ID、Prometheus 指标、OpenTelemetry、优雅关停。

本仓库是 ekit(git.enjoye.top/enjoydream/ekit v0.34.0) 按框架耦合分层拆分出的独立 Go module,属于 yi-nology ekit 子项目矩阵。

安装

go get github.com/yi-nology/ekit-observability@v0.1.0

包清单

  • observability/logx — 统一日志门面(接口分层,std/slog/hlog 多后端,Delegating 懒解析,MultiSink/FileSink/RotatingSink)
  • observability/logx/hlog — hlog 桥接;observability/logx/hertzlog — hertz-contrib logger 4 后端桥接
  • middleware/traceid — trace_id 唯一真相源(生成/提取/桥接)
  • shutdown/ — 优雅关停管理器(顺序 job、drain 超时)
  • observability/metrics — Prometheus Registry 与指标;metrics/resilience — 熔断/重试共享指标族
  • observability/tracing — OTel Init/Config;tracing/instrumentation/httpotel(net/http)、tracing/instrumentation/redis(go-redis hook)

依赖关系

子项目矩阵与依赖方向(自底向上):

ekit-core                      纯工具层(零内部依赖)
  └─ ekit-observability        日志/追踪/指标门面
       └─ ekit-registry        注册发现 + 配置
            ├─ ekit-data       存储层
            ├─ ekit-network    网络客户端
            │    └─ ekit-nns   服务治理客户端
            │         └─ ekit-bootstrap  应用引导
            ├─ ekit-hertz      Hertz 生态
            ├─ ekit-kitex      Kitex 生态
            └─ ekit-workflow   流程编排

依赖:ekit-core。框架专属 instrumentation(hertzotel/kitexotel 等)分属 ekit-hertz / ekit-kitex。

与 ekit 单体仓库的关系

  • 代码与 ekit v0.34.0 等价,仅 module 路径从 git.enjoye.top/enjoydream/ekit/... 改为 github.com/yi-nology/ekit-observability/...
  • 后续演进以各子仓库独立发版(SemVer);ekit 单体仓库保留完整历史与架构文档(docs/PLATFORM_CONTRACT.md)
  • 开发规范(命名/错误处理/并发安全/日志门面)沿用 ekit AGENTS.md 约定

License

见 LICENSE

Directories

Path Synopsis
internal
logxcallertest
Package logxcallertest 为 logx 的 caller 归属测试提供真实的包外调用帧。
Package logxcallertest 为 logx 的 caller 归属测试提供真实的包外调用帧。
middleware
traceid
Package traceid 负责 HTTP 请求链路追踪 ID(trace_id)的生成、透传与提取。
Package traceid 负责 HTTP 请求链路追踪 ID(trace_id)的生成、透传与提取。
observability
logx
Package logx 提供统一的日志门面,支持多种底层实现。
Package logx 提供统一的日志门面,支持多种底层实现。
logx/hertzlog
Package hertzlog 把 hertz-contrib/logger 4 个子包(logrus/zap/zerolog/slog) 桥接成统一 ekit 风格,让 ekit 业务按需 import 1 个子包并 1 行接 hertz 框架 hlog。
Package hertzlog 把 hertz-contrib/logger 4 个子包(logrus/zap/zerolog/slog) 桥接成统一 ekit 风格,让 ekit 业务按需 import 1 个子包并 1 行接 hertz 框架 hlog。
logx/hlog
Package hlog 提供基于 Hertz hlog 的 logx.Logger 实现。
Package hlog 提供基于 Hertz hlog 的 logx.Logger 实现。
metrics
Package metrics 提供通用的 Prometheus 指标注册和初始化(framework-agnostic)。
Package metrics 提供通用的 Prometheus 指标注册和初始化(framework-agnostic)。
metrics/resilience
Package resilience 提供客户端弹性设施(熔断器/重试)的共享 Prometheus 指标集,供 network/httpx 与 nns/endpoint 等弹性栈消费方复用,保证 全库熔断/重试可观测性的指标命名与标签基数规范一致(PLATFORM_CONTRACT §5.5)。
Package resilience 提供客户端弹性设施(熔断器/重试)的共享 Prometheus 指标集,供 network/httpx 与 nns/endpoint 等弹性栈消费方复用,保证 全库熔断/重试可观测性的指标命名与标签基数规范一致(PLATFORM_CONTRACT §5.5)。
tracing
Package tracing 提供 OpenTelemetry 分布式追踪初始化。
Package tracing 提供 OpenTelemetry 分布式追踪初始化。
tracing/instrumentation/httpotel
Package httpxotel 为标准库 net/http 提供 OpenTelemetry 追踪的 Transport 封装。
Package httpxotel 为标准库 net/http 提供 OpenTelemetry 追踪的 Transport 封装。
tracing/instrumentation/redis
Package redisotel 为 go-redis 客户端提供 OpenTelemetry 追踪插桩。
Package redisotel 为 go-redis 客户端提供 OpenTelemetry 追踪插桩。
Package shutdown 提供优雅关闭管理器。
Package shutdown 提供优雅关闭管理器。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL