|
The Custom Reporting feature enables you to perform customization of the reports and channels on the appliance. Configuration FilesThe reporting facilities and selection of UI channels shown on each page are configured using xml configuration files which are held in the following directories:
The directories are parsed in the order given (installed before custom), and the files contained in these directories are parsed in alphabetical order, with numbers before letters. This order is important as later definitions for a named report override those loaded earlier. The standard reports are contained in /usr/tideway/data/installed/reports/00reports.xml. The format of the xml file has changed in Tideway Foundation 7.3. Upgrades from previous version of Tideway Foundation convert from the old to new file format. If you add a file in the old format, the system will attempt to automatically convert the file format on start up. You can also use the tw_convert_reports tool to convert reports manually. This is described below. The configuration is read when the UI process starts. Changes to the report configuration files require a UI restart. Errors in the configuration files do not prevent the Application server from starting but may cause various reports and channels to be missing.
The root element of each reports.xml file must be <reports version="2.0">. The <reports> element can have several types of elements:
<report> elementsThe <report> element has been extended in Tideway Foundation 7.3 by merging in functionality from <extrareport> which no longer exists. A <report> element requires a name attribute giving a unique name to the report.
<parameter> elementInteractive parameters are defined using <parameter> elements. They must have a name, representing the name of the parameter, that is unique in the report.
When the query is built from parameters all the parameters are evaluated as specified by <type>. If a parameter has a where clause it is substituted into the where clause with a key of value. All parameters without a key are then joined together using AND and inserted either at the beginning (<where start="True"> specified) or end of the where clause in the report. The complete query is then constructed. If there are any parameters with a key the completed query has those parameters inserted using string substitution with the specified key of the parameter. The <type> tag must have a name attribute which specifies the type of the parameter. It should have one of the following values:
The tags that can be used with <type> depend upon these values.
Bringing all this together, the following element defines a parameter which appears in the UI labelled 'Type' as a dropdown with three specified values and no 'All' entry. The <where> tag means that should the user choose 'Host' then kind(#) = 'Host' will be added to the report query. <parameter name="DQ_Report_Global_type">
<title>Type</title>
<type name="SelectField">
<all>False</all>
<options>
<option value="Host">Host</option>
<option value="SoftwareProductVersion">Software Product Version</option>
<option value="BusinessApplicationInstance">Application Instance</option>
</options>
</type>
<where>kind(#)='%(value)s'</where>
</parameter>
The following report will count the number of instances of software instances on host optionally limiting the software instances to a particular type chosen by the user from a dropdown list. <report name="Software.Report.InstanceSummary">
<title>Software Inventory</title>
<description>Shows summary of distribution of a piece of software</description>
<kind>SoftwareInstance</kind>
<show>
type AS "_|Type|_",
product_version AS "_|Product Version|_"
PROCESS WITH
countUnique(1,0)
</show>
<parameters>
<parameter name="Software_Report_InstanceSummary_type">
<title>Product type</title>
<type name="SelectField">
<options>
<query>
SEARCH SoftwareInstance
ORDER BY type
SHOW type
PROCESS WITH unique()
</query>
</options>
</type>
<where>type = %(value)s</where>
</parameter>
</parameters>
</report>
<chart> elementsThe <chart> element in fundamentally the same as the <report> element with the following changes:
Additional tags are:
For single columns the supported charts are:
For two columns the supported charts are:
The following chart will show a count of different OS classifications. By default a pie chart will be shown and when clicked through a summary report for the appropriate hosts. When displaying bar and column charts the y-axis will be labelled 'Hosts'. <chart name="Infrastructure.Chart.OSClassification" default="pie"> <title>Host OS Classification</title> <description>Show count of Hosts for each OS Classification</description> <kind>Host</kind> <order-by>os_class</order-by> <split>os_class AS "_|OS Class|_"</split> <y-axis-title>_|Hosts|_</y-axis-title> <show>SUMMARY</show> </chart> <chart-channel> elementsThe <chart-channel> element requires a name attribute giving a unique name to the chart channel. An optional default attribute gives the initial chart type.
The following channel shows a pie chart of software product categories. <chart-channel name="Channel.SWCategory" default="pie">
<title>Software Products By Category</title>
<description>Shows a list of the Software by Category</description>
<split>explode(#Element:Maintainer:Pattern:Pattern.categories) AS 'Software Category'</split>
<kind>SoftwareInstance</kind>
<show>
summary,
#Element:Maintainer:Pattern:Pattern.categories AS 'Software Category'
</show>
</chart-channel>
<chart-multi-channel> elementsThe <chart-multi-channel> element requires a name attribute giving a unique name to the chart multi channel. An optional default attribute gives the initial chart type.
The following channel shows a column chart of database versions with a column for each product type. Each column contains a list of found versions. <chart-multi-channel name="Channel.SWDBVersion" default="column_nolegend">
<title>Database versions</title>
<description>Number and version of all the Database instances</description>
<split>type</split>
<split>(product_version or 'Unknown')</split>
<kind>Pattern</kind>
<where>
'Relational Database Management Systems' in categories
TRAVERSE Pattern:Maintainer:Element:SoftwareInstance
</where>
<show>SUMMARY</show>
</chart-multi-channel>
<report-channel> elementsThe <report-channel> element requires a name attribute giving a unique name to the report channel.
The following channel contains a link to a report and chart. <report-channel name="Infrastructure.Channel.NetworkPolicy"> <title>Network Policies</title> <description>Shows a list of Network Infrastructure Reports</description> <report>Infrastructure.Report.NetworkMismatchSummary</report> <chart>Infrastructure.Chart.IPAddressDistribution</chart> </report-channel> <rss-channel> elementsThe <rss-channel> element requires a name attribute giving a unique name to the rss channel.
The following channel shows an RSS feed for VMware. <rss-channel name="Channel.RSS.VMware"> <title>VMWare Feed</title> <description>Shows the latest info from VMware</description> <url>http://vmware.simplefeed.net/rss/?f=2fe7e950-01de-11de-3b40-003048605010</url> </rss-channel> <summary-channel> elementsThe <summary-channel> element requires a name attribute giving a unique name to the summary channel.
The following channel shows the number of BusinessApplicationInstance and SoftwareInstance nodes. <summary-channel name="Applications.Channel.Summary"> <title>Application Summary</title> <description>_|Shows a summary of Applications|_</description> <image>applications</image> <kind-count>BusinessApplicationInstance</kind-count> <kind-count>SoftwareInstance</kind-count> </summary-channel> <time-series-channel> elementsThe <time-series-channel> element requires a name attribute giving a unique name to the time series channel. This is identical to <chart-channel> with two exceptions:
The following channel shows the number of Hosts for each UNIX OS over time. <time-series-channel name="Channel.OSUNIX" time-series="7" default="line"> <title>UNIX Operating Systems</title> <description>Shows a count of Hosts for each UNIX OS</description> <split>os_type as "OS Version"</split> <kind>Host</kind> <where>os_class = "UNIX"</where> <order-by>os_type</order-by> <show>SUMMARY</show> </time-series-channel> <video-channel> elementsThe <video-channel> element requires a name attribute giving a unique name to the video channel.
The following channel shows an Video feed for creating Host profiles. <video-channel name="Channel.Video.HostProfiles"> <title>Feature Tutorial: Host Profiles</title> <description>Video Tutorial that explains the Host Profiles feature</description> <src>/videos/HostProfiles.swf</src> </video-channel> <web-channel> elementsThe <web-channel> element requires a name attribute giving a unique name to the web channel.
The following channel shows a Web feed for the Tideway Foundation Community forum. <web-channel name="Channel.Web.Community"> <title> Tideway Community Update</title> <description>Shows the Tideway Community update.</description> <url>http://www.tideway.com/widgets/foundation-forum/</url> </web-channel> <page> elementsThe <page> element requires a name attribute giving a unique name to the page.
Built-in ChannelsThe following built-in channels are defined:
Built-in Page NamesThe following are the identifiers for pages with configurable content:
Manual ConversionThe converter used to convert reports from the old to the new format on upgrade and system startup is also available as a standalone command line tool, tw_convert_reports. With this you can manually convert reports. The usage of this tool is $TIDEWAY/bin/tw_convert_reports options reports_file Where reports_file is the xml reports file to be converted. The options are described in the Table below.
Example Usage (tw_convert_reports)To convert a file called 30ListenerReports.xml: $ cd /usr/tideway/data/custom/reports $ ls 30ListenerReports.xml $ tw_convert_reports 30ListenerReports.xml Generated converted_30ListenerReports.xml (0 errors, 2 warnings) $ ls 30ListenerReports.xml converted_30ListenerReports.xml $ The file is converted and saved with converted_ prepended. The original file is not changed. |
