Attributes of Pager manifest¶
Structure of a Pager manifest¶
pager:
conditions:
- valueJqFilter: ${value-jq-filter}
operator: ${operator}
value: ${value}
output:
email:
emailTargets:
- ${email}
- ${email}
msTeams:
webHookUrl: ${web-hook-url}
webHook:
url: ${web-hook-url}
headers:
${key}: ${value}
authorization:
token: ${token}
customHeader: ${customHeader}
verb: ${http-operation}
bodyTemplate: ${body-template}
Pager-specific section attributes¶
pager¶
Description: The pager attribute is a mapping that encapsulates attributes specific to configuring the functionalities of a Pager, such as defining conditions and specifying output destinations.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| mapping | mandatory | none | valid Pager-specific attributes |
Example Usage:
pager:
conditions:
- valueJqFilter: .properties.name
operator: equals
value: malfunctiondatatool
- valueJqFilter: .properties.incident_type
operator: equals
value: malfunctionsystem
output:
webHook:
url: https://example.com/webhook
verb: post
conditions¶
Description: The conditions attribute defines the conditions that the Pager Service utilizes as input for matching against all active Pagers. It identifies the Pager meeting the specified criteria and triggers the associated alert. Each condition declaration involves specifying three attributes: valueJqFilter, operator, and value. Multiple conditions can be added as a list of mappings, and the rule engine evaluates the conditions using AND logic.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| list of mapping | mandatory | none | none |
Example Usage:
Single condition
This condition checks whether the value of the property named "name" in the JSON data is equal to the string "workflowrunfailed.”
Multiple condition
pager:
conditions:
- valueJqFilter: .properties.name
operator: equals
value: workflowrunfailed
- valueJqFilter: .properties.severity
operator: equals
value: high
valueJqFilter¶
Description: The valueJqFilter attribute specifies the JSONPath filter used to extract values from the payload of messages in the incident stream. This filter is applied to the incoming data to retrieve specific fields or properties for evaluation within the Pager Service's condition matching logic.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| string | mandatory | none | valid jq filter |
Additional Details: You can utilize the dataos-ctl jq command for declaring attributes the appropriate jq filters
Example Usage:
Single condition
operator¶
Description: The operator attribute specifies the comparison operator used to evaluate conditions in a Pager. It defines the type of comparison to be performed between the extracted value (using valueJqFilter) and the specified value (value).
| Data Type | Requirement | Default Value | Possible Values |
|---|---|---|---|
| string | mandatory | none | equals |
Example Usage:
value¶
Description: The value attribute specifies the value against which the extracted value (using valueJqFilter) is compared within the Pager's condition evaluation. It defines the target value for comparison based on the chosen operator.
| Data Type | Requirement | Default Value | Possible Values |
|---|---|---|---|
| string | mandatory | none | any valid string |
Example Usage:
Single Condition:
In this example, the condition checks whether the value extracted from the property named "name" (using JSONPath .properties.name) is equal to the string "workflowrunfailed.”
output¶
Description: The output attribute defines the destination where alerts are sent. It allows configuring different output channels for alert notifications.
| Data Type | Requirement | Default Value | Possible Values |
|---|---|---|---|
| mapping | mandatory | none | Valid output destinations |
Example Usage:
pager:
output:
email:
emailTargets:
- iamgroot@example.com
msTeams:
webHookUrl: https://teams.example.com/webhook
webHook:
url: https://slack.example.com/webhook
verb: post
headers:
content-type: application/json
bodyTemplate: '{"text": "Alert: {{.Monitor.Name}} triggered with severity {{.Properties.Severity}} at {{.CreateTime}}. Description: {{.Monitor.Description}}"}'
email¶
Description: The email attribute specifies email destinations for Pager alerts. Alerts are sent to the specified list of email addresses using a pre-defined template.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| mapping | optional | none | valid email-specific attributes |
Example Usage:
emailTargets¶
Description: The emailTargets attribute specifies the email addresses to which Pager alerts will be sent.
| Data Type | Requirement | Default Value | Possible Values |
|---|---|---|---|
| list of string | mandatory | none | valid email addresses in string format |
Example Usage:
msTeams¶
Description: The msTeams attribute specifies the Microsoft Teams webhook URL for Pager alerts. Alerts are sent to the specified Microsoft Teams webhook URL using a pre-defined body template. To configure the body template, use the webHook attribute and configure the template using the bodyTemplate attribute.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| mapping | optional | none | none |
Example Usage:
webHookUrl¶
Description: The webHook attribute configures Pager alerts to be sent to Microsoft Teams using an incoming webhook. Alerts sent using the msTeams and webHookUrl use a pre-defined body template. To configure the body template, use the webHook attribute and configure the template using the bodyTemplate attribute.
| Data Type | Requirement | Default Value | Possible Values |
|---|---|---|---|
| mapping | mandatory | none | valid MS Teams incoming webhook url |
Example Usage:
webHook¶
Description: The webHook attribute configures Pager alerts to be sent to any applications using an incoming webhook. It provides attributes to configure URL, HTTP method (verb), headers, and body template for the webhook request.
| Data Type | Requirement | Default Value | Possible Values |
|---|---|---|---|
| mapping | optional | none | valid webhook configurations |
Example Usage:
pager:
output:
webHook:
url: https://slack.example.com/webhook
verb: post
headers:
content-type: application/json
bodyTemplate: '{"text": "Alert: {{.Monitor.Name}} triggered with severity {{.Properties.Severity}} at {{.CreateTime}}. Description: {{.Monitor.Description}}"}'
authorization:
token: "an apikey string"
customHeader: "apikey"
url¶
Description: The url attribute specifies the URL of the webhook destination for Pager alerts.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| string | mandatory | none | valid URL |
Example Usage:
verb¶
Description: The verb attribute specifies the HTTP verb to be used in the webhook request (e.g., GET, POST, PUT, DELETE).
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| string | mandatory | none | GET, POST, PUT, DELETE, PATCH |
Example Usage:
headers¶
Description: The headers attribute specifies any additional headers to be included in the webhook request. For specififying authorization headers like apikey tokens, use the authorization attribute for secured authorization.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| object | optional | none | valid HTTP headers |
Example Usage:
authorization¶
Description: The authorization attribute specifies the authorization details for accessing the webhook URL.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| mapping | optional | none | none |
Example Usage:
token¶
Description: The token attribute specifies the authorization token for accessing the webhook URL.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| string | optional | none | valid authorization token |
Example Usage:
customHeader¶
Description: The customHeader attribute specifies any custom header to be included in the webhook request for authorization purposes.
| Data Type | Requirement | Default Value | Possible Value |
|---|---|---|---|
| string | optional | none | valid HTTP header |
Example Usage:
bodyTemplate¶
Description: The bodyTemplate attribute specifies the template to be used for the body of the webhook request. It allows customization of the content sent in the webhook payload. Refer to the documentation of the respective application for guidance on crafting the template.
For example, for Microsoft Teams, refer to the Message Card Reference. You can also use a user interface to craft body templates for MS Teams visit this link. Similarly, for Slack, visit Slack webhooks.
The body template can also incorporate dynamic content using go text templates placeholders. For example, in the example provided below {{.Monitor.Name}}, {{.Monitor.Description}}, etc. will be replaced with actual values when the webhook is triggered. To learn more about them, consult the Sprig Function Documentation.
| Data Type | Requirement | Default Value | Possible Values |
|---|---|---|---|
| string | optional | none | valid template string |
Example Usage:
pager:
output:
webHook:
bodyTemplate: |
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": ":warning: Incident detected by, {{.Monitor.Name}}!"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Incident Type* - {{get .Properties "severity"}} was observed at *Publish Time* - {{.CreateTime}}"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "{{.Monitor.Description}}"
}
}
]
}