Event Management - 最佳实践
本文档提供了在 Event Management 中查询和创建事件或事件类型的最佳实践。
一般说明
- 页面应尽可能小(默认页面大小为 20)。
- 如果不需要有关事件的实时数据,可将轮询周期设置为尽可能高的值。
- 如果应用使用重试策略,应在收到网关超时提示后等待一段时间。
- 对于以下严重度,默认应用如 Fleet Manager 或 MindSphere Web Components 显示相应图标。对于其他严重度只显示数字。
严重度 | 图标 | 描述 |
---|---|---|
20 | 错误 | |
30 | 警告 | |
40 | 信息 |
自定义事件的可过滤属性
Enum
如果自定义事件类型字段只能存储少量值,请考虑使用 ENUM 作为该字段的类型。
{
"name": "volatileEventType",
"ttl": 1,
"fields": [
{
"name": "risk",
"filterable": true,
"required": true,
"updatable": true,
"type": "ENUM",
"values" : ["LOW", "MEDIUM", "HIGH"]
}
]
}
UUID 与 String
如果自定义事件类型字段仅存储 UUID 值,请考虑使用 UUID 而不是 STRING 作为该字段的类型。
{
"name": "volatileEventType2",
"ttl": 1,
"fields": [
{
"name": "code",
"filterable": true,
"required": true,
"updatable": false,
"type": "UUID"
}
]
}
过滤
HTTP GET /events
API通过filter
参数过滤自定义事件读取。请参考列出自定义事件示例.
按时间戳过滤
按时间戳过滤时,时间间隔应尽可能短。不应超过 1 个月。如果没有为过滤器指定 timestamp
,则仅检索从上周开始的事件。
```json tab="Not recommended" { "timestamp": { "between": "[1970-01-01T07:25:07.166Z,2018-11-05T10:25:07.166Z)" } }
```json tab="Better approach"
{
"timestamp": {
"between": "[2018-11-01T07:25:07.166Z,2018-11-05T10:25:07.166Z)"
}
}
按 Type ID 过滤
为过滤器提供 typeId
以在事件中搜索特定事件类型。
```json tab="Not recommended" { "timestamp": { "after":"2018-11-01T07:25:07.166Z" } }
```json tab="Better approach"
{
"typeId":"3868feab-9ae6-44a8-9d9e-d20da848afb8",
"timestamp": {
"after":"2018-11-01T07:25:07.166Z"
}
}
按其它字段过滤
如果可能,按自定义字段而非标准字段过滤。
```json tab="Not recommended" { "timestamp":{ "between":"[2018-10-01T00:00:00.001Z,2018-10-05T14:53:07.534Z)" }, "entityId":"e7a12da7b60c4402a0a14dce547206ed", "acknowledged":false, "typeId":"com.siemens.mindsphere.eventmgmt.event.type.MindSphereStandardEvent" }
```json tab="Better approach"
{
"timestamp":{
"between":"[2018-10-01T00:00:00.001Z,2018-10-05T14:53:07.534Z)"
},
"entityId":"e7a12da7b60c4402a0a14dce547206ed",
"acknowledged":false,
"typeId":"3f690adf-edc8-447f-b1c8-4758aa7924ba",
"risk":"LOW"
}
向下钻取
有时执行向下钻取(即分多步进行过滤)会更快。例如,下面的过滤表达式可用来过滤出自定义事件类型 typeId
。但其它过滤参数则适用于定义为父事件类型的字段。这会增加过滤的开销。
在这种情况下,建议先用父类型替换 typeId
。然后,可以按照自定义事件类型的字段进一步执行过滤。
```json tab="Not recommended" { "timestamp":{ "between":"[2018-10-01T00:00:00.001Z,2018-10-05T14:53:07.534Z)" }, "entityId":"e7a12da7b60c4402a0a14dce547206ed", "acknowledged":false, "typeId":"b7f9a843-a530-4159-989e-20645e2b647d" }
```json tab="Better approach"
{
"timestamp":{
"between":"[2018-10-01T00:00:00.001Z,2018-10-05T14:53:07.534Z)"
},
"entityId":"e7a12da7b60c4402a0a14dce547206ed",
"acknowledged":false,
"typeId":"com.siemens.mindsphere.eventmgmt.event.type.MindSphereStandardEvent"
}
排序
为提高性能,可按过滤表达式中的字段排序。
```json tab="Not recommended" { "typeId":"com.siemens.mindsphere.eventmgmt.event.type.MindSphereStandardEvent" }
```json tab="Better approach"
{
"timestamp":{
"between":"[2018-10-01T00:00:00.001Z,2018-11-01T14:53:07.534Z)"
},
"typeId":"com.siemens.mindsphere.eventmgmt.event.type.MindSphereStandardEvent"
}
sort:timestamp,desc
还有问题?
除非另行声明,该网站内容遵循MindSphere开发许可协议.