Variables and JSON Path examples for Alerts
Control the content in e-mail and Windows event log entries using variables and JSON Path.
It is possible with Nodinite to write dynamic values during run-time, based on Nodinite settings like CustomerName, Environment, and from the Alarm information, including Resources and the optionally linked Repository Model.
Below are examples of typical use-cases:
- Event Log
- Event Source - Default value for the Event Source is:
Nodinite: [{Customer} | {Environment}]
- EventId (0-65535) - Defaults to 0 if the value is invalid or something goes wrong getting the actual value.
- Event Source - Default value for the Event Source is:
- e-mail plugins
- Subject
Variables
Variable name | Description | Example |
---|---|---|
{Customer} | Customer name of the Nodinite installation | ACME |
{Environment} | Environment name of the Nodinite installation | Prod/Test/QA... |
{Version} | Nodinite version | 5.1.3.37 |
{Status} | List of Monitor View statues | Errors/OK |
{StatusAndCount} | List of Monitor View statues and the number for each status | 2 Errors/1 OK |
{DateTime} | Date when the alarm was triggered. | 2019-05-17 13:37:00 |
{Alarm.JsonPath:... } |
Advanced option using JsonPath to extract for example Repository data from the alarm object sent to the Alarm Plugin | See JSON Path examples below |
Here's an example of the Event Log entry using variables to generate a proper output.
Important
The Windows Event Log does not accept some characters for the name of the Event Source; hence, our code may have altered the actual name for the Event Source to honour these rules.
JSON Path Examples
Any valid JsonPath on the Alarm (JSON) can be used for setting the run-time value for Subject*, Event Source* and EventId:
Monitor View Name - {Alarm.JsonPath:MonitorViews[*].Name}
Data from the Repository Model
{Alarm.JsonPath:MonitorViews[0].Integrations[0].CustomMetaDatas[?(@.Name=='SLA')].CustomValues[0].Value}
{Alarm.JsonPath:MonitorViews[0].Integrations[0].CustomMetaDatas[?(@.Name=='Integration Number')].CustomValues[0].Value}
JSON Alarm Example
Example of Alarm (JSON) to apply the JsonPath on
{
"MonitorViews": [{
"MonitorViewId": 1,
"Name": "Test View",
"Description": "Simple unit testing view.",
"WebSite": null,
"StatusCode": {
"StatusCode": 0,
"Name": "OK"
},
"NumberOfMonitoredResources": 2,
"Integrations": [{
"IntegrationId": 1,
"Name": "INT001 - Orders to first company",
"Description": "",
"WebSite": "https://www.nodinite.com",
"CustomFields": [{
"CustomFieldId": 1,
"Name": "SLA",
"Description": "",
"WebSite": null,
"ValueType": {
"CustomFieldTypeId": 1,
"Name": "Text",
"Description": null,
"WebSite": null
},
"CustomValues": [{
"CustomValueId": 1,
"Value": "1",
"Description": "Act fast!!",
"WebSite": "https://www.nodinite.com",
"ValueType": {
"CustomFieldTypeId": 1,
"Name": "Text",
"Description": null,
"WebSite": null
}
}]
}],
"CustomMetaDatas": [{
"CustomMetaDataId": 1,
"Name": "Summary",
"Description": "My integration is the perfect one",
"WebSite": "https://www.nodinite.com",
"DataType": 1,
"CustomValues": [{
"CustomValueId": 1,
"Value": "My integration is the perfect one",
"Description": "Act fast!!",
"WebSite": "https://www.nodinite.com",
"ValueType": null
}]
}]
}],
"ChangedResources": [{
"ResourceId": 1,
"Name": "First Resource - Send Port",
"Description": null,
"WebSite": "https://www.nodinite.com/resource/send-port",
"Monitoring Agent Configuration": {
"SourceId": 1,
"Name": "Test Monitoring Agent Configuration",
"Description": "Simple Monitoring Agent Configuration for testing purposes only.",
"Server": null,
"Environment": null,
"Version": null,
"WebSite": "https://www.nodinite.com/"
},
"Category": {
"CategoryId": 1,
"Name": "Send Ports",
"Description": "Send ports category.",
"WebSite": null
},
"Application": {
"ApplicationId": 1,
"Name": "BizTalk System",
"Description": "Default BizTalk application",
"WebSite": "https://www.nodinite.com/application/biztalk-system"
},
"StatusCode": {
"StatusCode": 0,
"Name": "OK"
},
"LogText": "All OK!"
},
{
"ResourceId": 2,
"Name": "Second Resource - Receive Port",
"Description": null,
"WebSite": null,
"Monitoring Agent Configuration": {
"SourceId": 1,
"Name": "Test Monitoring Agent Configuration",
"Description": "Simple Monitoring Agent Configuration for testing purposes only.",
"Server": null,
"Environment": null,
"Version": null,
"WebSite": "https://www.nodinite.com/"
},
"Category": {
"CategoryId": 2,
"Name": "Receive Ports",
"Description": "Receive ports category.",
"WebSite": "https://www.nodinite.com/category/receive-ports"
},
"Application": {
"ApplicationId": 1,
"Name": "BizTalk System",
"Description": "Default BizTalk application",
"WebSite": "https://www.nodinite.com/application/biztalk-system"
},
"StatusCode": {
"StatusCode": 0,
"Name": "OK"
},
"LogText": "All OK!"
}],
"Users": [{
"UserId": 1,
"Name": "\\IBSS\\IMuser",
"Description": null,
"MailAddress": "support@nodinite.com"
}]
},
{
"MonitorViewId": 2,
"Name": "Second View",
"Description": "Simple test view (second).",
"WebSite": null,
"StatusCode": {
"StatusCode": 2,
"Name": "ERROR"
},
"NumberOfMonitoredResources": 2,
"Integrations": [],
"ChangedResources": [{
"ResourceId": 10,
"Name": "LogAPI Queue",
"Description": "Queue for Nodinite LogAPI.",
"WebSite": null,
"Monitoring Agent Configuration": {
"SourceId": 2,
"Name": "MSMQ",
"Description": "Monitoring Agent Configuration to monitor MSMQ queues.",
"Server": "NODINITE-DEV01",
"Environment": "Production",
"Version": "1.0",
"WebSite": null
},
"Category": {
"CategoryId": 10,
"Name": "MSMQ Queue",
"Description": "MSMQ Queues category",
"WebSite": "https://msdn.microsoft.com/en-us/library/ms711472%28v=vs.85%29.aspx"
},
"Application": null,
"StatusCode": {
"StatusCode": 2,
"Name": "ERROR"
},
"LogText": "Number of messages in queue exceeded error limit."
},
{
"ResourceId": 11,
"Name": "LogAPI Test Queue",
"Description": "",
"WebSite": null,
"Monitoring Agent Configuration": {
"SourceId": 2,
"Name": "MSMQ",
"Description": "Monitoring Agent Configuration to monitor MSMQ queues.",
"Server": "NODINITE-DEV01",
"Environment": "Production",
"Version": "1.0",
"WebSite": null
},
"Category": {
"CategoryId": 10,
"Name": "MSMQ Queue",
"Description": "MSMQ Queues category",
"WebSite": "https://msdn.microsoft.com/en-us/library/ms711472%28v=vs.85%29.aspx"
},
"Application": null,
"StatusCode": {
"StatusCode": 1,
"Name": "WARNING"
},
"LogText": "Number of messages in queue exceeded warning limit, but not error limit."
}],
"Users": [{
"UserId": 1,
"Name": "\\Domain\\user",
"Description": null,
"MailAddress": "support@nodinite.com"
}]
}],
"Version": "5.0.0.0",
"Environment": "Test",
"Customer": "Nodinite",
"Created": "2019-01-01T01:00:00.000000Z",
"WebClientUrl": "https://localhost/Nodinite/WebClient/",
"IsRecurring": false,
"ProductStatus": {
"IsTrial": false,
"ExpirationDate": null
}
}
Next Step
Alarm Plugins - Overview
Edit Alarm Plugins