|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
重复快照
JSON 属性:"health"
健康数据可以通过 "health" 属性发送到 SUSE Observability Receiver API,属于 common JSON object。
-
示例健康
repeat_snapshotsJSON
{
"apiKey":"<STACKSTATE_RECEIVER_API_KEY>",
"collection_timestamp":1585818978,
"internalHostname":"lnx-343242.srv.stackstate.com",
"health":[
{
"consistency_model": "REPEAT_SNAPSHOTS",
"start_snapshot": {
"repeat_interval_s": 50
//"expiry_interval_s": 200 Optional
},
"stop_snapshot": {},
"stream": {
"urn": "urn:health:sourceId:streamId"
//"sub_stream_id": "subStreamId" Optional
},
"check_states": [
{
"checkStateId": "checkStateId1",
"message": "Server Running out of disk space",
"health": "Deviating",
"topologyElementIdentifier": "server-1",
"name": "Disk Usage"
},
{
"checkStateId": "checkStateId2",
"message": "Provisioning failed. [Learn more](https://www.any-link.com)",
"health": "critical",
"topologyElementIdentifier": "server-2",
"name": "Health monitor"
}
]
}
]
}
每个健康重复快照数据负载包含以下详细信息:
-
start_snapshot - 可选。必须先处理快照的开始,然后再处理
check_states。这使得 SUSE Observability 能够将流快照与之前接收到的快照进行差异比较,并删除快照中不再存在的检查状态。它携带以下字段作为快照元数据:-
repeat_interval_s - 以秒为单位的时间。外部源发送健康数据到 SUSE Observability 的频率。最大允许值为 1800(30 分钟)。
-
expiry_interval_s - 以秒为单位的时间。在最后一次更新后等待的时间,之后 SUSE Observability 将删除外部检查。在使用子流时是必需的。
-
-
stop_snapshot - 可选。快照的结束将在处理
check_states之后进行处理。 -
stream - 提供关于哪些快照和
check_states归属的信息的对象。它包含下列字段:-
urn - 数据源和流 ID 编码为符合以下约定的 SUSE Observability URN:
urn:health:<sourceId>:<streamId>,其中<sourceId>是外部数据源的名称,<streamId>是健康数据流的唯一标识符。 -
sub_stream_id - 可选。流健康数据的子集标识符。当流数据由多个代理分发和报告时,这允许每个
sub_stream_id拥有独立的快照生命周期。
-
-
check_states - 检查状态列表。每个检查状态可以具有以下字段:
-
checkStateId - 外部系统中检查状态的标识符。
-
message - 可选。在 SUSE Observability UI 中显示的消息。数据将被解释为 markdown,允许链接到生成外部检查状态的外部系统检查。
-
health - 以下 SUSE Observability 健康状态值之一:
Clear、Deviating、Critical。 -
topologyElementIdentifier - 用于将检查状态绑定到 SUSE Observability 拓扑元素。
-
name - 外部检查状态的名称。
-
将健康信息发送到 SUSE Observability。
健康信息可以通过 HTTP POST 以一个 JSON 消息发送。在下面的示例中,一个包含两个检查状态的快照从单个外部监控系统发送到 SUSE Observability。
curl -X POST \
'<STACKSTATE_RECEIVER_API_ADDRESS>' \
-H 'Content-Type: application/json' \
-d '{
"collection_timestamp": 1548857167,
"internalHostname": "local.test",
"health": [
{
"consistency_model": "REPEAT_SNAPSHOTS",
"start_snapshot": {
"repeat_interval_s": 300
},
"stop_snapshot": {},
"stream": {
"urn": "urn:health:sourceId:streamId"
},
"check_states": [
{
"checkStateId": "checkStateId1",
"message": "Server Running out of disk space",
"health": "Deviating",
"topologyElementIdentifier": "server-1",
"name": "Disk Usage"
},
{
"checkStateId": "checkStateId2",
"message": "Provisioning failed. [Learn more](https://www.any-link.com)",
"health": "critical",
"topologyElementIdentifier": "server-2",
"name": "Health monitor"
}
]
}
]
}'