Monitoring
MyTimetable can be monitored, for example by using monitoring tools such as Nagios. A Health API is available at /health
, and a status URL is available at /status
. Both will be discussed in more detail below.
/health
Using the Health API, it is possible to retrieve a JSON representation of the MyTimetable status. The following URL's are available at the root of the MyTimetable instance using a HTTP GET request:
/health
: Full information, containing status of all components (consisting of a description, details and a status) and all details (consisting of a description, status, type and value)./health/<component id>
: Information specific to a component (subset of the full health response)/health/<component id>/status
: Status of a component ("OK", "WARNING" or "ERROR")./health/<component id>/<detail id>/status
: Status of a detail ("OK", "WARNING" or "ERROR")./health/<component id>/<detail id>/value
: Value of a detail (format depending on the type of the detail).
For the /status
and /value
calls, it is possible to include ?single=true
in the query string to unwrap the containing object.
Warning and error statuses can be defined using query parameters. The available parameters are in the format <component id>/<details id>/<threshold name>=<value>.
As an example, a request to the URL:
/health/ec_consumer/ews_FAILED_PERMANENTLY/status?ec_consumer/ews_FAILED_PERMANENTLY/warning_max=5
Will lead to a warning for the detail is the number of ews_FAILED_PERMANENTLY syncs is more than 5.
Possible threshold names are:
warning_min
warning_max
error_min
error_max
For timestamp
values, a negative value means 'seconds before the current time'.
/status
Please note the /status
URL is an older endpoint and we strongly recommend building new integrations on the /health
URL.
The status controller returns a text representation of the MyTimetable status, and is available at the URL https://mytimetable_instance/status
. The output looks something like:
MyTimetable WARNING > DS_2015A: DataSource 'DS_2015A' (WARNING) --------------------- --------------------------------------------------------- ------------------------------ ------- id description value status --------------------- --------------------------------------------------------- ------------------------------ ------- alive Aliveness of the DataSource OK OK last_update Timestamp of the last update of the DataSource Sat, 7 Nov 2015 14:43:15 +0100 WARNING last_update_since_sec Number of seconds since the last update of the DataSource 5949789 WARNING > ec_consumer: External Calendaring Consumer (OK) ---------------------------- ------------------------------------------------------------------------------ ------ ------ id description value status ---------------------------- ------------------------------------------------------------------------------ ------ ------ alive Aliveness of the application OK OK ews_FAILED_PERMANENTLY Number of synchronizations of type 'ews' with status 'FAILED_PERMANENTLY' 0 OK ews_FAILED_PERMANENTLY_perc Percentage of synchronizations of type 'ews' with status 'FAILED_PERMANENTLY' 0,00 OK ews_FAILED_TEMPORARILY Number of synchronizations of type 'ews' with status 'FAILED_TEMPORARILY' 0 OK ews_FAILED_TEMPORARILY_perc Percentage of synchronizations of type 'ews' with status 'FAILED_TEMPORARILY' 0,00 OK ews_OK Number of synchronizations of type 'ews' with status 'OK' 274 OK ews_OK_perc Percentage of synchronizations of type 'ews' with status 'OK' 100,00 OK > ec_producer: External Calendaring Producer (OK) ----- ---------------------------- ----- ------ id description value status ----- ---------------------------- ----- ------ alive Aliveness of the application OK OK
There are four possible return states:
- 'MyTimetable OK' if all data sources have been updated in the last 36 hours and all components work as expected.
- 'MyTimetable WARNING' followed by last update times for all data sources, if one or more data sources have not been updated within the last 36 hours. (In Scientia Syllabus Plus Enterprise Reporting Database 3.2.0, the last update time is not present. MyTimetable will always return WARNING in older MyTimetable versions, and always return OK in MyTimetable 2.4+)
- 'MyTimetable ERROR' + exception message, if MyTimetable can not connect to one or more data sources, or if something else went wrong. This will also set the HTTP status to '503 Service Unavailable'.
- HTTP '404 Not Found status', if the application did not load correctly.
Please note that the exact text format will be different and less extensive for pre-3.0 MyTimetable instances.