调试配置

更新时间: 2023-08-08 10:05:53

当服务上线后,为了更精确的分析线上的结果,需要汇总各种信息。在线下可以打印日志调试,当服务上线后,无法灵活的进行打印。本配置主要收集线上调试信息,并能灵活的开启,或打印到终端,或者输出到 DataHub 上进行更细致的分析。

目前主要收集的是召回、过滤、粗排之后的 items 数据。

DebugConfs

主体配置如下:

 {
   "DebugConfs": {
    "feed": { // 场景名称
      "OutputType": "datahub",
      "Rate": 0,
      "DebugUsers": [
        "10631522"
      ],
      "DatahubName": "dh_debug_log"
    }
  }
 }

  • OutputType 输出类型,目前包含两种, 1. console 控制台输出 2. datahub 输出到 datahub 中。 输出到 datahub 中,一定要配置 DatahubName

  • Rate 日志的采样比例。 合法值在 0 - 100 之间。很多时候,线上 QPS 高的话,可以适当的调整采样比例,来使线上服务影响最小。当为 0 时, 默认不输出调试信息

  • DebugUsers 针对某些 uid 列表进行日志打印

  • DatahubName 当输出到 datahub 上需要配置此值。此 name 需要能从 DatahubConfs 里能找到

目前输出的信息包括如下:

  • request_id 请求标识

  • module 标识哪个模块的日志,目前包括 recall, filter, general_rank

  • scene_id 场景id

  • exp_id 实验id

  • request_time 请求时间戳,秒为单位

  • uid 用户id

  • retrieveid 召回id

  • items item list 列表,格式为 "item1:score1,item2:score2", 这里 score 可以理解为,当 module = recall 时, score 为召回得分。 module=general_rank, score 为粗排得分

目前在某个 module 下, items 是分 retrieveid 进行输出的。比如有5个召回源,那么在 module = recall 时, 会有5条记录,每条记录对应一路召回。同样,filter, general_rank 也是按此逻辑打印。

DataHub 配置

在 DataHub 配置中,可以不用创建 topic, 只要指定 topic , schemas , 引擎会自动创建。

{
 "DatahubConfs": {
    "dh_debug_log": {
      "Endpoint": "http://dh-cn-beijing-int-vpc.aliyuncs.com",
      "AccessId": "",
      "AccessKey": "",
      "ProjectName": "",
      "TopicName": "pairec_debug_log",
      "Schemas": [
        {
          "Field": "request_id",
          "Type": "string"
        },
        {
          "Field": "module",
          "Type": "string"
        },
        {
          "Field": "scene_id",
          "Type": "string"
        },
        {
          "Field": "request_time",
          "Type": "integer"
        },
        {
          "Field": "exp_id",
          "Type": "string"
        },
        {
          "Field": "items",
          "Type": "string"
        },
        {
          "Field": "retrieveid",
          "Type": "string"
        },
        {
          "Field": "uid",
          "Type": "string"
        }
      ]
    }
  }
}

当运行服务时,引擎会自动创建此 Topic: pairec_debug_log, 并使用上面的 schema。 当在 datahub 控制台,看到有日志输出时,可以自行创建 MaxCompute 与 DataHub 的订阅关系。

阿里云首页 推荐全链路深度定制开放平台 相关技术圈