事件定制开发中遇到的问题

起初按照社区上的 事件定制 | openUBMC 做了开发,但没有实现对应的告警事件,发帖求助过。
详见该帖 如何配置自定义事件

有伙伴回答是要配置在vendor/event_def.json当中,后续也尝试在该文件中添加了定义,还是没有实现告警。配置如下:

 "EventDefinition": [
 {
            "EventCode": "0x1A0000F1",
            "ReportChannel": 65535,
            "OldEventCode": "",
            "EventType": 0,
            "LifeCycleId": 1,
            "DeassertFlag": 1,
            "EventKeyId": "BMC.VoltLowerNoneCritical",
            "SeverityId": 1,
            "ActionId": 0,
            "EventName": "VoltLowerNoneCritical"
        },
        {
            "EventCode": "0x1A0000F3",
            "ReportChannel": 65535,
            "OldEventCode": "",
            "EventType": 0,
            "LifeCycleId": 1,
            "DeassertFlag": 1,
            "EventKeyId": "BMC.VoltHigherNoneCritical",
            "SeverityId": 1,
            "ActionId": 0,
            "EventName": "VoltHigherNoneCritical"
        },
    "EventDescription": [
        {
            "Suggestion": {
                "En": "",
                "Zh": ""
            },
            "EventKeyId": "BMC.VoltLowerNoneCritical",
            "Description": {
                "En": "Voltage %1(%2) is lower than the undervoltage threshold(%3).",
                "Zh": ""
            },
            "Influence": {
                "En": "",
                "Zh": ""
            },
            "Cause": {
                "En": "",
                "Zh": ""
            }
        },
        {
            "Suggestion": {
                "En": "",
                "Zh": ""
            },
            "EventKeyId": "BMC.VoltHigherNoneCritical",
            "Description": {
                "En": "Voltage %1(%2) is over the overvoltage threshold(%3).",
                "Zh": ""
            },
            "Influence": {
                "En": "",
                "Zh": ""
            },
            "Cause": {
                "En": "",
                "Zh": ""
            }
        },

收集了一键日志

framework.log 里看着好像是没有找到class: EventDefinition,和class: EventDescriptionEn

1970-01-01 00:00:25.186870 hwdiscovery WARNING: analyse.lua(372): ignore object: EventDefinition_VoltHigherNoneCritical_00, class: EventDefinition, error: fail to get class information
1970-01-01 00:00:25.187199 hwdiscovery WARNING: analyse.lua(372): ignore object: EventDescriptionEn_VoltHigherNoneCritical_00, class: EventDescriptionEn, error: fail to get class information
1970-01-01 00:00:25.187483 hwdiscovery WARNING: analyse.lua(372): ignore object: EventDefinition_VoltLowerNoneCritical_00, class: EventDefinition, error: fail to get class information
1970-01-01 00:00:25.187851 hwdiscovery WARNING: analyse.lua(372): ignore object: PCIeRASCollector_00, class: PCIeRASCollector, error: fail to get class information
1970-01-01 00:00:25.188140 hwdiscovery WARNING: analyse.lua(372): ignore object: CoolingRequirement_1_24_00, class: CoolingRequirement, error: fail to get class information
1970-01-01 00:00:25.188420 hwdiscovery WARNING: analyse.lua(372): ignore object: DataAcquisitionService_00, class: DataAcquisitionService, error: fail to get class information
1970-01-01 00:00:25.188697 hwdiscovery WARNING: analyse.lua(372): ignore object: FaultPrediction_00, class: FaultPrediction, error: fail to get class information
1970-01-01 00:00:25.189050 hwdiscovery WARNING: analyse.lua(372): ignore object: RASErrorCode_CpuMemoryCfgErr_00, class: RASErrorCode, error: fail to get class information
1970-01-01 00:00:25.189363 hwdiscovery WARNING: analyse.lua(372): ignore object: RASErrorCode_MemoryInitErr_00, class: RASErrorCode, error: fail to get class information
1970-01-01 00:00:25.189638 hwdiscovery WARNING: analyse.lua(372): ignore object: RASErrorCode_MemoryMRCErr_00, class: RASErrorCode, error: fail to get class information
1970-01-01 00:00:25.190049 hwdiscovery WARNING: analyse.lua(372): ignore object: RASErrorCode_SystemNoAvailableMem_00, class: RASErrorCode, error: fail to get class information
1970-01-01 00:00:25.190450 hwdiscovery WARNING: analyse.lua(372): ignore object: DICEConfig_1_00, class: DICEConfig, error: fail to get class information
1970-01-01 00:00:25.192216 hwdiscovery WARNING: analyse.lua(372): ignore object: EventDescriptionEn_VoltLowerNoneCritical_00, class: EventDescriptionEn, error: fail to get class information
1970-01-01 00:00:25.192944 hwdiscovery WARNING: analyse.lua(372): ignore object: RASErrorCode_SystemMemoryConfigErr_00, class: RASErrorCode, error: fail to get class information
1970-01-01 00:00:25.193555 hwdiscovery WARNING: analyse.lua(372): ignore object: FDMService_00, class: FDMService, error: fail to get class information

alarm.log 里面显示no definition,这个应该感觉就是静态配置没找到

[1970-01-04 14:45:27] [register] [Event_V12VPLowerNon_0102] [error_msg: no definition]
[1970-01-04 14:45:27] [register] [Event_V12VCCUpperNon_0102] [error_msg: no definition]
[1970-01-04 14:45:27] [register] [Event_V5VLowerNon_0102] [error_msg: no definition]
[1970-01-04 14:45:27] [register] [Event_V5VSLowerNon_0102] [error_msg: no definition]

检查下是否配置了EventDefinition和EventDescriptionEn

配置了, framework.log 里面有我配置sr的对象
EventDefinition_VoltHigherNoneCritical_00,EventDescriptionEn_VoltHigherNoneCritical_00
同时,我在event_def.json也有配置

当前文档中的配置方式不适用于openubmc,文档需要更新,预计1h左右

好的,感谢

已合入,稍后重启构建

你好,请教一下,最后你们是改了啥,然后注册就有了?我们现在引用的even_def.json中定义的事件,alarm.log中抓到的也是error_msg: no definition

看看这俩个目录下的文件内容是否都有,内容是否一致
/opt/bmc/conf/event_def.json
/data/opt/bmc/conf/event_def.json

一般都是后者没有,copy过去就行了,这个情况应该是你的版本号没有改,改高一点就行了。
另外vpd仓产品型号下的 eventDefList.txt 也要加上你新加的EventKeyId。

如果还有其他问题请另外发个帖子,把详细情况说明一下。这是一年前的帖子了,尽量别挖坟,有问题可以发帖引用原帖。

多谢