Release Note

v0.8.0

  • 支持server,client,producer,consumer四种方式的opentelemetry

  • 支持通过环境变量EGO_LOG_WRITER,指定输出file或者stderr

  • 因为opentrace的jeager不在维护,后续jaeger都在opentelemetry中维护。新的opentelemetry有新的规范: https://www.w3.org/TR/trace-context/Release Note - 图1 (opens new window),导致链路会有不兼容版本升级,配套组件需要升级到

  • ekafka => v0.4.1

  • egorm => v0.3.0

  • eredis => v0.3.0

v0.7.1

v0.7.0

Feature

  • 增加单元测试,测试覆盖率到60%
  • 升级gin到master,通过gin的TrustedPlatform参数,解决gin的x-forward-for client ip问题。
  • 升级grpc到v1.42.0,grpc新版本解决了客户端、服务端的一些panic问题,详情请看grpc的release信息。
  • 支持grpc新版本的attributes,以及克隆attributes方式
  • 支持grpc的SetLoggerV2方法,系统日志里会记录grpc底层日志的一些信息。
  • 支持通过治理端口,调用job,适用于k8s通过接口调用服务任务
  • 支持通过治理端口,调用fgprof方法,拿到函数的io耗时,详情请看https://github.com/felixge/fgprof
  • 支持通过proto生成,error、grpc unittest、http api的插件

FixBug

  • 修复在单元测试下,egoErr为ni仍然可以使用其函数做断言操作
  • 修复默认日志通过配置重载的时候,在程序关闭时刻flush日志不生效的问题
  • 修复grpc在使用option的时候,由于闭包问题导致拦截器里配置数据不正确

v0.6.3

  • 增加大量单元测试
  • websocket支持tls
  • 去掉无用的gRPC debug配置
  • job支持HTTP调用和链路追踪

v0.6.2

根据环境变量EGO_LOG_EXTRA_KEYS,自定义日志,通常用于打印自定义Headers/Metadata。如用户ID(X-Ego-Uid)、订单ID(X-Ego-Order-Id)等。

  • 配置格式 {key1},{key2},{key3}…,多个 key 之间通过 “,” 分割。
  • 比如 export EGO_LOG_EXTRA_KEYS=X-Ego-Uid,X-Ego-Order-Id
  • 这些扩展的追踪字段会根据配置的 key1、key2、key3 等键名,从 Headers(HTTP) 或 Metadata(gRPC)或Context中查找对应值并打印到请求日志中 支持自定义字段通过context链路传递,将HTTP、gRPC、gorm、redis等常用中间件中传递,自定义字段例如uid、order_id,并记录到日志中。 拆分自定义header和context

v0.5.8

  • HTTP Client: 支持 Interceptor,增加 metric intercetpor
  • HTTP/gRPC Server: Access 日志支持打印 Metadata/Header 和 Payload/Body,可通过 enableAccessInterceptorReq、enableAccessInterceptorRes 配置开启
  • HTTP/gRPC Server: 支持通过 EGO_LOG_EXTRA_KEYS 环境变量定义额外的日志字段,这些字段从 Headers/Metadata 中自动采集并追加到 Access 日志中
  • HTTP Server: 修复 HTTP Access 日志 uri 字段不显示 query 参数问题
  • HTTP Server: 优化部分测试用例

v0.5.7

  • http client support trace
  • trace is supported by default
  • add health check for grpc and http server
  • support custom log by context value

v0.5.5

  • 优化websocket
  • 支持http到gRPC的代理
  • 升级gin
  • 支持grpc在连接出问题时候报错
  • 支持业务日志的traceid

v0.5.4

  • 正式环境下,panic时候,文件和命令行双输出。并且将field信息,高亮输出到终端。
  • 调试模式下,http,gRPC客户端发送请求,会输出行号,该行号可以直接用goland打开。
  • resolver阶段,无锁化判断,attributes信息是否变更
  • 修改readme文档,描述客户端和服务端gRPC链路玩法
  • 优化gRPC客户端设置metadata信息的性能
  • 根据客户端头文件的控制,返回gRPC服务端的CPU利用率
  • 支持gRPC流式客户端设置metadata信息
  • panic增加配置名