package
0.0.0-20220929103845-2ebd1957c018
Repository: https://github.com/pandaychen/grpc-wrapper-framework.git
Documentation: pkg.go.dev

# README

组件

Tracing

概览

  • 基于 opentracing 语义
  • 使用 protobuf 协议描述 trace 结构
  • 参考 Kratos 代码改造,对比opentracing-go的实现更为轻量

结构定义

根据opentracing的语义:
base

Tag

kv结构

Log

kv结构

封装

  • Inject:注入的过程就是把 context 的所有信息写入到一个叫 Carrier 的 map 中,然后把 map 中的所有 KV 对写入 HTTP Header 或者 grpc Metadata
  • Extract:抽取过程是注入的逆过程,从 carrier,也就是 HTTP Headers(grpc Metadata),构建 SpanContext

整个过程类似客户端和服务器传递数据的序列化和反序列化的过程。这里的 Carrier (Map)支持 Key 为 string 类型,value 为 string 或者 Binary 格式(Bytes)

参考