外部链路推演说明.md 1.9 KB

实现方式

1、VTM在调用外部接口时,传递北斗链路信息。

  • 需传递数据如下

    struct HttpClientTraceLink {
    char X_B3_BusinessId[33];  // 业务ID
    char X_B3_TraceId[33];     // 跟踪ID
    char X_B3_SpanId[17];       // 跨度ID
    char X_B3_ParentSpanId[17]; // 父跨度ID
    char X_B3_Timestamp[17];    // 时间戳
    };
    

    2、首先VTM生成当前的头结点,规则如下:

  • BusinessId为32位终端特定信息

  • traceId为32位uuid,传递到下一跳时不变

  • spanId为16位uuid

  • parentSpanId为"0" 3、VTM自行发送头节点 4、更新链路节点,以(1)的形式发送给服务器。 5、BussinessId说明: LR0402getTerminalCfg LR0402getVTMErrCfg LR0402getToken LR0402getVtmErr LR0402uploadTerminalVersion LR0402sessionkey LR0402wkupdate LR0402access LR0402initmk LR0402SendAlarm LR0402alarm LR0402registerCard LR0402syncMaterialCount LR0402cardType LR0402uploadVersion LR0402updateVersion LR0402syncCenter LR0402getCentersetting LR0402CallRoute LR0402handShake LR0402imgCheck LR0402bringnessInfo LR0402record LR0402sendSM3 LR0402updateTaskStatus LR0402queryTask LR0402perTask LR0402queryNewTask LR0402queryTaskStatus LR0402DownloadFile LR0402UploadFile LR0402queryTempFile LR0402updateState LR0402updateFail LR0402queryPlan

需要注意的部分

1、与特性时不同,除了日志接口外,其他接口都支持链路追踪,包含文件下载和文件上传。

  • 日志接口不行,是因为会造成重复循环引用。 2、guardian中,添加了北斗上送的功能,涉及到的接口为gettoken 3、并非所有接口都能看到完整链路信息,部分只能看到头节点。
  • 调用access-proxy接口能看到完整链路信息
  • 其他的,服务器未处理,所以看不到完整链路信息 4、如需要查看北斗链路信息,可通过链路单条查询和北斗链路查询结合来看。