Togai’s Alerting System is designed to monitor various entities for specific conditions and trigger incidents when these conditions are met. It is composed of alert templates, alerts, and incidents. The system allows users to create alerts to define conditions and thresholds on state of a single entity or group of entities. If an alert condition is satisfied, the system will create an incident.

Entities of Alerts module

Alert template

An Alert Template serves as a blueprint for creating alerts that monitor specific entities for certain conditions. The purpose of an alert template is to define the logic and thresholds for triggering alerts in various scenarios. Commonly, the template blueprint has the structure resembling this: Property of the [Entity or entities] belonging to the [Owner] breaches the [Condition] where condition in turn has a condition operation and threshold.

Example:

  • Alert template: credit_low_balance

    Entity: Credits

    Owner: Account

    Parameters: Threshold

    Condition: Balance of Entity: Credits belonging to Owner: Account drops below Parameter: Threshold

Alert

An Alert can be imagined as an instance of an alert templates combined with a set of parameters. Alerts monitor data for breaches depending on the configured condition thresholds.

Example:

  • Alert template: credit_low_balance

    Entity: Credits

    Owner: Account = Acc1

    Parameters: Threshold = 100$

    Condition: Balance of Entity: Credits belonging to Owner: Account Acc1 drops below Parameter: 100$

Incident

An Incident is created when the condition defined in an alert is met, i.e., when the threshold is breached. The incident serves as a notification or event that requires action. Each incident record includes the open and close time stamps, as well as snapshots of the data being evaluated around the time of each incident also termed as Report Data.

Short Summary:

  • Alert Template + Parameters => Alert
  • Alert + Condition is breached => Incident containing Report Data

Alert templates

alertTemplateIdEntityOwner DetailsParametersReport DataAuto Resolvable
unprocessed_eventsN/AN/AunprocessedEventParamsunprocessedEventReportDataFALSE
usage_breachUSAGE_METERACCOUNTusageBreachParamsusageBreachReportDataFALSE
credit_low_balanceCREDITACCOUNTlowBalanceParamslowBalanceReportDataTRUE
wallet_low_balanceWALLETACCOUNTlowBalanceParamslowBalanceReportDataTRUE
entitlement_low_balanceFEATUREACCOUNTlowBalanceParamslowBalanceReportDataTRUE
invoice_due_breachINVOICEACCOUNTinvoiceDueBreachParamsinvoiceDueBreachReportDataFALSE
invoice_overdue_breachINVOICEACCOUNTinvoiceDueBreachParamsinvoiceDueBreachReportDataFALSE
unpaid_invoice_amount_breachnullACCOUNTunpaidInvoiceAmtBreachParamsunpaidInvoiceAmtBreachReportDataTRUE

Parameter Schema

UnprocessedEvent Params

window
integer

This is the last window number of minutes from alert interval time that will be considered for generating the alert

threshold
integer
required

Threshold limit above which incidents are created

schemaName
integer

Name of the event schema for which unprocessed events count is required

UsageBreach Params

threshold
integer
required

Threshold limit for a given aggregation period above which alerts are generated.

aggregation
enum

Allowed Values: DAY, WEEK, MONTH, PRICING_CYCLE. Defaults to PRICING_CYCLE

LowBalance Params

minThreshold
integer
required

Minimum threshold limit below which incidents are created

InvoiceDueBreach Params

thresholdDays
integer
required

Threshold limit for days above which incidents are created

thresholdSum
integer

Threshold limit for invoice sum above which incidents are created

UnpaidInvoiceAmountBreach Params

thresholdSum
integer
required

Threshold limit for unpaid invoice sum above which incidents are created

Report Data Schema

UnprocessedEvent Report Data

count
integer
required

Count of the unprocessed events

UsageBreach Report Data

usage
integer
required

Usage units

LowBalance Report Data

balance
integer
required

Remaining balance of credits for an account

totalGrantedUnits
integer

Total granted units of credits for an account

accountId
string

accountId corresponding to the alert

InvoiceDueBreach Report Data

count
integer
required

Sum of all invoices that are due / overdue after threshold number of days

sum
integer

Count of invoices that are due / overdue after threshold number of days”

accountId
string

accountId corresponding to the alert

UnpaidInvoiceAmountBreach Report Data

sum
number
required

Sum of the total unpaid amount

accountId
string
required

accountId corresponding to the alert

sumOfDueInvoices
number
required

Sum of the due invoices contributing to the outstanding sum

sumOfDraftInvoices
number
required

Sum of the draft invoices contributing to the outstanding sum

numberOfDueInvoices
integer
required

Number of due invoices contributing to the outstanding sum

numberOfDraftInvoices
integer
required

Number of draft invoices contributing to the outstanding sum

sumOfPartiallyPaidInvoices
number
required

Sum of the partially paid invoices contributing to the outstanding sum

numberOfPartiallyPaidInvoices
integer
required

Number of partially paid invoices contributing to the outstanding sum