# System Administrator’s Guide

# Managing and Configuring Statistics and Transaction Licenses

The following sections describe the statistics functionality and the operation and maintenance procedures for statistics for Oracle Communications Services Gatekeeper:

- About Statistics Generation and Reports
- Overview of Statistics Reports

- System Report to Console
- System Report to File
- Weekly System Report
- Transaction Usage Log Report

- Managing StatisticService

- Reference: attributes and operations for StatisticsService

- Transaction Types

## About Statistics Generation and Reports

Oracle Communications Services Gatekeeper keeps usage statistics in terms of the number of transactions handled over time. Transactions are grouped into transaction types. Transaction types are used for calculating usage costs and for grouping reports. Transaction types are in turn grouped into different categories. For more information on transaction types, see Oracle Communications Services Gatekeeper Licensing, a separate document in this set.

Statistics are only generated by communication services. Verification mechanisms ensure that all network protocol plug-ins have the statistics aspects applied. This verification takes place when the plug-in is deployed into Oracle Communications Services Gatekeeper.

Statistics are held in an in-memory store and flushed to database at a given time interval. Statistics reports are created based on information in the database.

It is possible to get a snapshot of the current status of the transaction, or request, counters. This information is fetched from the in-memory store.

These report types are available:

- System Report to Console
- System Report to File
- Weekly System Report
- Transaction Usage Log Report

## Overview of Statistics Reports

Statistics are used to generate reports filtered on a number of parameters:

- Time interval

- Start time
- End time

- Individual statistics types or an aggregate of all statistics types.
- Originator of the transaction:

- Service provider account ID
- Application account ID

- Per cluster or per server

Note: | All combinations of the above are not supported.

### System Report to Console

This report is created by Operation: getSystemStatistics. The output is presented in the console.

### System Report to File

This report is created by Operation: saveStatisticsToFile. The format is adapted for programmatic processing of the file.

### Weekly System Report

The weekly report is a pre-defined report. It shows the total number of transactions through Oracle Communications Services Gatekeeper hour by hour during a specified week. It also shows total usage for each day and the average transaction rate (transactions/second) during the busy hour of each day. The busy hour is defined as the 60 minutes during which the largest number of transactions are handled, and does not depend on clock hours. Any 60 minute period (5 minute intervals are used) can be identified as the busy hour.

A weekly system statistics report shows:

- The total number of transactions during the specified week
- The number of transactions during each hour of the days in the week
- The number of transactions during each day of the week
- The transaction rate (transactions/second) during the busy hour of each day

This report is stored on file.

### Transaction Usage Log Report

A transaction usage log (called the license_limit log) can be extracted from Oracle Communications Services Gatekeeper, which records the transactions on which usage costs are based. The log file contains a set of entries, where each entry represents the average transactions per second during the busy hour of a 24-hour period starting at 12:00 AM and ending 11:59 PM the previous day.

The transaction usage log report is an XML file with a header and a footer.

Listing 10-1 Structure of license_limit log file

<transaction_limit_log>

    	<start> </start>

    	<end> </end>

    	<log_entry>

    	</log_entry>

    	<checksum>

    	</checksum>

</transaction_limit_log>

All information is contained within the tags `<transaction_limit_log>`.

A header, encapsulated by the tag `<header>`, contains information on the time period over which the log is generated, with a start and end date in the tags `<start>` and `<end>`, respectively. The format is DD-MM-YYYY.

Directly following the tag `</end>`, one or more log entries are found in the tag `<log_entry>`.

There is one `<log_entry>` created for each day and transaction type.

This tag contains a set of attributes:

- group: the transaction group for which it is valid. Possible values are Platform or Oracle-modules.
- start: the start date and time for the busy hour. Format is YYYY-MM-DD HH:MM, where HH is given in 24 hour format.
- end: the end date and time for the busy hour. Format id YYYY-MM-DD HH:MM, where HH is given in 24 hour format.
- tps: The average transactions per second during the busy hour. This value is compared with contractual levels by the file auditor to determine usage costs.
- limit: No longer used. Filled with dummy value.
- exceeded: No longer used. Always false.

A checksum is contained in the tag `<checksum>`. This tag contains a checksum created based on the content of the file. The checksum is used for validating that the file has not been changed.

Listing 10-2 License limit log file example

    <transaction_limit_log>

    <start>2006-01-01</start>

    <end>2006-01-31</end>

    <log_entry group="BEA-modules" start="2007-01-01 13:45" end="2007-01-01 14:45" tps="27.35" limit="50" exceeded="false"/>

    <checksum>f8b904410896b3f92159524c6c68</checksum>

    </transaction_limit_log>

For more information about licensing, see section Transaction Based Licensing in Oracle Communications Services Gatekeeper Licensing.

### Counter Snapshots

Counter snapshots are a real-time snapshot of the statistics counters, to see the counter snapshot for the local server, use Attribute: CounterSnapshot (r)

The snapshot is organized into different categories.

Counter snapshot category | Description
--- | ---
Per server | Sum of the statistics counters for all requests regardless of the originator of the request.
Per server and service provider | Sum of the statistics counters for all requests originating from a given service provider, regardless of application.
Per server and service provider and application | Sum of the statistics counters for all requests originating from a given service provider and application.

The output is in the form of key value pairs, described below.

Key | Value
--- | ---
Source: | Server name.
applicationIdentifier: | Application ID. Empty if counter snapshot category is per server or per server and service provider.
serviceProviderIdentifier: | Service provider ID. Empty if counter snapshot category is per server or per server and service provider.
type: | Statistics type.
num of transactions: | The snapshot of the counter.

## Managing StatisticService

### Configure the StatisticService

To configure... | Use
--- | ---
Statistics persistence interval | Attribute: StoreInterval

### Configure Statistics Types and Transaction Types

Statistics types | Use
--- | ---
Add a new | Operation: addStatisticType
Remove an existing | Operation: removeStatisticType
List existing | Operation: listStatisticTypes Operation: listStatisticTypeDescriptors

### View In-Flight Statistics counters

To view a snapshot of... | Use
--- | ---
a subset of the statistics counters | Attribute: CounterSnapshot (r)

### Generate Statistics Reports

To generate a... | Use
--- | ---
transaction usage log report | Operation: createLicenseLimitLog
weekly report | Operation: createWeeklyReport
statistics summary over a time interval | Operation: getStatistics
statistics summary over the last minutes | Operation: getSystemStatistics
statistics report to file | Operation: saveStatisticsToFile Operation: saveAccountStatisticsToFile

### Add Usage Thresholds

To add | Use
--- | ---
a limit alarm threshold for Oracle module based TUPS | Attribute: ModuleBHTUPSThreshold
a limit alarm threshold for platform based TUPS | Attribute: PlatformBHTUPSThreshold

### Reference: attributes and operations for StatisticsService

Managed object: Container ServicesStatisticsService

MBean: com.bea.wlcp.wlng.statistics.management.StatisticsServiceMBean

Below is a list of attributes and operations for configuration and maintenance:

- Attribute: CounterSnapshot (r)
- Attribute: StoreInterval
- Attribute: ModuleBHTUPSThreshold
- Attribute: PlatformBHTUPSThreshold
- Operation: addStatisticType
- Operation: createLicenseLimitLog
- Operation: createWeeklyReport
- Operation: getStatistics
- Operation: getSystemStatistics
- Operation: listStatisticTypeDescriptors
- Operation: listStatisticTypes
- Operation: removeStatisticType
- Operation: saveAccountStatisticsToFile
- Operation: saveStatisticsToFile

#### Attribute: CounterSnapshot (r)

Read only.

Scope: Server

Displays a snapshot with information about all statistics-related counters for the chosen Oracle Communications Services Gatekeeper server.

The information is useful for analyzing runtime traffic and, by invoking it periodically, can be used to get an approximate value of the traffic throughput. See Counter Snapshots.

Note: | The counters are reset periodically.

#### Attribute: StoreInterval

Unit: seconds.

Scope: Cluster

Specifies how often statistics data is persisted to the database.

#### Attribute: ModuleBHTUPSThreshold

Unit: int

Scope: Cluster

Specifies the TUPS limit alarm threshold for Oracle modules. The value of 0 means no alarms.

#### Attribute: PlatformBHTUPSThreshold

Unit: int

Scope: Cluster

Specifies the TUPS limit alarm threshold for platform modules The value of 0 means no alarms.

#### Operation: addStatisticType

Scope: Cluster

Adds a statistic type. Used to add a statistics type for custom communication services.

Signature:

    addStatisticType(Id: int, Name: String)

Table 10-1 addStatisticType
addRoute
Parameter | Description
--- | ---
id | Statistic type ID.
Name | Statistic type name. Descriptive name for the statistic type.

#### Operation: createLicenseLimitLog

Scope: Cluster

Creates a transaction usage supervision log that contains information about the busy hour transaction rate for each transaction group and day during a given time period.

Signature:

    createLicenseLimitLog(filename: String, startDate: String, endDate: String)

Table 10-2 createLicenseLimitLog
createLicenseLimitLog
Parameter | Description
--- | ---
`` filename`` | The filename for the report. The file is created on the local file system of the selected server. Must include an absolute path.
Note: | The file must not already exist. If it already exists, the operation will fail.
startDate`` | Specifies the start date for the report. Format is YYYY-MM-DD.
endDate | Specifies the end date for the report. Format is YYYY-MM-DD.

#### Operation: createWeeklyReport

Scope: Cluster

Creates a weekly report. See Weekly System Report for a description of the report.

Signature:

    createWeeklyReport(SpAccountId: String, StartDate: String, FileName: String, Decimals: int)

Table 10-3 createWeeklyReport
createWeeklyReport
Parameter | Description
--- | ---
SpAccountId | Service provider ID to filter on.
Note: | Leave empty to include all service provider account in the report.
StartDate | Specifies the start date for the report. Format is YYYY-MM-DD.
FileName | The filename for the report. Must include an absolute path. The file is created on the local file system of the selected server.
Note: | The file must not already exist. If it already exists, the operation will fail.
Decimals | Number of decimals in the entry for transactions/second in the report.

#### Operation: getStatistics

Scope: Cluster or Server

Displays a detailed statistics report for a specific service provider and application. Wildcards and filters apply.

Signature:

    getStatistics(ServerName: String, StatisticType: String, fromDate: String, toDate: String)

Table 10-4 getStatistics
getStatistics
Parameter | Description
--- | ---
ServerName | Specifies the name of the server to display statistics from. Leave empty to display statistics generated in all servers.
StatisticType | Specifies the statistics type ID for the statistics type to display. See Operation: listStatisticTypes.
Note: | Use -1 to display all statistics types.
FromDate | Specifies the start date and time for the interval to display. Format is YYYY-MM-DD hh:mm.
Note: | Leave empty to display all statistics up to the date and time specified in toDate.
ToDate | Specifies the end date and time for the interval to display. Format is YYYY-MM-DD hh:mm.
Note: | Leave empty to display all statistics generated from the date and time specified in fromDate up to current date and time.
spAccountId | Service provider account ID to filter on. Leave empty to wildcard.
appAccountId | Application account ID to filter on. Leave empty to wildcard.

#### Operation: getSystemStatistics

Scope: Cluster or Server

Displays a summary of system statistics for the last minute (s). See Overview of Statistics Reports for information on output format.

Signature:

    getSystemStatistics(minutes: int)

Table 10-5 getSystemStatistics
getSystemStatistics
Parameter | Description
--- | ---
minutes | The number of minutes relative to the current time.

#### Operation: listStatisticTypeDescriptors

Scope: Cluster

Displays a list of all available statistics type descriptors. The descriptors contain information on transactionTypeName and transactionTypeID.

Signature:

    listStatisticTypeDescriptors()

Table 10-6 listStatisticTypeDescriptors
listStatisticTypeDescriptors
Parameter | Description
--- | ---
`-` | -

#### Operation: listStatisticTypes

Scope: Cluster

Specifies the statistics types included in the statistics reports.

Signature:

    listStatisticTypes()

Table 10-7 listStatisticTypes
listStatisticTypes
Parameter | Description
--- | ---
`-` | -

#### Operation: removeStatisticType

Scope: Cluster

Removes a statistics type.

Signature:

    removeStatisticType(statisticsType: int)

Table 10-8 listStatistics
getStatistics
Parameter | Description
--- | ---
`statisticsType` | ID for the statistics type.

#### Operation: saveAccountStatisticsToFile

Scope: Cluster/Server

Saves a statistics report to file. Filters can be applied on service provider ID and application ID. The report is grouped by account.

Signature:

    saveAccountStatisticsToFile(StatisticType: String, fromDate: String, toDate: String, serviceProviderIdentifier String, applicationIdentifier: String, filename: String)

Table 10-9 saveAccountStatisticsToFile
saveStatisticsToFile
Parameter | Description
--- | ---
StatisticsType | ID for the statistics type.
Note: | Use -1 to display all statistics types.
fromDate | Specifies the start date and time for the time interval. Format is YYYY-MM-DD hh:mm.
Note: | Leave empty for all statistics up to the date and time specified in `toDate`.
toDate | Specifies the end date and time for the time interval. Format is YYYY-MM-DD hh:mm.
Note: | Leave empty for all statistics generated from the date and time specified in `fromDate` up to current date and time.
serviceProviderIdentifier | ID of the service provider to filter on. Leave empty for no filtering.
applicationIdentifier | ID of the application to filter on. Leave empty for no filtering.
FileName | Specifies the filename for the report. Must include an absolute path. The file is created on the local file system of the selected server.
Note: | The file must not already exist. If it does already exist, the method will fail.

#### Operation: saveStatisticsToFile

Scope: Cluster/Server

Saves a statistics report to file.

Signature:

    saveStatisticsToFile(serverName: String, StatisticType: String, fromDate: String, toDate: String, filename: String)

Table 10-10 saveStatisticsToFile
saveStatisticsToFile
Parameter | Description
--- | ---
serverName | Specifies the name of the server. Leave empty for statistics generated in all servers.
StatisticsType | ID for the statistics type.
Note: | Use -1 to display all statistics types.
fromDate | Specifies the start date and time for the time interval. Format is YYYY-MM-DD hh:mm.
Note: | Leave empty for all statistics up to the date and time specified in `toDate`.
toDate | Specifies the end date and time for the time interval. Format is YYYY-MM-DD hh:mm.
Note: | Leave empty for all statistics generated from the date and time specified in `fromDate` up to current date and time.
FileName | Specifies the filename for the report. Must include an absolute path. The file is created on the local file system of the selected server.
Note: | The file must not already exist. If it does already exist, the method will fail.

## Transaction Types

A set of transaction types are defined for the communication services that come as a part of Oracle Communications Services Gatekeeper. The transaction type TRANSACTION_TYPE_EXTENSION is used for new communication services, developed as extensions to Oracle Communications Services Gatekeeper.

Which events generate which statistics for a certain transaction type are described in Oracle Communications Services Gatekeeper C o mmunication Service Reference, in the sub-section Statistics for the communication service in question.

The information includes correlation maps between methods being invoked from either an application or the telecom network and the corresponding transaction type, see the sub-section Statistics in Oracle Communications Services Gatekeeper Communication Service Reference.