gpt4 book ai didi

amazon-web-services - AWS X-Ray GoLang Lambda 到 lambda 跟踪并显示在服务 map 中

转载 作者:IT老高 更新时间:2023-10-28 13:09:24 25 4
gpt4 key购买 nike

我有调用 Lamdba 函数 1 并在 Go 中调用 lambda 函数 2 的 API 网关。我想在服务 map 中看到这两个功能。

到目前为止,我能够做到这一点的唯一方法是创建一个自定义段,例如称为“父”,并从该上下文创建一个子段,例如称为“子”。然后使用 client.InvokeWithContext 调用传递“子”段上下文的函数 2。

sess := session.Must(session.NewSession())
client := lambda.New(sess, &aws.Config{Region: aws.String(region)})

xray.Configure(xray.Config{LogLevel: "trace"})
xray.AWS(client.Client)

ctx, seg := xray.BeginSegment(context.Background(), "Parent")
ctx, subseg := xray.BeginSubsegment(ctx, "Child")
result, _ := client.InvokeWithContext(ctx,
lambda.InvokeInput{FunctionName: aws.String(functionName), Payload: nil})
subseg.Close(nil)
seg.Close(nil)

问题是这会在服务映射中创建跟踪父级 -> 子级,但也具有功能 1。

请问在服务 map 上加入这两个功能的最佳方式是什么?笔记。我想在服务 map 上看到超过 2 个链接,以向我展示我通过 lambdas 的整个流程。

请帮忙。

谢谢瑞克

最佳答案

除非您想添加注释/元数据,否则您不需要为“子”调用添加子段。

API 网关将名为 X-Amzn-Trace-Id 的跟踪 ID 添加到传入请求的 header 中,X-ray 会拾取该 ID。如果您在调用中将该跟踪 ID 从 lambda 1 转发到 lambda 2,则 X 射线将在概览中使用从 lambda 1 到 lambda 2 的箭头直观地表示调用,并在查看跟踪详细信息时包括 lambda 2 的跟踪详细信息λ 1.

只要你通过调用链转发顶部的trace ID,X-ray就会正确地用节点和箭头将调用链从一个服务可视化到另一个服务。

来自 https://aws.amazon.com/xray/faqs/ :

Q: What is a trace?

An X-Ray trace is a set of data points that share the same trace ID. For example, when a client makes a request to your application, it is assigned a unique trace ID. As the request makes its way through services in your application, the services relay information regarding the request back to X-Ray using this unique trace ID. The piece of information relayed by each service in your application to X-Ray is a segment, and a trace is a collection of segments.

https://docs.aws.amazon.com/xray/latest/devguide/xray-concepts.html#xray-concepts-tracingheader

https://docs.aws.amazon.com/xray/latest/devguide/xray-services-apigateway.html

关于amazon-web-services - AWS X-Ray GoLang Lambda 到 lambda 跟踪并显示在服务 map 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396352/

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