其他配置

调试配置

当服务上线后,为了更精确的分析线上的结果,需要汇总各种信息。在线下可以通过打印日志进行调试,当服务上线后,无法灵活的进行打印。

本配置主要用于收集线上调试信息,并能灵活地开启将其打印到终端,或者输出到Datahub上进行更细致的分析,也可以输出到本地文件以供其它调用。目前 收集的是召回、过滤和粗排之后的items数据。

调试配置对应配置总览中的DebugConfs,DebugConfs是一个Map[string]object结构,其中key是场景,可以对不同的场景进行配置隔离。

"DebugConfs": {
    "scene_name": {
      "OutputType": "datahub",
      "Rate": 0,
      "DebugUsers": [
        "1001"
      ],
      "DatahubName": "dh_debug_log",
      "KafkaName": "pairec_debug_log"
      "FilePath": "/Users/username/pairec/debug_log/",
      "MaxFileNum": 20
    }
  }

字段名

类型

是否必填

描述

OutputType

string

调试日志的输出方式,取值如下:

  • console:控制台输出。

  • datahub:输出到Datahub的某个topic中。

  • kafka:输出到Kafka的某个topic中。

  • file:本地文件输出。

Rate

int

日志的采样比例,取值范围0-100。您可以根据线上服务的QPS进行适当调整。

注:当值为0时,不输出调试信息。

DebugUsers

[]string

只对某些UID进行日志记录。例如 "DebugUsers": [ "1001"],表示只对1001这个user记录日志,其他user不记录。

DatahubName

string

当OutputType=datahub时,需要填写此参数。

来源于数据源配置中的DatahubConfs的自定义名称。

KafkaName

string

当OutputType=kafka时,需要填写此参数。

来源于数据源配置中的KafkaConfs的实例名称。

FilePath

string

当OutputType=file时,需要填写此参数。

会将debug日志输出到此路径,路径不存在时会自动创建。

MaxFileNum

int

当OutputType=file时,可以选择性填写此参数。

设置FilePath路径中可保存的最大日志数量,默认为20。路径中每个日志文件大小限制为1 G,超过会进行文件轮转。

若文件数量超过MaxFileNum,会删除最旧的日志文件。

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

  • 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",  表示当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}",
            "AccessKey": "${AccessSecret}",
            "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的订阅关系。

字段名

类型

是否必填

描述

Endpoint

string

Datahub的访问地址,详情见Datahub概览的常用信息。

  • 外网(互联网): https://dh-cn-beijing.aliyuncs.com

  • 经典(私网): http://dh-cn-beijing.aliyun-inc.com

  • VPC(私网): http://dh-cn-beijing-int-vpc.aliyuncs.com

AccessId

string

您的AccessID。

AccessKey

string

您的AccessSecret。

ProjectName

string

Datahub的项目名称。

TopicName

string

Datahub的Topic名称。

Schemas

[]map

Datahub的Schema详情。

重要

如果您使用PAI-Rec控制台进行配置,为了保持安全性,${AccessKey}:${AccessSecret} 可以不用替换,引擎会自动替换。

Kafka 配置

在kafka配置中,需要配置对应的实例名称(对应DebugConfs中配置的KafkaName)、域名接入点BootstrapServers以及已经创建好的Topic名称。

"KafkaConfs": {
    "pairec_debug_log": {
        "BootstrapServers":"alikafka-post-cn-xxxxx-1.alikafka.aliyuncs.com:9093,alikafka-post-cn-xxxxx-2.alikafka.aliyuncs.com:9093,alikafka-post-cn-xxxxx-3.alikafka.aliyuncs.com:9093",
           "Topic":"debug_log"
    }
},
重要

如果您使用PAI-Rec控制台进行配置,当服务部署到EAS时,专有网络配置的VPC和交换机需与当前Kafka实例保持一致。

特征日志配置

本配置主要用于收集线上user侧和item侧的特征,输出到Datahub上进行更细致的分析。

特征日志配置对应配置总览中的FeatureLogConfs,FeatureLogConfs是一个Map[string]object结构,其中key是场景,可以对不同的场景进行配置隔离。

"FeatureLogConfs": {
    "scene_name": {
      "OutputType": "datahub",
      "DatahubName": "",
      "UserFeatures":"",
      "ItemFeatures":"",
    }
  }

字段名

类型

是否必填

描述

OutputType

string

调试日志的输出方式,目前仅支持datahub。

DatahubName

string

当OutputType=datahub时,需要填写此参数。

来源于数据源配置中的DatahubConfs的自定义名称。

UserFeatures

string

由于整个user的特征可能会有很多,这里可以选择user侧部分特征,多个特征之间使用英文逗号分隔。当使用 "*" 时,会将user侧所有的特征记录下来;如果不填此参数或者为空,则不会落user侧的任何特征。

ItemFeatures

string

同上,这里也可以选择item侧部分特征,当使用 "*" 时,会落引擎中item侧的所有特征;当为空时,会将召回ID和模型打分特征记录下来。

Datahub 配置

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

    "DatahubConfs": {
        "dh_feature_log": {
            "Endpoint": "http://dh-cn-beijing-int-vpc.aliyuncs.com",
            "AccessId": "${AccessKey}",
            "AccessKey": "${AccessSecret}",
            "ProjectName": "",
            "TopicName": "pairec_feature_log",
            "Schemas": [
                {
                    "Field": "request_id",
                    "Type": "string"
                },
                {
                    "Field": "scene_id",
                    "Type": "string"
                },
                {
                    "Field": "exp_id",
                    "Type": "string"
                },
                {
                    "Field": "request_time",
                    "Type": "integer"
                },
                {
                    "Field": "user_id",
                    "Type": "string"
                },
                {
                    "Field": "user_features",
                    "Type": "string"
                },
                {
                    "Field": "item_id",
                    "Type": "string"
                },
                {
                    "Field": "position",
                    "Type": "string"
                },
                {
                    "Field": "item_features",
                    "Type": "string"
                }
            ]
        }
    }

当运行服务时,引擎会自动创建此Topic: pairec_feature_log,并使用上述schema。

字段名

类型

是否必填

描述

Endpoint

string

Datahub的访问地址,详情见Datahub概览的常用信息。

  • 外网(互联网): https://dh-cn-beijing.aliyuncs.com

  • 经典(私网): http://dh-cn-beijing.aliyun-inc.com

  • VPC(私网): http://dh-cn-beijing-int-vpc.aliyuncs.com

AccessId

string

您的AccessID。

AccessKey

string

您的AccessSecret。

ProjectName

string

Datahub的项目名称。

TopicName

string

Datahub的Topic名称。

Schemas

[]map

Datahub的Schema详情。

重要

如果您使用PAI-Rec控制台进行配置,为了保持安全性,${AccessKey}:${AccessSecret} 可以不用替换,引擎会自动替换。