rfc-3729

Application Performance Measurement MIB

S. Waldbusser
date2004-03 streamIETF areaops wgrmonmib statusPROPOSED STANDARD pages61 canonicalhttps://www.rfc-editor.org/rfc/rfc3729 doi10.17487/RFC3729
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. [STANDARDS-TRACK]

Extracted elements (26)

design-rationale §2.4.2

A push model is recommended for desktop-based agents because desktops have dynamic addresses, are frequently unavailable due to reboots and user control, and laptops on dialup are only sporadically reachable—all of which make polling unreliable. The push model specifies exact varbind sets for APM Reports, Transactions, and Exceptions.

snmp, measurement

design-rationale §2.2

AppLocalIndex values are drawn from a single shared number space that includes both protocolDirLocalIndex values from RMON2 and apmHttpFilterAppLocalIndex values. This design ensures that the same integer uniquely identifies an application across all APM tables without ambiguity and allows direct cross-table linkage without translation.

snmp

design-rationale §2.1

Four aggregation levels are defined—flows (app/server/client 3-tuple), clients (app/client), servers (app/server), and applications—forming a complete set because aggregating across different applications is explicitly excluded as their performance characteristics and responsiveness metrics are incompatible.

snmp, measurement

design-rationale §2

The APM MIB defines three distinct responsiveness types because different application paradigms require incompatible metrics: transaction-oriented apps use millisecond response time, throughput-oriented apps use kilobits per second, and streaming-oriented apps use a parts-per-million signal quality ratio. Mixing these across applications would make statistical analysis meaningless.

snmp, measurement

design-rationale §2.4.1

The apmAppDirID object allows managers to skip downloading the full application directory when they recognize a known configuration, enabling efficient operation across thousands of distributed APM agents that likely share the same directory. Registrations are scoped to an administrative domain, not globally, permitting custom configurations without a global registry.

snmp, measurement

interoperability-note §3

Every protocolDirLocalIndex value registered by the agent in the RMON2 protocolDirTable automatically occupies the same value in the AppLocalIndex number space. Implementations must ensure no apmHttpFilterAppLocalIndex value collides with any existing protocolDirLocalIndex value, and must track all assigned values jointly.

snmp

interoperability-note §3

Index combinations in apmNameTable involving long network addresses can exceed SNMP's maximum index length of 128 sub-identifiers. Implementations must take care to avoid such combinations when constructing the compound index of ClientID, protocolDirLocalIndex, ClientAddress, and MappingStartTime.

snmp

interoperability-note §3

When HTTP filtering is active, some HTTP transactions may be counted twice—once under a filter-defined virtual application and again under the generic HTTP application. If filter entries overlap, transactions may be counted additional times. Implementors and operators must account for this double-counting in analysis.

snmp, http, measurement

normative-requirement §3 MUST NOT

apmReportControlGrantedSize and apmReportControlGrantedReports must not be lowered by the agent except as a result of a SET to the corresponding Requested objects. The agent must maintain sufficient storage to satisfy the full report size for all reports at all times.

snmp

normative-requirement §3 MUST

apmReportControlInterval must be greater than zero. To prevent drift, any fixed processing delay between reports must be deducted from the interval rather than allowed to accumulate over successive report cycles.

snmp, measurement

normative-requirement §3 MUST

AppLocalIndex values must remain constant across agent re-initializations. If an application is deleted and re-created, it must be assigned a new value not used since the last re-initialization, and values must not be re-used until the next agent restart.

snmp

normative-requirement §2.3 REQUIRED

Conformance to the APM MIB specification requires that collected data match the semantic definitions herein—response time, throughput, streaming responsiveness, and availability—regardless of the measurement methodology (probe-based, client-based, synthetic-transaction, etc.) used. No specific methodology is mandated.

snmp, measurement

normative-requirement §3 MUST

If any of the six apmAppDirResponsivenessBoundary objects is modified, the agent must delete all entries in the apmReportTable. This ensures histogram data is not mixed across incompatible bucket definitions.

snmp, measurement

normative-requirement §2.4.2 MUST

When an agent uses the push model for APM Exceptions, the notification must include apmAppDirID, apmNameTable updates, the relevant apmTransactionEntry, and the apmExceptionEntry. This list supersedes the OBJECTS clauses of the apmTransactionResponsivenessAlarm and apmTransactionUnsuccessfulAlarm notifications.

snmp

normative-requirement §3 MUST

When apmAppDirConfig changes from on(2) to off(1), the agent SHALL delete all related entries in all tables in this MIB Module. The value of apmAppDirConfig must persist across reboots.

snmp

protocol-element §3

apmAppDirTable is the central directory of applications monitored by the agent, indexed by AppLocalIndex and ResponsivenessType. It is read-write (no add/delete via SNMP) and carries six per-application histogram bucket boundaries (apmAppDirResponsivenessBoundary1–6) plus an on/off config flag.

snmp, measurement

protocol-element §3

apmHttpFilterTable creates virtual applications tracking performance of specific web pages or URL sets. Entries are indexed by apmHttpFilterIndex and specify a server address, URL path, and match type (exact, stripTrailingSlash, or prefix). When an entry is created, the agent automatically adds corresponding entries to apmAppDirTable.

snmp, http, measurement

protocol-element §3

apmNameTable records the history of client address mappings, indexed by RmonClientID, protocolDirLocalIndex, network address, and mapping start time. It provides machine name and user name and has defined aging rules ensuring entries referenced by active reports or transactions are not deleted.

snmp, measurement

protocol-element §3

apmReportControlTable parameterizes recurring aggregated reports: it records data source, aggregation type, interval (default 3600 seconds), and negotiated size and count (RequestedSize/GrantedSize, RequestedReports/GrantedReports). It also exposes DeniedInserts and DroppedFrames counters for capacity planning.

snmp, measurement

protocol-element §3

apmUserDefinedAppTable allows the agent to advertise proprietary or custom applications it is monitoring that are not registered in the protocolDirTable. It is read-only and provides a parent protocolDirLocalIndex and a human-readable application name; the agent automatically creates apmAppDirTable entries for each.

snmp, measurement

protocol-element §3

AppLocalIndex is a textual convention (Unsigned32, 1..2147483647) providing a locally unique identifier for an application or application verb. All AppLocalIndex values—whether derived from protocolDirLocalIndex or assigned to HTTP filter entries—must not overlap and must not be reused after an agent restart until the next re-initialization.

snmp

protocol-element §3

RmonClientID is a textual convention (Unsigned32, 0..4294967295) providing a long-lived stable identifier for an end-system that persists across address changes. Agents assign it via an implementation-specific algorithm; if address-to-client tracking is not possible, the ID may map to a client address rather than a distinct machine.

snmp, measurement

protocol-element §3

The seven-bucket histogram per application is configured via apmAppDirResponsivenessBoundary1–6, which define six boundary values separating seven bins. Bucket counts (ResponsivenessBx) are stored per report entry alongside ResponsivenessMean, ResponsivenessMin, and ResponsivenessMax statistics for successful transactions.

snmp, measurement

protocol-element §3

TransactionAggregationType is a textual convention enumerating four aggregation modes: flows(1) aggregates by app/server/client 3-tuple, clients(2) by app/client, servers(3) by app/server, and applications(4) by application alone. This is declared a complete set because cross-application aggregation is not meaningful.

snmp, measurement

security-consideration §4

The APM MIB contains read-write and read-create objects that can significantly affect agent operation, including enabling or disabling application monitoring (apmAppDirConfig), configuring HTTP error classification (apmHttp4xxIsFailure), and filtering monitored URLs (apmHttpIgnoreUnregisteredURLs). Modification of these objects should be performed only by managers acting in an administrator role, and management software must not enforce specific configurations.

snmp, security

security-consideration §4

The apmNameTable records client machine names, user names, and network addresses, constituting personally identifiable information. Agents and managers must apply appropriate SNMP access controls to restrict read access to authorized management stations.

snmp, security, privacy