gpt4 book ai didi

go - 添加新跟踪失败

转载 作者:IT王子 更新时间:2023-10-29 01:47:57 25 4
gpt4 key购买 nike

我正在尝试使用 patchTraces向 Google CloudTrace 提交跟踪信息的方法。我发出的补丁请求返回一条不透明的错误消息。知道我做错了什么吗?

去代码

package main

import (
"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"
}]
}

回应

{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"errors": [{
"message": "Request contains an invalid argument.",
"domain": "global",
"reason": "badRequest"
}],
"status": "INVALID_ARGUMENT"
}
}

一切看起来都正确,但我收到了一条无用的错误消息。请帮忙!

最佳答案

我的跟踪 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)
}
}

关于go - 添加新跟踪失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36242589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com