16
HAWKULAR ALERTING Flexible and scalable alerting services Lucas Ponce Hawkular Team November 2016

Hawkular Alerting

Embed Size (px)

Citation preview

Page 1: Hawkular Alerting

HAWKULAR ALERTING

Flexible and scalable alerting services

Lucas PonceHawkular TeamNovember 2016

Page 2: Hawkular Alerting

Hawkular Alerting2

CLICK TO ADD TEXT

Page 3: Hawkular Alerting

Hawkular Alerting3

Hawkular AlertingIn a nutshell

● Generic alerting services

Suitable for multiple business domains

● Flexible and scalable

Simple REST API

Cassandra backend

Cluster ready

● Pluggable actions architecture

Out of the box plugins

Simplified API to develop new plugins

Page 4: Hawkular Alerting

Hawkular Alerting4

Action Plugins

Generic Alerting ServicesAlerting philosophy

Trigger definitionsX > 10, Y < 20N < 80% of MK is DOWN

E.url=/x/y/z and E.time > 10s

Data

Events Events

Alerts

Page 5: Hawkular Alerting

Hawkular Alerting5

Generic Alerting ServicesData, Events and Alerts

Data

Events

Alerts

Time-series data (gauges, counters, availability)Stored on Hawkular MetricsSimple condition expressions

Generic representation of a captured happeningStructured dataInternal: generated by the Alerting engineExternal: provided as data

Events that required human attentionLifecycle (Open, Acknowledged, Resolved)Internal: generated by the Alerting engine

Page 6: Hawkular Alerting

Hawkular Alerting6

Generic Alerting ServicesTriggers, Conditions and Dampenings

Trigger definitionsX > 10, Y < 20N < 80% of MK is DOWN

E.url=/x/y/z and E.time > 10s

TriggerIF Conditions are met THEN Fires an Event or Alert

Execute Actions

ConditionsTriggers can have one or more conditionsTriggers can fire when ALL or ANY of conditions are met

DampeningTriggers can fire every time Conditions are met, orDefine dampening rules like

responseTime > 10s [4 times in 5 minutes]

Page 7: Hawkular Alerting

Hawkular Alerting7

Generic Alerting ServicesAlert Lifecycle

Alerts

Open

Acknowledged

Resolved

Alert is fired by a Trigger

Alert is acknowledged by a UserStarting investigation on it

Alert can be resolved by a User, orAlert can be resolved automatically

Lifecycle transitions can execute Actions

Action Plugins

Page 8: Hawkular Alerting

Hawkular Alerting8

Generic Alerting ServicesAUTORESOLVE

AlertsOpen

Resolved

Trigger can defineFIRING Conditions (when a bad situation happens)

Generates an Alert

AUTORESOLVE Conditions (when the situation is gone)

Automatically resolves the Alerti.e.

FIRING responseTime > 10sAUTORESOLVE responseTime <= 10s

Page 9: Hawkular Alerting

Hawkular Alerting9

MemberTrigger definition

ResponseTime-A > 10s in last 5m MemUsed-A > 500MbDiskUsed-A > 10 Gb

MemberTrigger definition

ResponseTime-A > 10s in last 5m MemUsed-A > 500MbDiskUsed-A > 10 Gb

Generic Alerting ServicesManaging Group of Triggers

GroupTriggerIt acts like a template

GroupTrigger definition

ResponseTime > 10s in last 5m MemUsed > 500MbDiskUsed > 10 Gb

MemberTriggersGenerated from a GroupTriggerPersonalize data IdsManaged from parent GroupTrigger

i.e. GroupTrigger applied to machines [A, B, C]

MemberTrigger definition

ResponseTime-A > 10s in last 5m MemUsed-A > 500MbDiskUsed-A > 10 Gb

Page 10: Hawkular Alerting

Hawkular Alerting10

Generic Alerting ServicesConditions

Condition Type Examples

AVAILABILITY X is DOWN, Y is NOT_UP

COMPARE X > 80% of Y

EVENT event.id starts 'IDXYZ', event.tag.category == 'Server', event.tag.from ends '.com'

EXTERNAL Delegate the evaluation on external pluggable Alerters

MISSING Not X in last 5 minutes

RATE X > 10 per-minute

STRING X matches “A.*B”

RANGE X inside [10, 20), X outside [100,200]

THRESHOLD X > 10, Y <= 20

Page 11: Hawkular Alerting

Hawkular Alerting11

Flexible and ScalableSimple REST API

● Main REST API

● Additional Hawkular clients

Ruby

Python (in progress)

Java

Content-Type: application/json/hawkular/alertsGET /POST /triggers...

http://www.hawkular.org/docs/rest/rest-alerts.html

Content-Type: application/json/hawkular/alertsGET /POST /triggers...

http://www.hawkular.org/docs/rest/rest-alerts.html

Page 12: Hawkular Alerting

Hawkular Alerting12

Flexible and ScalableComplex Events Processing and Cassandra backend

Alerting Engine Optimized CEP algorithmStateful Rules EngineBacked by JBoss Drools

Cassandra ScalableDistributedStructured data store

Page 13: Hawkular Alerting

Hawkular Alerting13

Flexible and ScalableCluster Ready

Alerting Engine

Cassandra

Horizontal scalabilityFull distribution of data and definitionsCloud ready

Page 14: Hawkular Alerting

Hawkular Alerting14

Pluggable Actions Architecture Out of the box plugins

Action Plugins EmailWebhooksSms (Twilio SDK)AerogearPagerDutyIrcFile

DIY plugins@Plugin(name = “my-diy-plugin)Public class DiyPlugin implements ActionPluginListener {

public void process(ActionMessage msg) {

// Process the msg

}}

@Plugin(name = “my-diy-plugin)Public class DiyPlugin implements ActionPluginListener {

public void process(ActionMessage msg) {

// Process the msg

}}

Page 15: Hawkular Alerting

Hawkular Alerting15

DeploymentsChoose what you need

● Standalone

Embed an Alerting engine into your system

● Hawkular Metrics + Alerting

Metrics Storage + Alerting engine

Available on Openshift deployments

● Hawkular Services

Metrics Storage + Alerting engine + Inventory and more

Available as Middleware provider on ManageIQ

Page 16: Hawkular Alerting

THANK YOU

hawkular.org#hawkular on Freenode.net@hawkular_orggithub.com/hawkular