|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Elementos Transacionais
Visão Geral
Esta página descreve as mensagens JSON exatas que podem ser enviadas para o modelo de consistência dos Incrementos Transacionais de sincronização de saúde.
Propriedade JSON: "saúde"
A saúde pode ser enviada para a API do SUSE Observability Receiver usando a propriedade "health" do objeto JSON comum.
-
Exemplo de saúde
transactional_incrementsJSON
"apiKey":"your api key",
"collection_timestamp":1585818978,
"internalHostname":"lnx-343242.srv.stackstate.com",
"events":{},
"metrics":[],
"service_checks":[],
"health":[
{
"consistency_model": "TRANSACTIONAL_INCREMENTS",
"increment": {
"checkpoint": {
"offset": 5,
"batch_index": 102
},
"previous_checkpoint": {
"offset": 5,
"batch_index": 100
}
},
"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"
},
{
"checkStateId": "checkStateId3",
"delete": true
}
]
}
],
"topologies":[]
Cada carga de dados dos Incrementos Transacionais de saúde possui os seguintes detalhes:
-
incremento - Um objeto de incremento precisa estar presente em cada mensagem. Isso permite que o SUSE Observability rastreie toda a cadeia de mensagens e consiga detectar quando uma retransmissão de dados ou uma lacuna inesperada nos dados está ocorrendo. Ele carrega os seguintes campos como metadados de incremento:
-
checkpoint - Objeto que fornece o checkpoint que pertence ao
check_statespresente na mensagem, possui dois campos:-
offset - O deslocamento atribuído às mensagens pelo pipeline de streaming. Por exemplo, o deslocamento do Kafka.
-
batch_index - Opcional. Ao usar uma única mensagem para acumular vários
check_states, o índice do lote representa o último índice que está presente na mensagem, permitindo enviar grandes lotes em chamadas de API separadas.
-
-
previous_checkpoint - Opcional. Representa o checkpoint comunicado anteriormente, podendo estar vazio na primeira transmissão do substream. Isso permite que o SUSE Observability monitore se há dados faltando do upstream.
-
-
stream - Objeto que fornece identificação sobre quais instantâneos e
check_statespertencem juntos. Ela contém os seguintes campos:-
urn - Fonte de dados e ID do stream codificados como um URN do SUSE Observability que segue a seguinte convenção:
urn:health:<sourceId>:<streamId>onde<sourceId>é o nome da fonte de dados externa e<streamId>é um identificador único para o stream de dados de saúde. -
sub_stream_id - Optional. Identificador para um subconjunto dos dados de saúde do stream. Quando os dados do stream são distribuídos e reportados por vários agentes, isso permite ciclos de vida de instantâneos por
sub_stream_id.
-
-
check_states - Uma lista de estados de verificação. Cada estado de verificação pode ter os seguintes campos:
-
checkStateId - Identificador para o estado de verificação no sistema externo.
-
message - Opcional. Mensagem a ser exibida na interface do SUSE Observability. Os dados serão interpretados como markdown, permitindo ter links para o sistema externo de verificação que gerou o estado de verificação externo.
-
health - Um dos seguintes valores de estado de saúde do SUSE Observability:
Clear,Deviating,Critical. -
topologyElementIdentifier - Usado para vincular o estado de verificação a um elemento de topologia do SUSE Observability.
-
name - Nome do estado de verificação externo.
-
delete - Flag que é interpretada como um pedido de exclusão para o
checkStateIdrelacionado. Mesmo que os demais campos para a criação estejam presentes, por exemplo,name, health, …, a exclusão terá precedência.
-
Enviar saúde para o SUSE Observability.
A saúde pode ser enviada em uma mensagem JSON via HTTP POST. No exemplo abaixo, um instantâneo contendo dois estados de verificação é enviado para o SUSE Observability a partir de um único sistema de monitoramento externo.
curl -X POST \
'<STACKSTATE_RECEIVER_API_ADDRESS>' \
-H 'Content-Type: application/json' \
-d '{
"collection_timestamp": 1548857167,
"internalHostname": "local.test",
"health": [
{
"consistency_model": "TRANSACTIONAL_INCREMENTS",
"increment": {
"checkpoint": {
"offset": 5,
"batch_index": 102
},
"previous_checkpoint": {
"offset": 5,
"batch_index": 100
}
},
"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"
},
{
"checkStateId": "checkStateId3",
"delete": true
}
]
}
]
}'