代码拉取完成,页面将自动刷新
// 版权归GoFrame作者(https://goframe.org)所有。保留所有权利。
//
// 本源代码形式受MIT许可证条款约束。
// 如果未随本文件一同分发MIT许可证副本,
// 您可以在https://github.com/gogf/gf处获取。
// md5:a9832f33b234e3f3
// Package tracing 提供了一些用于追踪功能的实用函数。 md5:e35e84e99377e9ae
package tracing
import (
"math"
"time"
"go.opentelemetry.io/otel/trace"
gtype "gitee.com/go_888/goframe/container/gtype"
gbinary "gitee.com/go_888/goframe/encoding/gbinary"
grand "gitee.com/go_888/goframe/util/grand"
)
var (
randomInitSequence = int32(grand.X整数(math.MaxInt32))
sequence = gtype.X创建整数32位(randomInitSequence)
)
// NewIDs 生成并返回一个新的 trace 和 span ID。 md5:1b5d0dc93c6f38ff
func NewIDs() (traceID trace.TraceID, spanID trace.SpanID) {
return NewTraceID(), NewSpanID()
}
// NewTraceID 创建并返回一个追踪ID。 md5:6832c150aaff566d
func NewTraceID() (traceID trace.TraceID) {
var (
timestampNanoBytes = gbinary.EncodeInt64(time.Now().UnixNano())
sequenceBytes = gbinary.EncodeInt32(sequence.X追加(1))
randomBytes = grand.X字节集(4)
)
copy(traceID[:], timestampNanoBytes)
copy(traceID[8:], sequenceBytes)
copy(traceID[12:], randomBytes)
return
}
// NewSpanID 创建并返回一个新的span ID。 md5:02d4095273219037
func NewSpanID() (spanID trace.SpanID) {
copy(spanID[:], gbinary.EncodeInt64(time.Now().UnixNano()/1e3))
copy(spanID[4:], grand.X字节集(4))
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。