HealthMonitor Section
To send regular health status information for the producer component of Jade Event Streaming, include the HealthMonitor section in the configuration. For details about the format of the output health monitoring message, see "Health Monitoring Data Specification", in Chapter 4.
The "HealthMonitor" section provides configuration settings that enable you to run the Health Monitor for a producer.
"HealthMonitor" :
{
"Heartbeat" : <period‑in‑seconds>,
"AdditionalFields" : [
"ProducerStarted",
"LastEventSent",
"EventsSentToDeadLetter",
"ErrorsInPeriod",
"EventsInPeriod"
],
"Format" : {
"AzureMonitor" : <true‑or‑false>,
"CamelCasedPropertyNames" : <true‑or‑false>
},
"RestPublisher" : {
"Endpoint" : "<https://<namespace>",
"Authentication" : { "Type":"Authentication‑type" },
"RetryOptions":{
"MaxRetries" : <number‑of‑retries>,
"RetryDelay" : <period‑in‑milliseconds>,
"MaxRetryDelay" : <period‑in‑milliseconds>,
"StatusCodes" : [<number>, <number, ...>]
},
"HttpLogging" : <true‑or‑false>
},
"TopicPublisher": {
"Topic" : "<topic-name>"
}
}
The "HealthMonitor" properties are listed in the following table.
| Property | Description |
|---|---|
| Heartbeat | The cadence with which the health monitoring message is sent. This is a positive integer value specified in seconds. The default value is 60 seconds; the minimum value is 10 seconds. |
| AdditionalFields |
An array of field names that are the names of the data properties in the health monitoring message. It is always assumed that Producer and TimeGenerated will be in the message. These are emitted even if the AdditionalFields property is not present. The additional field options are:
|
| Format |
If present, this section allows the user to modify the packet from the standard schema. It has the following fields.
|
| RestPublisher |
If present, this is an object that specifies a REST endpoint to which the health monitoring message is sent. It has the following fields.
|
|
|
|
|
|
|
| TopicPublisher |
If present, the health monitoring message will be produced to a topic in the current broker (either an Azure EventHub or a Kafka topic). The Topic parameter specifies the name of the topic to which to send the health monitoring message. |
When the configuration file is read on start up, if there is no HealthMonitor section specified or it contains an error, the error is logged and the producer will continue with no health monitoring.
Malformed or otherwise incorrect RestPublisher property Endpoint or TopicPublisher property Topic values are detected when the first message is sent. An error is logged and the producer will continue unmonitored.
The Health Monitor runs on a separate thread from the Reader and Senders. It will wake up with the cadence of the Heatbeat, construct the message, and then send it to the configured location. If an error occurs in the connection or sending of the message, the Health Monitor will log an error and operation will continue as normal on the next heartbeat. If an unexpected error occurs, health monitoring will cease and the producer will continue unmonitored.
It is expected that any external agents that are monitoring these messages will detect the absence of the Health Monitor. The producer will have to be restarted for health monitoring to be restored.
The following is an example of the HealthMonitor section.
"HealthMonitor" :
{
"Heartbeat" : 10,
"AdditionalFields" : [
"ProducerStarted",
"LastEventSent",
"EventsSentToDeadLetter",
"ErrorsInPeriod",
"EventsInPeriod"
],
"Format" : {
"AzureMonitor" : true,
"CamelCasedPropertyNames" : false
},
"RestPublisher" : {
"Endpoint" : "https://monitor.company.co.nz/monitor",
"RetryOptions":{
"MaxRetries" : 5,
"RetryDelay" : 1000,
"MaxRetryDelay" : 30,
"MaxRetryDelay" : 30,
"StatusCodes" : [408, 500, 502, 503, 504, 403]
},
"Authentication" : { "Type" : "None" },
"HttpLogging" : false
},
"TopicPublisher": {
"Topic" : "my-eventhub-healthevents"
}
}
2025.0.01 and higher
