本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 X-Ray 开发工具包生成自定义子分段
子分段可为跟踪的分段扩展为了给请求提供服务而已完成的工作的详细信息。每次使用已检测的客户端进行调用时,X-Ray 开发工具包在子分段中记录生成的信息。您可以创建其他子分段来分组其他子分段,来度量某个代码段的性能如何,或是来记录注释和元数据。
要管理子分段,请使用 begin_subsegment
和 end_subsegment
方法。
subsegment = XRay.recorder.begin_subsegment name: 'annotations', namespace: 'remote'
my_annotations = { id: 12345 }
subsegment.annotations.update my_annotations
XRay.recorder.end_subsegment
要为函数创建子分段,可将其包装在对 XRay.recorder.capture
的调用中。
XRay.recorder.capture('name_for_subsegment') do |subsegment|
resp = myfunc() # myfunc is your function
subsegment.annotations.update k1: 'v1'
resp
end
当您在分段或者其他子分段中创建子分段时,X-Ray 开发工具包将为其生成 ID 并记录开始时间和结束时间。
例 包含元数据的子分段
"subsegments": [{
"id": "6f1605cd8a07cb70",
"start_time": 1.480305974194E9,
"end_time": 1.4803059742E9,
"name": "Custom subsegment for UserModel.saveUser function",
"metadata": {
"debug": {
"test": "Metadata string from UserModel.saveUser"
}
},