Skip to main content

Monitoring

The monitoring system allows defining custom operational alerts based on framework events.

Requirements

monitoring.enabled=true

Monitors only function when this property is true.

Core Concepts

TermDescription
MonitorA named state that can be raised or not raised. Belongs to a single configuration.
TriggerChanges monitor state. Two types: Alarm (raises) and Clearing (clears).
EventFramework occurrence that fires a trigger (e.g., Pipe Exception, Receiver Shutdown).
ThresholdNumber of events required before the trigger fires.
PeriodTime window (in seconds) within which the threshold must be reached.
DestinationAction performed when a monitor is raised.
TagsVisual classification: TECHNICAL, FUNCTIONAL, HEARTBEAT, CLEARING.

Example: a trigger with threshold=2 and period=60 fires only if two matching events occur within 60 seconds.

Monitors are scoped to a single configuration. Triggers can be further scoped to specific adapters.

Alarm and Clearing Triggers

  • Alarm trigger — raises the monitor when its conditions are met.
  • Clearing trigger — clears (un-raises) the monitor.

A monitor can also be cleared manually via the UI.

Destinations

Destinations define actions executed when a monitor is raised. The available destination type is <SenderMonitorAdapterDestination>, which wraps a sender:

<Monitoring>
<Destination name="TheDestination">
<IbisJavaSender name="TheSender" serviceName="OnMonitoringTriggered" />
</Destination>
</Monitoring>

The sender receives a message when the monitor is raised. This can trigger another adapter to perform any action (log, send email, call external system).

Important: Each destination must have a name attribute.

Configuration XML

Monitors defined in the UI must be exported and added to Configuration.xml to persist across restarts. Use the "XML" button in the UI to export.

Full configuration example (see the FF! Reference for pipe details):

<Configuration
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../FrankConfig.xsd">

<Adapter name="First">
<Receiver name="First">
<JavaListener name="First" serviceName="First" />
</Receiver>
<Pipeline>
<EchoPipe name="Message" getInputFromFixedValue="Greetings from First"/>
</Pipeline>
</Adapter>

<Monitoring>
<Destination name="TheDestination">
<IbisJavaSender name="TheSender" serviceName="OnMonitoringTriggered" />
</Destination>
<Monitor name="MyMonitor" destinations="TheDestination">
<Alarm>
<Event>Receiver Shutdown</Event>
</Alarm>
</Monitor>
</Monitoring>
</Configuration>

Note: The <Event> tag contains a string value as content, unlike other Frank!Framework XML elements which use only attributes and child elements.

Console Interface

The Monitoring page in the Frank!Console shows:

  • All configured monitors and their current state (raised/cleared)
  • Trigger configuration details
  • Manual raise/clear controls
  • Event history