1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package utils
- import (
- "context"
- "gd_management_gateway/common.in/span"
- beegoctx "github.com/astaxie/beego/context"
- "github.com/smallnest/rpcx/share"
- )
- func NewContextFromBeegoCtx(ctx *beegoctx.Context) context.Context {
- // request metadata
- metadata := make(map[string]string)
- if spanID, err := span.ParseSpanID(ctx.Input.Header("span")); err == nil {
- metadata["span"] = span.NewSpanID(*spanID).String()
- }
- return context.WithValue(context.Background(), share.ReqMetaDataKey, metadata)
- }
- func NewContextFromRpcCtx(ctx context.Context) context.Context {
- // request metadata
- metadata := make(map[string]string)
- if preMetadata := ctx.Value(share.ReqMetaDataKey).(map[string]string); preMetadata != nil {
- if v, ok := preMetadata["span"]; ok {
- if spanID, err := span.ParseSpanID(v); err == nil {
- metadata["span"] = span.NewSpanID(*spanID).String()
- }
- }
- }
- return context.WithValue(context.Background(), share.ReqMetaDataKey, metadata)
- }
- func GetSpanFromRpcCtx(ctx context.Context) (spanID *span.SpanID, err error) {
- if preMetadata := ctx.Value(share.ReqMetaDataKey).(map[string]string); preMetadata != nil {
- if v, ok := preMetadata["span"]; ok {
- spanID, err = span.ParseSpanID(v)
- }
- }
- return
- }
- func GetMethodFromRpcCtx(ctx context.Context) (method string) {
- if preMetadata := ctx.Value(share.ReqMetaDataKey).(map[string]string); preMetadata != nil {
- if v, ok := preMetadata["method"]; ok {
- method = v
- }
- }
- return
- }
|