跳到主要内容

自定义在消费记录中保存作业相关字段

系统支持在mis.yaml中通过可选配置jobChargeMetadata将作业相关的字段以Json格式保存在消费记录中。 以便后续对此保存字段进行查询或在页面前端进行格式化显示。

配置示例

config/mis.yaml

# 自定义消费记录中作业相关的存储内容
jobChargeMetadata:
# 可选。需要保存的作业相关字段,字段参考[entities/JobInfo](#entitiesjobinfo)
savedFields: ["idJob", "account"]

# 可选。定义显示出来的格式。如果不配置,直接显示上面保存的Json字段的信息
displayFormats:
# i18n国际化类型,根据系统语言显示不同的信息
# 或字符串格式,直接显示字符串
# 利用 {{ 属性名 }} 使用上述savedFields中保存的属性值
i18n:
default: "账户 {{ account }} 的作业ID {{ idJob }} 的计费"
en: "The billing for jobId {{ idJob }} of Account {{ account }}"
zh_cn: "账户 {{ account }} 的作业ID {{ idJob }} 的计费"

配置说明

参数类型是否必须解释
savedFieldsstring[]想要在数据库实体ChargeRecord中的metadata字段中保存的作业相关的信息,字段参考entities/JobInfo, 保存的格式为Json格式
displayFormatsstring | i18n国际化类型定义上述保存的字段显示出来的格式。如果不配置则直接显示上面保存的Json字段信息。如{"jobId": 1, "account": "a_account"}string | i18n国际化类型均可以利用 {{ 属性名 }} 使用上述savedFields中保存的属性值。

配置效果展示

如果管理员按上述配置示例中的jobChargeMetadata配置,保存了idJobaccount的字段信息,displayFormats类型为i18n国际化类型格式,那么当用户查询消费记录页面时,语言为简体中文时用户可以看到的消费记录显示为: 消费记录中文metadata

当用户进入系统后通过右上角语言切换器切换当前显示语言为英文时,用户可以看到的消费记录显示为: 消费记录英文metadata

如果管理员按上述配置示例中的jobChargeMetadata配置,保存了idJobaccount的字段信息,但没有配置displayFormats时,用户可以看到的消费记录显示为: 消费记录Json

如果管理员没有配置jobChargeMetadata,则用户在消费记录不能看到该列的显示。

entities/JobInfo

备注

当前标准部署的OpenSCOW数据库实体JobInfo中支持的字段为:

idJobaccountuserpartitionnodelistjobNameclustertimeSubmittimeStarttimeEndgpucpusReqmemReqnodesReqcpusAllocmemAllocnodesAlloctimelimittimeUsedtimeWaitqosrecordTimetenantaccountBillingItemIdtenantBillingItemIdtenantPriceaccountPrice

具体情况请参考实际部署OpenSCOW的数据库信息。