Blackbird™ Enterprise Instrumentation

Simple, Proven, Real-time Application Interface

Blackbird™ Enterprise Instrumentation is designed to capture application information from the application, display it in the web browser, and communicate it to on or more Owl™ Application Managers. It is designed as a library that in linked with the applications. Blackbird library (BBL) is available in C, C++, C#, Java, and Perl on Solaris, Linux, and Windows platforms. It runs in its own thread, is thread safe, but can also be used in single threaded environments. The key to BBL effectiveness is its simplicity both in the API syntax as well as in zero administration. BBL has the following major features.

Naming — Application components are identified with a set of properties. Some of the properties are: region, business unit, department, system, component, instance, host. This information is used to uniquely identify the components and to have them discovered by the proper management system. The management system can then use these properties in filtering the components for efficient management. The metrics within the applications also have rich “path” names.

Initialization — At execution of an initialization function, the BBL makes available an HTTP and an tcp/ip services.

Auto Discovery — The BBL is discovered by the management system without configuration. Each instance of BBL can become a directory server for the subnet where it is running. BBL continuously discovers components on the subnet making that information available to the management system. Any BBL library can become a directory server, but it can be nailed down to a specific application if needed. As the new metrics are declared with the application, they are discovered and communicated to the management system without configuration. The component name is used to ensure that it is discovered by the correct management system.

Health Monitoring — BBL makes every component a server that can serve HTTP and one or more Owl managers. Based on the availability of service as well as on other techniques, the health of the components is determined.

Performance Monitoring — BBL offers several monitoring objects: counter, gauge, transaction monitor (xmon), integer, and string. The data is captured by the BBL at production speeds in memory and collected from BBL at human speeds. The impact on the application and on the network is, therefore, minimal. The transaction monitor allows bracketing of any piece of code with a “start” and a “stop” tags. The code execution time is measured and average for successful and unsuccessful executed is captured. The xmon can work in both single threaded and multi threaded environment.

Topology Monitoring — The connection monitor (cmon) is an abstract object that declares and tracks associations and connections between components. There are two sides to the connection: near side and far side. The far side of the connection is expressed in terms of naming described above. The management system is responsible for putting together the topology from the declarations made by BBL. A connection can have multiple associated states and properties. The states and properties are communicated to the management system.

Event Monitoring — BBL captures events and communicates them to the management system. The developer has complete control over the event content expressed in an XML format. Associated with events are states that can be communicated to the management system as well. The events are created by the applications, and can be cleared by either the management system or by the application.

Infrastructure Monitoring — BBL allows user to monitor local resources, including processor resource, network, file system, virtual memory, disk space. This information is available to the management systems.

User-defined Application Controls — BBL allows users to define hyperlinks into the user- defined functions in the applications. BBL gives users the ability to either use BBL generated HTML forms or to create their own forms to enter function parameters. The functions can either be used in problem diagnostic, in re-configuring application behavior, or in application recovery.

Logging and Tracing — BBL’s logging API enables users to produce logs that can be accessed through either through the BBL browser interface or through the management system. The logging entries can be classified as fyi, warning, error, and fatal. The tracing is treated as conditional logging where the conditions are controlled from the central system. The BBL logging API can be integrated with accepted corporate logging utilities. Benefit of such integration is centralized access enabled by BBL.

Efficient Communication — BBL communicates only changed information. When serving multiple managers, BBL provides each with an individual snapshot based on the previous communication.

Browser Interface — BBL provides a low impact HTML based interface to each application. It is available at initialization and contains access to all BBL capabilities above. If no monitoring is enabled, BBL provides basic process environment information. If monitoring is enabled, the BBL provides the current snapshot of the performance metrics. The metrics are organized into an explorer-like tree based on the metrics names. The browser interface can be used directly without connecting to the management system.

Security — The browser security is derived from the token passed by the management system.

BlackBird Integration Agent — is an agent that runs on the same machine where the application runs. The agent becomes a data collection server acting on behalf of application components. All capabilities of the BBL are available to the agent. The agent is controlled by a set of commands that can be simply generated by scripts or programs. The agent can be either a unique source of the information for the application or can supplement the information that is already provided by the application to enrich the monitoring picture.