Subscriber Event Log

When configured, dsTest will write per-subscriber interface application events to a subscriber event log. The user has the choice to capture all events (not recommended for a large number of subscribers) or only events associated with a failed transaction with the "when error" option. The default selection is "none". The name of the event log is formed with the name of the subscriber database: [database name]_events.evl, and is placed in the directory from which dsTest was started.


Configuring/Enabling the Subscriber Event Log


Enabling the subscriber event log is accomplished by configuring the Event Log Mode in the Global Configuration section of the node subscriber database. In the example below, the subscriber log has been enabled for the subscriber database 'pcef'. The log is being configured for 'all' (may affect performance). To enable logging, check the Log Message box and chose 'true' or '1'. The default is 'false'. The event log size can also be changed.


Observing the Subscriber Event Log Entries


A "Search" menu option offers the search option 'Subscriber Event Log'.





The log can be searched during run time or after the test is finished using the GUI or dumped to a text file after the test is finished using eventPipe:


>eventPipe -f [event log file] -o [text file name] 


The event log can also be exported to a text file by using the GUI Export button.



When selecting the File>Search>Subscriber Event Log menu option, a dialog prompts to select a server and a starting evl file. The scope of the search includes the starting file and any subsequent files. If multiple files have been generated during one test, the oldest should be selected to search the full test run. The subscriber event log screen is displayed while the GUI attempts learn the database structure. If it succeeds the Filter Criteria panel is displayed; otherwise an error dialog will be displayed. The choices provide are to stream all event logs, only error logs, or define a custom filter based on one of the header fields. When the criteria configuration is valid the Start Stream button becomes enabled.


To list the events, click on the Start Stream button. A list of events (by subscriber) will be displayed in the Subscriber panel. In the example below, subscriber id 0 has been selected.



Enable one or more event logs by checking the box next to the name. Events for the specified subscriber will appear in the Events Detail panel. Each compound item can be expanded by clicking on the plus sign next to the item.


Event log files will roll when full, similar to ds_log. 


As the event logs are received, the header information is displayed in the Subscribers table, which can be sorted. Each row represents a subscriber and subscribers that have any error event logs are displayed using a bold red font. The table is limited to 1000 subscribers and if that number is reached the GUI will stop the stream and display a message. In this scenario a custom filter should be used to reduce the stream.


Clicking on a row in the Subscribers table causes the Subscriber Event Logs list to be refreshed. This list simply displays all of the logs associated with the selected subscriber. Clicking on an event log or clicking the Select All button causes the events to be displayed in the Event Details tree.


The subscriber tree node displays the same header information shown in the table. Event nodes are shown with a directional arrow indicating whether the event was outbound or inbound, the time of the event (using the dsClient platform's time zone) with microsecond granularity, the application, and the event. Error events are shown in red. Subscriber nodes are ordered by subscriber index and event nodes are shown in chronological order. Events can be removed from the tree by clearing the log's checkbox in the event log list or by clicking the Clear All button. The subscriber node is removed if all events have been cleared.




NOTE: Event logs are only streamed as they are written to the log file. An event log is not closed until it is full (512 bytes) and dsTest retains two event logs in memory for every subscriber. A subscriber's first log will not be written to the file until the third log is created. A subscriber may have to go through several cycles in order to fill one event log and therefore it can take several minutes for the first log to be streamed, depending on the number of subscribers and the action(s) involved in the test.


For 'Per-Subscriber' event logging, the events are not written to disk, but only maintained in memory. To display the event log for a subscriber using dsClient Terminal, use the following example:


dsTest>spr:spr_1 subscriber_database event_logging:start:1 


will display the event log for subscriber 1 for the subscriber database defined on SPR node spr_1.


Export to Message Templates, User Defined Dictionaries, or SmartAVPs


When message content is displayed in the event log, right-clicking on a message or AVP tree node triggers a pop-up menu with three options.  These options are conditionally enabled depending on the type of tree node selected and what type of structures are currently open in dsClient.


Export to SmartAVP - an AVP tree node is selected and at least one screen containing a SmartEvents configuration (in a snippet or workspace) with at least one SmartAVP structure is open.

Export to Message Templates: at least one screen containing a SmartEvents configuration with Message Templates or a Message Templates snippet is open. If an AVP tree node is selected the template must contain an AVP definition group in order to be an import candidate.

Export to User Dictionary: same as message templates but using User Dictionary screen.



Define a Custom Filter


To build a custom filter, select a header field (Error, subscriber_index, imsi, imei, or msisdn), a search type (equal to, not equal to, less than, greater than, between, present, or not present), and potentially one or two values depending on the search type. Present and not present do not accept values. Between requires two values and the comparison is exclusive. Criteria may only be selected/defined when not actively streaming. The stream can be stopped and then re-started from the beginning after modifying the criteria.