Introduction
The Log Manager is the user interface to the Log Service repository. It provides an intuitive environment to access the TDAQ log messages based on a search criteria.
Layout
The primary requirement for the Log Manager has been user-friendliness. To this end, the design of the user interface has focused on compactness. Indeed, this tool consists of a single window with six distinctive areas, as shown in Figure 1.
Figure 1: Log Manager layout.
The six areas are:
Menu: pull-down menu where different action can be performed, such as selecting which columns to display, configure the Log Manager, etc.
Partition Tree: representation of the message grouping hierarchy based on the Partition.User.RunNumber structure.
Log Message Table: table containing the log messages that meet the search criteria.
Table Search Criteria: interface to define a search criteria based on the log message parameters.
Tree Search Criteria: interface to define a search criteria for the Partition Tree.
Content Detail Panel: panel to display the messages in a detailed manner and to output Errors, Warnings and Information text.
Dropdown menu
File
Figure 2 shows the different options in this menu:
Figure 2: File Menu.
Select all shown: selects and highlights all the messages currently displayed in the Log Message Table.
Save selection: saves all the Log Messages currently selected in the Table. This option can be combined with the previous one to save all logs. Otherwise, users can individually select messages by clicking on the table rows. Holding the Shift key allows to select a group of rows, whilst holding the Ctrl key allows to select disperse rows individually.
Save all: saves ALL the messages that match the current search criteria. This includes entries that may not be displayed int the Table.
Refresh tree: reads the Log Service Database and updates the Partition Tree.
Refresh table: reads the Log Service Database and updates the Log Message Table.
Quit: exits the Log Manager.
Columns
This menu lists the log messages fields mapped as columns in the Log Message Table. Users can choose which columns are shown by enabling or disabling the check-box that accompanies the field name. By default, Host and Parameters are not displayed.
Figure 3: Columns Menu.
Configuration
Figure 4 depicts the options that make up the Configuration menu.
Figure 4: Configuration Menu.
Table span: the time span in days in which the Partition Tree shows run number entries.
Messages displayed: the number of messages that are shown in the Log Message Table. If the number of logs that match the search criteria is larger than the value specified here, user will need to paginate to view others logs.
Case insensitive search: if this option is enabled, the search pattern is case insensitive.
Time zone: users can choose to view the message time-stamp either in Geneva time or his/her own local time. The time spinner values in the search criteria are updated accordingly.
TDAQ release: when selected an options panel is shown with the TDAQ releases for which messages are available. A TDAQ release must always be chosen and forms the highest hierarchical node in the Partition Tree panel.
Verbosity: if selected, warning and useful information regarding the database connection status is printed.
Partition Tree
This tree groups the log messages in a hierarchical structure having the Partition and User names as top and middle nodes respectively, and the Run Number as the leaf objects. Clicking on the dot/circle by the Partition or User name or double clicking the node name expands the node to visualize its children.
When the mouse is right clicked, a pop up menu appears with two options: a Refresh button which updates the Partition Tree and a Get msgs from partiton:user:session button which retrieves the messages for an entire partition, partition and user name or run number and updates the Log Message Table with the new selection.
The Log Manager is multi-threaded in nature. Accessing the Log Service Database is done in independent threads. Thus, users can interrupt the Log Manager when it is retrieving messages by simply selecting a new Run Number. In other words, users need not wait for a DB access to finish. This also applies when updating the Log Message Table.
Log Message Table
This table (Figure 5) displays the log messages that meet the search criteria. The columns that form the table can be added or removed via the Columns menu.
Figure 5: Log Message Table.
If a log is made up of multiple ERS chained messages, a '+' button is shown in the first column. Upon clicking on it, a '-' button appears and the chained messages are expanded and numbered as they have been issued in the TDAQ system. The chained messages can be hidden again by clicking on the '-' button.
By default, messages are sorted by time. The sorting criteria can be modified by clicking on any of the the Table column headers. The first time the header is selected, messages are sorted in ascending order, whilst the second reverses the order. Sorting does not take into account chained messages as they cannot not 'live' independently but are always part of the root message.
Pagination is enabled when the number of messages that match a search criteria is larger than the number of messages displayed in the Table, by default 1,000. The pagination buttons at the bottom of the Table facilitate the navigation through the messages. One can move forward to the next or last page or move backward to the first or previous page. In between the buttons there is a dark background box with the messages currently being displayed (between brackets) as well as the number of messages that meet the search criteria.
Whenever the Log Service DB is accessed and for the duration of this connection, the Database Access progress bar becomes active and starts moving sideways. In addition, the Database Connection text field specifies the nature of the ongoing task, for example “Retrieving logs from the offline database...”. These two elements are useful because searching through the database may take several minutes during which the Log Manager may seem not to do anything.
A mouse right click pops up a menu with two options: Refresh and Focus. The first updates the Table with the current contents of the Log Service DB. The second option refreshes the Table with the current search criteria and finds/focuses whichever row had been selected. This helps put into context unique messages.
Search Criteria
Two Search Criteria panels are available: one associated to the Partition Tree, and the second associated to the Log Message Table.
Partition Tree Search Criteria
This panel is aimed at facilitating the search of a given Partition, User or Run Number. This feature was introduced as the number of hidden nodes in the Partition Tree Panel grew very rapidly.
One can enter either a Partition or a Partition and User combination. Note that a User must always be associated to a Partition. This is enforced by the input format “Partition.User”. If found, the Log Manager expands the node associated to this search criteria, thus revealing its children objects. When the Log Manager is launched the ATLAS partition and crrc user are selected by default as this feature is foreseen to be mainly used in P1.
The Run Number can also be specified either with a Partition, a Partition and User combination or on its own. In either case, the parent node associated to the Run Number is expanded and made visible and the Log Message Table updated with the logs belonging to the Run Number.
Figure 6: Search criteria applied to the Partition Tree.
Log Message Table Search Criteria
This panel (Figure 7) allows users to refine the search criteria used to retrieve messages from the Log Service DB.
Figure 7: Search criteria applied to the Log Message Table.
By default, only messages with Severity Fatal and Error are selected. However, any combination of severities can be chosen by holding the Ctrl key and clicking on any entry in the list box.
Messages can be filtered on a time basis with the “From...To” spinners. By default, the values shown are the date and time when the Log Manager is launched. If these values are not modified, the From or To times are disregarded. Increasing or decreasing the seconds with the up and down arrows automatically updates the minutes, hours, days, etc. One can directly modify any of these date and time fields by setting the cursor on them and typing the desired value. Right clicking on the “From...To” label pops up an “Enable/Disable” menu that allows users to disable the time criteria altogether.
The pattern for text-based fields can either refer to literal expressions or regular expressions. Whereas the former case is the default option, users can select to enable regular expressions by right clicking on the desired field label and choosing Regular Expressions on the pop up menu. The colour of the parameter label changes to a blue
Literal Expressions
The pattern entered in case-sensitive text fields is automatically wrapped with the SQL 'anything-wildcard', thereby accepting messages that contain this pattern anywhere in the parameter. For example, “EFD” yields entries that contain both “EFD data not flowing: ...” and “Application EFD-12:...”. To do a search with multiple patterns on a single field, one must use the wildcard “%”. Thus, “ROD%failed” retrieves “ROD configuration check failed .... retrying” but not “The size of the ROD fragment does not match the information in the ROD trailer:..”.
The criteria in the text-based fields can be negated with the negate wildcard '!'. For example, to search for all messages that do not contain the text “RootController” in the Message field one simply needs to enter “!RootController”.
By default, the criteria parameters are ANDed. Users can also apply OR logic by appending the text with the wildcard '|'. For example, if the Message field is "|Calibration" and the Application field is "TTC", the search query is parsed as 'Message=="Calibration" OR Application=="TTC"'. Note that if the the Message field is "Calibration" and the Application field is "|TTC", the query is parsed as 'Message=="Calibration" AND Application=="TTC"'. This is in accordance with the sequential order in which the logical operator are parsed, which is as follows: Message, Host, Qualifiers, Application, Params, Opt Params, and Message ID.
The negate and OR operator can be combined as in '|!'.
To start a text-based field with the characters '|' and/or '!' append the text with '\', as in '\!', '\|' or '\|!'.
Regular Expressions
Regular expressions provide a concise and flexible means for matching strings of text, such as particular characters, words, or patterns of characters. The following links can be consulted for a turorial on regular expressions. http://www.regular-expressions.info/oracle.html http://www.grymoire.com/Unix/Regular.html. Typical simple usages include:
^pc-tdq-mon: all the host names that start with 'pc-tdq-mon'.
08.cern.ch$: all the host names that end with '08.cern.ch'.
*mon*: all the monitoring hosts.
*mon*|*pix*: all the monitoring or pixel hosts.
Fields with the Regular Expressions enabled can also be ORed as explained in the previous section.
Once the search criteria has been specified, the Filter button must be clicked for the Log Manager to update the contents of the Log Message Table