Repeat Snapshots
Übersicht
Diese Seite beschreibt die exakten JSON-Nachrichten, die für das Konsistenzmodell der Health-Synchronisierung Repeat Snapshots gesendet werden können.
JSON-Eigenschaft: "health"
Gesundheitsdaten können über die "health" Eigenschaft des gemeinsamen JSON-Objekts an die SUSE Observability Receiver API gesendet werden.
-
Beispiel für Health-
repeat_snapshots-JSON
{
"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"
}
]
}
]
}
Jede Daten-Nutzlast für Health Repeat Snapshots enthält die folgenden Details:
-
start_snapshot - Optional. Ein Start eines Snapshots muss verarbeitet werden, bevor
check_statesverarbeitet wird. Dies ermöglicht es SUSE Observability, einen Stream-Snapshot mit dem zuvor empfangenen zu vergleichen und Prüfzustände zu löschen, die im Snapshot nicht mehr vorhanden sind. Es enthält die folgenden Felder als Snapshot-Metadaten:-
repeat_interval_s - Zeit in Sekunden. Die Häufigkeit, mit der die externe Quelle Gesundheitsdaten an SUSE Observability sendet. Der maximal erlaubte Wert beträgt 1800 (30 Minuten).
-
expiry_interval_s - Zeit in Sekunden. Die Zeit, die nach dem letzten Update abgewartet wird, bevor ein externer Check von SUSE Observability gelöscht wird. Erforderlich bei der Verwendung von Unterstreams.
-
-
stop_snapshot - Optional. Das Ende eines Snapshots wird nach der Verarbeitung der
check_statesumgesetzt. -
stream - Objekt, das die Identifikation bereitstellt, welche Snapshots und
check_stateszusammengehören. Sie enthält die folgenden Felder:-
urn - Datenquelle und Stream-ID, kodiert als eine SUSE Observability URN, die der folgenden Konvention entspricht:
urn:health:<sourceId>:<streamId>, wobei<sourceId>der Name der externen Datenquelle und<streamId>ein eindeutiger Identifikator für den Gesundheitsdatenstream ist. -
sub_stream_id - Optional. Identifikator für eine Teilmenge der Stream-Gesundheitsdaten. Wenn die Stream-Daten von mehreren Agenten verteilt und gemeldet werden, ermöglicht dies Snapshot-Lebenszyklen pro
sub_stream_id.
-
-
check_states - Eine Liste von Prüfzuständen. Jeder Prüfzustand kann die folgenden Felder haben:
-
checkStateId - Identifikator für den Prüfzustand im externen System.
-
message - Optional. Nachricht, die in der SUSE Observability UI angezeigt werden soll. Die Daten werden als Markdown interpretiert, wodurch Links zu dem externen System-Check möglich sind, der den externen Prüfzustand erzeugt hat.
-
health - Einer der folgenden SUSE Observability Gesundheitszustandswerte:
Clear,Deviating,Critical. -
topologyElementIdentifier - Wird verwendet, um den Prüfzustand an ein SUSE Observability Topologieelement zu binden.
-
name - Name des externen Prüfzustands.
-
Health an SUSE Observability senden.
Health kann in einer JSON-Nachricht über HTTP POST gesendet werden. Im folgenden Beispiel wird ein Snapshot, der zwei Prüfzustände enthält, von einem einzelnen externen Überwachungssystem an SUSE Observability gesendet.
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"
}
]
}
]
}'