|
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.
|