首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Golang (otel)覆盖span的StartTime和EndTime

用Golang (otel)覆盖span的StartTime和EndTime
EN

Stack Overflow用户
提问于 2022-04-09 02:43:42
回答 1查看 546关注 0票数 1

在进行跟踪之前,我正在为收集的数据生成跟踪。这意味着跨度创建时间与实际开始时间不匹配。

我在过去使用opentracing就能做到这一点

代码语言:javascript
复制
span := tracer.StartSpan(
    name,
    opentracing.StartTime(startTime),
)

我一直没能在戈朗大学的图书馆找到类似的东西。我觉得这应该是可能的基于这个从规范中引用的

启动时间戳,默认为当前时间。只有当span创建时间已过时,才应设置此参数。如果API是在跨逻辑启动时调用的,则API用户不能显式设置此参数。

“默认”一词意味着在span创建之后应该可以更改这个时间戳。

我试过使用span.SetAttributes

代码语言:javascript
复制
span.SetAttributes(attribute.Int64("StartTime", 0))

但这(毫不奇怪)设置了一个属性:

代码语言:javascript
复制
{
        // ...
        "StartTime": "2022-04-09T12:28:57.271375+10:00",
        "EndTime": "2022-04-09T12:28:57.271417375+10:00",
        "Attributes": [
                {
                        "Key": "StartTime",
                        "Value": {
                                "Type": "INT64",
                                "Value": 0
                        }
                },
         // ...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-09 10:50:54

您需要使用WithTimestamp

代码语言:javascript
复制
startTime := time.Now()
ctx, span := tracer.Start(ctx, "foo", trace.WithTimestamp(startTime))

// do your work

span.End(trace.WithTimestamp(time.Now()))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71804884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档