Spotfire Alerting Extension
By:
Last updated:
5:36pm Apr 12, 2017

 

Note: the Alerting Extension has been demonstrated at the on-line TIBCO Analytics Meetup of December 1st, 2016. You can find the video on the TIBCO Community Analytics Meetup page.

Overview

Alerting based on TIBCO Spotfire® Analyses is an area of discussion that occurs frequently in the community. The TIBCO Spotfire Plug-in for Alerting is an extension for TIBCO Spotfire. This extension allows you to leverage your existing Spotfire analysis to Register and Monitor alerts and provides seamless integration with Automation services via Alerting Task. Following are a few features of the Alerting extension:

  • Easy GUI-configuration of alerts
  • Alerts triggered from a rules-based engine
  • Various methods of triggering rules (visualization/threshold, IronPython, Data Function)
  • Alert based on existing Spotfire analyses
  • User-customized, personalized and targeted alerting

Watch a presentation and demo of this alerting extension.  (Starts at 4:10 on the video.)

Leveraging APIs for Alerting Capability

Spotfire is a flexible and extensible platform that exposes APIs in IronPython, JavaScript and C# (through Spotfire Software Development Kit). C# API gives access to analytic objects in Application (like visualizations, filters), Data Model, or the Framework (eg. library). Ironpython on the other hand, helps create complex user interfaces and work flows including:

  • Combining multiple actions
  • Calling a web service
  • Writing data to database

Learn more about Extending TIBCO Spotfire

TIBCO Spotfire users and customers have expressed the need for a solution within Spotfire that would cater to the following:

Requirement

The custom extension has been developed in C# to address the above requirements. The add-on is distributed and deployed by means of automated scripts that include installing necessary packages on the Spotfire server. The design of the tool allows configuration of alerts from Spotfire Analyst and alerts are configured to use existing Spotfire analyses. These alerts are triggered using an Alerting Task within Automation services. This enables the extension to combine with existing Automation Services jobs pipeline including:

Automation Services jobs
 

Alert Registration High-Level Design

Alerts Hierarchy

Each DXP can contain several alerts and each alert in turn can contain several rules. The user can decide to trigger the alert based on whether all rules are matched(AND condition) or if any rules are matched(OR condition). The Rules are setup based on their triggering mechanism. If the conditions specified by the rule have been met (e.g. a threshold has been exceeded), the rule is said to be triggered and a notification may be sent, depending on the setup of the alert.

Types of rules 


 

Additional Features

Email Notifications

When Alert conditions are met, an email notification can be sent to all recipients added for the alert, i.e. Global Recipient delivery method. Alternatively Iterate over Recipients method facilitates personalized alerting by allowing the user to iterate over recipients specified in a Data Table or Information Link. The information link can further categorize the recipient field as a Prompt or Named Parameter

Configuring Row Level Security

Alert Registration notification methods described above allow user to set up Personalized Information links for enhanced Row-Level security for the data. This technique has a distinct advantage over using “Limit by” or filtering options in the DXP. Parameter or Prompt triggered alerts would have better memory performance since they only fetch the required data row(s) unlike iterating over marking or filtering which would load all the data then choose to only export parts of it

Customizing Notification Method

Users can leverage IronPython Scripting within the analysis file to create custom Notification methods like UI popups for individual users or SMS notifications for alerts.
 

Sample UI Walkthrough

To configure each Alert:

Click on New Alert and give it a name. In the Email Template section defaults are populated for your convenience including variable such as dxp title, personalized recipient name etc.

Alert Tan

  1. Email Subject uses Title of the dxp as %%Title%% variable.
  2. Message Header consists of the default text for the email including personalized recipient name, and webplayer link to analysis.
  3. Message Footer is commonly used for legal disclaimers, do not reply declarations etc.
  4. Alerting Frequency section is an inbuilt mechanism into the tool to avoid being spammed by the same alert. When the alert is run, the tool checks against this section to see if an alert is due and only then sends out an email. By default it is set to ‘Always’ but it can be set to a few minutes upto years.   
     

To configure each Rule:

Click on the Rules tab in the same dialog box.

Rules Tab

  1. Based on the mechanism to trigger the Rules, choose the type of rule to be configured and give it a name eg. ‘Test Rule’. Add details of visualization to be used for Threshold and Delta rules otherwise choose respective scripts for the other rules.
  2. Trigger ANY Rule acts like logical OR of the rules, Trigger ALL acts like logical AND of the rules.
  3. Message for selected rule with be the customized message displayed when that particular rule is triggered, not that this will be placed after the Message body of the generic alert message configured in the previous section. 
  4. Add any visualization to the email from analysis file

Recipients can be configured using an Excel file of recipient names and contact information, distribution lists or through prompted or Parametrized information links.
 

Popular Use Cases

1. In Manufacturing and Process Control alert based on Control Limit violations

Note that here a TERR script determines whether the point passes (0) or fails (1) the rule, this then can be used to generate alerts.

Process Control Scenario

2. In Fraud Detection send alerts for suspected intrusions, fraud and Anomalies

Fraud Scenario

3. In Finance send Real-Time Alerts based on Stock Prices, % Returns and Market Risk

Finance Case

Other Examples include:
4. In Clinical Trials alert based on Success rate
5. In Retail and Customer Analytics send alerts for product affinity scores
6. In In Operations and Logistics alert for anticipated delays and supply shortages
7. In Internet of Things and Connected Vehicles trigger alerts for sensor failures

Version Details

Version 3.5.2:

  • Compatible with Spotfire versions 7.5+; Spotfire versions 7.7+ for full functionality
  • New Feature: Recipient Lookup from LDAP using query strings
  • New Feature: Recipient Subscribe & Unsubscribe to Alert from Web Panel
  • New Feature: Compatible with Oracle as back-end data source
  • Improvements & Fixes: Corrected email from multiple rules, Improved support for Calculated Columns for Threshold Rule

Version 3.0:

  • Compatible with Spotfire versions 7.0+
  • New Feature: Personalized Alerts through parametrized Information Links
  • New Feature: Extended list of Variables available dynamicaaly with %%_%% syntax for Alerts
  • New Feature: Added Preferences for root Information Model Folder
  • New Feature: Execute IronPython Script on Alert fulfillment
  • Deprecated: Configure Recipients for each rule
  • Improvements & Fixes: Improved UI, Support for Alert deletion and Multiple Alerts in DXP, Fixed Alerting Task save settings

Version 2.0:

  • Compatible with Spotfire versions 7.0+ 
  • Base Version. Provides User ability to configure Alerts, Rules and Recipients in a DXP
  • Allows User ability to create Automation Services Alerting Task used to schedule Alerts

 

Contact for more details

Europe, Middle East and Africa:

Americas and Other:

Feedback (3)

So is this available for download ?

shlewis 7:37am Apr. 27, 2017

非常好,期待!

806075419 1:19am Apr. 06, 2017

Is this available as a community extension or is it a for-pay extension?

It is similar in approach to one I developed internally, as the functionality should be embedded in Spotfire natively.

This is nicer however, and would be good to have community support.

dave.williams 7:58am Dec. 02, 2016