SYSTEM MONITORING_SYSTEM Part: 1/1
Purpose
“This system facilitates the collection, archival, and reporting of system statistics within the system framework. Additionally, it can be leveraged by applications built on top of the system, or any other extension of the framework.”
Indexing
author: “Joseph Kiniry”;
keywords: “statistics”, “performance”, “monitoring”, “report”;
Cluster Description
EVENTS “Facilities for registering an interest in and recording important events (errors, warnings, or just informational) that occur during the operation of the system/framework or overlying applications.”
PROCESSING “Facilities for processing and recording events.”
CLUSTER EVENTS Part: 1/1
Purpose
“Events are the notion of generic important information that need be reported or recorded. This cluster collects all the different kinds of events that are used in the system.”
Indexing
author: “Joseph Kiniry”;
keywords: “events”, “messages”, “statistics”, “assertions”;
Class Description
ASSERTION “Represents a single type of important predicate that the system should validate. Assertion failures result in everything from messages or statistics being logged to system failure.”
EVENT “Represents a single event to be recorded (or that has been recorded) in the event-log. The event includes a source, description, importance, and time, among other things.”
LEVEL “Represents the importance level of a particular event.”
LOG “Manages the storage and retrieval of events that are reported by various parts of the system framework and/or the application built on top of it.”
MESSAGE “Represents a single textual message that needs to be displayed or recorded.”
STATISTIC “This class represents a statistic that can be monitored in the monitoring system. Each statistic has its own unique ID (node-unique, not necessarily globally unique), a description, units, and other useful information that is represented in this class.”
TYPE “Represents the type of a particular event. The set of core event types each have such a name and a description.”
CLUSTER PROCESSING Part: 1/1
Purpose
“Facilities for recording statistics (performance, counters, etc.) on the various operations being performed within the system/framework or overlying applications.”
Indexing
author: “Joseph Kiniry”;
keywords: “statistics”, “performance”, “monitoring”, “counters”;
Class Description
CHECKER “Checks the state of the system for validity against particular assertions.”
COLLECTOR “Performs the collection of particular statistics during the operation of a program.”
LOGGER “Logs particular messages during the operation of a program.”
TUNER “'Tune' the monitoring system to collect different information.”
CLASS ASSERTION Part: 1/1
Type Of Object
“Represents a single type of important predicate that the system should validate. Assertion failures result in everything from messages or statistics being logged to system failure.”
Indexing
in_cluster: “EVENTS”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries
Commands
Constraints
CLASS EVENT Part: 1/1
Type Of Object
“Represents a single important event of any kind. The event includes a source, description, importance, and time, among other things.”
Indexing
in_cluster: “EVENTS”;
created: “2000-07-06 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “What is the source system of this event?”
“What is the source component of this event?”
“What type of event is this?”
“When was this event generated?”
“What is the description of this event?”
“How important is this event?”
“What is a printable representation of this event?”
“Is this event equal to another one?”
Commands “Create a new event with the following specification.”
Constraints “All fields of event are set only once, at construction time.”
“All fields of event must be specified; none may be left blank.”
“Two events are considered to be identical if all fields of both events have identical values.”
“Events cannot be cloned.”
CLASS LEVEL Part: 1/1
Type Of Object
“Represents the importance level of a particular event.”
Indexing
in_cluster: “EVENTS”;
created: “2000-09-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “What is the level set to?”
“What is the minimum/maximum level?”
“How does this level compare with another?”
Commands “Set the level to a value.”
Constraints “Levels have upper and lower bounds, thus all level assignments must be bounded appropriately.”
CLASS LOG Part: 1/1
Type Of Object
“Manages the storage and retrieval of events that are reported by various parts of the system framework and/or the application built on top of it.”
Indexing
in_cluster: “EVENTS”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “Which events meet a specified criteria?”
“What is the list of all event sources?”
Commands “Create event.”
“Store event.”
“Delete event.”
“Clear event log.”
“Delete events meeting specified criteria.”
“Export event log to a file.”
“Import event log from a file.”
Constraints “No event appears twice in a given event log; each event must be unique.”
“The event-log must be able to import a log-file exported by any event-log.”
“The event-log must be able to export a log-file that can be imported by any event-log.”
CLASS MESSAGE Part: 1/1
Type Of Object
“Represents a single textual message that needs to be displayed or recorded.”
Indexing
in_cluster: “EVENTS”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “What textual message does this message contain?”
Commands “Set textual message.”
Constraints “Textual message must be valid.”
CLASS STATISTIC Part: 1/1
Type Of Object
“This class represents a statistic that can be monitored in the monitoring system. Each statistic has its own unique ID (node-unique, not necessarily globally unique), a description, units, and other useful information that is represented in this class.”
Indexing
in_cluster: “EVENTS”;
created: “2000-07-06 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “What is the unique ID of this statistic?”
“What are its units?”
“What is its default scaling factor?”
“What is its default start value?”
“What is its default increment?”
“What is its default decrement?”
Commands “Create a new statistic by specifying its units, scaling factor, default start value, default increment and default decrement.”
Constraints “Unique ID must be unique across all statistics on a node.”
“All static properties must be specified at, and cannot be changed after, construction time.”
CLASS TYPE Part: 1/1
Type Of Object
“Represents the type of a particular event. The set of core event types each have such a name and a description.”
Indexing
in_cluster: “EVENTS”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “What is this types current value?”
“Is this type equivalent to another one?”
Commands “Set the value of this type.”
Constraints “Types must have some legal value.”
CLASS CHECKER Part: 1/1
Type Of Object
“Checks the state of the system for validity against particular assertions.”
Indexing
in_cluster: “PROCESSING”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “Is specified assertion valid?”
Commands “Make an assertion.”
Constraints
CLASS COLLECTOR Part: 1/1
Type Of Object
“Performs the collection of particular statistics during the operation of a program. Individual statistics can be registered for collection, and may be activated or deactivated. The collector can cache statistic collection in memory, and can also write statistics and logging information to a long-term storage device for subsequent analysis.”
Indexing
in_cluster: “PROCESSING”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “What is the current value for specific statistic?”
Commands “Report on a particular statistic.”
“Report on all statistics.”
“Increment a statistic by a specified value.”
“Increment a statistic by the default value.”
“Decrement a statistic by a specified value.”
“Decrement a statistic by the default value.”
“Reset a statistic to the default start value.”
“Set a statistic to a specific value.”
Constraints “A newly registered statistic is deactivated by default.”
“No two statistics can be registered with the same unique ID.”
CLASS LOGGER Part: 1/1
Type Of Object
“Performs the collection of particular statistics during the operation of a program. Individual statistics can be registered for collection, and may be activated or deactivated. The collector can cache statistic collection in memory, and can also write statistics and logging information to a long-term storage device for subsequent analysis.”
Indexing
in_cluster: “PROCESSING”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “What is the complete current log?”
“What was the last message logged?”
Commands “Clear the log.”
“Save the log.”
“Close the log.”
Constraints
CLASS TUNER Part: 1/1
Type Of Object
“'Tune' the monitoring system to collect specific types and levels of system statistics, messages, and assertions.”
Indexing
in_cluster: “PROCESSING”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Queries “Is a certain level enabled/disabled?”
“Is a certain type enabled/disabled?”
“What types are currently registered?”
Commands “Turn on/off assertions of a particular type.”
“Turn on/off assertions above/below a particular level.”
Constraints “Levels have a specified range.”
“All level assignments must be within the specified range.”
“Event types must be well-defined strings.”
EVENT MONITORING_SYSTEM Part: 1/2
Comment
“Selected internal events triggering system responses leaving the system.”
Indexing
author: “Joseph Kiniry”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Internal (outgoing) Involved object types
“Does the current context warrent evaluating a particular event?” EVENT, (PROCESSING)
“Store a statistic.” STATISTIC, COLLECTOR
“Log a message.” MESSAGE, LOGGER, LOG
“Evaluate an assertion.” ASSERTION, CHECKER
“Startup system.” (PROCESSING)
“Shutdown system.” (PROCESSING)
EVENT MONITORING_SYSTEM Part: 2/2
Comment
“Selected external events triggering representative types of behavior.”
Indexing
author: “Joseph Kiniry”;
created: “2000-07-19 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
External (incoming) Involved object types
“Initialize monitoring system.” (PROCESSING)
“Shut down monitoring system.” (PROCESSING)
“Tune the monitoring systems behavior.” (PROCESSING)
“Query the state of the monitoring system.” (PROCESSING)
“Send a statistic to the monitoring system.” STATISTIC, COLLECTOR
“Make an assertion on the system state.” ASSERTION, CHECKER
“Send a message to the monitoring system.” MESSAGE, LOGGER
“Ask for the current log or last message.” LOGGER, LOG
“Ask for the report on a particular statistic or all statistics in the system.” COLLECTOR
SCENARIOS MONITORING_SYSTEM Part: 1/1
Comment
“A set of representative scenarios that describe the important types of behaviour of the monitoring system.”
Indexing
author: “Joseph Kiniry”;
created: “2000-07-11 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Turn on/off monitoring.
“Turn on/off system monitoring.”
Turn on/off logging.
“Turn on/off system logging.”
Turn on/off debugging.
“Turn on/off system debugging.”
Tune monitoring, logging, and/or debugging.
“Tune the monitoring system so that specific kinds of monitoring, logging, and debugging are enabled disabled.”
Log a monitoring event.
“Report and record particular monitoring event.”
Send a logging message.
“Report and record a logging message.”
Make an assertion.
“Make an assertion or claim that either causes a monitoring event or logging message to be recorded or halts some part of the system because of failure.”
Generate statistics.
“Request that an instance of the monitoring system report on the system component with which it is associated.”
Define an event (statistic/message type/assertion type).
“Define a particular event type and add it to the system as appropriate (at compile/design-time, not runtime).”
CREATION MONITORING_SYSTEM Part: 1/1
Comment
“List of classes creating objects in the system.”
Indexing
author: “Joseph Kiniry”;
created: “2000-06-06 Joseph Kiniry”;
revised: “$Id: monitoring.bon,v 1.5 2001/12/28 00:44:43 kiniry Exp $”;
Class Creates instances of
EVENT LEVEL, MESSAGE, TYPE
LOG EVENT
LOGGER LOG
CLASS DICTIONARY MONITORING_SYSTEM Part: 1/1
Comment
“BONc automatically generated class dictionary.”
Indexing
Class Cluster Description
ASSERTION EVENTS “Represents a single type of important predicate that the system should validate. Assertion failures result in everything from messages or statistics being logged to system failure.”
MESSAGE EVENTS “Represents a single textual message that needs to be displayed or recorded.”
CHECKER PROCESSING “Checks the state of the system for validity against particular assertions.”
LEVEL EVENTS “Represents the importance level of a particular event.”
EVENT EVENTS “Represents a single important event of any kind. The event includes a source, description, importance, and time, among other things.”
LOG EVENTS “Manages the storage and retrieval of events that are reported by various parts of the system framework and/or the application built on top of it.”
STATISTIC EVENTS “This class represents a statistic that can be monitored in the monitoring system. Each statistic has its own unique ID (node-unique, not necessarily globally unique), a description, units, and other useful information that is represented in this class.”
TUNER PROCESSING “'Tune' the monitoring system to collect specific types and levels of system statistics, messages, and assertions.”
TYPE EVENTS “Represents the type of a particular event. The set of core event types each have such a name and a description.”
LOGGER PROCESSING “Performs the collection of particular statistics during the operation of a program. Individual statistics can be registered for collection, and may be activated or deactivated. The collector can cache statistic collection in memory, and can also write statistics and logging information to a long-term storage device for subsequent analysis.”
COLLECTOR PROCESSING “Performs the collection of particular statistics during the operation of a program. Individual statistics can be registered for collection, and may be activated or deactivated. The collector can cache statistic collection in memory, and can also write statistics and logging information to a long-term storage device for subsequent analysis.”