为了账号安全,请及时绑定邮箱和手机立即绑定

追加新的跟踪失败

追加新的跟踪失败

Go
侃侃尔雅 2021-12-27 17:47:29
我正在尝试使用该patchTraces方法向 Google CloudTrace 提交跟踪信息。我发出的补丁请求返回了一条不透明的错误消息。知道我做错了什么吗?去代码package mainimport (    "io/ioutil"    "log"    "os"    "time"    "github.com/twinj/uuid"    "golang.org/x/oauth2"    goog "golang.org/x/oauth2/google"    cloudtrace "google.golang.org/api/cloudtrace/v1")func run() error {    blob, err := ioutil.ReadFile("jwt.json")    if err != nil {        return err    }    conf, err := goog.JWTConfigFromJSON(blob, cloudtrace.CloudPlatformScope)    if err != nil {        return err    }    client := conf.Client(oauth2.NoContext)    srv, err := cloudtrace.New(client)    if err != nil {        return err    }    tracer := cloudtrace.NewProjectsService(srv)    now := time.Now()    format := "2006-01-02T15:04:05.999999999Z"    call := tracer.PatchTraces("foo-1262", &cloudtrace.Traces{        Traces: []*cloudtrace.Trace{            {                TraceId:   uuid.NewV4().String(),                ProjectId: "foo-1262",                Spans: []*cloudtrace.TraceSpan{                    {                        StartTime: now.Format(format),                        EndTime:   now.Add(5 * time.Second).Format(format),                        Kind:      "RPC_SERVER",                        Name:      "bar",                        SpanId:    100,                    },                },            },        },    })    _, err = call.Do()    return err}func main() {    if err := run(); err != nil {        log.Fatal(err)    }}这是发送的请求https://cloudtrace.googleapis.com/v1/projects/foo-1262/traces?alt=json{    "traces": [{        "projectId": "foo-1262",        "spans": [{            "endTime": "2016-03-26T17:23:19.705253417Z",            "kind": "RPC_SERVER",            "name": "foo",            "spanId": "100",            "startTime": "2016-03-26T17:23:14.705253417Z"        }],        "traceId": "4d86ec85-419d-40cf-ae95-d49c2d066cd6"    }]}一切看起来都正确,但我收到一条无用的错误消息。请帮忙!
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

我的跟踪 ID 生成不正确。


package main


import (

    "io/ioutil"

    "log"

    "os"

    "time"

    "encoding/hex"

    "rand"


    "golang.org/x/oauth2"

    goog "golang.org/x/oauth2/google"

    cloudtrace "google.golang.org/api/cloudtrace/v1"

)


func run() error {

    blob, err := ioutil.ReadFile("jwt.json")

    if err != nil {

        return err

    }

    conf, err := goog.JWTConfigFromJSON(blob, cloudtrace.CloudPlatformScope)

    if err != nil {

        return err

    }


    client := conf.Client(oauth2.NoContext)


    srv, err := cloudtrace.New(client)

    if err != nil {

        return err

    }


    tracer := cloudtrace.NewProjectsService(srv)

    now := time.Now()

    format := "2006-01-02T15:04:05.999999999Z"


    p := make([]byte, 16)

    rand.Read(p)


    call := tracer.PatchTraces("foo-1262", &cloudtrace.Traces{

        Traces: []*cloudtrace.Trace{

            {

                TraceId:   hex.EncodeToString(p),

                ProjectId: "foo-1262",

                Spans: []*cloudtrace.TraceSpan{

                    {

                        StartTime: now.Format(format),

                        EndTime:   now.Add(5 * time.Second).Format(format),

                        Kind:      "RPC_SERVER",

                        Name:      "bar",

                        SpanId:    100,

                    },

                },

            },

        },

    })


    _, err = call.Do()

    return err

}


func main() {

    if err := run(); err != nil {

        log.Fatal(err)

    }

}



查看完整回答
反对 回复 2021-12-27
  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号