summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3729.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3729.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3729.txt')
-rw-r--r--doc/rfc/rfc3729.txt3419
1 files changed, 3419 insertions, 0 deletions
diff --git a/doc/rfc/rfc3729.txt b/doc/rfc/rfc3729.txt
new file mode 100644
index 0000000..7999b3f
--- /dev/null
+++ b/doc/rfc/rfc3729.txt
@@ -0,0 +1,3419 @@
+
+
+
+
+
+
+Network Working Group S. Waldbusser
+Request for Comments: 3729 March 2004
+Category: Standards Track
+
+
+ Application Performance Measurement MIB
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2004). All Rights Reserved.
+
+Abstract
+
+ This memo defines a portion of the Management Information Base (MIB)
+ for use with network management protocols in TCP/IP-based internets.
+ In particular, it defines objects for measuring the application
+ performance as experienced by end-users.
+
+Table of Contents
+
+ 1. The Internet-Standard Management Framework . . . . . . . . . . 2
+ 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
+ 2.1. Report Aggregation . . . . . . . . . . . . . . . . . . . 4
+ 2.2. AppLocalIndex Linkages . . . . . . . . . . . . . . . . . 8
+ 2.3. Measurement Methodology. . . . . . . . . . . . . . . . . 10
+ 2.4. Instrumentation Architectures. . . . . . . . . . . . . . 10
+ 2.4.1. Application Directory Caching. . . . . . . . . . 10
+ 2.4.2. Push Model . . . . . . . . . . . . . . . . . . . 11
+ 2.5. Structure of this MIB Module . . . . . . . . . . . . . . 12
+ 2.5.1. The APM Application Directory Group. . . . . . . 13
+ 2.5.2. The APM User Defined Applications Group. . . . . 13
+ 2.5.3. The APM Report Group . . . . . . . . . . . . . . 13
+ 2.5.4. The APM Transaction Group. . . . . . . . . . . . 13
+ 2.5.5. The APM Exception Group. . . . . . . . . . . . . 14
+ 2.5.6. The APM Notification Group . . . . . . . . . . . 14
+ 3. Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . 14
+ 4. Security Considerations. . . . . . . . . . . . . . . . . . . . 58
+ 5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 60
+ 5.1. Normative References . . . . . . . . . . . . . . . . . . 60
+ 5.2. Informative References . . . . . . . . . . . . . . . . . 60
+
+
+
+Waldbusser Standards Track [Page 1]
+
+RFC 3729 APM MIB March 2004
+
+
+ 6. Author's Address . . . . . . . . . . . . . . . . . . . . . . . 60
+ 7. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 61
+
+1. The Internet-Standard Management Framework
+
+ For a detailed overview of the documents that describe the current
+ Internet-Standard Management Framework, please refer to section 7 of
+ RFC 3410 [8].
+
+ Managed objects are accessed via a virtual information store, termed
+ the Management Information Base or MIB. MIB objects are generally
+ accessed through the Simple Network Management Protocol (SNMP).
+ Objects in the MIB are defined using the mechanisms defined in the
+ Structure of Management Information (SMI). This memo specifies a MIB
+ module that is compliant to the SMIv2, which is described in STD 58,
+ RFC 2578 [1], STD 58, RFC 2579 [2] and STD 58, RFC 2580 [3].
+
+2. Overview
+
+ This document continues the architecture created in the RMON MIB [7]
+ by providing analysis of application performance as experienced by
+ end-users.
+
+ Application performance measurement measures the quality of service
+ delivered to end-users by applications. With this perspective, a
+ true end-to-end view of the IT infrastructure results, combining the
+ performance of the application, desktop, network, and server, as well
+ as any positive or negative interactions between these components.
+
+ Despite all the technically sophisticated ways in which networking
+ and system resources can be measured, human end-users perceive only
+ two things about an application: availability and responsiveness.
+
+ Availability - The percentage of the time that the application is
+ ready to give a user service.
+
+ Responsiveness - The speed at which the application delivers the
+ requested service.
+
+ A transaction is an action initiated by a user that starts and
+ completes a distributed processing function. A transaction begins
+ when a user initiates a request for service (i.e., pushing a submit
+ button) and ends when the work is completed (i.e., information is
+ provided or a confirmation is delivered). A transaction is the
+ fundamental item measured by the APM MIB.
+
+
+
+
+
+
+Waldbusser Standards Track [Page 2]
+
+RFC 3729 APM MIB March 2004
+
+
+ A failed transaction is a transaction that fails to provide the
+ service requested by the end user, regardless of whether it is due to
+ a processing failure or transport failure.
+
+ An application protocol (e.g., POP3) may implement different commands
+ or application "verbs" (e.g., POP3 Login and POP3 Retrieval). It
+ will often be interesting to monitor these verbs separately because:
+
+ 1) The verbs may have widely differing performance characteristics
+ (in fact some may be response time oriented while others are
+ throughput oriented)
+ 2) The verbs have varying business significance
+ 3) It provides more granularity of exactly what might be performing
+ poorly
+
+ This MIB Module allows the measurement of a parent application, its
+ component verbs, or both. If monitoring both, one can watch the
+ top-level application and then drill down to the verbs when trouble
+ is spotted to learn which subcomponents are in trouble. Each
+ application verb is registered separately in the Protocol Directory
+ [5] [6] as a child of its parent application.
+
+ Application protocols implement one of three different types of
+ transactions: transaction-oriented, throughput-oriented, or
+ streaming-oriented. While the availability metric is the same for
+ all three types, the responsiveness metric varies:
+
+ Transaction-Oriented: These transactions have a fairly constant
+ workload to perform for all transactions. In particular, to the
+ degree that the workload may vary, it doesn't vary based on the
+ amount of data to be transferred but based on the parameters of
+ the transaction. The responsiveness metric for transaction-
+ oriented applications is application response time, the elapsed
+ time between the user's request for service (e.g., pushing the
+ submit button) and the completion of the request (e.g., displaying
+ the results) and is measured in milliseconds. This is commonly
+ referred to as end-user response time.
+
+ Throughput-Oriented: These transactions have widely varying
+ workloads based on the amount of data requested. The
+ responsiveness metric for throughput-oriented applications is
+ kilobits per second.
+
+ Streaming-Oriented: These transactions deliver data at a constant
+ metered rate of speed regardless of excess capacity in the
+ networking and computing infrastructure. However, when the
+ infrastructures cannot deliver data at this speed, interruption of
+ service or degradation of service can result. The responsiveness
+
+
+
+Waldbusser Standards Track [Page 3]
+
+RFC 3729 APM MIB March 2004
+
+
+ metric for streaming-oriented applications is the signal quality
+ ratio of time that the service is degraded or interrupted to the
+ total service time. This metric is measured in parts per million.
+
+2.1. Report Aggregation
+
+ This MIB Module provides functions to aggregate measurements into
+ higher level summaries.
+
+ Every transaction is identified by its application, server, and
+ client and has an availability measure as well as a responsiveness
+ measure. The appropriate responsiveness measure is context-sensitive
+ depending on whether the application is transaction-oriented,
+ throughput-oriented, or streaming- oriented. For example, in a 5
+ minute period several transactions might be recorded:
+
+ Application Client Server Successful Responsiveness
+ HTTP Jim Sales 1 6 sec.
+ SAP/R3 Jane Finance 1 17 sec.
+ HTTP Joe HR 0 -
+ FTP Jim FTP 1 212 Kbps
+ HTTP Joe HR 1 25 sec.
+ RealVideo Joe Videoconf 1 100.0%
+ HTTP Jane HR 1 5 sec.
+
+ These transactions can be aggregated in several ways, providing
+ statistical summaries - for example summarizing all HTTP
+ transactions, or all HTTP transactions to the HR Server. Note that
+ data from different applications may not be summarized because:
+
+ 1. The performance characteristics of different applications differ
+ widely enough to render statistical analysis meaningless.
+
+ 2. The responsiveness metrics of different applications may be
+ different, making a statistical analysis impossible (in other
+ words, one application may be transaction-oriented, while another
+ is throughput-oriented).
+
+ Aggregating transactions collected over a period requires an
+ aggregation algorithm. In this MIB Module, transaction aggregation
+ always results in the following statistics:
+
+ TransactionCount
+ The total number of transactions during this period
+
+
+
+
+
+
+
+Waldbusser Standards Track [Page 4]
+
+RFC 3729 APM MIB March 2004
+
+
+ SuccessfulTransactions
+ The total number of transactions that were successful. The
+ management station can derive the percent success by dividing
+ SuccessfulTransactions by the TransactionCount.
+
+ ResponsivenessMean
+ The average of the responsiveness metric for all aggregated
+ transactions that completed successfully.
+
+ ResponsivenessMin
+ The minimum responsiveness metric for all aggregated transactions
+ that completed successfully.
+
+ ResponsivenessMax
+ The maximum responsiveness metric for all aggregated transactions
+ that completed successfully.
+
+ ResponsivenessBx
+ The count of successful transactions whose responsiveness metric
+ fell into the range specified for Bx. There are 7 buckets
+ specified. Because the performance of different applications
+ varies widely, the bucket ranges are specified separately for each
+ application (in the apmAppDirTable) so that they may be tuned to
+ typical performance of each application.
+
+ For example, when aggregating the previous set of transactions by
+ application we get (for simplicity the example only shows
+ TransactionCount, SuccessfulTransactions, and ResponsivenessMean):
+
+ Application Count Successful ResponsivenessMean
+ HTTP 4 3 12 sec.
+ SAP/R3 1 1 17 sec.
+ FTP 1 1 212 Kbps.
+ RealVideo 1 1 100.0%
+
+ There are four different types of aggregation.
+
+ The flows(1) aggregation is the simplest. All transactions that
+ share common application/server/client 3-tuples are aggregated
+ together, resulting in a set of metrics for all such unique 3-
+ tuples.
+
+ The clients(2) aggregation results in somewhat more aggregation
+ (i.e., fewer resulting records). All transactions that share
+ common application/client tuples are aggregated together,
+ resulting in a set of metrics for all such unique tuples.
+
+
+
+
+
+Waldbusser Standards Track [Page 5]
+
+RFC 3729 APM MIB March 2004
+
+
+ The servers(3) aggregation usually results in still more
+ aggregation (i.e., fewer resulting records). All transactions
+ that share common application/server tuples are aggregated
+ together, resulting in a set of metrics for all such unique
+ tuples.
+
+ The applications(4) aggregation results in the most aggregation
+ (i.e., the fewest resulting records). All transactions that share
+ a common application are aggregated together, resulting in a set
+ of metrics for all such unique applications.
+
+ For example, if in a 5 minute period the following transactions
+ occurred:
+
+ Actual Transactions:
+ # App Client Server Successful Responsiveness
+ 1 HTTP Jim CallCtr N -
+ 2 HTTP Jim HR Y 12 sec.
+ 3 HTTP Jim Sales Y 7 sec.
+ 4 HTTP Jim CallCtr Y 5 sec.
+ 5 Email Jim Pop3 Y 12 sec.
+ 6 HTTP Jane CallCtr Y 3 sec.
+ 7 SAP/R3 Jane Finance Y 19 sec.
+ 8 Email Jane Pop3 Y 16 sec.
+ 9 HTTP Joe HR Y 18 sec.
+
+ The flows(1) aggregation results in the following table. Note that
+ the first record (HTTP/Jim/CallCtr) is the aggregation of
+ transactions #1 and #4:
+
+Flow Aggregation:
+App Client Server Count Succe- Rsp Rsp Rsp RspB1 RspB2
+ ssful Mean Min Max
+HTTP Jim CallCtr 2 1 5 5 5 1 0
+HTTP Jim HR 1 1 12 12 12 0 1
+HTTP Jim Sales 1 1 7 7 7 1 0
+Email Jim Pop3 1 1 12 12 12 0 1
+HTTP Jane CallCtr 1 1 3 3 3 1 0
+SAP/R3 Jane Finance 1 1 19 19 19 0 1
+Email Jane Pop3 1 1 16 16 16 0 1
+HTTP Joe HR 1 1 18 18 18 0 1
+
+ (Note: Columns above such as RspMean and RspB1 are abbreviations for
+ objects in the apmReportTable)
+
+ The clients(2) aggregation results in the following table. Note that
+ the first record (HTTP/Jim) is the aggregate of transactions #1, #2,
+ #3 and #4:
+
+
+
+Waldbusser Standards Track [Page 6]
+
+RFC 3729 APM MIB March 2004
+
+
+ Client Aggregation:
+ App Client Count Succe- Rsp Rsp Rsp RspB1 RspB2 ...
+ ssful Mean Min Max
+ HTTP Jim 4 3 8 5 12 2 1
+ Email Jim 1 1 12 12 12 0 1
+ HTTP Jane 1 1 3 3 3 1 0
+ SAP/R3 Jane 1 1 19 19 19 0 1
+ Email Jane 1 1 16 16 16 0 1
+ HTTP Joe 1 1 18 18 18 0 1
+
+ The servers(3) aggregation results in the following table. Note that
+ the first record (HTTP/CallCtr) is the aggregation of transactions
+ #1, #4 and #6:
+
+ Server Aggregation:
+ App Server Count Succe- Rsp Rsp Rsp RspB1 RspB2 ...
+ ssful Mean Min Max
+ HTTP CallCtr 3 2 4 3 5 2 0
+ HTTP HR 2 2 15 12 18 0 2
+ HTTP Sales 1 1 7 7 7 1 0
+ Email Pop3 2 2 14 12 16 0 2
+ SAP/R3 Finance 1 1 19 19 19 0 1
+
+ The applications(4) aggregation results in the following table. Note
+ that the first record (HTTP) is the aggregate of transactions #1, #2,
+ #3, #5, #6 and #9:
+
+ Application Aggregation:
+ App Count Succe- Rsp Rsp Rsp RspB1 RspB2 ...
+ ssful Mean Min Max
+ HTTP 6 5 9 3 18 3 2
+ Email 2 2 14 12 16 0 2
+ SAP/R3 1 1 19 19 19 0 1
+
+ The apmReportControlTable provides for a historical set of the last
+ 'X' reports, combining the historical records found in history tables
+ with the periodic snapshots found in TopN tables. Conceptually the
+ components are:
+
+ apmReportControlTable
+ Specifies data collection and summarization parameters, including
+ the number of reports to keep and the size of each report.
+
+ apmReport
+ Each APM Report contains an aggregated list of records that
+ represent data collected during a specific time period.
+
+
+
+
+
+Waldbusser Standards Track [Page 7]
+
+RFC 3729 APM MIB March 2004
+
+
+ An apmReportControlEntry causes a family of APM Reports to be
+ created, where each report summarizes different, successive,
+ contiguous periods of time.
+
+ While the conceptual model of APM Reports shows them as distinct
+ entities, they are all entries in a single apmReportTable, where
+ entries in report 'A' are separated from entries in report 'B' by
+ different values of the apmReportIndex.
+
+ +-----------------------+
+ | |
+ | apmReportControlTable |
+ | | +-----------+
+ +-----------------------+ | |
+ +-----------+ |
+ | | |
+ +-----------+ |---+
+ | | |
+ +----------+ |---+
+ | | | apmReport
+ |apmReport |----+ +-----------------------+
+ | | |Thu Mar 30 12-1PM |
+ +----------+ | |
+ |CLNT SERV PROT stats |
+ | |
+ |Joe News HTTP data |
+ |Jan POP POP3 data |
+ |Jan POP SMTP data |
+ |Bob HR PSOFT data |
+ |... |
+ |... |
+ +-----------------------+
+
+2.2. AppLocalIndex Linkages
+
+ The following set of example tables illustrates a few points:
+
+ 1. How protocolDirEntries, apmHttpFilterEntries and
+ apmUserDefinedAppEntries(not shown) all result in entries in the
+ apmAppDirTable.
+
+ 2. How a single appLocalIndex may be represented multiple times in
+ the apmAppDirTable and apmReportTable if the agent measures
+ multiple responsiveness types for that application.
+
+ A convention in the formatting of these tables is that the columns to
+ the left of the '|' separator are index columns for the table.
+
+
+
+
+Waldbusser Standards Track [Page 8]
+
+RFC 3729 APM MIB March 2004
+
+
+ Assuming the following entries in the RMON2 protocolDirectory:
+
+ protocolDirectory
+ ID (*) Parameters | LocalIndex ...
+ WWW None | 1
+ WWW Get None | 2
+ SAP/R3 None | 3
+
+ (*) These IDs are represented here symbolically. Consult [5] for
+ more detail in their format
+
+ and the following entry in the apmHttpFilterTable:
+
+ ApmHttpFilterTable
+ Index | AppLocalIndex ServerAddress URLPath MatchType ...
+ 5 | 20 hr.example.com /expense prefix(3) ...
+
+ the apmAppDirTable would be populated with the following
+ entries:
+
+ apmAppDir
+ AppLocalIndex ResponsivenessType | Config ...
+ 1 transaction(1) | On ...
+ 1 throughput(2) | On ...
+ 2 transaction(1) | On ...
+ 2 throughput(2) | On ...
+ 3 transaction(1) | On ...
+ 20 transaction(1) | On ...
+ 20 throughput(2) | On ...
+
+ The entries in the apmAppDirTable with an appLocalIndex of 1, 2 and 3
+ correspond to the identically named entries in the protocolDirectory
+ table. appLocalIndex #1 results in 2 entries, one to measure the
+ transaction responsiveness of WWW and one to measure its throughput
+ responsiveness. In contrast, appLocalIndex #3 results in only a
+ transaction entry because the agent does not measure the throughput
+ responsiveness for SAP/R3 (probably because it isn't very
+ meaningful). Finally, appLocalIndex #20 corresponds to the entry in
+ the apmHttpFilterTable and has transaction responsiveness and
+ throughput responsiveness measurements available.
+
+ If a report was configured using application aggregation, entries in
+ that report might look like:
+
+
+
+
+
+
+
+
+Waldbusser Standards Track [Page 9]
+
+RFC 3729 APM MIB March 2004
+
+
+ apmReportTable
+ CtlIndex Index AppLocalIdx ResponsivenessType | TransactionCount ...
+ 1 1 1 transaction(1) | counters...
+ 1 1 1 throughput(2) | counters...
+ 1 1 2 transaction(1) | counters...
+ 1 1 2 throughput(2) | counters...
+ 1 1 3 transaction(1) | counters...
+ 1 1 20 transaction(1) | counters...
+ 1 1 20 throughput(2) | counters...
+
+ Note that the index items protocolDirLocalIndex,
+ apmReportServerAddress and apmReportClientID were omitted from
+ apmReportTable example for brevity because they would have been equal
+ to zero due to the use of the application aggregation in this
+ example.
+
+2.3. Measurement Methodology
+
+ There are many different measurement methodologies available for
+ measuring application performance (e.g., probe-based, client-based,
+ synthetic-transaction, etc.). This specification does not mandate a
+ particular methodology - it is open to any that meet the minimum
+ requirements. Conformance to this specification requires that the
+ collected data match the semantics described herein. In particular,
+ a data collection methodology must be able to measure response time,
+ throughput, streaming responsiveness and availability as specified.
+
+ Note that in some cases a transaction may run for a long time but
+ ultimately be successful. The measurement software shouldn't
+ prematurely classify lengthy transactions as failures but should wait
+ as long as the client application will wait for a successful
+ response.
+
+2.4. Instrumentation Architectures
+
+ Different architectural approaches and deployment strategies may be
+ taken towards implementation of this specification. If a highly
+ distributed approach is desired (e.g., an agent per desktop), one or
+ both of the two approaches below may be used to make it more
+ practical.
+
+2.4.1. Application Directory Caching
+
+ It is necessary for the manager to have a copy of the tables that
+ define the Application Directory in order to interpret APM
+ measurements. It is likely that in a highly distributed network of
+
+
+
+
+
+Waldbusser Standards Track [Page 10]
+
+RFC 3729 APM MIB March 2004
+
+
+ thousands of APM agents, this Application Directory will be the same
+ on many, if not all of the agents. Repeated downloads of the
+ Application Directory may be inefficient.
+
+ The apmAppDirID object is a single object that identifies the
+ configuration of all aspects of the Application Directory when it is
+ equal to a well-known, registered configuration. Thus, when a
+ manager sees an apmAppDirID value that it recognizes, it need not
+ download the Application Directory from that agent. In fact, the
+ manager may discover a new registered Application Directory
+ configuration on one agent and then re-use that configuration on
+ another agent that shares the same apmAppDirID value.
+
+ Application directory registrations are unique within an
+ administrative domain, allowing an administrator to create a custom
+ application directory configuration without the need to assign it a
+ globally-unique registration.
+
+2.4.2. Push Model
+
+ When APM agents are installed on "desktops" (including laptops), a
+ few issues make polling difficult:
+
+ 1. Desktops often have dynamically-assigned addresses so there is no
+ long-lived address to poll.
+
+ 2. Desktops are not available as much as infrastructure components
+ due to crashes, user-initiated reboots and shutdowns and user
+ control over monitoring software. Thus a desktop may not be
+ available to answer a poll at the moment when the manager is
+ scheduled to poll that desktop.
+
+ 3. Laptops that are connected via dialup connections are only
+ sporadically connected and will routinely be unreachable when the
+ manager is scheduled to poll.
+
+ As a consequence, a push model is usually more appropriate for
+ desktop-based agents. To achieve this, the agent should follow the
+ following rules in deciding what data to send in notifications.
+
+
+
+
+
+
+
+
+
+
+
+
+Waldbusser Standards Track [Page 11]
+
+RFC 3729 APM MIB March 2004
+
+
+ APM Reports
+ If an agent wishes to push APM reports to a manager, it
+ must send:
+ apmAppDirID
+ apmNameTable (any data updated since the last push)
+ For each report the agent wishes to upload, it must
+ send the entire apmReportControlEntry associated with
+ that report and the associated entries in the
+ apmReportTable that have changed since the last report.
+
+ APM Transactions
+ If an agent wishes to push APM transactions to
+ a manager, it must send:
+ apmAppDirID
+ apmNameTable (any data updated since the last push)
+ apmTransactionTable (relevant entries)
+
+ APM Exceptions
+ The agent must send:
+ apmAppDirID
+ apmNameTable (any data updated since the last push)
+ apmTransactionEntry (of exception transaction)
+ apmExceptionEntry (entry that generated exception)
+ [Note that this list supersedes the information in the
+ OBJECTS clauses of the apmTransactionResponsivenessAlarm
+ and apmTransactionUnsuccessfulAlarm when the agent is
+ using a push model. This additional information
+ eliminates the need for the manager to request additional
+ data to understand the exception.]
+
+ The order of varbinds and where to segment varbinds into PDUs is at
+ the discretion of the agent.
+
+2.5. Structure of this MIB Module
+
+ The objects are arranged into the following groups:
+
+ - APM Application Directory Group
+
+ - APM User Defined Applications Group
+
+ - APM Report Group
+
+ - APM Transaction Group
+
+ - APM Exception Group
+
+ - APM Notification Group
+
+
+
+Waldbusser Standards Track [Page 12]
+
+RFC 3729 APM MIB March 2004
+
+
+ These groups are the basic unit of conformance. If an agent
+ implements a group, then it must implement all objects in that group.
+ While this section provides an overview of grouping and conformance
+ information for this MIB Module, the authoritative reference for such
+ information is contained in the MODULE-COMPLIANCE and OBJECT-GROUP
+ macros later in this MIB Module.
+
+ These groups are defined to provide a means of assigning object
+ identifiers, and to provide a method for implementors of managed
+ agents to know which objects they must implement.
+
+2.5.1. The APM Application Directory Group
+
+ The APM Application Directory group contains configuration objects
+ for every application or application verb monitored on this system.
+ This group consists of the apmAppDirTable.
+
+2.5.2. The APM User Defined Applications Group
+
+ The APM User Defined Applications Group contains objects that allow
+ for the tracking of applications or application verbs that aren't
+ registered in the protocolDirTable. This group consists of the
+ apmHttpFilterTable and the apmUserDefinedAppTable.
+
+2.5.3. The APM Report Group
+
+ The APM Report Group is used to prepare regular reports that
+ aggregate application performance by flow, by client, by server, or
+ by application. This group consists of the apmReportControlTable and
+ the apmReportTable.
+
+2.5.4. The APM Transaction Group
+
+ The APM Transaction Group is used to show transactions that are
+ currently in progress and ones that have ended recently, along with
+ their responsiveness metric.
+
+ Because many transactions last a very short time and because an agent
+ may not retain completed transactions very long, transactions may
+ exist in this table for a very short time. Thus, polling this table
+ isn't an effective mechanism for retrieving all transactions unless
+ the value of apmTransactionsHistorySize is suitably large for the
+ transactions being monitored.
+
+ One important benefit of this table is that it allows a management
+ station to check on the status of long-lived transactions. Because
+ the apmReport and apmException mechanisms act only on transactions
+ that have finished, a network manager may not have visibility for
+
+
+
+Waldbusser Standards Track [Page 13]
+
+RFC 3729 APM MIB March 2004
+
+
+ some time into the performance of long-lived transactions such as
+ streaming applications, large data transfers, or (very) poorly
+ performing transactions. In fact, by their very definition, the
+ apmReport and apmException mechanisms only provide visibility into a
+ problem after nothing can be done about it. This group consists
+ primarily of the apmTransactionTable.
+
+2.5.5. The APM Exception Group
+
+ The APM Exception Group is used to generate immediate notifications
+ of transactions that cross certain thresholds. The apmExceptionTable
+ is used to configure which thresholds are to be checked for which
+ types of transactions. The apmTransactionResponsivenessAlarm
+ notification is sent when a transaction occurs with a responsiveness
+ that crosses a threshold. The apmTransactionUnsuccessfulAlarm
+ notification is sent when a transaction fails for which exception
+ checking was configured. This group consists primarily of the
+ apmExceptionTable.
+
+2.5.6. The APM Notification Group
+
+ The APM Notification Group contains 2 notifications that are sent
+ when thresholds in the APM Exception Table are exceeded.
+
+3. Definitions
+
+APM-MIB DEFINITIONS ::= BEGIN
+IMPORTS
+ MODULE-IDENTITY, OBJECT-TYPE,
+ NOTIFICATION-TYPE,
+ Counter32, Unsigned32 FROM SNMPv2-SMI
+ TEXTUAL-CONVENTION, RowStatus, TimeStamp,
+ TimeInterval, TruthValue, DateAndTime,
+ StorageType FROM SNMPv2-TC
+ MODULE-COMPLIANCE, OBJECT-GROUP,
+ NOTIFICATION-GROUP FROM SNMPv2-CONF
+ SnmpAdminString FROM SNMP-FRAMEWORK-MIB
+ rmon, OwnerString FROM RMON-MIB
+ protocolDirLocalIndex FROM RMON2-MIB;
+
+-- Application Performance Measurement MIB
+
+apm MODULE-IDENTITY
+ LAST-UPDATED "200402190000Z" -- February 19, 2004
+ ORGANIZATION "IETF RMON MIB Working Group"
+ CONTACT-INFO
+ "Author:
+ Steve Waldbusser
+
+
+
+Waldbusser Standards Track [Page 14]
+
+RFC 3729 APM MIB March 2004
+
+
+ Phone: +1-650-948-6500
+ Fax : +1-650-745-0671
+ Email: waldbusser@nextbeacon.com
+
+ Working Group Chair:
+ Andy Bierman
+ Cisco Systems, Inc.
+ Postal: 170 West Tasman Drive
+ San Jose, CA USA 95134
+ Tel: +1 408 527-3711
+ E-mail: abierman@cisco.com
+
+ Working Group Mailing List: <rmonmib@ietf.org>
+ To subscribe send email to: <rmonmib-request@ietf.org>
+ "
+ DESCRIPTION
+ "The MIB module for measuring application performance
+ as experienced by end-users.
+
+ Copyright (C) The Internet Society (2004). This version of
+ this MIB module is part of RFC 3729; see the RFC itself for
+ full legal notices."
+
+ REVISION "200402190000Z" -- February 19, 2004
+ DESCRIPTION
+ "The original version of this MIB Module, published as
+ RFC3729."
+
+ ::= { rmon 23 }
+
+apmMibObjects OBJECT IDENTIFIER ::= { apm 1 }
+apmConformance OBJECT IDENTIFIER ::= { apm 2 }
+apmCompliances OBJECT IDENTIFIER ::= { apmConformance 1 }
+apmGroups OBJECT IDENTIFIER ::= { apmConformance 2 }
+
+
+AppLocalIndex ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A locally arbitrary unique identifier associated with an
+ application or application verb.
+
+ All objects of type AppLocalIndex are assigned by the agent
+ out of a common number space. In other words, AppLocalIndex
+ values assigned to entries in one table must not overlap with
+ AppLocalIndex values assigned to entries in another
+ table. Further, every protocolDirLocalIndex value registered
+ by the agent automatically assigns the same value out of the
+
+
+
+Waldbusser Standards Track [Page 15]
+
+RFC 3729 APM MIB March 2004
+
+
+ AppLocalIndex number space.
+
+ For example, if the protocolDirLocalIndex values { 1, 3, 5, 7 }
+ have been assigned, and the apmHttpFilterAppLocalIndex values
+ { 6, 8, 9 } have been assigned:
+
+ - Assignment of new AppLocalIndex values must not use the
+ values { 1, 3, 5, 6, 7, 8, 9 }.
+ - AppLocalIndex values { 1, 3, 5, 7 } are automatically
+ assigned and are associated with the identical value of
+ protocolDirLocalIndex. In particular, an entry in the
+ apmAppDirTable indexed by a value provides further
+ information about a protocol indexed by the same value
+ in the protocolDirTable of RMON2.
+
+ The value for each supported application must remain constant
+ at least from one re-initialization of the entity's network
+ management system to the next re-initialization, except that
+ if an application is deleted and re-created, it must be
+ re-created with a new value that has not been used since the
+ last re-initialization.
+
+ The specific value is meaningful only within a given SNMP
+ entity. An AppLocalIndex value must not be re-used until the
+ next agent restart."
+ SYNTAX Unsigned32 (1..2147483647)
+
+ProtocolDirNetworkAddress ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A network level address whose semantics and encoding are
+ specified by an associated protocolDirLocalIndex
+ value. Objects of this type must specify which
+ protocolDirLocalIndex value is used. This value is encoded
+ according to the encoding rules for the identified
+ protocolDirectory entry.
+
+ For example, if the associated protocolDirLocalIndex indicates
+ an encapsulation of ip, this object is encoded as a length
+ octet of 4, followed by the 4 octets of the ip address,
+ in network byte order.
+
+ Objects of this type may allow this value to be the zero
+ length string. If so, they must identify they meaning of this
+ value."
+ SYNTAX OCTET STRING (SIZE(0..255))
+
+DataSourceOrZero ::= TEXTUAL-CONVENTION
+
+
+
+Waldbusser Standards Track [Page 16]
+
+RFC 3729 APM MIB March 2004
+
+
+ STATUS current
+ DESCRIPTION
+ "Identifies the source of the data that the associated
+ function is configured to analyze. This source can be any
+ interface on this device.
+
+ In order to identify a particular interface, this
+ object shall identify the instance of the ifIndex
+ object, defined in [4], for the desired interface.
+
+ For example, if an entry were to receive data from
+ interface #1, this object would be set to ifIndex.1.
+
+ If the source of the data isn't an interface or cannot be
+ localized to an interface, this object would be set to 0.0"
+
+ REFERENCE "The DataSource textual convention is defined in
+ RFC 2021 [5]."
+ SYNTAX OBJECT IDENTIFIER
+
+RmonClientID ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "A long-lived unique ID assigned to an end-system. This ID is
+ assigned by the agent using an implementation-specific
+ algorithm.
+
+ Because a client machine may be assigned multiple addresses
+ over any time period it can be difficult to attribute
+ behavior to a particular client based solely on its
+ address. A ClientID may be assigned to provide a more
+ stable handle for referencing that client. The entity that
+ assigns the ClientID may use various implementation
+ techniques to keep track of a client but if the assigning
+ entity is unable to track client address mappings, it may map
+ client identifiers to client addresses rather than to
+ distinct client machines.
+
+ This is named ClientID because it helps to solve a problem
+ seen in network clients (servers usually have well-known,
+ long-lived addresses). However, ClientID's may be assigned to
+ any end-system regardless of its role on the network."
+ SYNTAX Unsigned32 (0..4294967295)
+
+
+TransactionAggregationType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+
+
+
+Waldbusser Standards Track [Page 17]
+
+RFC 3729 APM MIB March 2004
+
+
+ "Specifies one of 4 different techniques for aggregating
+ transactions.
+
+ The metrics for a single transaction are the responsiveness of
+ the transaction and whether the transaction succeeded (a
+ boolean). When such metrics are aggregated in this MIB Module,
+ these metrics are replaced by averages and distributions of
+ responsiveness and availability. The metrics describing
+ aggregates are constant no matter which type of aggregation is
+ being performed. These metrics may be found in the
+ apmReportTable.
+
+ The flows(1) aggregation is the simplest. All transactions
+ that share common application/server/client 3-tuples are
+ aggregated together, resulting in a set of metrics for all
+ such unique 3-tuples.
+
+ The clients(2) aggregation results in somewhat more
+ aggregation (i.e., fewer resulting records). All transactions
+ that share common application/client tuples are aggregated
+ together, resulting in a set of metrics for all such unique
+ tuples.
+
+ The servers(3) aggregation usually results in still more
+ aggregation (i.e., fewer resulting records). All transactions
+ that share common application/server tuples are aggregated
+ together, resulting in a set of metrics for all such unique
+ tuples.
+
+ The applications(4) aggregation results in the most
+ aggregation (i.e., the fewest resulting records). All
+ transactions that share a common application are aggregated
+ together, resulting in a set of metrics for all such unique
+ applications.
+
+ Note that it is not meaningful to aggregate applications, as
+ different applications have widely varying characteristics. As a
+ result, this set of aggregations is complete."
+ SYNTAX INTEGER {
+ flows(1), -- Least Aggregation
+ clients(2),
+ servers(3),
+ applications(4) -- Most Aggregation
+ }
+
+-- The APM Application Directory Group
+
+-- The Application Directory Table contains a record for every
+
+
+
+Waldbusser Standards Track [Page 18]
+
+RFC 3729 APM MIB March 2004
+
+
+-- application monitored by this agent. This table is also used to
+-- configure whether or not an application will be measured and which
+-- bucket boundaries will be used for the application.
+--
+-- The bucket boundaries define the break-points between bins of a
+-- histogram analysis for that application. As an example of how this
+-- works, consider an entry representing response-time for http.
+-- If the boundaries are set as follows:
+-- Boundary1: 500 milliseconds
+-- Boundary2: 1 second
+-- Boundary3: 2 seconds
+-- Boundary4: 5
+-- Boundary5: 15
+-- Boundary6: 60
+--
+-- If the following measurements are made (all in milliseconds):
+-- 377, 8645, 1300, 487, 1405, 775, 1115, 850, 945, 1054, 7745, 9380
+--
+-- A report run during this interval would report the following
+-- counts:
+-- Bucket1: 2
+-- Bucket2: 3
+-- Bucket3: 4
+-- Bucket4: 0
+-- Bucket5: 3
+-- Bucket6: 0
+-- Bucket7: 0
+
+apmAppDirTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApmAppDirEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The APM MIB directory of applications and application
+ verbs. The agent will populate this table with all
+ applications/verbs of any responsivenessType it has the
+ capability to monitor. Since the agent populates this table
+ with every entry it has the capability to monitor, the
+ entries in this table are read-write, allowing the management
+ station to modify parameters in this table but not to add new
+ entries or delete entries (however, entries may be
+ disabled). If new entries are added to the apmHttpFilterTable
+ or the apmUserDefinedAppTable, the agent will add the
+ corresponding entries to this table.
+
+ It is an implementation-dependent matter as to how the agent
+ sets these default parameters. For example, it may leave
+ certain entries in this table 'off(0)' if the agent developer
+
+
+
+Waldbusser Standards Track [Page 19]
+
+RFC 3729 APM MIB March 2004
+
+
+ believes that combination will be infrequently used, allowing
+ a manager that needs that capability to set it to 'on(1)'.
+
+ Some applications are registered in the RMON2 protocol
+ directory and some are registered in other tables in this
+ MIB Module. Regardless of where an application is originally
+ registered, it is assigned an AppLocalIndex value that is the
+ primary index for this table.
+
+ The contents of this table affect all reports and exceptions
+ generated by this agent. Accordingly, modification of this
+ table should be performed by a manager acting in the role of
+ administrator. In particular, management software should not
+ require or enforce particular configuration of this table - it
+ should reflect the preferences of the site administrator, not
+ the software author. As a practical matter, this requires
+ management software to allow the administrator to configure
+ the values it will use so that it can be adapted to the site
+ policy."
+ ::= { apmMibObjects 1 }
+
+apmAppDirEntry OBJECT-TYPE
+ SYNTAX ApmAppDirEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The APM MIB directory of applications and application
+ verbs. An entry will exist in this table for all applications
+ for which application performance measurement is supported."
+ INDEX { apmAppDirAppLocalIndex,
+ apmAppDirResponsivenessType }
+ ::= { apmAppDirTable 1 }
+
+ApmAppDirEntry ::= SEQUENCE {
+ apmAppDirAppLocalIndex AppLocalIndex,
+ apmAppDirResponsivenessType INTEGER,
+ apmAppDirConfig INTEGER,
+ apmAppDirResponsivenessBoundary1 Unsigned32,
+ apmAppDirResponsivenessBoundary2 Unsigned32,
+ apmAppDirResponsivenessBoundary3 Unsigned32,
+ apmAppDirResponsivenessBoundary4 Unsigned32,
+ apmAppDirResponsivenessBoundary5 Unsigned32,
+ apmAppDirResponsivenessBoundary6 Unsigned32
+}
+
+apmAppDirAppLocalIndex OBJECT-TYPE
+ SYNTAX AppLocalIndex
+ MAX-ACCESS not-accessible
+
+
+
+Waldbusser Standards Track [Page 20]
+
+RFC 3729 APM MIB March 2004
+
+
+ STATUS current
+ DESCRIPTION
+ "The AppLocalIndex assigned for this application Directory
+ entry."
+ ::= { apmAppDirEntry 1 }
+
+apmAppDirResponsivenessType OBJECT-TYPE
+ SYNTAX INTEGER {
+ transactionOriented(1),
+ throughputOriented(2),
+ streamingOriented(3)
+ }
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This object describes and configures the agent's support for
+ application performance measurement for this application.
+ There are 3 types of measurements for different types of
+ applications:
+
+ Transaction-Oriented applications have a fairly constant
+ workload to perform for all transactions. The responsiveness
+ metric for transaction-oriented applications is application
+ response time (from first request to final delivery of
+ service) and is measured in milliseconds. This is
+ commonly referred to as end-user response time.
+
+ Throughput-Oriented applications have widely varying workloads
+ based on the nature of the client request. In particular,
+ throughput-oriented applications vary widely in the amount of
+ data that must be transported to satisfy the request. The
+ responsiveness metric for throughput-oriented applications is
+ kilobits per second.
+
+ Streaming-Oriented applications deliver data at a constant
+ metered rate of speed regardless of the responsiveness of the
+ networking and computing infrastructure. This constant rate of
+ speed is generally specified to be below (sometimes well
+ below) the nominal capability of the infrastructure. However,
+ when the infrastructures cannot deliver data at this speed,
+ interruption of service or degradation of service can
+ result. The responsiveness metric for streaming-oriented
+ applications is the ratio of time that the service is degraded
+ or interrupted to the total service time. This metric is
+ measured in parts per million.
+
+ Note that for some applications, measuring more than one
+ responsiveness type may be interesting. For agents that wish
+
+
+
+Waldbusser Standards Track [Page 21]
+
+RFC 3729 APM MIB March 2004
+
+
+ to support more than one measurement for a application, they
+ will populate this table with multiple entries for that
+ application, one for each type."
+ ::= { apmAppDirEntry 2 }
+
+apmAppDirConfig OBJECT-TYPE
+ SYNTAX INTEGER {
+ off(1),
+ on(2)
+ }
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object describes and configures support for application
+ performance measurement for this application.
+
+ If the value of this object is on(2), the agent supports
+ measurement of application performance metrics for this
+ application and is configured to measure such metrics for all
+ APM MIB functions and all interfaces. If the value of this
+ object is off(1), the agent supports measurement of
+ application performance for this application but is configured
+ to not measure these metrics for any APM MIB functions or
+ interfaces. Whenever this value changes from on(2) to off(1),
+ the agent shall delete all related entries in all tables in
+ this MIB Module.
+
+ The value of this object must persist across reboots."
+ ::= { apmAppDirEntry 3 }
+
+apmAppDirResponsivenessBoundary1 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The boundary value between bucket1 and bucket 2. If this
+ value is modified, all entries in the apmReportTable must be
+ deleted by the agent.
+
+ The value of this object must persist across reboots."
+ ::= { apmAppDirEntry 4 }
+
+apmAppDirResponsivenessBoundary2 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The boundary value between bucket2 and bucket 3. If this
+
+
+
+Waldbusser Standards Track [Page 22]
+
+RFC 3729 APM MIB March 2004
+
+
+ value is modified, all entries in the apmReportTable must be
+ deleted by the agent.
+
+ The value of this object must persist across reboots."
+ ::= { apmAppDirEntry 5 }
+
+apmAppDirResponsivenessBoundary3 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The boundary value between bucket3 and bucket 4. If this
+ value is modified, all entries in the apmReportTable must be
+ deleted by the agent.
+
+ The value of this object must persist across reboots."
+ ::= { apmAppDirEntry 6 }
+
+apmAppDirResponsivenessBoundary4 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The boundary value between bucket4 and bucket 5. If this
+ value is modified, all entries in the apmReportTable must be
+ deleted by the agent.
+
+ The value of this object must persist across reboots."
+ ::= { apmAppDirEntry 7 }
+
+apmAppDirResponsivenessBoundary5 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The boundary value between bucket5 and bucket 6. If this
+ value is modified, all entries in the apmReportTable must be
+ deleted by the agent.
+
+ The value of this object must persist across reboots."
+ ::= { apmAppDirEntry 8 }
+
+apmAppDirResponsivenessBoundary6 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The boundary value between bucket6 and bucket 7. If this
+
+
+
+Waldbusser Standards Track [Page 23]
+
+RFC 3729 APM MIB March 2004
+
+
+ value is modified, all entries in the apmReportTable must be
+ deleted by the agent.
+
+ The value of this object must persist across reboots."
+ ::= { apmAppDirEntry 9 }
+
+-- Scalars related to the Application Directory table
+
+apmBucketBoundaryLastChange OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime the last time that any bucket boundary
+ in any appDirEntry was changed. This object can help to
+ determine if two managers are both trying to enforce different
+ configurations of this table."
+ ::= { apmMibObjects 2 }
+
+apmAppDirID OBJECT-TYPE
+ SYNTAX OBJECT IDENTIFIER
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "This object allows managers to avoid downloading application
+ directory information when the directory is set to a known
+ (usually fixed) configuration.
+
+ If the value of this object isn't 0.0, it signifies
+ that the entire contents of the apmAppDirTable,
+ apmHttpFilterTable, apmUserDefinedAppTable and
+ protocolDirTable are equal to a known state identified
+ by the value of this object. If a manager recognizes this
+ value as identifying a directory configuration it has a local
+ copy of, it may use this local copy rather than downloading
+ these tables. Note that it may have downloaded this local copy
+ (and the ID) from another agent and used this copy for all
+ other agents that advertised the same ID.
+
+ If an agent recognizes that the entire contents of the
+ apmAppDirTable, apmHttpFilterTable,
+ apmUserDefinedAppTable and protocolDirTable are equal to
+ a known state to which an ID has been assigned, it should set
+ this object to that ID.
+
+ In many cases when this feature is used, the application
+ directory information will be in read-only memory and thus the
+ tables may not be modified via SNMP requests. In the event
+
+
+
+Waldbusser Standards Track [Page 24]
+
+RFC 3729 APM MIB March 2004
+
+
+ that the tables are writable and a modification is made, the
+ agent is responsible for setting this object to 0.0 if it
+ cannot determine that the state is equal to a known state.
+
+ An agent is not obligated to recognize and advertise all such
+ registered states as it may not have knowledge of all states.
+ Thus, a manager may encounter agents whose DirectoryID value
+ is 0.0 even though the contents of the directory were equal to
+ a registered state.
+
+ Note that the contents of those tables includes the
+ protocolDirLocalIndex and appLocalIndex values. In other
+ words, these values can't be assigned randomly on each agent,
+ but must be equal to values that are part of the known
+ state. While it is possible for a manager to download
+ application directory details using SNMP and to set the
+ appropriate directoryID, the manager would need to have some
+ scheme to ensure consistent values of LocalIndex variables
+ from agent to agent. Such schemes are outside the scope of
+ this specification.
+
+ Application directory registrations are unique within an
+ administrative domain.
+
+ Typically these registrations will be made by an agent
+ software developer who will set the application directory
+ tables to a read-only state and assign a DirectoryID to that
+ state. Thus, all agents running this software would share the
+ same DirectoryID. As the application directory might change
+ from one software release to the next, the developer may
+ register different DirectoryID's for each software release.
+
+ A customer could also create a site-wide application directory
+ configuration and assign a DirectoryID to that configuration
+ as long as consistent values of LocalIndex variables can be
+ ensured.
+
+ The value of this object must persist across reboots."
+ ::= { apmMibObjects 3 }
+
+-- APM HTTP Filter Table
+
+-- The HTTP Filter Table creates virtual applications which measure the
+-- performance of certain web pages or sets of web pages. Some
+-- circumstances where this is particularly useful are:
+--
+-- - An Intranet or ASP scenario where a business application is
+-- running on one or more web pages or scripts.
+
+
+
+Waldbusser Standards Track [Page 25]
+
+RFC 3729 APM MIB March 2004
+
+
+-- (i.e., /expense/submit.cgi?employeeID=3426&...)
+-- - A web-hosting scenario where one wants to measure the
+-- service level for a particular customer
+-- - An e-commerce scenario where the performance of certain
+-- pages needs to be monitored more closely.
+-- (i.e., shopping cart, shipping, credit card authorization)
+
+apmHttpFilterTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApmHttpFilterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that creates virtual applications which measure the
+ performance of certain web pages or sets of web pages.
+
+ When an entry is added to this table, the agent will
+ automatically create one or more entries in the
+ apmAppDirTable (one for each responsivenessType it is
+ capable of measuring).
+
+ Note that when entries exist in this table some HTTP
+ transactions will be summarized twice: in applications
+ represented here as well as the HTTP application. If entries
+ in this table overlap, these transactions may be summarized
+ additional times.
+
+ The contents of this table affect all reports and exceptions
+ generated by this agent. Accordingly, modification of this
+ table should be performed by a manager acting in the role of
+ administrator. In particular, management software should not
+ require or enforce particular configuration of this table - it
+ should reflect the preferences of the site administrator, not
+ the software author."
+ ::= { apmMibObjects 4 }
+
+apmHttpFilterEntry OBJECT-TYPE
+ SYNTAX ApmHttpFilterEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A virtual application which measure the performance of certain
+ web pages or sets of web pages."
+ INDEX { apmHttpFilterIndex }
+ ::= { apmHttpFilterTable 1 }
+
+ApmHttpFilterEntry ::= SEQUENCE {
+ apmHttpFilterIndex Unsigned32,
+ apmHttpFilterAppLocalIndex AppLocalIndex,
+
+
+
+Waldbusser Standards Track [Page 26]
+
+RFC 3729 APM MIB March 2004
+
+
+ apmHttpFilterServerProtocol Unsigned32,
+ apmHttpFilterServerAddress ProtocolDirNetworkAddress,
+ apmHttpFilterURLPath OCTET STRING,
+ apmHttpFilterMatchType INTEGER,
+ apmHttpFilterOwner OwnerString,
+ apmHttpFilterStorageType StorageType,
+ apmHttpFilterRowStatus RowStatus
+}
+
+apmHttpFilterIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (0..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in the
+ apmHttpFilterTable."
+ ::= { apmHttpFilterEntry 1 }
+
+apmHttpFilterAppLocalIndex OBJECT-TYPE
+ SYNTAX AppLocalIndex
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The AppLocalIndex that represents HTTP transactions
+ that match this entry.
+
+ This object is read-only. A value is created by the agent from
+ an unused AppLocalIndex value when this apmHttpFilterEntry is
+ created."
+ ::= { apmHttpFilterEntry 2 }
+
+apmHttpFilterServerProtocol OBJECT-TYPE
+ SYNTAX Unsigned32 (1..2147483647)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The protocolDirLocalIndex value of the network level protocol
+ of the apmHttpFilterServerAddress."
+ ::= { apmHttpFilterEntry 3 }
+
+apmHttpFilterServerAddress OBJECT-TYPE
+ SYNTAX ProtocolDirNetworkAddress
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This entry will only represent transactions coming from the
+ network address specified in this object.
+
+
+
+
+Waldbusser Standards Track [Page 27]
+
+RFC 3729 APM MIB March 2004
+
+
+ This is represented as an octet string with
+ specific semantics and length as identified
+ by the associated apmHttpFilterServerProtocol object.
+
+ If this object is the zero-length string, then this entry will
+ match one of the addresses represented by the 'host' component
+ of the associated apmHttpFilterURLPath object, where the
+ format if a URL [9] is
+ http://<host>:<port>/<path>?<searchpart>."
+ ::= { apmHttpFilterEntry 4 }
+
+apmHttpFilterURLPath OBJECT-TYPE
+ SYNTAX OCTET STRING (SIZE(0..65535))
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "This entry will only represent HTTP transactions
+ where the URL path component in the request matches this
+ value. This value represents the requested path regardless of
+ any substitution that the server might perform.
+
+ Prior to the matching, the URL is stripped of any server
+ address or DNS name and consists solely of the path name on
+ that server.
+
+ If the length of this object is zero, then this entry will
+ match if the associated apmHttpFilterServerAddress match. If
+ the length of that object is also zero, then this entry will
+ match nothing.
+
+ The value of the associated apmHttpFilterMatchType dictates
+ the type of matching that will be attempted."
+ ::= { apmHttpFilterEntry 5 }
+
+apmHttpFilterMatchType OBJECT-TYPE
+ SYNTAX INTEGER {
+ exact(1),
+ stripTrailingSlash(2),
+ prefix(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The matching algorithm used to compare the URL pathname.
+
+ If the value is exact(1), then the pathname component will be
+ compared with the associated apmHttpFilterURLPath and
+ will only be associated with this entry if it matches exactly.
+
+
+
+Waldbusser Standards Track [Page 28]
+
+RFC 3729 APM MIB March 2004
+
+
+ If the value is stripTrailingSlash(2), then the pathname
+ component will be compared with the associated
+ apmHttpFilterURLPath and will only be associated with this
+ entry if it matches exactly or if the pathname ends with a '/'
+ symbol and matches apmHttpFilterURLPath if the '/' symbol is
+ removed from the pathname. This option exists for those paths
+ where an optional trailing slash is possible but for which a
+ prefix match would be too broad.
+
+ If the value is prefix(3), then the pathname component will be
+ compared with the associated apmHttpFilterURLPath and will
+ only be associated with this entry if the beginning of the
+ pathname matches every octet of this value. Octets that extend
+ beyond the length of this value are ignored."
+ ::= { apmHttpFilterEntry 6 }
+
+apmHttpFilterOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is
+ therefore using the resources assigned to it."
+ ::= { apmHttpFilterEntry 7 }
+
+apmHttpFilterStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type of this apmHttpFilterEntry. If the value of
+ this object is 'permanent', no objects in this row need to be
+ writable."
+ ::= { apmHttpFilterEntry 8 }
+
+apmHttpFilterRowStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this apmHttpFilterEntry. No objects in this row
+ may be modified while the row's status is 'active'."
+ ::= { apmHttpFilterEntry 9 }
+
+apmHttpIgnoreUnregisteredURLs OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+
+
+
+Waldbusser Standards Track [Page 29]
+
+RFC 3729 APM MIB March 2004
+
+
+ DESCRIPTION
+ "When true, APM measurements of HTTP transactions will only
+ measure transactions relating to URLs that match a filter in
+ the apmHttpFilterTable. Thus, measurements for the HTTP
+ application will present aggregated statistics for
+ URL-matching HTTP transactions and measurements for the HTTP
+ GET application verb will present aggregated statistics for
+ URL-matching HTTP GET transactions.
+
+ This will be used in environments that wish to monitor only
+ targeted URLs and to ignore large volumes of internet web
+ browsing traffic.
+
+ This object affects all APM reports and exceptions generated
+ by this agent. Accordingly, modification of this object should
+ be performed by a manager acting in the role of
+ administrator. In particular, management software should not
+ require or enforce particular configuration of this object -
+ it should reflect the preferences of the site administrator,
+ not the software author.
+
+ The value of this object must persist across reboots."
+ ::= { apmMibObjects 5 }
+
+apmHttp4xxIsFailure OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "When true, this agent will recognize HTTP errors in the range
+ of 400 through 499 and will treat them as unavailable
+ transactions. When false or when this object isn't supported,
+ they will be treated as successful transactions.
+
+ This object allows such error pages to be tracked at the
+ possible expense of having user typos treated as poor service
+ on the part of the web server.
+
+ This object affects all reports and exceptions generated by
+ this agent. Accordingly, modification of this object should be
+ performed by a manager acting in the role of administrator. In
+ particular, management software should not require or enforce
+ particular configuration of this object - it should reflect
+ the preferences of the site administrator, not the software
+ author.
+
+ The value of this object must persist across reboots."
+ ::= { apmMibObjects 6 }
+
+
+
+Waldbusser Standards Track [Page 30]
+
+RFC 3729 APM MIB March 2004
+
+
+-- The APM User-Defined Application Table
+
+-- Many application protocols will never be registered with a
+-- standards body (and thus included in a protocol directory standard)
+-- because they are custom, in-house or proprietary
+-- applications. Nevertheless, implementation strategies exist for
+-- monitoring the end-user experience of these applications.
+--
+-- This read-only table provides a means for the agent to advertise
+-- which user-defined applications it is monitoring and to associate
+-- each with an AppLocalIndex value. It is an implementation-dependent
+-- matter as to how the agent learns how to monitor these
+-- applications.
+
+apmUserDefinedAppTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApmUserDefinedAppEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A table that advertises user-defined applications that the
+ agent is measuring.
+
+ The agent will automatically create one or more entries in the
+ apmAppDirTable (one for each responsivenessType it is
+ capable of measuring) for each entry in this table.
+
+ Note that when entries exist in this table some
+ transactions can be summarized more than once if there is
+ overlap between applications defined here and applications
+ defined in the protocol directory or in the httpFilter table."
+ ::= { apmMibObjects 7 }
+
+apmUserDefinedAppEntry OBJECT-TYPE
+ SYNTAX ApmUserDefinedAppEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A user-defined application that the agent is measuring, along
+ with its AppLocalIndex assignment.
+
+ The apmAppDirAppLocalIndex value in the index identifies
+ the agent-assigned AppLocalIndex value for this user-defined
+ application."
+ INDEX { apmAppDirAppLocalIndex }
+ ::= { apmUserDefinedAppTable 1 }
+
+ApmUserDefinedAppEntry ::= SEQUENCE {
+ apmUserDefinedAppParentIndex Unsigned32,
+
+
+
+Waldbusser Standards Track [Page 31]
+
+RFC 3729 APM MIB March 2004
+
+
+ apmUserDefinedAppApplication SnmpAdminString
+}
+
+apmUserDefinedAppParentIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..2147483647)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The protocolDirLocalIndex value of the highest-layer
+ protocol defined in the protocolDirTable that this
+ application is a child of."
+ ::= { apmUserDefinedAppEntry 1 }
+
+apmUserDefinedAppApplication OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "A human readable descriptive tag for this application."
+ ::= { apmUserDefinedAppEntry 2 }
+
+-- The APM Name Table
+
+apmNameTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApmNameEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A client machine may have multiple addresses during a period
+ of monitoring. The apmNameTable assigns a long-lived
+ identifier to a client and records what addresses were
+ assigned to that client for periods of time. Various
+ implementation techniques exist for tracking this mapping but
+ if an agent is unable to track client address mappings, it may
+ map client identifiers to client addresses rather than to
+ distinct client machines.
+
+ A particular apmNameClientID should be a constant attribute of
+ a particular client. When available, the agent may also record
+ the machine name and/or user name which may be valuable for
+ displaying to humans. The apmNameMachineName and
+ apmNameUserName are relatively constant, changing only if
+ these attributes actually change on the client.
+
+ The agent will store a historical log of these entries, aging
+ out old entries as the log becomes too large. Since this table
+ contains information vital to the interpretation of other
+ tables (e.g., the apmReportTable), the agent should ensure that
+
+
+
+Waldbusser Standards Track [Page 32]
+
+RFC 3729 APM MIB March 2004
+
+
+ the log doesn't age out entries that would be referenced by
+ data in those tables.
+
+ Note that an entry for a clientID is active from its
+ StartTime until the StartTime of another entry (for the same
+ clientID) that supersedes it, or 'now' if none supersede
+ it. Therefore, if a clientID only has a single entry, it is by
+ definition very new and should never be aged out. No entry for
+ a clientID should be aged out unless it has been updated by a
+ new entry for the client (i.e., with an updated address) and
+ only if the new entry is 'old' enough.
+
+ To determine how old is old enough, compute the maximum value
+ of Interval * (NumReports + 1) of all entries in the
+ apmReportControlTable (the '+ 1' is to allow a reasonable
+ period of time for the report to be downloaded). Then take the
+ larger of this value and the age in seconds of the oldest
+ entry in the current transaction table. If an entry for a
+ clientID is superseded by another entry whose StartTime is
+ more than this many seconds ago, then the older entry may be
+ deleted."
+ ::= { apmMibObjects 8 }
+
+apmNameEntry OBJECT-TYPE
+ SYNTAX ApmNameEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An entry in the APM name table. An entry exists for each
+ period of time that a client has been associated with a
+ particular address.
+
+ The protocolDirLocalIndex value in the index identifies
+ the network layer protocol for the ClientAddress for this
+ entry.
+
+ Note that some combinations of index values may result in an
+ index that exceeds 128 sub-identifiers in length which exceeds
+ the maximum for the SNMP protocol. Implementations should take
+ care to avoid such combinations."
+ INDEX { apmNameClientID,
+ protocolDirLocalIndex, apmNameClientAddress,
+ apmNameMappingStartTime }
+ ::= { apmNameTable 1 }
+
+ApmNameEntry ::= SEQUENCE {
+ apmNameClientID RmonClientID,
+ apmNameClientAddress ProtocolDirNetworkAddress,
+
+
+
+Waldbusser Standards Track [Page 33]
+
+RFC 3729 APM MIB March 2004
+
+
+ apmNameMappingStartTime DateAndTime,
+ apmNameMachineName SnmpAdminString,
+ apmNameUserName SnmpAdminString
+}
+
+apmNameClientID OBJECT-TYPE
+ SYNTAX RmonClientID
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A unique ID assigned to the machine represented by this
+ mapping. This ID is assigned by the agent using an
+ implementation-specific algorithm."
+ ::= { apmNameEntry 1 }
+
+apmNameClientAddress OBJECT-TYPE
+ SYNTAX ProtocolDirNetworkAddress (SIZE(1..255))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The network client address for this client when this mapping
+ was active.
+
+ This is represented as an octet string with specific semantics
+ and length as identified by the protocolDirLocalIndex
+ component of the index. This object may not be the zero length
+ string.
+
+ Since this object is an index variable, it is encoded in the
+ index according to the index encoding rules. For example, if
+ the protocolDirLocalIndex component of the index indicates an
+ encapsulation of ip, this object is encoded as a length octet
+ of 4, followed by the 4 octets of the ip address, in network
+ byte order. Care should be taken to avoid values of this
+ object that, in conjunction with the other index variables,
+ would result in an index longer than SNMP's maximum of 128
+ subidentifiers."
+ ::= { apmNameEntry 2 }
+
+apmNameMappingStartTime OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The time that the agent first discovered this mapping
+ as active."
+ ::= { apmNameEntry 3 }
+
+
+
+
+Waldbusser Standards Track [Page 34]
+
+RFC 3729 APM MIB March 2004
+
+
+apmNameMachineName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The human readable name of the client machine.
+
+ If the client has no machine name or the agent is
+ unable to learn the machine name, this object will be
+ a zero-length string."
+ ::= { apmNameEntry 4 }
+
+apmNameUserName OBJECT-TYPE
+ SYNTAX SnmpAdminString
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The human readable name of a human user using the client
+ machine. If more than one user name are available
+ simultaneously, it is an implementation-dependent matter as to
+ which is used here. However, if the user name changes, this
+ object should change to reflect that change.
+
+ Non-human user names like 'root' or 'administrator' aren't
+ intended as values for this object. If the client has no
+ recorded user name or the agent is unable to learn a user
+ name, this object will be a zero-length string."
+ ::= { apmNameEntry 5 }
+
+-- The APM Report Group
+
+apmReportControlTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApmReportControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Parameters that control the creation of a set of reports that
+ aggregate application performance."
+ ::= { apmMibObjects 9 }
+
+apmReportControlEntry OBJECT-TYPE
+ SYNTAX ApmReportControlEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in the apmReportControlTable.
+
+ An example of the indexing of this table is
+
+
+
+Waldbusser Standards Track [Page 35]
+
+RFC 3729 APM MIB March 2004
+
+
+ apmReportControlInterval.3"
+ INDEX { apmReportControlIndex }
+ ::= { apmReportControlTable 1 }
+
+ApmReportControlEntry ::= SEQUENCE {
+ apmReportControlIndex Unsigned32,
+ apmReportControlDataSource DataSourceOrZero,
+ apmReportControlAggregationType TransactionAggregationType,
+ apmReportControlInterval Unsigned32,
+ apmReportControlRequestedSize Unsigned32,
+ apmReportControlGrantedSize Unsigned32,
+ apmReportControlRequestedReports Unsigned32,
+ apmReportControlGrantedReports Unsigned32,
+ apmReportControlStartTime TimeStamp,
+ apmReportControlReportNumber Unsigned32,
+ apmReportControlDeniedInserts Counter32,
+ apmReportControlDroppedFrames Counter32,
+ apmReportControlOwner OwnerString,
+ apmReportControlStorageType StorageType,
+ apmReportControlStatus RowStatus
+}
+
+
+apmReportControlIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "An index that uniquely identifies an entry in the
+ apmReportControlTable. Each such entry defines a unique
+ report whose results are placed in the apmReportTable on
+ behalf of this apmReportControlEntry."
+ ::= { apmReportControlEntry 1 }
+
+apmReportControlDataSource OBJECT-TYPE
+ SYNTAX DataSourceOrZero
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The source of the data for APM Reports generated on
+ behalf of this apmReportControlEntry.
+
+ If the measurement is being performed by a probe, this should
+ be set to interface or port where data was received for
+ analysis. If the measurement isn't being performed by a probe,
+ this should be set to the primary interface over which the
+ measurement is being performed. If the measurement isn't being
+ performed by a probe and there is no primary interface or this
+
+
+
+Waldbusser Standards Track [Page 36]
+
+RFC 3729 APM MIB March 2004
+
+
+ information isn't known, this object should be set to 0.0.
+
+ This object may not be modified if the associated
+ apmReportControlStatus object is equal to active(1)."
+ ::= { apmReportControlEntry 2 }
+
+apmReportControlAggregationType OBJECT-TYPE
+ SYNTAX TransactionAggregationType
+ -- INTEGER {
+ -- flows(1),
+ -- clients(2),
+ -- servers(3),
+ -- applications(4)
+ -- }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The type of aggregation being performed for this set of
+ reports.
+
+ The metrics for a single transaction are the responsiveness of
+ the transaction and whether the transaction succeeded (a
+ boolean). When such metrics are aggregated in this MIB Module,
+ these metrics are replaced by averages and distributions of
+ responsiveness and availability. The metrics describing
+ aggregates are constant no matter which type of aggregation is
+ being performed. These metrics may be found in the
+ apmReportTable.
+
+ The flows(1) aggregation is the simplest. All transactions
+ that share common application/server/client 3-tuples are
+ aggregated together, resulting in a set of metrics for all
+ such unique 3-tuples.
+
+ The clients(2) aggregation results in somewhat more
+ aggregation (i.e., fewer resulting records). All transactions
+ that share common application/client tuples are aggregated
+ together, resulting in a set of metrics for all such unique
+ tuples.
+
+ The servers(3) aggregation usually results in still more
+ aggregation (i.e., fewer resulting records). All transactions
+ that share common application/server tuples are aggregated
+ together, resulting in a set of metrics for all such unique
+ tuples.
+
+ The applications(4) aggregation results in the most
+ aggregation (i.e., the fewest resulting records). All
+
+
+
+Waldbusser Standards Track [Page 37]
+
+RFC 3729 APM MIB March 2004
+
+
+ transactions that share a common application are aggregated
+ together, resulting in a set of metrics for all such unique
+ applications.
+
+ Note that it is not meaningful to aggregate applications, as
+ different applications have widely varying characteristics.
+ As a result, this set of aggregations is complete.
+
+ This object may not be modified if the associated
+ apmReportControlStatus object is equal to active(1)."
+ ::= { apmReportControlEntry 3 }
+
+apmReportControlInterval OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "Seconds"
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The interval in seconds over which data is accumulated before
+ being aggregated into a report in the apmReportTable. All
+ reports with the same apmReportControlIndex will be based on
+ the same interval. This object must be greater than zero.
+
+ Many users desire that these reports be synchronized to within
+ seconds of the beginning of the hour because the results may
+ be correlated more meaningfully to business behavior and so
+ that data from multiple agents is aggregated over the same
+ time periods. Thus management software may take extra effort
+ to synchronize reports to the beginning of the hour and to one
+ another. However, the agent must not allow reports to 'drift'
+ over time as they will quickly become unsynchronized. In
+ particular, if there is any fixed processing delay between
+ reports, the reports should deduct this time from the interval
+ so that reports don't drift.
+
+ This object may not be modified if the associated
+ apmReportControlStatus object is equal to active(1)."
+ DEFVAL { 3600 }
+ ::= { apmReportControlEntry 4 }
+
+apmReportControlRequestedSize OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The number of entries requested to be allocated for each
+ report generated on behalf of this entry."
+ ::= { apmReportControlEntry 5 }
+
+
+
+Waldbusser Standards Track [Page 38]
+
+RFC 3729 APM MIB March 2004
+
+
+apmReportControlGrantedSize OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of entries per report the agent has allocated
+ based on the requested amount in apmReportControlRequestedSize.
+ Since multiple reports are saved, the total number of entries
+ allocated will be this number multiplied by the value of
+ apmReportControlGrantedReports, or 1 if that object doesn't
+ exist.
+
+ When the associated apmReportControlRequestedSize object is
+ created or modified, the agent should set this object as
+ closely to the requested value as is possible for the
+ particular implementation and available resources. When
+ considering resources available, the agent must consider its
+ ability to allocate this many entries for all reports.
+
+ Note that while the actual number of entries stored in the
+ reports may fluctuate due to changing conditions, the agent
+ must continue to have storage available to satisfy the full
+ report size for all reports when necessary. Further, the agent
+ must not lower this value except as a result of a set to the
+ associated apmReportControlRequestedSize object."
+ ::= { apmReportControlEntry 6 }
+
+apmReportControlRequestedReports OBJECT-TYPE
+ SYNTAX Unsigned32 (0..65535)
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The number of saved reports requested to be allocated on
+ behalf of this entry."
+ ::= { apmReportControlEntry 7 }
+
+apmReportControlGrantedReports OBJECT-TYPE
+ SYNTAX Unsigned32 (0..65535)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of saved reports the agent has allocated
+ based on the requested amount in
+ apmReportControlRequestedReports. Since each report can have
+ many entries, the total number of entries allocated will be
+ this number multiplied by the value of
+ apmReportControlGrantedSize, or 1 if that object doesn't
+ exist.
+
+
+
+Waldbusser Standards Track [Page 39]
+
+RFC 3729 APM MIB March 2004
+
+
+ When the associated apmReportControlRequestedReports object is
+ created or modified, the agent should set this object as
+ closely to the requested value as is possible for the
+ particular implementation and available resources. When
+ considering resources available, the agent must consider its
+ ability to allocate this many reports each with the number of
+ entries represented by apmReportControlGrantedSize, or 1 if
+ that object doesn't exist.
+
+ Note that while the storage required for each report may
+ fluctuate due to changing conditions, the agent must continue
+ to have storage available to satisfy the full report size for
+ all reports when necessary. Further, the agent must not lower
+ this value except as a result of a set to the associated
+ apmReportControlRequestedSize object."
+ ::= { apmReportControlEntry 8 }
+
+apmReportControlStartTime OBJECT-TYPE
+ SYNTAX TimeStamp
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The value of sysUpTime when the system began processing the
+ report in progress. Note that the report in progress is not
+ available.
+
+ This object may be used by the management station to figure
+ out the start time for all previous reports saved for this
+ apmReportControlEntry, as reports are started at fixed
+ intervals."
+ ::= { apmReportControlEntry 9 }
+
+apmReportControlReportNumber OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of the report in progress. When an
+ apmReportControlEntry is activated, the first report will be
+ numbered one."
+ ::= { apmReportControlEntry 10 }
+
+apmReportControlDeniedInserts OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of failed attempts to add an entry to reports for
+
+
+
+Waldbusser Standards Track [Page 40]
+
+RFC 3729 APM MIB March 2004
+
+
+ this apmReportControlEntry because the number of entries
+ would have exceeded apmReportControlGrantedSize.
+
+ This number is valuable in determining if enough entries have
+ been allocated for reports in light of fluctuating network
+ usage. Note that since an entry that is denied will often be
+ attempted again, this number will not predict the exact number
+ of additional entries needed, but can be used to understand
+ the relative magnitude of the problem.
+
+ Also note that there is no ordering specified for the entries
+ in the report, thus there are no rules for which entries will
+ be omitted when not enough entries are available. As a
+ consequence, the agent is not required to delete 'least
+ valuable' entries first."
+ ::= { apmReportControlEntry 11 }
+
+apmReportControlDroppedFrames OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of frames which were received by the agent
+ and therefore not accounted for in the *StatsDropEvents, but
+ for which the agent chose not to count for this entry for
+ whatever reason. Most often, this event occurs when the agent
+ is out of some resources and decides to shed load from this
+ collection.
+
+ This count does not include packets that were not counted
+ because they had MAC-layer errors.
+
+ This counter is only relevant if this apm report is based on
+ a data source whose collection methodology is based on
+ analyzing network traffic.
+
+ Note that if the apmReportTables are inactive because no
+ applications are enabled in the application directory, this
+ value should be 0.
+
+ Note that, unlike the dropEvents counter, this number is the
+ exact number of frames dropped."
+ ::= { apmReportControlEntry 12 }
+
+apmReportControlOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+
+
+
+Waldbusser Standards Track [Page 41]
+
+RFC 3729 APM MIB March 2004
+
+
+ DESCRIPTION
+ "The entity that configured this entry and is
+ therefore using the resources assigned to it."
+ ::= { apmReportControlEntry 13 }
+
+apmReportControlStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type of this apmReportControlEntry. If the value
+ of this object is 'permanent', no objects in this row need to
+ be writable."
+ ::= { apmReportControlEntry 14 }
+
+apmReportControlStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this apmReportControlEntry.
+
+ An entry may not exist in the active state unless all
+ objects in the entry have an appropriate value. The only
+ objects in the entry that may be modified while the entry is
+ in the active state are apmReportControlRequestedSize and
+ apmReportControlRequestedReports.
+
+ If this object is not equal to active(1), all
+ associated entries in the apmReportTable shall be deleted
+ by the agent."
+ ::= { apmReportControlEntry 15 }
+
+-- The APM Report Table
+
+apmReportTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApmReportEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The data resulting from aggregated APM reports. Consult the
+ definition of apmReportControlAggregationType for the
+ definition of the various types of aggregations."
+ ::= { apmMibObjects 10 }
+
+apmReportEntry OBJECT-TYPE
+ SYNTAX ApmReportEntry
+ MAX-ACCESS not-accessible
+
+
+
+Waldbusser Standards Track [Page 42]
+
+RFC 3729 APM MIB March 2004
+
+
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in the apmReportTable.
+ The apmReportControlIndex value in the index identifies the
+ apmReportControlEntry on whose behalf this entry was created.
+ The apmReportIndex value in the index identifies which report
+ (in the series of reports) this entry is a part of.
+ The apmAppDirAppLocalIndex value in the index identifies
+ the common application of the transactions aggregated in this
+ entry.
+ The apmAppDirResponsivenessType value in the index
+ identifies the type of responsiveness metric reported by
+ this entry and uniquely identifies this entry when more
+ than one responsiveness metric is measured for a flow.
+ Entries will only exist in this table for those
+ combinations of AppLocalIndex and ResponsivenessType
+ that are configured 'on(1)'.
+ The protocolDirLocalIndex value in the index identifies
+ the network layer protocol of the apmReportServerAddress.
+ When the associated apmReportControlAggregationType value is
+ equal to applications(4) or clients(2), this
+ protocolDirLocalIndex value will equal 0.
+ The apmReportServerAddress value in the index identifies the
+ network layer address of the server in transactions aggregated
+ in this entry.
+ The apmNameClientID value in the index identifies the
+ client in transactions aggregated in this entry. If the
+ associated apmReportControlAggregationType is equal to
+ applications(4) or servers(3), then this protocolDirLocalIndex
+ value will equal 0.
+
+ An example of the indexing of this entry is
+ apmReportTransactionCount.3.15.3.1.8.4.192.168.1.2.3232235788
+
+ Note that some combinations of index values may result in an
+ index that exceeds 128 sub-identifiers in length which exceeds
+ the maximum for the SNMP protocol. Implementations should take
+ care to avoid such combinations."
+ INDEX { apmReportControlIndex, apmReportIndex,
+ apmAppDirAppLocalIndex,
+ apmAppDirResponsivenessType,
+ protocolDirLocalIndex, apmReportServerAddress,
+ apmNameClientID }
+ ::= { apmReportTable 1 }
+
+ApmReportEntry ::= SEQUENCE {
+ apmReportIndex Unsigned32,
+ apmReportServerAddress ProtocolDirNetworkAddress,
+
+
+
+Waldbusser Standards Track [Page 43]
+
+RFC 3729 APM MIB March 2004
+
+
+ apmReportTransactionCount Unsigned32,
+ apmReportSuccessfulTransactions Unsigned32,
+ apmReportResponsivenessMean Unsigned32,
+ apmReportResponsivenessMin Unsigned32,
+ apmReportResponsivenessMax Unsigned32,
+ apmReportResponsivenessB1 Unsigned32,
+ apmReportResponsivenessB2 Unsigned32,
+ apmReportResponsivenessB3 Unsigned32,
+ apmReportResponsivenessB4 Unsigned32,
+ apmReportResponsivenessB5 Unsigned32,
+ apmReportResponsivenessB6 Unsigned32,
+ apmReportResponsivenessB7 Unsigned32
+}
+
+apmReportIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The value of apmReportControlReportNumber for the report to
+ which this entry belongs."
+ ::= { apmReportEntry 1 }
+
+apmReportServerAddress OBJECT-TYPE
+ SYNTAX ProtocolDirNetworkAddress
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The network server address for this apmReportEntry.
+
+ This is represented as an octet string with
+ specific semantics and length as identified
+ by the protocolDirLocalIndex component of the index.
+
+ Since this object is an index variable, it is encoded in the
+ index according to the index encoding rules. For example, if
+ the protocolDirLocalIndex indicates an encapsulation of ip,
+ this object is encoded as a length octet of 4, followed by the
+ 4 octets of the ip address, in network byte order. Care
+ should be taken to avoid values of this object that, in
+ conjunction with the other index variables, would result in an
+ index longer than SNMP's maximum of 128 subidentifiers.
+
+ If the associated apmReportControlAggregationType is equal to
+ applications(4) or clients(2), then this object will be a null
+ string and will be encoded simply as a length octet of 0."
+ ::= { apmReportEntry 2 }
+
+
+
+
+Waldbusser Standards Track [Page 44]
+
+RFC 3729 APM MIB March 2004
+
+
+apmReportTransactionCount OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of transactions aggregated into this record."
+ ::= { apmReportEntry 3 }
+
+apmReportSuccessfulTransactions OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of successful transactions aggregated into
+ this record."
+ ::= { apmReportEntry 4 }
+
+apmReportResponsivenessMean OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The arithmetic mean of the responsiveness metrics for all
+ successful transactions aggregated into this record."
+ ::= { apmReportEntry 5 }
+
+apmReportResponsivenessMin OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The minimum of the responsiveness metrics for all
+ successful transactions aggregated into this record."
+ ::= { apmReportEntry 6 }
+
+apmReportResponsivenessMax OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The maximum of the responsiveness metrics for all
+ successful transactions aggregated into this record."
+ ::= { apmReportEntry 7 }
+
+-- Note that when updating a report entry, a transaction will not be
+-- counted in more than 1 bucket in an entry. It will be counted in
+-- the first bucket that matches, starting with Bucket 1 (B1). Note
+-- that if a transaction matches 2 application types, it will update
+
+
+
+Waldbusser Standards Track [Page 45]
+
+RFC 3729 APM MIB March 2004
+
+
+-- one bucket in each of 2 entries in this table.
+
+apmReportResponsivenessB1 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of successful transactions aggregated into this
+ record whose responsiveness was less than boundary1 value for
+ this application."
+ ::= { apmReportEntry 8 }
+
+apmReportResponsivenessB2 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of successful transactions aggregated into this
+ record whose responsiveness did not fall into Bucket 1 and was
+ greater than or equal to the boundary1 value for this
+ application and less than the boundary2 value for this
+ application."
+ ::= { apmReportEntry 9 }
+
+apmReportResponsivenessB3 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of successful transactions aggregated into this
+ record whose responsiveness did not fall into Bucket 1 or 2
+ and as greater than or equal to the boundary2 value for this
+ application and less than the boundary3 value for this
+ application."
+ ::= { apmReportEntry 10 }
+
+apmReportResponsivenessB4 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of successful transactions aggregated into this
+ record whose responsiveness did not fall into Buckets 1
+ through 3 and was greater than or equal to the boundary3 value
+ for this application and less than the boundary4 value for
+ this application."
+ ::= { apmReportEntry 11 }
+
+
+
+
+Waldbusser Standards Track [Page 46]
+
+RFC 3729 APM MIB March 2004
+
+
+apmReportResponsivenessB5 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of successful transactions aggregated into this
+ record whose responsiveness did not fall into Buckets 1
+ through 4 and was greater than or equal to the boundary4 value
+ for this application and less than the boundary5 value for
+ this application."
+ ::= { apmReportEntry 12 }
+
+apmReportResponsivenessB6 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of successful transactions aggregated into this
+ record whose responsiveness did not fall into Buckets 1
+ through 5 and was greater than or equal to the
+ boundary5 value for this application and less than the
+ boundary6 value for this application."
+ ::= { apmReportEntry 13 }
+
+apmReportResponsivenessB7 OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The number of successful transactions aggregated into this
+ record whose responsiveness did not fall into Buckets 1
+ through 6 and was greater than or equal to the boundary6 value
+ for this application."
+ ::= { apmReportEntry 14 }
+
+-- APM Transaction Table
+
+apmTransactionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApmTransactionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table contains transactions that are currently running
+ or have recently finished."
+ ::= { apmMibObjects 11 }
+
+apmTransactionEntry OBJECT-TYPE
+ SYNTAX ApmTransactionEntry
+
+
+
+Waldbusser Standards Track [Page 47]
+
+RFC 3729 APM MIB March 2004
+
+
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in the apmTransactionTable.
+
+ The apmAppDirAppLocalIndex value in the index identifies
+ the application of the transaction represented by this entry.
+ The apmAppDirResponsivenessType value in the index
+ identifies the type of responsiveness metric reported by
+ this entry and uniquely identifies this entry when more
+ than one responsiveness metric is measured for a flow.
+ Entries will only exist in this table for those
+ combinations of AppLocalIndex and ResponsivenessType
+ that are configured 'on(1)'.
+ The protocolDirLocalIndex value in the index identifies
+ the network layer protocol of the apmTransactionServerAddress.
+ The apmTransactionServerAddress value in the index identifies
+ the network layer address of the server in the transaction
+ represented by this entry.
+ The apmNameClientID value in the index identifies the
+ client in the transaction represented by this entry.
+
+ An example of the indexing of this entry is
+ apmTransactionCount.3.1.8.4.192.168.1.2.3232235788.2987
+
+ Note that some combinations of index values may result in an
+ index that exceeds 128 sub-identifiers in length which exceeds
+ the maximum for the SNMP protocol. Implementations should take
+ care to avoid such combinations."
+ INDEX { apmAppDirAppLocalIndex,
+ apmAppDirResponsivenessType,
+ protocolDirLocalIndex, apmTransactionServerAddress,
+ apmNameClientID, apmTransactionID }
+ ::= { apmTransactionTable 1 }
+
+ApmTransactionEntry ::= SEQUENCE {
+ apmTransactionServerAddress ProtocolDirNetworkAddress,
+ apmTransactionID Unsigned32,
+ apmTransactionResponsiveness Unsigned32,
+ apmTransactionAge TimeInterval,
+ apmTransactionSuccess TruthValue
+}
+
+apmTransactionServerAddress OBJECT-TYPE
+ SYNTAX ProtocolDirNetworkAddress (SIZE (1..255))
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+
+
+
+Waldbusser Standards Track [Page 48]
+
+RFC 3729 APM MIB March 2004
+
+
+ "The network server address for this apmTransactionEntry.
+
+ This is represented as an octet string with specific semantics
+ and length as identified by the protocolDirLocalIndex
+ component of the index. This object may not be the zero length
+ string.
+
+ For example, if the protocolDirLocalIndex indicates an
+ encapsulation of ip, this object is encoded as a length octet
+ of 4, followed by the 4 octets of the ip address, in network
+ byte order. Care should be taken to avoid values of this
+ object that, in conjunction with the other index variables,
+ would result in an index longer than SNMP's maximum of 128
+ subidentifiers."
+ ::= { apmTransactionEntry 1 }
+
+apmTransactionID OBJECT-TYPE
+ SYNTAX Unsigned32 (0..4294967295)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A unique value for this transaction amongst other
+ transactions sharing the same application layer protocol and
+ server and client addresses. Implementations may choose to use
+ the value of the client's source port, when possible."
+ ::= { apmTransactionEntry 2 }
+
+apmTransactionResponsiveness OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The current value of the responsiveness metric for this
+ transaction. If this transaction has completed, the final
+ value of the metric will be available.
+
+ Note that this value may change over the lifetime of the
+ transaction and it is the final value of this metric that is
+ recorded as the responsiveness of the transaction for use in
+ other APM MIB functions."
+ ::= { apmTransactionEntry 3 }
+
+apmTransactionAge OBJECT-TYPE
+ SYNTAX TimeInterval
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "If this transaction is still executing, this value shall be
+
+
+
+Waldbusser Standards Track [Page 49]
+
+RFC 3729 APM MIB March 2004
+
+
+ the length of time since it was started. If it has completed,
+ this value shall be the length of time it was executing."
+ ::= { apmTransactionEntry 4 }
+
+apmTransactionSuccess OBJECT-TYPE
+ SYNTAX TruthValue
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The success of this transaction up to this time. Once a
+ transaction has been marked as failed, it cannot move back
+ into the successful state."
+ ::= { apmTransactionEntry 5 }
+
+apmTransactionsRequestedHistorySize OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The maximum number of completed transactions desired to be
+ retained in the apmTransactionTable. If the agent doesn't have
+ enough resources to retain this many, it will retain as many as
+ possible. Regardless of this value, the agent must attempt to
+ keep records for all current transactions it is monitoring.
+
+ The value of this object must persist across reboots."
+ ::= { apmMibObjects 12 }
+
+-- The APM Exception table
+-- The APM Exception Table creates filters so that a management
+-- station can get immediate notification of a transaction that has
+-- had poor availability or responsiveness.
+--
+-- This function is particularly helpful in unaggregated situations
+-- where the numbers of agents is relatively high and the transaction
+-- rate per agent is relatively low (such as agents for desktops or
+-- dedicated to small workgroups). Polling agents in such an
+-- environment would either cause scalability problems (high rate) or
+-- lead to long notification delays (low rate).
+
+
+apmExceptionTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF ApmExceptionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "This table creates filters so that a management station can
+ get immediate notification of a transaction that has had poor
+
+
+
+Waldbusser Standards Track [Page 50]
+
+RFC 3729 APM MIB March 2004
+
+
+ availability or responsiveness.
+
+ Each apmExceptionEntry is associated with a particular type of
+ transaction and is applied to all transactions of that
+ type. Multiple apmExceptionEntries may be associated with a
+ particular type of transaction. A transaction type is
+ identified by the value of the apmAppDirAppLocalIndex
+ component of the index.
+
+ Because the quality of a transaction is not known until it is
+ completed, these thresholds are only applied after the
+ transaction has completed."
+ ::= { apmMibObjects 13 }
+
+apmExceptionEntry OBJECT-TYPE
+ SYNTAX ApmExceptionEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "A conceptual row in the apmExceptionTable.
+
+ The apmAppDirAppLocalIndex value in the index identifies
+ the application this entry will monitor.
+ The apmAppDirResponsivenessType value in the index
+ identifies the type of responsiveness metric this entry will
+ monitor."
+
+ INDEX { apmAppDirAppLocalIndex,
+ apmAppDirResponsivenessType, apmExceptionIndex }
+ ::= { apmExceptionTable 1 }
+
+ApmExceptionEntry ::= SEQUENCE {
+ apmExceptionIndex Unsigned32,
+ apmExceptionResponsivenessComparison INTEGER,
+ apmExceptionResponsivenessThreshold Unsigned32,
+ apmExceptionUnsuccessfulException INTEGER,
+ apmExceptionResponsivenessEvents Counter32,
+ apmExceptionUnsuccessfulEvents Counter32,
+ apmExceptionOwner OwnerString,
+ apmExceptionStorageType StorageType,
+ apmExceptionStatus RowStatus
+}
+
+apmExceptionIndex OBJECT-TYPE
+ SYNTAX Unsigned32 (1..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+
+
+
+Waldbusser Standards Track [Page 51]
+
+RFC 3729 APM MIB March 2004
+
+
+ "An index that uniquely identifies an entry in the
+ apmExceptionTable amongst other entries with equivalent index
+ values for apmAppDirAppLocalIndex and
+ apmAppDirResponsivenessType. Each such entry sets up
+ thresholds for a particular measurement of a particular
+ application."
+ ::= { apmExceptionEntry 1 }
+
+apmExceptionResponsivenessComparison OBJECT-TYPE
+ SYNTAX INTEGER {
+ none(1),
+ greater(2),
+ less(3)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "If this value is greater(2) or less(3), the associated
+ apmExceptionResponsivenessThreshold will be compared to this
+ value and an exception will be created if the responsiveness
+ is greater than the threshold (greater(2)) or less than the
+ threshold (less(3))."
+ ::= { apmExceptionEntry 2 }
+
+apmExceptionResponsivenessThreshold OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The threshold that responsiveness metrics are compared to."
+ ::= { apmExceptionEntry 3 }
+
+apmExceptionUnsuccessfulException OBJECT-TYPE
+ SYNTAX INTEGER {
+ off(1),
+ on(2)
+ }
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "If this value is on(2), an exception will be created if a
+ transaction of the associated type is unsuccessful."
+ ::= { apmExceptionEntry 4 }
+
+apmExceptionResponsivenessEvents OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+
+
+
+Waldbusser Standards Track [Page 52]
+
+RFC 3729 APM MIB March 2004
+
+
+ DESCRIPTION
+ "The total number of responsiveness exceptions generated. This
+ counter will be incremented even if no notification was sent
+ due to notifications not being configured or due to exceeding
+ the apmNotificationMaxRate value."
+ ::= { apmExceptionEntry 5 }
+
+apmExceptionUnsuccessfulEvents OBJECT-TYPE
+ SYNTAX Counter32
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "The total number of unsuccessful exceptions generated. This
+ counter will be incremented even if no notification was sent
+ due to notifications not being configured or due to exceeding
+ the apmNotificationMaxRate value."
+ ::= { apmExceptionEntry 6 }
+
+apmExceptionOwner OBJECT-TYPE
+ SYNTAX OwnerString
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The entity that configured this entry and is
+ therefore using the resources assigned to it."
+ ::= { apmExceptionEntry 7 }
+
+apmExceptionStorageType OBJECT-TYPE
+ SYNTAX StorageType
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The storage type of this apmReportControlEntry. If the value
+ of this object is 'permanent', no objects in this row need to
+ be writable."
+ ::= { apmExceptionEntry 8 }
+
+apmExceptionStatus OBJECT-TYPE
+ SYNTAX RowStatus
+ MAX-ACCESS read-create
+ STATUS current
+ DESCRIPTION
+ "The status of this apmExceptionEntry. The only objects in the
+ entry that may be modified while the entry is in the active
+ state are apmExceptionResponsivenessComparison,
+ apmExceptionResponsivenessThreshold and
+ apmExceptionUnsuccessfulException."
+ ::= { apmExceptionEntry 9 }
+
+
+
+Waldbusser Standards Track [Page 53]
+
+RFC 3729 APM MIB March 2004
+
+
+apmThroughputExceptionMinTime OBJECT-TYPE
+ SYNTAX Unsigned32
+ UNITS "seconds"
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "Because the responsiveness for throughput-oriented
+ transactions is divided by the elapsed time, it can be very
+ sensitive to short-term performance variations for
+ transactions that take a short period of time. For example,
+ when downloading a very short file, a single dropped packet
+ could double or triple the total response time.
+
+ Further, throughput is usually examined for applications that
+ transfer a lot of data, and when doing so it is helpful to
+ conceptualize transaction costs that are proportional to the
+ amount of data separately from those costs that are relatively
+ fixed (i.e., independent of the amount of data). For very
+ short transactions, these fixed transaction costs (handshake,
+ setup time, authentication, round-trip time) may dominate the
+ total response time for the transaction, resulting in
+ throughput measurements that aren't really proportional to the
+ network's, server's and client's combined data throughput
+ capability.
+
+ This object controls the minimum number of seconds that an
+ throughput-based transaction must exceed before an exception
+ can be generated for it. If this object is set to zero, then
+ all throughput-based transactions are candidates for
+ exceptions.
+
+ The value of this object must persist across reboots."
+ DEFVAL { 10 }
+ ::= { apmMibObjects 14 }
+
+apmNotificationMaxRate OBJECT-TYPE
+ SYNTAX Unsigned32
+ MAX-ACCESS read-write
+ STATUS current
+ DESCRIPTION
+ "The maximum number of notifications that can be generated
+ from this agent by the apmExceptionTable in any 60 second
+ period.
+
+ The value of this object must persist across reboots."
+ DEFVAL { 1 }
+ ::= { apmMibObjects 15 }
+
+
+
+
+Waldbusser Standards Track [Page 54]
+
+RFC 3729 APM MIB March 2004
+
+
+-- APM Notifications
+
+apmNotifications OBJECT IDENTIFIER ::= { apm 0 }
+
+apmTransactionResponsivenessAlarm NOTIFICATION-TYPE
+ OBJECTS { apmExceptionResponsivenessThreshold,
+ apmTransactionResponsiveness }
+ STATUS current
+ DESCRIPTION
+ "Notification sent when a transaction exceeds a threshold
+ defined in the apmException table. The index of the
+ included apmExceptionResponsivenessThreshold object identifies
+ the apmExceptionEntry that specified the threshold. The
+ apmTransactionResponsiveness variable identifies the actual
+ transaction and its responsiveness.
+
+ Agent implementors are urged to include additional data
+ objects in the alarm that may explain the reason for the
+ alarm. It is helpful to include such data in the alarm because
+ it describes the situation at the time the alarm was
+ generated, where polls after the fact may not provide
+ meaningful information. Examples of such information are CPU
+ load, memory utilization, network utilization, and transaction
+ statistics."
+ ::= { apmNotifications 1 }
+
+apmTransactionUnsuccessfulAlarm NOTIFICATION-TYPE
+ OBJECTS { apmExceptionResponsivenessThreshold }
+ STATUS current
+ DESCRIPTION
+ "Notification sent when a transaction is unsuccessful.
+ The index of the included apmExceptionResponsivenessThreshold
+ object identifies both the type of the transaction that caused
+ this notification as well as the apmExceptionEntry that
+ specified the threshold.
+
+ Agent implementors are urged to include additional data
+ objects in the alarm that may explain the reason for the
+ alarm. It is helpful to include such data in the alarm because
+ it describes the situation at the time the alarm was
+ generated, where polls after the fact may not provide
+ meaningful information. Examples of such information are CPU
+ load, memory utilization, network utilization, and transaction
+ statistics."
+ ::= { apmNotifications 2 }
+
+apmCompliance MODULE-COMPLIANCE
+ STATUS current
+
+
+
+Waldbusser Standards Track [Page 55]
+
+RFC 3729 APM MIB March 2004
+
+
+ DESCRIPTION
+ "Describes the requirements for conformance to
+ the APM MIB"
+ MODULE -- this module
+ MANDATORY-GROUPS { apmAppDirGroup, apmReportGroup }
+
+ GROUP apmUserDefinedApplicationsGroup
+ DESCRIPTION
+ "Implementation of the apmUserDefinedApplicationsGroup
+ is optional."
+
+ GROUP apmTransactionGroup
+ DESCRIPTION
+ "Implementation of the apmTransactionGroup is optional."
+
+ GROUP apmExceptionGroup
+ DESCRIPTION
+ "Implementation of the apmExceptionGroup is optional."
+
+ GROUP apmNotificationGroup
+ DESCRIPTION
+ "Implementation of the apmNotificationGroup is optional."
+
+ ::= { apmCompliances 1 }
+
+apmAppDirGroup OBJECT-GROUP
+ OBJECTS { apmAppDirConfig,
+ apmAppDirResponsivenessBoundary1,
+ apmAppDirResponsivenessBoundary2,
+ apmAppDirResponsivenessBoundary3,
+ apmAppDirResponsivenessBoundary4,
+ apmAppDirResponsivenessBoundary5,
+ apmAppDirResponsivenessBoundary6,
+ apmBucketBoundaryLastChange, apmAppDirID,
+ apmNameMachineName, apmNameUserName }
+ STATUS current
+ DESCRIPTION
+ "The APM MIB directory of applications and application verbs."
+ ::= { apmGroups 1 }
+
+apmUserDefinedApplicationsGroup OBJECT-GROUP
+ OBJECTS { apmHttpFilterAppLocalIndex,
+ apmHttpFilterServerProtocol,
+ apmHttpFilterServerAddress, apmHttpFilterURLPath,
+ apmHttpFilterMatchType, apmHttpFilterOwner,
+ apmHttpFilterStorageType, apmHttpFilterRowStatus,
+ apmHttpIgnoreUnregisteredURLs, apmHttp4xxIsFailure,
+ apmUserDefinedAppParentIndex,
+
+
+
+Waldbusser Standards Track [Page 56]
+
+RFC 3729 APM MIB March 2004
+
+
+ apmUserDefinedAppApplication }
+ STATUS current
+ DESCRIPTION
+ "Objects used for creating and managing user-defined
+ applications."
+ ::= { apmGroups 2 }
+
+apmReportGroup OBJECT-GROUP
+ OBJECTS { apmReportControlDataSource,
+ apmReportControlAggregationType,
+ apmReportControlInterval,
+ apmReportControlRequestedSize,
+ apmReportControlGrantedSize,
+ apmReportControlRequestedReports,
+ apmReportControlGrantedReports,
+ apmReportControlStartTime,
+ apmReportControlReportNumber,
+ apmReportControlDeniedInserts,
+ apmReportControlDroppedFrames,
+ apmReportControlOwner,
+ apmReportControlStorageType,
+ apmReportControlStatus,
+ apmReportTransactionCount,
+ apmReportSuccessfulTransactions,
+ apmReportResponsivenessMean,
+ apmReportResponsivenessMin,
+ apmReportResponsivenessMax,
+ apmReportResponsivenessB1,
+ apmReportResponsivenessB2,
+ apmReportResponsivenessB3,
+ apmReportResponsivenessB4,
+ apmReportResponsivenessB5,
+ apmReportResponsivenessB6,
+ apmReportResponsivenessB7 }
+ STATUS current
+ DESCRIPTION
+ "The apm report group controls the creation and retrieval of
+ reports that aggregate application performance."
+ ::= { apmGroups 3 }
+
+apmTransactionGroup OBJECT-GROUP
+ OBJECTS { apmTransactionResponsiveness,
+ apmTransactionAge, apmTransactionSuccess,
+ apmTransactionsRequestedHistorySize }
+ STATUS current
+ DESCRIPTION
+ "The apm transaction group contains statistics for
+ individual transactions."
+
+
+
+Waldbusser Standards Track [Page 57]
+
+RFC 3729 APM MIB March 2004
+
+
+ ::= { apmGroups 4 }
+
+apmExceptionGroup OBJECT-GROUP
+ OBJECTS { apmExceptionResponsivenessComparison,
+ apmExceptionResponsivenessThreshold,
+ apmExceptionUnsuccessfulException,
+ apmExceptionResponsivenessEvents,
+ apmExceptionUnsuccessfulEvents,
+ apmExceptionOwner, apmExceptionStorageType,
+ apmExceptionStatus, apmThroughputExceptionMinTime,
+ apmNotificationMaxRate }
+ STATUS current
+ DESCRIPTION
+ "The apm exception group causes notifications to be sent
+ whenever transactions are detected that had poor availability
+ or responsiveness."
+ ::= { apmGroups 5 }
+
+apmNotificationGroup NOTIFICATION-GROUP
+ NOTIFICATIONS { apmTransactionResponsivenessAlarm,
+ apmTransactionUnsuccessfulAlarm }
+ STATUS current
+ DESCRIPTION
+ "Notifications sent by an APM MIB agent."
+ ::= { apmGroups 6 }
+
+END
+
+4. Security Considerations
+
+ There are a number of management objects defined in this MIB module
+ with a MAX-ACCESS clause of read-write and/or read-create. Such
+ objects may be considered sensitive or vulnerable in some network
+ environments. The support for SET operations in a non-secure
+ environment without proper protection can have a negative effect on
+ network operations.
+
+ Specifically, most of the read-write and read-create objects in this
+ MIB module may be used to configure an agent to reveal network
+ addresses, application usage information and conversation statistics
+ that may be considered sensitive in some environments.
+
+ Some of the readable objects in this MIB module (i.e., objects with a
+ MAX-ACCESS other than not-accessible) may be considered sensitive or
+ vulnerable in some network environments. It is thus important to
+ control even GET and/or NOTIFY access to these objects and possibly
+ to even encrypt the values of these objects when sending them over
+ the network via SNMP.
+
+
+
+Waldbusser Standards Track [Page 58]
+
+RFC 3729 APM MIB March 2004
+
+
+ Specifically, this MIB contains network addresses, machines names,
+ user names, application usage information, and conversation
+ statistics. Data of this nature should be considered sensitive and
+ the privacy of the users from whom it was gathered protected.
+ Administrators should restrict read access to this data to
+ specifically authorized individuals or agents that recognize the
+ privacy implications of its release. In situations where read access
+ to this data cannot be restricted, it should not be gathered.
+
+ Systems that implement the objects in this MIB module have the
+ capability of measuring the time taken to execute transactions.
+ Depending on the transaction type, some or all of this transaction
+ time may be associated with the time taken to perform security
+ calculations. Such data may help an attacker to use timing attacks
+ to extract secrets from the systems involved in the transactions.
+ See [10] for more information.
+
+ SNMP versions prior to SNMPv3 did not include adequate security.
+ Even if the network itself is secure (for example by using IPSec),
+ even then, there is no control as to who on the secure network is
+ allowed to access and GET/SET (read/change/create/delete) the objects
+ in this MIB module.
+
+ It is RECOMMENDED that implementers consider the security features as
+ provided by the SNMPv3 framework (see [8], section 8), including full
+ support for the SNMPv3 cryptographic mechanisms (for authentication
+ and privacy).
+
+ Further, deployment of SNMP versions prior to SNMPv3 is NOT
+ RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to
+ enable cryptographic security. It is then a customer/operator
+ responsibility to ensure that the SNMP entity giving access to an
+ instance of this MIB module is properly configured to give access to
+ the objects only to those principals (users) that have legitimate
+ rights to indeed GET or SET (change/create/delete) them.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Waldbusser Standards Track [Page 59]
+
+RFC 3729 APM MIB March 2004
+
+
+5. References
+
+5.1. Normative References
+
+ [1] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Structure of
+ Management Information Version 2 (SMIv2)", STD 58, RFC 2578,
+ April 1999.
+
+ [2] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Textual
+ Conventions for SMIv2", STD 58, RFC 2579, April 1999.
+
+ [3] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Conformance
+ Statements for SMIv2", STD 58, RFC 2580, April 1999.
+
+ [4] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB",
+ RFC 2863, June 2000.
+
+ [5] Waldbusser, S., "Remote Network Monitoring Management
+ Information Base Version 2 using SMIv2", RFC 2021, January 1997.
+
+ [6] Bierman, A., Bucci, C. and R. Iddon, "Remote Network Monitoring
+ MIB Protocol Identifiers", RFC 2895, August 2000.
+
+ [7] Waldbusser, S., "Remote Network Monitoring Management
+ Information Base", STD 59, RFC 2819, May 2000.
+
+5.2. Informative References
+
+ [8] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction
+ and Applicability Statements for Internet-Standard Management
+ Framework", RFC 3410, December 2002.
+
+ [9] Berners-Lee, T., Masinter, L. and M. McCahill, "Uniform Resource
+ Locators (URL)", RFC 1738, December 1994.
+
+ [10] Boneh, D. and D. Brumley, "Remote timing attacks are practical",
+ Proceedings of 12th USENIX Security Symposium, August 2003.
+
+6. Author's Address
+
+ Steven Waldbusser
+ EMail: waldbusser@nextbeacon.com
+
+
+
+
+
+
+
+
+
+Waldbusser Standards Track [Page 60]
+
+RFC 3729 APM MIB March 2004
+
+
+7. Full Copyright Statement
+
+ Copyright (C) The Internet Society (2004). This document is subject
+ to the rights, licenses and restrictions contained in BCP 78 and
+ except as set forth therein, the authors retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at ietf-
+ ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+Waldbusser Standards Track [Page 61]
+