You can customize the formatting for your alert messages by modifying one of the default XSL style sheets, or creating your own XSL template. The default XSL style sheets are divided into different sections for each type of alert messages. Administrators who are comfortable with XSL can modify the text and formatting of each type of alert.
Before you can use the customized template for your alert messages, make sure that the customized template exists on your local computer.
Consider the following points before customizing templates:
- If the server cannot access the customized template that you specified, the default alert template is used and a message is logged in the log file.
- The alert service identifies a template by the file name. To avoid overwriting a template, the administrators can follow a specific naming scheme for your templates.
- The template XSLs must have the following tags to generate the subject and body of the email:
The following section lets the server select the email body or email subject from template:
<xsl:template match="AlertServiceAlertMessage"> <xsl:choose> <xsl:when test="@MessageType[.='Default']"> <xsl:call-template name="MailBodyDefault" /> </xsl:when> <xsl:when test="@MessageType[.='SubjectDefault']"> <xsl:call-template name="MailSubjectDefault" /> </xsl:when> </xsl:choose> </xsl:template>
The following sections defines the email body:
<xsl:template name="MailBodyDefault"> <HTML> <HEAD> ... ... ... </BODY> </HTML> </xsl:template>
The following sections defines the email subject:
<xsl:template name="MailSubjectDefault"> Tealeaf Event Test Email <xsl:value-of select="ThresholdCategory" /> <xsl:value-of select="EventTitle" /> </xsl:template>
Complete the following steps to use your customized template for alert messages:
- On the computer where you have saved the customized template, go to the Portal and open the Edit Alert window.
- Click the Notification tab.
In the Current template field, you can see the template that is currently used for your alert messages.
- Select Use template, and browse to the customized template.
- Select Overwrite Existing File to update the templates that are in use.
If you don't select Overwrite Existing File, you'll get the following error:
Error saving Alert (draft)! File Already Exists:<file path to template>
- Click Save draft to save your changes.
The server attempts to validate that the template is a valid XSL.
XSL templates
The XSL templates are stored in the <Install_directory>\Portal directory.
Note: If you rename the files, you can use this method to check for updates to these files when you upgrade. After the Alert Service runs again, you can use a text editor to check for differences between the renamed version and the newly generated version to see if there are changes or more formatting features that were introduced in the upgrade.
In the following list, the AlertService
files apply to event alerts or Canister status alerts.
AlertServiceText.xsl
Note: The Subject line for HTML alerts must be in text format. The formatting of them is managed through the
AlertServiceText.xsl
file.AlertServiceHTML.xsl
AlertServiceSMS.xsl
AlertServiceSNMP.xsl
AlertServiceTopMoversHTML.xsl
AlertServiceReportsHTML.xsl
AlertServiceAppLog.xsl
The log is written to <install_directory>\Logs\Alerts_YYYYMMDD.log.
AlertShellCmd.xsl
Information, including variable descriptions, is included as comments in each file. A default formatting is also provided to serve as an example for user customization.
Note: Some target devices may be fixed limits to the amount of text that can be displayed. For example, a cell phone may be able to display only 50 characters with no distinction between the message header and body. For each type of alert, you should review a generated text alert on the likely targets.
Alert service XSL for event alerts
The following example configuration is the default AlertServiceText.xsl.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="no" omit-xml-declaration="yes"
encoding="iso-8859-1"/>
<!-- XML format for Alert Messaging -->
<!-- <AlertServiceAlertMessage MessageType="Default"> -->
<!-- <AlertServiceAlertMessage MessageType="TopMovers"> -->
<!-- <AlertServiceAlertMessage MessageType="SubjectDefault"> -->
<!-- <AlertServiceAlertMessage MessageType="ReportsHead"> -->
<!-- <AlertServiceAlertMessage MessageType="ReportsBody"> -->
<!-- <AlertServiceAlertMessage MessageType="ReportsTail> -->
<!-- <AlertID>1</AlertID> -->
<!-- <EventID>1</EventID> -->
<!-- <AlertTime>0</AlertTime> -->
<!-- <Title>*** TEALEAF ALERT ***</Title> -->
<!-- <SubTitle>WARNING DETAILS</SubTitle> -->
<!-- <AlertTitle>Alert Name</AlertTitle> -->
<!-- <EventTitle>Event Name</EventTitle> -->
<!-- <AlertGroup>Alert Group</AlertGroup> -->
<!-- <ThresholdValue>1.0</ThresholdValue> -->
<!-- <LastValue>2.0</LastValue> -->
<!-- <ThresholdType>Positive or Negative</ThresholdType> -->
<!-- <ThresholdCategory>Alert or Warning</ThresholdCategory> -->
<!-- <AlertTimeStamp>Monday, July 02, 2007 08:00</AlertTimeStamp> -->
<!-- <AlertTimeStampShort>07/02/07 08:00:00</AlertTimeStampShort> -->
<!-- <ReportPeriod>Monday, July 02, 2007 08:00</ReportPeriod> -->
<!-- <PortalURL>http://localhost/portal</PortalURL> -->
<!-- <AlertEngineVersion>4.0.0.4500</AlertEngineVersion> -->
<!-- <AlertEngineTimeStamp>Monday, July 02, 2007 08:00:00
</AlertEngineTimeStamp> -->
<!-- <CanistersLagging>george, sam, bobo</CanistersLagging> -->
<!-- <LaggingCount>3</LaggingCount> -->
<!-- <CanistersStopped>fox, hound</CanistersStopped> -->
<!-- <StoppedCount>2</StoppedCount> -->
<!-- The below are only populated for MessageType="TopMovers" -->
<!-- <Frequency>Hourly or Daily</Frequency> -->
<!-- <ReportID>1</ReportID> -->
<!-- <DimensionID>1</DimensionID> -->
<!-- <DimValueID>1,2,3 ... </DimValueID> -->
<!-- <ReportTitle>Report Name</ReportTitle> -->
<!-- <FullName>NAMESPACE.INTERNALNAME</FullName> -->
<!-- <DimensionTitle>Dimension Name</DimensionTitle> -->
<!-- <DimValueTitle>Value0 Name,Value1 Name </DimValueTitle> -->
<!-- </AlertServiceAlertMessage> -->
<xsl:template match="AlertServiceAlertMessage">
<xsl:choose>
<xsl:when test="@MessageType[.='Default']">
<xsl:call-template name="MailBodyDefault"/>
</xsl:when>
<xsl:when test="@MessageType[.='TopMovers']">
<xsl:call-template name="MailBodyTopMovers"/>
</xsl:when>
<xsl:when test="@MessageType[.='SubjectDefault']">
<xsl:call-template name="MailSubjectDefault"/>
</xsl:when>
</xsl:choose>
</xsl:template>
<!-- Main Text Subject. Remember, the space and new lines are taken
literally! -->
<!-- The Subject line is truncated to yield a maximum length of 64
characters -->
<xsl:template name="MailSubjectDefault">Tealeaf Event <xsl:value-of
select="ThresholdCategory"/> - <xsl:value-of
select="EventTitle"/></xsl:template>
<!-- Main Text Body. Remember, the space and new lines are
taken literally! -->
<xsl:template name="MailBodyDefault">
------------------------------------------------------------
- <xsl:value-of select="Title"/>
- <xsl:value-of select="SubTitle"/>
------------------------------------------------------------
<xsl:if test="CanistersLagging">
- Slow Servers : <xsl:value-of select="CanistersLagging"/>
</xsl:if>
<xsl:if test="CanistersStopped">
- Silent Servers : <xsl:value-of select="CanistersStopped"/>
</xsl:if>
- Event : <xsl:value-of select="EventTitle"/>
- Alert : <xsl:value-of select="AlertTitle"/>
- Threshold : <xsl:value-of select="ThresholdValue"/>
- Last Value : <xsl:value-of select="LastValue"/>
- Threshold Type : <xsl:value-of select="ThresholdType"/>
- Generated At : <xsl:value-of select="AlertTimeStamp"/>
- Report Period : <xsl:value-of select="ReportPeriod"/>
<xsl:if test="CanistersLagging or CanistersStopped">
- Notes : This alert has been delayed due to extra time
required to process event data from the listed Slow or Silent Servers.
Event data is still recorded as occurring at the correct times
but the recording process is delayed. As a result, this will be
the only notification for this specific alert during the delayed
processing period. Please refer to the Alert Service Debug Log
and Windows Application Event Log for more details.
</xsl:if>
------------------------------------------------------------
Notification sent by Tealeaf Alert Service
(<xsl:value-of select="AlertEngineVersion"/>)
Timestamp: <xsl:value-of select="AlertEngineTimeStamp"/>
</xsl:template>
<!-- Main Text Body for TopMovers. Remember, the space and new lines
are taken literally! -->
<xsl:template name="MailBodyTopMovers">
------------------------------------------------------------
- <xsl:value-of select="Title"/>
- <xsl:value-of select="SubTitle"/>
------------------------------------------------------------
Alert: <xsl:value-of select="AlertTitle"/>
<xsl:if test="not(ReportTitle='')">
Report: <xsl:value-of select="ReportTitle"/>
</xsl:if>
TopMover: <xsl:value-of select="EventTitle"/>
<xsl:if test="not(DimensionTitle='')">
Dimension: <xsl:value-of select="DimensionTitle"/>
</xsl:if>
<xsl:if test="not(DimValueTitle='')">
Dim Value: <xsl:value-of select="DimValueTitle"/>
</xsl:if>
Frequency: <xsl:value-of select="Frequency"/>
Last Value: <xsl:value-of select="LastValue"/>
Alert Threshold: <xsl:value-of select="AlertThreshold"/>
Warn Threshold: <xsl:value-of select="WarningThreshold"/>
Threshold Type: <xsl:value-of select="ThresholdType"/>
Generated At: <xsl:value-of select="AlertTimeStamp"/>
Report Period: <xsl:value-of select="ReportPeriod"/>
QUICK LINK
<xsl:choose>
<xsl:when test="not(DimValueID='0')">
View Event <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?devid0=<xsl:value-of
select="EventID"/>?dimid0=<xsl:value-of select="DimensionID"/>?<xsl:value-of
select="DimValueID"/>
</xsl:when>
<xsl:when test="not(DimensionID='0')">
View Event <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?devid0=<xsl:value-of
select="EventID"/>?dimid0=<xsl:value-of select="DimensionID"/>
</xsl:when>
<xsl:otherwise>
View Event <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?devid0=<xsl:value-of
select="EventID"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="not(ReportID='')">
View Report <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?reportid=<xsl:value-of
select="ReportID"/>
</xsl:if>
Notification sent by Tealeaf Alert Service (<xsl:value-of
select="AlertEngineVersion"/>)
Created on <xsl:value-of select="AlertEngineTimeStamp"/>
</xsl:template>
<!-- XML format for Report Messaging -->
<!-- <AlertServiceReportMessage> -->
<!-- <Head> -->
<!-- <Title>*** TEALEAF ALERT ***</Title> -->
<!-- <SubTitle>WARNING DETAILS</SubTitle> -->
<!-- <AlertTitle>Alert Name</AlertTitle> -->
<!-- <ReportTitle>Report Name</ReportTitle> -->
<!-- <FullName>NAMESPACE.INTERNALNAME</FullName> -->
<!-- <AlertID>1</AlertID> -->
<!-- <EventID>1</EventID> -->
<!-- <ReportID>1</ReportID> -->
<!-- <PortalURL>http://localhost/portal</PortalURL> -->
<!-- <Frequency>Hourly or Daily</Frequency> -->
<!-- <Day>YYYY-MM-DD</Day> -->
<!-- <Hour>0 to 23</Hour> -->
<!-- </Head> -->
<!-- <Body> -->
<!-- <EventTitle>TopMover Name</EventTitle> -->
<!-- <DimensionTitle>Dimension Name</DimensionTitle> -->
<!-- <DimValueTitle>Value Name </DimValueTitle> -->
<!-- <TopMoverID>1</TopMoverID> -->
<!-- <DimensionID>1</TopMoverID> -->
<!-- <DimValueID>1</DimValueID> -->
<!-- <LastValue>2.0</LastValue> -->
<!-- <LastCount>1000</LastCount> -->
<!-- <PortalURL>http://localhost/portal</PortalURL> -->
<!-- </Body> -->
<!-- <Tail> -->
<!-- <ThresholdValue>1.0</ThresholdValue> -->
<!-- <AlertThreshold>1.0</AlertThreshold> -->
<!-- <WarningThreshold>1.0</WarningThreshold> -->
<!-- <ThresholdType>Positive or Negative</ThresholdType> -->
<!-- <ThresholdCategory>Alert or Warning</ThresholdCategory> -->
<!-- <AlertTime>0</AlertTime> -->
<!-- <AlertTimeStamp>Monday, July 02, 2007 08:00</AlertTimeStamp> -->
<!-- <AlertTimeStampShort>07/02/07 08:00:00</AlertTimeStampShort> -->
<!-- <ReportPeriod>Monday, July 02, 2007 08:00</ReportPeriod> -->
<!-- <PortalURL>http://localhost/portal</PortalURL> -->
<!-- <FullName>NAMESPACE.INTERNALNAME</FullName> -->
<!-- <AlertEngineVersion>4.0.0.4500</AlertEngineVersion> -->
<!-- <AlertEngineTimeStamp>Monday, July 02, 2007 08:00:00
</AlertEngineTimeStamp> -->
<!-- <Frequency>Hourly or Daily</Frequency> -->
<!-- <Day>YYYY-MM-DD</Day> -->
<!-- <Hour>0 to 23</Hour> -->
<!-- </Tail> -->
<!-- </AlertServiceReportMessage> -->
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/AlertServiceReportMessage">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/AlertServiceReportMessage/Head">
------------------------------------------------------------
- <xsl:value-of select="Title"/>
- <xsl:value-of select="SubTitle"/>
------------------------------------------------------------
Alert: <xsl:value-of select="AlertTitle"/>
<xsl:if test="not(ReportTitle='')">
Report: <xsl:value-of select="ReportTitle"/>
</xsl:if>
</xsl:template>
<xsl:template match="/AlertServiceReportMessage/Body">
TopMover: <xsl:value-of select="EventTitle"/>
<xsl:if test="not(DimensionTitle='')">
Dimension: <xsl:value-of select="DimensionTitle"/>
</xsl:if>
<xsl:if test="not(DimValueTitle='')">
Dim Value: <xsl:value-of select="DimValueTitle"/>
</xsl:if>
Last Value: <xsl:value-of select="LastValue"/>
<xsl:choose>
<xsl:when test="not(DimValueID='0')">
View Event
<xsl:value-of select="PortalURL"/>
/DeviationReports.aspx?devid0=<xsl:value-of
select="TopMoverID"/>?dimid0=<xsl:value-of
select="DimensionID"/>?<xsl:value-of select="DimValueID"/>
</xsl:when>
<xsl:when test="not(DimensionID='0')">
View Event <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?devid0=<xsl:value-of
select="TopMoverID"/>?dimid0=<xsl:value-of select="DimensionID"/>
</xsl:when>
<xsl:otherwise>
View Event <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?devid0=<xsl:value-of
select="TopMoverID"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="/AlertServiceReportMessage/Tail">
Frequency: <xsl:value-of select="Frequency"/>
Alert Threshold: <xsl:value-of select="AlertThreshold"/>
Warn Threshold: <xsl:value-of select="WarningThreshold"/>
Threshold Type: <xsl:value-of select="ThresholdType"/>
Generated At: <xsl:value-of select="AlertTimeStamp"/>
Report Period: <xsl:value-of select="ReportPeriod"/>
<xsl:if test="not(ReportID='')">
View Report <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?reportid=<xsl:value-of
select="ReportID"/>
</xsl:if>
Notification sent by Tealeaf Alert Service (<xsl:value-of
select="AlertEngineVersion"/>)
Created on <xsl:value-of select="AlertEngineTimeStamp"/>
</xsl:template>
</xsl:stylesheet>
XML alert message format: Below are the attributes of the XML messages that are generated by the Alert Service for event alerts.
AlertServiceAlertMessage
- Identifier for the type of message you are configuring.
Default
- selects the Body formatting for all messages except Top MoversTopMovers
- selects the Body formatting for Top MoversSubjectDefault
- selects the Subject line formatting for all messagesReportsHead
- (Top Movers alerts only) selects the header of a generated reportReportsBody
- (Top Movers alerts only) selects the body of a generated reportReportsTail
- (Top Movers alerts only) selects the detail of a generated report
AlertID
- Internal identifier for the alert. This value is displayed in the tooltip in the Alerts tab.
EventID
- Internal identifier for the event. This value is displayed in the tooltip in the Events tab.
AlertTime
- Time that alert occurred in Tealeaf system time.
Title
- Subject of the alert email.
SubTitle
- You can use this field to provide a subtitle for the alert.
AlertTitle
- Title of the alert
EventTitle
- Title of the event
AlertGroup
- Group to which the alert belongs
ThresholdValue
- The threshold value for the alert
LastValue
- The last recorded value for the event at the time when the alert was generated
ThresholdType
- The Direction value in the Configuration tab. Set to
Positive
orNegative
. ThresholdCategory
- Category for the alert:
Alert
orWarning
.By default, all alerts are defined as
Alert
type. If the Enable Warnings check box is selected, a {Warning} type alert is generated when the specified thresholds are exceeded. AlertTimeStamp
- Timestamp when the alert was generated.
AlertTimeStampShort
- Timestamp when the alert was generated in short format.
ReportPeriod
- Timestamp of the beginning of the alert Interval.
PortalURL
- URL to reach the Portal login screen
AlertEngineVersion
- Build number of the version of the alert engine
AlertEngineTimeStamp
- Timestamp that is generated by the alert engine on last alert evaluation run. The alert engine evaluates active alerts every minute.
CanistersLagging
- If alert information obtained from one or more individual Canisters is delayed for longer than 10 minutes, the names of those Canisters are listed here in comma-separated format.
LaggingCount
- Count of lagging Canisters
CanistersStopped
- If alert information from one or more individual Canisters was not available for more than 3 minutes, the names of those Canisters are listed here in comma-separated format.
StoppedCount
- Count of stopped Canisters
Alert service XSL for Canister alerts
For alerts based on Canister metrics, the following XSL provides an example configuration, including the available data fields, for formatting Canister alerts.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="no" omit-xml-declaration="yes"
encoding="iso-8859-1"/>
<!-- XML format for Alert Messaging -->
<!-- <AlertServiceAlertMessage MessageType="Default"> -->
<!-- <AlertServiceAlertMessage MessageType="TopMovers"> -->
<!-- <AlertServiceAlertMessage MessageType="SubjectDefault"> -->
<!-- <AlertServiceAlertMessage MessageType="ReportsHead"> -->
<!-- <AlertServiceAlertMessage MessageType="ReportsBody"> -->
<!-- <AlertServiceAlertMessage MessageType="ReportsTail> -->
<!-- <AlertID>1</AlertID> -->
<!-- <EventID>1</EventID> -->
<!-- <AlertTime>0</AlertTime> -->
<!-- <Title>*** TEALEAF ALERT ***</Title> -->
<!-- <SubTitle>WARNING DETAILS</SubTitle> -->
<!-- <AlertTitle>Alert Name</AlertTitle> -->
<!-- <EventTitle>Event Name</EventTitle> -->
<!-- <AlertGroup>Alert Group</AlertGroup> -->
<!-- <ThresholdValue>1.0</ThresholdValue> -->
<!-- <LastValue>2.0</LastValue> -->
<!-- <ThresholdType>Positive or Negative</ThresholdType> -->
<!-- <ThresholdCategory>Alert or Warning</ThresholdCategory> -->
<!-- <AlertTimeStamp>Monday, July 02, 2007 08:00</AlertTimeStamp> -->
<!-- <AlertTimeStampShort>07/02/07 08:00:00</AlertTimeStampShort> -->
<!-- <ReportPeriod>Monday, July 02, 2007 08:00</ReportPeriod> -->
<!-- <PortalURL>http://localhost/portal</PortalURL> -->
<!-- <AlertDateForReportBuilder>2012-06-30</AlertDateForReportBuilder>
-->
<!-- <AlertEngineVersion>4.0.0.4500</AlertEngineVersion> -->
<!-- <AlertEngineTimeStamp>Monday, July 02, 2007 08:00:00
</AlertEngineTimeStamp> -->
<!-- <CanistersLagging>george, sam, bobo</CanistersLagging> -->
<!-- <LaggingCount>3</LaggingCount> -->
<!-- <CanistersStopped>fox, hound</CanistersStopped> -->
<!-- <StoppedCount>2</StoppedCount> -->
<!-- The below are only populated for MessageType="TopMovers" -->
<!-- <Frequency>Hourly or Daily</Frequency> -->
<!-- <ReportID>1</ReportID> -->
<!-- <DimensionID>1</DimensionID> -->
<!-- <DimValueID>1,2,3 ... </DimValueID> -->
<!-- <ReportTitle>Report Name</ReportTitle> -->
<!-- <FullName>NAMESPACE.INTERNALNAME</FullName> -->
<!-- <DimensionTitle>Dimension Name</DimensionTitle> -->
<!-- <DimValueTitle>Value0 Name,Value1 Name </DimValueTitle> -->
<!-- </AlertServiceAlertMessage> -->
<xsl:template match="AlertServiceAlertMessage">
<xsl:choose>
<xsl:when test="@MessageType[.='Default']">
<xsl:call-template name="MailBodyDefault"/>
</xsl:when>
<xsl:when test="@MessageType[.='TopMovers']">
<xsl:call-template name="MailBodyTopMovers"/>
</xsl:when>
<xsl:when test="@MessageType[.='SubjectDefault']">
<xsl:call-template name="MailSubjectDefault"/>
</xsl:when>
</xsl:choose>
</xsl:template>
<!-- Main Text Subject. Remember, the space and new lines are taken
<!-- The Subject line is truncated to yield a maximum length of 64
characters -->
<xsl:template name="MailSubjectDefault">Tealeaf Event <xsl:value-of
select="ThresholdCategory"/> - <xsl:value-of
select="EventTitle"/></xsl:template>
<!-- Main Text Body. Remember, the space and new lines are
taken literally! -->
<xsl:template name="MailBodyDefault">
------------------------------------------------------------
- <xsl:value-of select="Title"/>
- <xsl:value-of select="SubTitle"/>
------------------------------------------------------------
<xsl:if test="CanistersLagging">
- Slow Servers : <xsl:value-of select="CanistersLagging"/>
</xsl:if>
<xsl:if test="CanistersStopped">
- Silent Servers : <xsl:value-of select="CanistersStopped"/>
</xsl:if>
- Event : <xsl:value-of select="EventTitle"/>
- Alert : <xsl:value-of select="AlertTitle"/>
- Threshold : <xsl:value-of select="ThresholdValue"/>
- Last Value : <xsl:value-of select="LastValue"/>
- Threshold Type : <xsl:value-of select="ThresholdType"/>
- Generated At : <xsl:value-of select="AlertTimeStamp"/>
- Report Period : <xsl:value-of select="ReportPeriod"/>
QUICK LINK
- View Alert Status : <xsl:value-of
select="PortalURL"/>/alerts.aspx?alertid=<xsl:value-of
select="AlertID"/>&uniqueid=<xsl:value-of
select="EventID"/>&alerttime=<xsl:value-of select="AlertTime"/>
<xsl:if test="AlertDateForReportBuilder">
- View Event Counts : <xsl:value-of
select="PortalURL"/>/ReportBuilder.aspx?d1=<xsl:value-of
select="AlertDateForReportBuilder"/>&eventid0=<xsl:value-of
select="EventID"/>
</xsl:if>
<xsl:if test="CanistersLagging or CanistersStopped">
- Notes : This alert has been delayed due to extra time
required to process event data from the listed Slow or Silent Servers.
Event data is still recorded as occurring at the correct times
but the recording process is delayed. As a result, this will be
the only notification for this specific alert during the delayed
processing period. Please refer to the Alert Service Debug Log
and Windows Application Event Log for more details.
</xsl:if>
------------------------------------------------------------
Notification sent by Tealeaf Alert Service (<xsl:value-of
select="AlertEngineVersion"/>)
Timestamp: <xsl:value-of select="AlertEngineTimeStamp"/>
</xsl:template>
</xsl:stylesheet>
XML Canister alert message format: Below is attribute information for the XML generated for Canister alerts.
AlertServiceAlertMessage
- Identifier for the type of message you are configuring.
Default
- selects the Body formatting for all messages except Top MoversTopMovers
- selects the Body formatting for Top MoversSubjectDefault
- selects the Subject line formatting for all messagesReportsHead
- (Top Movers alerts only) selects the header of a generated reportReportsBody
- (Top Movers alerts only) selects the body of a generated reportReportsTail
- (Top Movers alerts only) selects the detail of a generated report
AlertID
- Internal identifier for the alert. This value is displayed in the tooltip in the Alerts tab.
EventID
- Internal identifier for the event.
AlertTime
- Time that alert occurred in Tealeaf system time.
Title
- Subject of the alert email.
SubTitle
- You can use this field to provide a subtitle for the alert.
AlertTitle
- Title of the alert
EventTitle
- Title of the event
AlertGroup
- Group to which the alert belongs
ThresholdValue
- The threshold value for the alert
LastValue
- The last recorded value for the event at the time when the alert was generated
ThresholdType
- The Direction value in the Configuration tab. Set to
Positive
orNegative
. ThresholdCategory
- Category for the alert:
Alert
orWarning
. By default, all alerts are defined asAlert
type. If the Enable Warnings check box is selected, aWarning
type alert is generated when the specified thresholds are exceeded. AlertTimeStamp
- Timestamp when the alert was generated.
AlertTimeStampShort
- Timestamp when the alert was generated in short format.
ReportPeriod
- Timestamp of the beginning of the alert Interval.
PortalURL
- URL to reach the Portal login screen
AlertDateforReportBuilder
- Date that is passed to the Report Builder for rendering the report
AlertEngineVersion
- Build number of the version of the alert engine
AlertEngineTimeStamp
- Timestamp that is generated by the alert engine on last alert evaluation run. The alert engine evaluates active alerts every minute.
CanistersLagging
- If alert information obtained from one or more individual Canisters is delayed for longer than 10 minutes, the names of those Canisters are listed here in comma-separated format.
LaggingCount
- Count of lagging Canisters
CanistersStopped
- If alert information from one or more individual Canisters was not available for more than 3 minutes, the names of those Canisters are listed here in comma-separated format.
StoppedCount
- Count of stopped Canisters
Adding links to reports: Through the XSL, you can configure links to be added to the alert, enabling access to alert status information and a generated event count report. Below, you can review the example configuration for Canister alerts.
Note: To disable these links, comment out this code.
QUICK LINK
- View Alert Status : <xsl:value-of
select="PortalURL"/>/alerts.aspx?alertid=<xsl:value-of
select="AlertID"/>&uniqueid=<xsl:value-of
select="EventID"/>&alerttime=<xsl:value-of select="AlertTime"/>
<xsl:if test="AlertDateForReportBuilder">
- View Event Counts : <xsl:value-of
select="PortalURL"/>/ReportBuilder.aspx?d1=<xsl:value-of
select="AlertDateForReportBuilder"/>&eventid0=<xsl:value-of
select="EventID"/>
Alert service XSL for Top Mover report alerts
At the bottom of the Alert Service XSL for Canister alerts, you can review the sample configuration for the Top Mover report alert type.
<!-- XML format for Report Messaging -->
<!-- <AlertServiceReportMessage> -->
<!-- <Head> -->
<!-- <Title>*** TEALEAF ALERT ***</Title> -->
<!-- <SubTitle>WARNING DETAILS</SubTitle> -->
<!-- <AlertTitle>Alert Name</AlertTitle> -->
<!-- <ReportTitle>Report Name</ReportTitle> -->
<!-- <FullName>NAMESPACE.INTERNALNAME</FullName> -->
<!-- <AlertID>1</AlertID> -->
<!-- <EventID>1</EventID> -->
<!-- <ReportID>1</ReportID> -->
<!-- <PortalURL>http://localhost/portal</PortalURL> -->
<!-- <Frequency>Hourly or Daily</Frequency> -->
<!-- <Day>YYYY-MM-DD</Day> -->
<!-- <Hour>0 to 23</Hour> -->
<!-- </Head> -->
<!-- <Body> -->
<!-- <EventTitle>TopMover Name</EventTitle> -->
<!-- <DimensionTitle>Dimension Name</DimensionTitle> -->
<!-- <DimValueTitle>Value Name </DimValueTitle> -->
<!-- <TopMoverID>1</TopMoverID> -->
<!-- <DimensionID>1</TopMoverID> -->
<!-- <DimValueID>1</DimValueID> -->
<!-- <LastValue>2.0</LastValue> -->
<!-- <LastCount>1000</LastCount> -->
<!-- <PortalURL>http://localhost/portal</PortalURL> -->
<!-- </Body> -->
<!-- <Tail> -->
<!-- <ThresholdValue>1.0</ThresholdValue> -->
<!-- <AlertThreshold>1.0</AlertThreshold> -->
<!-- <WarningThreshold>1.0</WarningThreshold> -->
<!-- <ThresholdType>Positive or Negative</ThresholdType> -->
<!-- <ThresholdCategory>Alert or Warning</ThresholdCategory> -->
<!-- <AlertTime>0</AlertTime> -->
<!-- <AlertTimeStamp>Monday, July 02, 2007 08:00</AlertTimeStamp>
-->
<!-- <AlertTimeStampShort>07/02/07 08:00:00</AlertTimeStampShort>
-->
<!-- <ReportPeriod>Monday, July 02, 2007 08:00</ReportPeriod> -->
<!-- <PortalURL>http://localhost/portal</PortalURL> -->
<!-- <FullName>NAMESPACE.INTERNALNAME</FullName> -->
<!-- <AlertEngineVersion>4.0.0.4500</AlertEngineVersion> -->
<!-- <AlertEngineTimeStamp>Monday, July 02, 2007 08:00:00
</AlertEngineTimeStamp> -->
<!-- <Frequency>Hourly or Daily</Frequency> -->
<!-- <Day>YYYY-MM-DD</Day> -->
<!-- <Hour>0 to 23</Hour> -->
<!-- </Tail> -->
<!-- </AlertServiceReportMessage>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/AlertServiceReportMessage">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/AlertServiceReportMessage/Head">
------------------------------------------------------------
- <xsl:value-of select="Title"/>
- <xsl:value-of select="SubTitle"/>
------------------------------------------------------------
Alert: <xsl:value-of select="AlertTitle"/>
<xsl:if test="not(ReportTitle='')">
Report: <xsl:value-of select="ReportTitle"/>
</xsl:if>
</xsl:template>
<xsl:template match="/AlertServiceReportMessage/Body">
TopMover: <xsl:value-of select="EventTitle"/>
<xsl:if test="not(DimensionTitle='')">
Dimension: <xsl:value-of select="DimensionTitle"/>
</xsl:if>
<xsl:if test="not(DimValueTitle='')">
Dim Value: <xsl:value-of select="DimValueTitle"/>
</xsl:if>
Last Value: <xsl:value-of select="LastValue"/>
<xsl:choose>
<xsl:when test="not(DimValueID='0')">
View Event <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?devid0=<xsl:value-of
select="TopMoverID"/>?dimid0=<xsl:value-of
select="DimensionID"/>?<xsl:value-of select="DimValueID"/>
</xsl:when>
<xsl:when test="not(DimensionID='0')">
View Event <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?devid0=<xsl:value-of
select="TopMoverID"/>?dimid0=<xsl:value-of select="DimensionID"/>
</xsl:when>
<xsl:otherwise>
View Event <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?devid0=<xsl:value-of
select="TopMoverID"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="/AlertServiceReportMessage/Tail">
Frequency: <xsl:value-of select="Frequency"/>
Alert Threshold: <xsl:value-of select="AlertThreshold"/>
Warn Threshold: <xsl:value-of select="WarningThreshold"/>
Threshold Type: <xsl:value-of select="ThresholdType"/>
Generated At: <xsl:value-of select="AlertTimeStamp"/>
Report Period: <xsl:value-of select="ReportPeriod"/>
<xsl:if test="not(ReportID='')">
View Report <xsl:value-of
select="PortalURL"/>/DeviationReports.aspx?reportid=<xsl:value-of
select="ReportID"/>
</xsl:if>
Notification sent by Tealeaf Alert Service (<xsl:value-of
select="AlertEngineVersion"/>)
Created on <xsl:value-of select="AlertEngineTimeStamp"/>
</xsl:template>
XML Top Mover alert message format: In addition to the configuration items for event alert messages, the following items are populated for Top Movers alerts and Top Mover report alerts.
Frequency
- Type of Top Mover:
Daily
orHourly
AlertThreshold
- Threshold value that must be attained to generate an alert.
WarnThreshold
- Threshold value that must be attained to generate a warning.
ReportID
- Internal identifier for the alert, if alert is a Top Mover report alert
DimensionID
- Internal identifier for the dimension, if specified
DimValueID
- Internal identifier for the dimension value, if specified
ReportTitle
- Name of the report title
Fullname
- Internal identifier for the alert
DimensionTitle
- Name of dimension, if specified
DimValueTitle
- Name of dimension value, if specified
TopMoverID
- Internal identifier for the top mover, if specified
LastCount
- Last recorded count for the dimension, if specified
FullName
- Internal name of the Top Mover
Day
- Date stamp in
YYYY-MM-DD
format Hour
- Hour indicator, from
0
(midnight) to23
(11:00pm). This value is set to-1
for daily top movers.