Monitoring Database Schema

The monitoring database has three tables that can be used to build reports. This article describes what data is stored, and how to interpret what you see.

structure.png

Entity-relationship diagram (ERD) for the monitoring database

SystemStatistics

The SystemStatistics table logs the available CPU load and memory for the system on which each scheduler service is installed.

Data is polled at occasional intervals. You can specify the time between polls using the StatisticsIntervalMinutes setting in the Monitoring.exe.config file. For instructions, see "Configuring monitoring".

The table contains the following data columns:

id

An integer used to uniquely identify each row. This is the primary key for the table.

hostId

The scheduler which was polled for system data. Every scheduler is polled at the same time. Schedulers are identified by their host address, as specified in the Administration Console.

Example. tcp://localhost:2010

type

One of:

value

One of:

Note. This field should be formatted as a decimal, either in the metadata for this column, or in the report cell formatting.

timestamp

A datetime value indicating when this scheduler was polled. 

Audit

The Audit table records when certain events, which you specify, happen to reports. This table records data for the web application and the schedulers.

Data is logged at the time of each event, but the data is only collected in the core database at occasional intervals. You can specify the time between data collections using the ExtractionIntervalMinutes setting in the Monitoring.exe.config file. For instructions, see "Configuring monitoring".

The table contains the following data columns:

id

An integer used to uniquely identify each row. This is the primary key for the table.

hostId

The application for which this action took place. The web application and schedulers are identified by their host address.

Example. tcp://localhost:2010
Example. http://localhost

transactionType

A string indicating which type of event has triggered this row to be created. One of:

userId

The userId parameter for this event.

companyId

The companyId parameter for this event.

timestamp

A datetime value indicating when this event happened.

auditId

For rows where the transactionType is Execute Report, this field joins up to two rows in the ExecutionDetail table that indicate when this execution started and, if successful, when it ended.

This field also joins rows in the ReportDetail table which give some information about the report in which the logged event happened.

ExecutionDetail

This table records data for report execution events.

Up to two rows for each event are created:

The table contains the following data columns:

auditId

An integer used to join up to two rows in this table with a row in the Audit table.

transactionId

A globally unique identifier (GUID) for this execution. This GUID is used in several places throughout Exago. Notably, it is used as the file name for scheduled reports which have been saved to disk.

transactionType

One of:

timestamp

A datetime value indicating when this execution started or finished, depending on the value of transactionType.

Note. This table uses columns (transactionId and transactionType) as a primary key.

ReportDetail

This table records information about the reports which relate to events in the Audit table.

auditId

An integer used to join a row in this table with a row in the Audit table.

reportId

The file path and name of the report which the event affected.

reportType

The type of report: advanced, express, expressview, chained, dashboard