Blame readme.statistics

Packit 8fd333
//%LICENSE////////////////////////////////////////////////////////////////
Packit 8fd333
//
Packit 8fd333
// Licensed to The Open Group (TOG) under one or more contributor license
Packit 8fd333
// agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
Packit 8fd333
// this work for additional information regarding copyright ownership.
Packit 8fd333
// Each contributor licenses this file to you under the OpenPegasus Open
Packit 8fd333
// Source License; you may not use this file except in compliance with the
Packit 8fd333
// License.
Packit 8fd333
//
Packit 8fd333
// Permission is hereby granted, free of charge, to any person obtaining a
Packit 8fd333
// copy of this software and associated documentation files (the "Software"),
Packit 8fd333
// to deal in the Software without restriction, including without limitation
Packit 8fd333
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
Packit 8fd333
// and/or sell copies of the Software, and to permit persons to whom the
Packit 8fd333
// Software is furnished to do so, subject to the following conditions:
Packit 8fd333
//
Packit 8fd333
// The above copyright notice and this permission notice shall be included
Packit 8fd333
// in all copies or substantial portions of the Software.
Packit 8fd333
//
Packit 8fd333
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
Packit 8fd333
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
Packit 8fd333
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Packit 8fd333
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
Packit 8fd333
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
Packit 8fd333
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
Packit 8fd333
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit 8fd333
//
Packit 8fd333
//////////////////////////////////////////////////////////////////////////
Packit 8fd333
Packit 8fd333
README - Using the PEGASUS CIMSERVER STATISTICS
Packit 8fd333
Packit 8fd333
Author: Karl Schopmeyer <k.schopmeyer@opengroup.org>
Packit 8fd333
Packit 8fd333
Date: 14 March 2006
Packit 8fd333
Packit 8fd333
The OpenPegasus CIMServer provides for gathering statistics on the CIM
Packit 8fd333
operations executed by the server based on the CIM_CIMOMStatisticalData class
Packit 8fd333
defined in the DMTF CIM_Interop model.
Packit 8fd333
Packit 8fd333
Statistics are gathered on all CIM Operations executed by the server when the
Packit 8fd333
statistics are enabled.
Packit 8fd333
Packit 8fd333
When the statistics are enabled, the server gathers times and request and
Packit 8fd333
response counts on each operation executed and maintains these counts and times
Packit 8fd333
from the time the statistics were started.  For each operation executed the
Packit 8fd333
following are gathered.
Packit 8fd333
Packit 8fd333
    * request size
Packit 8fd333
    * response size
Packit 8fd333
    * time spent in the server
Packit 8fd333
    * time spent in the providers
Packit 8fd333
Packit 8fd333
For each operation type defined (ex getclass, etc.) an instance of the
Packit 8fd333
CIM_CIMOMStatisticalData class provides the following properties:
Packit 8fd333
Packit 8fd333
    * OperationType Enum (Value/Valuemap) defining the CIM operation
Packit 8fd333
    type.
Packit 8fd333
Packit 8fd333
    * NumberOfOperations - Number of operations executed for this
Packit 8fd333
    OperationType since the server was started or the statistics were
Packit 8fd333
    turned on whichever occurred later.
Packit 8fd333
Packit 8fd333
    * CimomElapsedTime - Total time spent in the CIMServer for this
Packit 8fd333
    operation in microseconds. This does not include time spent in the
Packit 8fd333
    providers. That is defined by the ProviderResponseTime. This includes
Packit 8fd333
    http processing, authentication, xml parsing and validation, routing,
Packit 8fd333
    etc time that is common to all requests.
Packit 8fd333
Packit 8fd333
    * ProviderElapsedTime - Total time spent in the targeted providers for
Packit 8fd333
    this operation. Note that for class and qualifier operations (ex.
Packit 8fd333
    getclass) this is the time spent in the Pegasus Class repository.
Packit 8fd333
    Further, if repository requests (ex getclass) are required in the
Packit 8fd333
    server infrastructure to process an operation, that time is included as
Packit 8fd333
    part of the server time, not provider time. The goal of providing this
Packit 8fd333
    number is to measure times in the providers that are the support for
Packit 8fd333
    the class(s) that represent the target of this operation.
Packit 8fd333
Packit 8fd333
    * RequestSize - Total size of the requests for this operation type in
Packit 8fd333
    bytes.
Packit 8fd333
Packit 8fd333
    * ResponseSize - Total size of the responses for this operation type in
Packit 8fd333
    bytes.
Packit 8fd333
Packit 8fd333
At any time, the statistics gathered by an OpenPegasus CIMServer can be
Packit 8fd333
requested by a CIM client by enumerating the instances of the
Packit 8fd333
CIM_CIMOMStatisticalData class from a client to the Pegasus server in the
Packit 8fd333
PG/Interop namespace.  Note that there is no reset of statistics. They are
Packit 8fd333
continuously gathered and accumulated and, the counts wrap when they exceed the
Packit 8fd333
size of the property.
Packit 8fd333
Packit 8fd333
The client tool (cimperf) reports on averages for the times and byte sizes from
Packit 8fd333
the totals provided by the CIM_CIMOMStatisticalData instances.
Packit 8fd333
Packit 8fd333
ENABLING AND DISABLING STATISTICS GATHERING
Packit 8fd333
Packit 8fd333
The statistics are normally disabled when the server environment is compiled.
Packit 8fd333
The enabled/disabled status of statistics gathering is controlled through a
Packit 8fd333
property in the CIM_ObjectManager instance (GatherStatisticalData)  maintained
Packit 8fd333
by the server and persisted through the life of the instance repository.
Packit 8fd333
Packit 8fd333
The test client CLI includes a special set of operations (son and soff) that
Packit 8fd333
directly set the GatherStatisticalData property true or false effectively
Packit 8fd333
enabling/disabling statistics gathering.
Packit 8fd333
Packit 8fd333
ex. CLI son      - turns the statistics gathering on. CLI soff
Packit 8fd333
                 - turns the statistics gathering off.
Packit 8fd333
Packit 8fd333
Once statistics gathering is enabled or disabled this state is maintained
Packit 8fd333
through cimserver or system restarts until either changed again or if the
Packit 8fd333
repository is removed or the instance of the CIM_ObjectManager class is reset
Packit 8fd333
or removed.
Packit 8fd333
Packit 8fd333
The cimserver does not maintain gathered statistics information if the erver is
Packit 8fd333
stopped. Each startup of the server restarts all statistics counts from zero.
Packit 8fd333
Packit 8fd333
Disabling the statistics gathering also causes all of the statistics counts to
Packit 8fd333
be reset to zero in the server.
Packit 8fd333
Packit 8fd333
CLIENT OPERATIONS STATISTICS REPORTING
Packit 8fd333
Packit 8fd333
In addition to the statistics reported through the CIM_CIMOMStatisticalData the
Packit 8fd333
OpenPegasus server is capable of reporting operation execution time to the
Packit 8fd333
client as part of each operation executed.  This function also is only active
Packit 8fd333
when the statistics gathering capability has been enabled. The passage of this
Packit 8fd333
information is defined in the DMTF CIMOperations specification (Version 1.2,
Packit 8fd333
3.3.16. WBEMServerResponseTime).  Within the OpenPegasus Client API there is a
Packit 8fd333
specific operation to request this information as part of each CIM operation.
Packit 8fd333
This reports the total time spent in the CIMServer (server plus providers) for
Packit 8fd333
the last operation executed. As an example, this is implemented in CLI.
Packit 8fd333
Packit 8fd333
LIMITATIONS
Packit 8fd333
Packit 8fd333
Currently no statistics are maintained on indications processed.  Provision is
Packit 8fd333
made in the DMTF CIM_CIMOMStatisticalData class for gathering of indication
Packit 8fd333
statistics but the exact form of the information is in question because this
Packit 8fd333
differs from operations so this has not been implemented to date.
Packit 8fd333
Packit 8fd333
The client statistics test tool cimperf only prints out the current statistics
Packit 8fd333
each time it is executed.  There are no client tools in the current pegasus
Packit 8fd333
environment to maintain statistics history, show trends, etc.
Packit 8fd333
Packit 8fd333
If statistics are disabled, the statistics instances will still be output by
Packit 8fd333
the cimserver  but will show zero for all values.
Packit 8fd333
Packit 8fd333
There are no automated tests today for the numbers accumulated by the
Packit 8fd333
statistics gathering components.  The validity of the numbers produced in the
Packit 8fd333
CIM_CIMOMStatisticalData instances has been verified by manual inspection
Packit 8fd333
However, Currently there are no automated test to programatically verify the
Packit 8fd333
statistics are correct.