如何解决aws-xray-sdk-python:手动创建的段不会显示在AWS服务地图上
我在Docker ECS容器中运行我的应用程序(因此XRAY守护程序也在Docker容器中运行)。 我看到的痕迹来自于自动修补的库(请求,sqlite3,httplib,botocore)和检测的中间件(Django)。 日志显示了我手动创建的细分和子细分,以及我可以在AWS服务地图上看到的trace_id。 问题在于,我在日志中看到的手动创建的细分和子细分在服务图上找不到。
在此示例中,我在pytest测试中调用了我的API和中间件:
from aws_xray_sdk.core import patch_all,xray_recorder
# configure X-RAY plugins for EC2 and ECS
xray_recorder.configure(
sampling=False,context_missing="LOG_ERROR",plugins=("EC2Plugin","ECSPlugin","ElasticBeanstalkPlugin"),daemon_address="127.0.0.1:2000",dynamic_naming="*__init__silvakle*",service="__INIT__",)
logging.basicConfig(level="WARNING")
logging.getLogger("aws_xray_sdk").setLevel(logging.DEBUG)
patch_all(double_patch=True)
def test_call_api:
xray_recorder.begin_segment(name="systest_testX_rest_api")
#call routine execute_command()
xray_recorder.end_segment()
@xray_recorder.capture("## execute_command")
def execute_command(text,reply_all_messages=True):
...
在终端中,我清楚地看到了名为“ systest_testX_rest_api”的段和子段“ ## execute_command”,但是在AWS XRAY服务地图上,虽然我看到trace_id很好,但是这些段和子段无处可去被发现。
那么,我在这里想念什么?为了使手动创建的细分和子细分显示在AWS服务地图上,我们还应该做些什么?
解决方法
要回答您的问题,除了创建手动分段和子分段以显示在AWS X-Ray控制台上之外,您无需执行其他任何操作。我认为对于手动细分,您必须将其标记为远程才能显示在AWS X-Ray控制台上。我的问题是,您看到该手动创建的网段的任何下游节点吗?您可以共享跟踪时间表和服务地图图像吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。