0

我想boto3使用 X-Ray 开发工具包跟踪对 Python AWS 开发工具包 ( ) 的调用。根据X-Ray 文档,我必须修补boto3. 然后 X-Ray 将自动创建子段,因此我只需将 AWS 开发工具包调用包围在一个段内。这是我的代码:

import boto3
from aws_xray_sdk.core import xray_recorder, patch_all
patch_all()

codecommit = boto3.client("codecommit")

# begin a segment
xray_recorder.begin_segment("Main")

# create a CodeCommit repository named "myrepo1"
codecommit.create_repository(repositoryName="myrepo1")

# end a segment
xray_recorder.end_segment("Main")

首先我启动 X-Ray 守护程序,然后运行脚本。但是,守护程序返回以下错误:

2018-07-27T15:33:01+08:00 [Info] Successfully sent batch of 1 segments (0.146 seconds)
2018-07-27T15:33:01+08:00 [Error] Unprocessed segment: {
  ErrorCode: "MissingEndTime",
  Id: "74d23cdcc7b60c3f",
  Message: "Invalid segment. ErrorCode: MissingEndTime"
}
2018-07-27T15:33:01+08:00 [Warn] Batch that contains unprocessed segments
2018-07-27T15:33:01+08:00 [Warn] {"aws": {"xray": {"sdk": "X-Ray for Python", "sdk_version": "1.1.2"}}, "end_time": "MainSegment", "id": "74d23cdcc7b60c3f", "in_progress": false, "name": "MainSegment", "service": {"runtime": "CPython", "runtime_version": "3.6.5"}, "start_time": 1532676780.5897238, "subsegments": [{"aws": {"operation": "CreateRepository", "region": "ap-southeast-1", "request_id": "4a82bf29-916f-11e8-a631-85af1e9bc33f"}, "end_time": 1532676781.4089937, "http": {"response": {"status": 200}}, "id": "8ec94650265cf358", "in_progress": false, "name": "codecommit", "namespace": "aws", "parent_id": "74d23cdcc7b60c3f", "start_time": 1532676780.617356, "subsegments": [{"end_time": 1532676781.0933495, "http": {"request": {"method": "POST", "url": "https://codecommit.ap-southeast-1.amazonaws.com/"}}, "id": "77c7d8a0f67f8e13", "in_progress": false, "name": "https://codecommit.ap-southeast-1.amazonaws.com/", "namespace": "remote", "parent_id": "8ec94650265cf358", "start_time": 1532676781.0926085, "trace_id": "1-5b5acaac-b87df6ecbf3edbb29d4442f3", "type": "subsegment"}, {"end_time": 1532676781.40752, "http": {"request": {"method": "POST", "url": "https://codecommit.ap-southeast-1.amazonaws.com/"}, "response": {"status": 200}}, "id": "530f510699b9a050", "in_progress": false, "name": "https://codecommit.ap-southeast-1.amazonaws.com/", "namespace": "remote", "parent_id": "8ec94650265cf358", "start_time": 1532676781.093692, "trace_id": "1-5b5acaac-b87df6ecbf3edbb29d4442f3", "type": "subsegment"}, {"end_time": 1532676781.4083207, "http": {"request": {"method": "READ", "url": "https://codecommit.ap-southeast-1.amazonaws.com/"}, "response": {"status": 200}}, "id": "ad9b717abe0773e5", "in_progress": false, "name": "https://codecommit.ap-southeast-1.amazonaws.com/", "namespace": "remote", "parent_id": "8ec94650265cf358", "start_time": 1532676781.408112, "trace_id": "1-5b5acaac-b87df6ecbf3edbb29d4442f3", "type": "subsegment"}, {"end_time": 1532676781.408436, "http": {"request": {"method": "READ", "url": "https://codecommit.ap-southeast-1.amazonaws.com/"}, "response": {"status": 200}}, "id": "9d0e8e7b08a3030b", "in_progress": false, "name": "https://codecommit.ap-southeast-1.amazonaws.com/", "namespace": "remote", "parent_id": "8ec94650265cf358", "start_time": 1532676781.4084244, "trace_id": "1-5b5acaac-b87df6ecbf3edbb29d4442f3", "type": "subsegment"}], "trace_id": "1-5b5acaac-b87df6ecbf3edbb29d4442f3", "type": "subsegment"}], "trace_id": "1-5b5acaac-b87df6ecbf3edbb29d4442f3"}

此外,当我在 AWS 控制台上查看 X-Ray 时,服务图和跟踪上都没有出现任何内容。

在网上搜索,我找不到此错误的任何实例。我错过了什么?

4

1 回答 1

0

I asked on the AWS forums and got an answer.

If an argument is passed to xray_recorder.end_segment(), it is automatically parsed as epoch in seconds. It can be left blank.

于 2018-08-02T09:00:07.633 回答