1 APM-MIB DEFINITIONS ::= BEGIN
3 MODULE-IDENTITY, OBJECT-TYPE,
5 Counter32, Unsigned32 FROM SNMPv2-SMI
6 TEXTUAL-CONVENTION, RowStatus, TimeStamp,
7 TimeInterval, TruthValue, DateAndTime,
8 StorageType FROM SNMPv2-TC
9 MODULE-COMPLIANCE, OBJECT-GROUP,
10 NOTIFICATION-GROUP FROM SNMPv2-CONF
11 SnmpAdminString FROM SNMP-FRAMEWORK-MIB
12 rmon, OwnerString FROM RMON-MIB
13 protocolDirLocalIndex FROM RMON2-MIB;
15 -- Application Performance Measurement MIB
18 LAST-UPDATED "200402190000Z" -- February 19, 2004
19 ORGANIZATION "IETF RMON MIB Working Group"
26 Phone: +1-650-948-6500
28 Email: waldbusser@nextbeacon.com
33 Postal: 170 West Tasman Drive
34 San Jose, CA USA 95134
36 E-mail: abierman@cisco.com
38 Working Group Mailing List: <rmonmib@ietf.org>
39 To subscribe send email to: <rmonmib-request@ietf.org>
42 "The MIB module for measuring application performance
43 as experienced by end-users.
45 Copyright (C) The Internet Society (2004). This version of
46 this MIB module is part of RFC 3729; see the RFC itself for
49 REVISION "200402190000Z" -- February 19, 2004
51 "The original version of this MIB Module, published as
56 apmMibObjects OBJECT IDENTIFIER ::= { apm 1 }
57 apmConformance OBJECT IDENTIFIER ::= { apm 2 }
58 apmCompliances OBJECT IDENTIFIER ::= { apmConformance 1 }
59 apmGroups OBJECT IDENTIFIER ::= { apmConformance 2 }
62 AppLocalIndex ::= TEXTUAL-CONVENTION
65 "A locally arbitrary unique identifier associated with an
66 application or application verb.
68 All objects of type AppLocalIndex are assigned by the agent
69 out of a common number space. In other words, AppLocalIndex
70 values assigned to entries in one table must not overlap with
71 AppLocalIndex values assigned to entries in another
72 table. Further, every protocolDirLocalIndex value registered
73 by the agent automatically assigns the same value out of the
77 AppLocalIndex number space.
79 For example, if the protocolDirLocalIndex values { 1, 3, 5, 7 }
80 have been assigned, and the apmHttpFilterAppLocalIndex values
81 { 6, 8, 9 } have been assigned:
83 - Assignment of new AppLocalIndex values must not use the
84 values { 1, 3, 5, 6, 7, 8, 9 }.
85 - AppLocalIndex values { 1, 3, 5, 7 } are automatically
86 assigned and are associated with the identical value of
87 protocolDirLocalIndex. In particular, an entry in the
88 apmAppDirTable indexed by a value provides further
89 information about a protocol indexed by the same value
90 in the protocolDirTable of RMON2.
92 The value for each supported application must remain constant
93 at least from one re-initialization of the entity's network
94 management system to the next re-initialization, except that
95 if an application is deleted and re-created, it must be
96 re-created with a new value that has not been used since the
97 last re-initialization.
99 The specific value is meaningful only within a given SNMP
100 entity. An AppLocalIndex value must not be re-used until the
102 SYNTAX Unsigned32 (1..2147483647)
104 ProtocolDirNetworkAddress ::= TEXTUAL-CONVENTION
107 "A network level address whose semantics and encoding are
108 specified by an associated protocolDirLocalIndex
109 value. Objects of this type must specify which
110 protocolDirLocalIndex value is used. This value is encoded
111 according to the encoding rules for the identified
112 protocolDirectory entry.
114 For example, if the associated protocolDirLocalIndex indicates
115 an encapsulation of ip, this object is encoded as a length
116 octet of 4, followed by the 4 octets of the ip address,
117 in network byte order.
119 Objects of this type may allow this value to be the zero
120 length string. If so, they must identify they meaning of this
122 SYNTAX OCTET STRING (SIZE(0..255))
124 DataSourceOrZero ::= TEXTUAL-CONVENTION
130 "Identifies the source of the data that the associated
131 function is configured to analyze. This source can be any
132 interface on this device.
134 In order to identify a particular interface, this
135 object shall identify the instance of the ifIndex
136 object, defined in [4], for the desired interface.
138 For example, if an entry were to receive data from
139 interface #1, this object would be set to ifIndex.1.
141 If the source of the data isn't an interface or cannot be
142 localized to an interface, this object would be set to 0.0"
144 REFERENCE "The DataSource textual convention is defined in
146 SYNTAX OBJECT IDENTIFIER
148 RmonClientID ::= TEXTUAL-CONVENTION
151 "A long-lived unique ID assigned to an end-system. This ID is
152 assigned by the agent using an implementation-specific
155 Because a client machine may be assigned multiple addresses
156 over any time period it can be difficult to attribute
157 behavior to a particular client based solely on its
158 address. A ClientID may be assigned to provide a more
159 stable handle for referencing that client. The entity that
160 assigns the ClientID may use various implementation
161 techniques to keep track of a client but if the assigning
162 entity is unable to track client address mappings, it may map
163 client identifiers to client addresses rather than to
164 distinct client machines.
166 This is named ClientID because it helps to solve a problem
167 seen in network clients (servers usually have well-known,
168 long-lived addresses). However, ClientID's may be assigned to
169 any end-system regardless of its role on the network."
170 SYNTAX Unsigned32 (0..4294967295)
173 TransactionAggregationType ::= TEXTUAL-CONVENTION
179 "Specifies one of 4 different techniques for aggregating
182 The metrics for a single transaction are the responsiveness of
183 the transaction and whether the transaction succeeded (a
184 boolean). When such metrics are aggregated in this MIB Module,
185 these metrics are replaced by averages and distributions of
186 responsiveness and availability. The metrics describing
187 aggregates are constant no matter which type of aggregation is
188 being performed. These metrics may be found in the
191 The flows(1) aggregation is the simplest. All transactions
192 that share common application/server/client 3-tuples are
193 aggregated together, resulting in a set of metrics for all
194 such unique 3-tuples.
196 The clients(2) aggregation results in somewhat more
197 aggregation (i.e., fewer resulting records). All transactions
198 that share common application/client tuples are aggregated
199 together, resulting in a set of metrics for all such unique
202 The servers(3) aggregation usually results in still more
203 aggregation (i.e., fewer resulting records). All transactions
204 that share common application/server tuples are aggregated
205 together, resulting in a set of metrics for all such unique
208 The applications(4) aggregation results in the most
209 aggregation (i.e., the fewest resulting records). All
210 transactions that share a common application are aggregated
211 together, resulting in a set of metrics for all such unique
214 Note that it is not meaningful to aggregate applications, as
215 different applications have widely varying characteristics. As a
216 result, this set of aggregations is complete."
218 flows(1), -- Least Aggregation
221 applications(4) -- Most Aggregation
224 -- The APM Application Directory Group
226 -- The Application Directory Table contains a record for every
230 -- application monitored by this agent. This table is also used to
231 -- configure whether or not an application will be measured and which
232 -- bucket boundaries will be used for the application.
234 -- The bucket boundaries define the break-points between bins of a
235 -- histogram analysis for that application. As an example of how this
236 -- works, consider an entry representing response-time for http.
237 -- If the boundaries are set as follows:
238 -- Boundary1: 500 milliseconds
239 -- Boundary2: 1 second
240 -- Boundary3: 2 seconds
245 -- If the following measurements are made (all in milliseconds):
246 -- 377, 8645, 1300, 487, 1405, 775, 1115, 850, 945, 1054, 7745, 9380
248 -- A report run during this interval would report the following
258 apmAppDirTable OBJECT-TYPE
259 SYNTAX SEQUENCE OF ApmAppDirEntry
260 MAX-ACCESS not-accessible
263 "The APM MIB directory of applications and application
264 verbs. The agent will populate this table with all
265 applications/verbs of any responsivenessType it has the
266 capability to monitor. Since the agent populates this table
267 with every entry it has the capability to monitor, the
268 entries in this table are read-write, allowing the management
269 station to modify parameters in this table but not to add new
270 entries or delete entries (however, entries may be
271 disabled). If new entries are added to the apmHttpFilterTable
272 or the apmUserDefinedAppTable, the agent will add the
273 corresponding entries to this table.
275 It is an implementation-dependent matter as to how the agent
276 sets these default parameters. For example, it may leave
277 certain entries in this table 'off(0)' if the agent developer
281 believes that combination will be infrequently used, allowing
282 a manager that needs that capability to set it to 'on(1)'.
284 Some applications are registered in the RMON2 protocol
285 directory and some are registered in other tables in this
286 MIB Module. Regardless of where an application is originally
287 registered, it is assigned an AppLocalIndex value that is the
288 primary index for this table.
290 The contents of this table affect all reports and exceptions
291 generated by this agent. Accordingly, modification of this
292 table should be performed by a manager acting in the role of
293 administrator. In particular, management software should not
294 require or enforce particular configuration of this table - it
295 should reflect the preferences of the site administrator, not
296 the software author. As a practical matter, this requires
297 management software to allow the administrator to configure
298 the values it will use so that it can be adapted to the site
300 ::= { apmMibObjects 1 }
302 apmAppDirEntry OBJECT-TYPE
303 SYNTAX ApmAppDirEntry
304 MAX-ACCESS not-accessible
307 "The APM MIB directory of applications and application
308 verbs. An entry will exist in this table for all applications
309 for which application performance measurement is supported."
310 INDEX { apmAppDirAppLocalIndex,
311 apmAppDirResponsivenessType }
312 ::= { apmAppDirTable 1 }
314 ApmAppDirEntry ::= SEQUENCE {
315 apmAppDirAppLocalIndex AppLocalIndex,
316 apmAppDirResponsivenessType INTEGER,
317 apmAppDirConfig INTEGER,
318 apmAppDirResponsivenessBoundary1 Unsigned32,
319 apmAppDirResponsivenessBoundary2 Unsigned32,
320 apmAppDirResponsivenessBoundary3 Unsigned32,
321 apmAppDirResponsivenessBoundary4 Unsigned32,
322 apmAppDirResponsivenessBoundary5 Unsigned32,
323 apmAppDirResponsivenessBoundary6 Unsigned32
326 apmAppDirAppLocalIndex OBJECT-TYPE
328 MAX-ACCESS not-accessible
334 "The AppLocalIndex assigned for this application Directory
336 ::= { apmAppDirEntry 1 }
338 apmAppDirResponsivenessType OBJECT-TYPE
340 transactionOriented(1),
341 throughputOriented(2),
344 MAX-ACCESS not-accessible
347 "This object describes and configures the agent's support for
348 application performance measurement for this application.
349 There are 3 types of measurements for different types of
352 Transaction-Oriented applications have a fairly constant
353 workload to perform for all transactions. The responsiveness
354 metric for transaction-oriented applications is application
355 response time (from first request to final delivery of
356 service) and is measured in milliseconds. This is
357 commonly referred to as end-user response time.
359 Throughput-Oriented applications have widely varying workloads
360 based on the nature of the client request. In particular,
361 throughput-oriented applications vary widely in the amount of
362 data that must be transported to satisfy the request. The
363 responsiveness metric for throughput-oriented applications is
366 Streaming-Oriented applications deliver data at a constant
367 metered rate of speed regardless of the responsiveness of the
368 networking and computing infrastructure. This constant rate of
369 speed is generally specified to be below (sometimes well
370 below) the nominal capability of the infrastructure. However,
371 when the infrastructures cannot deliver data at this speed,
372 interruption of service or degradation of service can
373 result. The responsiveness metric for streaming-oriented
374 applications is the ratio of time that the service is degraded
375 or interrupted to the total service time. This metric is
376 measured in parts per million.
378 Note that for some applications, measuring more than one
379 responsiveness type may be interesting. For agents that wish
383 to support more than one measurement for a application, they
384 will populate this table with multiple entries for that
385 application, one for each type."
386 ::= { apmAppDirEntry 2 }
388 apmAppDirConfig OBJECT-TYPE
393 MAX-ACCESS read-write
396 "This object describes and configures support for application
397 performance measurement for this application.
399 If the value of this object is on(2), the agent supports
400 measurement of application performance metrics for this
401 application and is configured to measure such metrics for all
402 APM MIB functions and all interfaces. If the value of this
403 object is off(1), the agent supports measurement of
404 application performance for this application but is configured
405 to not measure these metrics for any APM MIB functions or
406 interfaces. Whenever this value changes from on(2) to off(1),
407 the agent shall delete all related entries in all tables in
410 The value of this object must persist across reboots."
411 ::= { apmAppDirEntry 3 }
413 apmAppDirResponsivenessBoundary1 OBJECT-TYPE
415 MAX-ACCESS read-write
418 "The boundary value between bucket1 and bucket 2. If this
419 value is modified, all entries in the apmReportTable must be
420 deleted by the agent.
422 The value of this object must persist across reboots."
423 ::= { apmAppDirEntry 4 }
425 apmAppDirResponsivenessBoundary2 OBJECT-TYPE
427 MAX-ACCESS read-write
430 "The boundary value between bucket2 and bucket 3. If this
434 value is modified, all entries in the apmReportTable must be
435 deleted by the agent.
437 The value of this object must persist across reboots."
438 ::= { apmAppDirEntry 5 }
440 apmAppDirResponsivenessBoundary3 OBJECT-TYPE
442 MAX-ACCESS read-write
445 "The boundary value between bucket3 and bucket 4. If this
446 value is modified, all entries in the apmReportTable must be
447 deleted by the agent.
449 The value of this object must persist across reboots."
450 ::= { apmAppDirEntry 6 }
452 apmAppDirResponsivenessBoundary4 OBJECT-TYPE
454 MAX-ACCESS read-write
457 "The boundary value between bucket4 and bucket 5. If this
458 value is modified, all entries in the apmReportTable must be
459 deleted by the agent.
461 The value of this object must persist across reboots."
462 ::= { apmAppDirEntry 7 }
464 apmAppDirResponsivenessBoundary5 OBJECT-TYPE
466 MAX-ACCESS read-write
469 "The boundary value between bucket5 and bucket 6. If this
470 value is modified, all entries in the apmReportTable must be
471 deleted by the agent.
473 The value of this object must persist across reboots."
474 ::= { apmAppDirEntry 8 }
476 apmAppDirResponsivenessBoundary6 OBJECT-TYPE
478 MAX-ACCESS read-write
481 "The boundary value between bucket6 and bucket 7. If this
485 value is modified, all entries in the apmReportTable must be
486 deleted by the agent.
488 The value of this object must persist across reboots."
489 ::= { apmAppDirEntry 9 }
491 -- Scalars related to the Application Directory table
493 apmBucketBoundaryLastChange OBJECT-TYPE
498 "The value of sysUpTime the last time that any bucket boundary
499 in any appDirEntry was changed. This object can help to
500 determine if two managers are both trying to enforce different
501 configurations of this table."
502 ::= { apmMibObjects 2 }
504 apmAppDirID OBJECT-TYPE
505 SYNTAX OBJECT IDENTIFIER
506 MAX-ACCESS read-write
509 "This object allows managers to avoid downloading application
510 directory information when the directory is set to a known
511 (usually fixed) configuration.
513 If the value of this object isn't 0.0, it signifies
514 that the entire contents of the apmAppDirTable,
515 apmHttpFilterTable, apmUserDefinedAppTable and
516 protocolDirTable are equal to a known state identified
517 by the value of this object. If a manager recognizes this
518 value as identifying a directory configuration it has a local
519 copy of, it may use this local copy rather than downloading
520 these tables. Note that it may have downloaded this local copy
521 (and the ID) from another agent and used this copy for all
522 other agents that advertised the same ID.
524 If an agent recognizes that the entire contents of the
525 apmAppDirTable, apmHttpFilterTable,
526 apmUserDefinedAppTable and protocolDirTable are equal to
527 a known state to which an ID has been assigned, it should set
528 this object to that ID.
530 In many cases when this feature is used, the application
531 directory information will be in read-only memory and thus the
532 tables may not be modified via SNMP requests. In the event
536 that the tables are writable and a modification is made, the
537 agent is responsible for setting this object to 0.0 if it
538 cannot determine that the state is equal to a known state.
540 An agent is not obligated to recognize and advertise all such
541 registered states as it may not have knowledge of all states.
542 Thus, a manager may encounter agents whose DirectoryID value
543 is 0.0 even though the contents of the directory were equal to
546 Note that the contents of those tables includes the
547 protocolDirLocalIndex and appLocalIndex values. In other
548 words, these values can't be assigned randomly on each agent,
549 but must be equal to values that are part of the known
550 state. While it is possible for a manager to download
551 application directory details using SNMP and to set the
552 appropriate directoryID, the manager would need to have some
553 scheme to ensure consistent values of LocalIndex variables
554 from agent to agent. Such schemes are outside the scope of
557 Application directory registrations are unique within an
558 administrative domain.
560 Typically these registrations will be made by an agent
561 software developer who will set the application directory
562 tables to a read-only state and assign a DirectoryID to that
563 state. Thus, all agents running this software would share the
564 same DirectoryID. As the application directory might change
565 from one software release to the next, the developer may
566 register different DirectoryID's for each software release.
568 A customer could also create a site-wide application directory
569 configuration and assign a DirectoryID to that configuration
570 as long as consistent values of LocalIndex variables can be
573 The value of this object must persist across reboots."
574 ::= { apmMibObjects 3 }
576 -- APM HTTP Filter Table
578 -- The HTTP Filter Table creates virtual applications which measure the
579 -- performance of certain web pages or sets of web pages. Some
580 -- circumstances where this is particularly useful are:
582 -- - An Intranet or ASP scenario where a business application is
583 -- running on one or more web pages or scripts.
587 -- (i.e., /expense/submit.cgi?employeeID=3426&...)
588 -- - A web-hosting scenario where one wants to measure the
589 -- service level for a particular customer
590 -- - An e-commerce scenario where the performance of certain
591 -- pages needs to be monitored more closely.
592 -- (i.e., shopping cart, shipping, credit card authorization)
594 apmHttpFilterTable OBJECT-TYPE
595 SYNTAX SEQUENCE OF ApmHttpFilterEntry
596 MAX-ACCESS not-accessible
599 "A table that creates virtual applications which measure the
600 performance of certain web pages or sets of web pages.
602 When an entry is added to this table, the agent will
603 automatically create one or more entries in the
604 apmAppDirTable (one for each responsivenessType it is
605 capable of measuring).
607 Note that when entries exist in this table some HTTP
608 transactions will be summarized twice: in applications
609 represented here as well as the HTTP application. If entries
610 in this table overlap, these transactions may be summarized
613 The contents of this table affect all reports and exceptions
614 generated by this agent. Accordingly, modification of this
615 table should be performed by a manager acting in the role of
616 administrator. In particular, management software should not
617 require or enforce particular configuration of this table - it
618 should reflect the preferences of the site administrator, not
619 the software author."
620 ::= { apmMibObjects 4 }
622 apmHttpFilterEntry OBJECT-TYPE
623 SYNTAX ApmHttpFilterEntry
624 MAX-ACCESS not-accessible
627 "A virtual application which measure the performance of certain
628 web pages or sets of web pages."
629 INDEX { apmHttpFilterIndex }
630 ::= { apmHttpFilterTable 1 }
632 ApmHttpFilterEntry ::= SEQUENCE {
633 apmHttpFilterIndex Unsigned32,
634 apmHttpFilterAppLocalIndex AppLocalIndex,
638 apmHttpFilterServerProtocol Unsigned32,
639 apmHttpFilterServerAddress ProtocolDirNetworkAddress,
640 apmHttpFilterURLPath OCTET STRING,
641 apmHttpFilterMatchType INTEGER,
642 apmHttpFilterOwner OwnerString,
643 apmHttpFilterStorageType StorageType,
644 apmHttpFilterRowStatus RowStatus
647 apmHttpFilterIndex OBJECT-TYPE
648 SYNTAX Unsigned32 (0..65535)
649 MAX-ACCESS not-accessible
652 "An index that uniquely identifies an entry in the
654 ::= { apmHttpFilterEntry 1 }
656 apmHttpFilterAppLocalIndex OBJECT-TYPE
661 "The AppLocalIndex that represents HTTP transactions
662 that match this entry.
664 This object is read-only. A value is created by the agent from
665 an unused AppLocalIndex value when this apmHttpFilterEntry is
667 ::= { apmHttpFilterEntry 2 }
669 apmHttpFilterServerProtocol OBJECT-TYPE
670 SYNTAX Unsigned32 (1..2147483647)
671 MAX-ACCESS read-create
674 "The protocolDirLocalIndex value of the network level protocol
675 of the apmHttpFilterServerAddress."
676 ::= { apmHttpFilterEntry 3 }
678 apmHttpFilterServerAddress OBJECT-TYPE
679 SYNTAX ProtocolDirNetworkAddress
680 MAX-ACCESS read-create
683 "This entry will only represent transactions coming from the
684 network address specified in this object.
689 This is represented as an octet string with
690 specific semantics and length as identified
691 by the associated apmHttpFilterServerProtocol object.
693 If this object is the zero-length string, then this entry will
694 match one of the addresses represented by the 'host' component
695 of the associated apmHttpFilterURLPath object, where the
696 format if a URL [9] is
697 http://<host>:<port>/<path>?<searchpart>."
698 ::= { apmHttpFilterEntry 4 }
700 apmHttpFilterURLPath OBJECT-TYPE
701 SYNTAX OCTET STRING (SIZE(0..65535))
702 MAX-ACCESS read-create
705 "This entry will only represent HTTP transactions
706 where the URL path component in the request matches this
707 value. This value represents the requested path regardless of
708 any substitution that the server might perform.
710 Prior to the matching, the URL is stripped of any server
711 address or DNS name and consists solely of the path name on
714 If the length of this object is zero, then this entry will
715 match if the associated apmHttpFilterServerAddress match. If
716 the length of that object is also zero, then this entry will
719 The value of the associated apmHttpFilterMatchType dictates
720 the type of matching that will be attempted."
721 ::= { apmHttpFilterEntry 5 }
723 apmHttpFilterMatchType OBJECT-TYPE
726 stripTrailingSlash(2),
729 MAX-ACCESS read-create
732 "The matching algorithm used to compare the URL pathname.
734 If the value is exact(1), then the pathname component will be
735 compared with the associated apmHttpFilterURLPath and
736 will only be associated with this entry if it matches exactly.
740 If the value is stripTrailingSlash(2), then the pathname
741 component will be compared with the associated
742 apmHttpFilterURLPath and will only be associated with this
743 entry if it matches exactly or if the pathname ends with a '/'
744 symbol and matches apmHttpFilterURLPath if the '/' symbol is
745 removed from the pathname. This option exists for those paths
746 where an optional trailing slash is possible but for which a
747 prefix match would be too broad.
749 If the value is prefix(3), then the pathname component will be
750 compared with the associated apmHttpFilterURLPath and will
751 only be associated with this entry if the beginning of the
752 pathname matches every octet of this value. Octets that extend
753 beyond the length of this value are ignored."
754 ::= { apmHttpFilterEntry 6 }
756 apmHttpFilterOwner OBJECT-TYPE
758 MAX-ACCESS read-create
761 "The entity that configured this entry and is
762 therefore using the resources assigned to it."
763 ::= { apmHttpFilterEntry 7 }
765 apmHttpFilterStorageType OBJECT-TYPE
767 MAX-ACCESS read-create
770 "The storage type of this apmHttpFilterEntry. If the value of
771 this object is 'permanent', no objects in this row need to be
773 ::= { apmHttpFilterEntry 8 }
775 apmHttpFilterRowStatus OBJECT-TYPE
777 MAX-ACCESS read-create
780 "The status of this apmHttpFilterEntry. No objects in this row
781 may be modified while the row's status is 'active'."
782 ::= { apmHttpFilterEntry 9 }
784 apmHttpIgnoreUnregisteredURLs OBJECT-TYPE
786 MAX-ACCESS read-write
792 "When true, APM measurements of HTTP transactions will only
793 measure transactions relating to URLs that match a filter in
794 the apmHttpFilterTable. Thus, measurements for the HTTP
795 application will present aggregated statistics for
796 URL-matching HTTP transactions and measurements for the HTTP
797 GET application verb will present aggregated statistics for
798 URL-matching HTTP GET transactions.
800 This will be used in environments that wish to monitor only
801 targeted URLs and to ignore large volumes of internet web
804 This object affects all APM reports and exceptions generated
805 by this agent. Accordingly, modification of this object should
806 be performed by a manager acting in the role of
807 administrator. In particular, management software should not
808 require or enforce particular configuration of this object -
809 it should reflect the preferences of the site administrator,
810 not the software author.
812 The value of this object must persist across reboots."
813 ::= { apmMibObjects 5 }
815 apmHttp4xxIsFailure OBJECT-TYPE
817 MAX-ACCESS read-write
820 "When true, this agent will recognize HTTP errors in the range
821 of 400 through 499 and will treat them as unavailable
822 transactions. When false or when this object isn't supported,
823 they will be treated as successful transactions.
825 This object allows such error pages to be tracked at the
826 possible expense of having user typos treated as poor service
827 on the part of the web server.
829 This object affects all reports and exceptions generated by
830 this agent. Accordingly, modification of this object should be
831 performed by a manager acting in the role of administrator. In
832 particular, management software should not require or enforce
833 particular configuration of this object - it should reflect
834 the preferences of the site administrator, not the software
837 The value of this object must persist across reboots."
838 ::= { apmMibObjects 6 }
842 -- The APM User-Defined Application Table
844 -- Many application protocols will never be registered with a
845 -- standards body (and thus included in a protocol directory standard)
846 -- because they are custom, in-house or proprietary
847 -- applications. Nevertheless, implementation strategies exist for
848 -- monitoring the end-user experience of these applications.
850 -- This read-only table provides a means for the agent to advertise
851 -- which user-defined applications it is monitoring and to associate
852 -- each with an AppLocalIndex value. It is an implementation-dependent
853 -- matter as to how the agent learns how to monitor these
856 apmUserDefinedAppTable OBJECT-TYPE
857 SYNTAX SEQUENCE OF ApmUserDefinedAppEntry
858 MAX-ACCESS not-accessible
861 "A table that advertises user-defined applications that the
864 The agent will automatically create one or more entries in the
865 apmAppDirTable (one for each responsivenessType it is
866 capable of measuring) for each entry in this table.
868 Note that when entries exist in this table some
869 transactions can be summarized more than once if there is
870 overlap between applications defined here and applications
871 defined in the protocol directory or in the httpFilter table."
872 ::= { apmMibObjects 7 }
874 apmUserDefinedAppEntry OBJECT-TYPE
875 SYNTAX ApmUserDefinedAppEntry
876 MAX-ACCESS not-accessible
879 "A user-defined application that the agent is measuring, along
880 with its AppLocalIndex assignment.
882 The apmAppDirAppLocalIndex value in the index identifies
883 the agent-assigned AppLocalIndex value for this user-defined
885 INDEX { apmAppDirAppLocalIndex }
886 ::= { apmUserDefinedAppTable 1 }
888 ApmUserDefinedAppEntry ::= SEQUENCE {
889 apmUserDefinedAppParentIndex Unsigned32,
893 apmUserDefinedAppApplication SnmpAdminString
896 apmUserDefinedAppParentIndex OBJECT-TYPE
897 SYNTAX Unsigned32 (1..2147483647)
901 "The protocolDirLocalIndex value of the highest-layer
902 protocol defined in the protocolDirTable that this
903 application is a child of."
904 ::= { apmUserDefinedAppEntry 1 }
906 apmUserDefinedAppApplication OBJECT-TYPE
907 SYNTAX SnmpAdminString
911 "A human readable descriptive tag for this application."
912 ::= { apmUserDefinedAppEntry 2 }
914 -- The APM Name Table
916 apmNameTable OBJECT-TYPE
917 SYNTAX SEQUENCE OF ApmNameEntry
918 MAX-ACCESS not-accessible
921 "A client machine may have multiple addresses during a period
922 of monitoring. The apmNameTable assigns a long-lived
923 identifier to a client and records what addresses were
924 assigned to that client for periods of time. Various
925 implementation techniques exist for tracking this mapping but
926 if an agent is unable to track client address mappings, it may
927 map client identifiers to client addresses rather than to
928 distinct client machines.
930 A particular apmNameClientID should be a constant attribute of
931 a particular client. When available, the agent may also record
932 the machine name and/or user name which may be valuable for
933 displaying to humans. The apmNameMachineName and
934 apmNameUserName are relatively constant, changing only if
935 these attributes actually change on the client.
937 The agent will store a historical log of these entries, aging
938 out old entries as the log becomes too large. Since this table
939 contains information vital to the interpretation of other
940 tables (e.g., the apmReportTable), the agent should ensure that
944 the log doesn't age out entries that would be referenced by
945 data in those tables.
947 Note that an entry for a clientID is active from its
948 StartTime until the StartTime of another entry (for the same
949 clientID) that supersedes it, or 'now' if none supersede
950 it. Therefore, if a clientID only has a single entry, it is by
951 definition very new and should never be aged out. No entry for
952 a clientID should be aged out unless it has been updated by a
953 new entry for the client (i.e., with an updated address) and
954 only if the new entry is 'old' enough.
956 To determine how old is old enough, compute the maximum value
957 of Interval * (NumReports + 1) of all entries in the
958 apmReportControlTable (the '+ 1' is to allow a reasonable
959 period of time for the report to be downloaded). Then take the
960 larger of this value and the age in seconds of the oldest
961 entry in the current transaction table. If an entry for a
962 clientID is superseded by another entry whose StartTime is
963 more than this many seconds ago, then the older entry may be
965 ::= { apmMibObjects 8 }
967 apmNameEntry OBJECT-TYPE
969 MAX-ACCESS not-accessible
972 "An entry in the APM name table. An entry exists for each
973 period of time that a client has been associated with a
976 The protocolDirLocalIndex value in the index identifies
977 the network layer protocol for the ClientAddress for this
980 Note that some combinations of index values may result in an
981 index that exceeds 128 sub-identifiers in length which exceeds
982 the maximum for the SNMP protocol. Implementations should take
983 care to avoid such combinations."
984 INDEX { apmNameClientID,
985 protocolDirLocalIndex, apmNameClientAddress,
986 apmNameMappingStartTime }
987 ::= { apmNameTable 1 }
989 ApmNameEntry ::= SEQUENCE {
990 apmNameClientID RmonClientID,
991 apmNameClientAddress ProtocolDirNetworkAddress,
995 apmNameMappingStartTime DateAndTime,
996 apmNameMachineName SnmpAdminString,
997 apmNameUserName SnmpAdminString
1000 apmNameClientID OBJECT-TYPE
1002 MAX-ACCESS not-accessible
1005 "A unique ID assigned to the machine represented by this
1006 mapping. This ID is assigned by the agent using an
1007 implementation-specific algorithm."
1008 ::= { apmNameEntry 1 }
1010 apmNameClientAddress OBJECT-TYPE
1011 SYNTAX ProtocolDirNetworkAddress (SIZE(1..255))
1012 MAX-ACCESS not-accessible
1015 "The network client address for this client when this mapping
1018 This is represented as an octet string with specific semantics
1019 and length as identified by the protocolDirLocalIndex
1020 component of the index. This object may not be the zero length
1023 Since this object is an index variable, it is encoded in the
1024 index according to the index encoding rules. For example, if
1025 the protocolDirLocalIndex component of the index indicates an
1026 encapsulation of ip, this object is encoded as a length octet
1027 of 4, followed by the 4 octets of the ip address, in network
1028 byte order. Care should be taken to avoid values of this
1029 object that, in conjunction with the other index variables,
1030 would result in an index longer than SNMP's maximum of 128
1032 ::= { apmNameEntry 2 }
1034 apmNameMappingStartTime OBJECT-TYPE
1036 MAX-ACCESS not-accessible
1039 "The time that the agent first discovered this mapping
1041 ::= { apmNameEntry 3 }
1046 apmNameMachineName OBJECT-TYPE
1047 SYNTAX SnmpAdminString
1048 MAX-ACCESS read-only
1051 "The human readable name of the client machine.
1053 If the client has no machine name or the agent is
1054 unable to learn the machine name, this object will be
1055 a zero-length string."
1056 ::= { apmNameEntry 4 }
1058 apmNameUserName OBJECT-TYPE
1059 SYNTAX SnmpAdminString
1060 MAX-ACCESS read-only
1063 "The human readable name of a human user using the client
1064 machine. If more than one user name are available
1065 simultaneously, it is an implementation-dependent matter as to
1066 which is used here. However, if the user name changes, this
1067 object should change to reflect that change.
1069 Non-human user names like 'root' or 'administrator' aren't
1070 intended as values for this object. If the client has no
1071 recorded user name or the agent is unable to learn a user
1072 name, this object will be a zero-length string."
1073 ::= { apmNameEntry 5 }
1075 -- The APM Report Group
1077 apmReportControlTable OBJECT-TYPE
1078 SYNTAX SEQUENCE OF ApmReportControlEntry
1079 MAX-ACCESS not-accessible
1082 "Parameters that control the creation of a set of reports that
1083 aggregate application performance."
1084 ::= { apmMibObjects 9 }
1086 apmReportControlEntry OBJECT-TYPE
1087 SYNTAX ApmReportControlEntry
1088 MAX-ACCESS not-accessible
1091 "A conceptual row in the apmReportControlTable.
1093 An example of the indexing of this table is
1097 apmReportControlInterval.3"
1098 INDEX { apmReportControlIndex }
1099 ::= { apmReportControlTable 1 }
1101 ApmReportControlEntry ::= SEQUENCE {
1102 apmReportControlIndex Unsigned32,
1103 apmReportControlDataSource DataSourceOrZero,
1104 apmReportControlAggregationType TransactionAggregationType,
1105 apmReportControlInterval Unsigned32,
1106 apmReportControlRequestedSize Unsigned32,
1107 apmReportControlGrantedSize Unsigned32,
1108 apmReportControlRequestedReports Unsigned32,
1109 apmReportControlGrantedReports Unsigned32,
1110 apmReportControlStartTime TimeStamp,
1111 apmReportControlReportNumber Unsigned32,
1112 apmReportControlDeniedInserts Counter32,
1113 apmReportControlDroppedFrames Counter32,
1114 apmReportControlOwner OwnerString,
1115 apmReportControlStorageType StorageType,
1116 apmReportControlStatus RowStatus
1120 apmReportControlIndex OBJECT-TYPE
1121 SYNTAX Unsigned32 (1..65535)
1122 MAX-ACCESS not-accessible
1125 "An index that uniquely identifies an entry in the
1126 apmReportControlTable. Each such entry defines a unique
1127 report whose results are placed in the apmReportTable on
1128 behalf of this apmReportControlEntry."
1129 ::= { apmReportControlEntry 1 }
1131 apmReportControlDataSource OBJECT-TYPE
1132 SYNTAX DataSourceOrZero
1133 MAX-ACCESS read-create
1136 "The source of the data for APM Reports generated on
1137 behalf of this apmReportControlEntry.
1139 If the measurement is being performed by a probe, this should
1140 be set to interface or port where data was received for
1141 analysis. If the measurement isn't being performed by a probe,
1142 this should be set to the primary interface over which the
1143 measurement is being performed. If the measurement isn't being
1144 performed by a probe and there is no primary interface or this
1148 information isn't known, this object should be set to 0.0.
1150 This object may not be modified if the associated
1151 apmReportControlStatus object is equal to active(1)."
1152 ::= { apmReportControlEntry 2 }
1154 apmReportControlAggregationType OBJECT-TYPE
1155 SYNTAX TransactionAggregationType
1162 MAX-ACCESS read-create
1165 "The type of aggregation being performed for this set of
1168 The metrics for a single transaction are the responsiveness of
1169 the transaction and whether the transaction succeeded (a
1170 boolean). When such metrics are aggregated in this MIB Module,
1171 these metrics are replaced by averages and distributions of
1172 responsiveness and availability. The metrics describing
1173 aggregates are constant no matter which type of aggregation is
1174 being performed. These metrics may be found in the
1177 The flows(1) aggregation is the simplest. All transactions
1178 that share common application/server/client 3-tuples are
1179 aggregated together, resulting in a set of metrics for all
1180 such unique 3-tuples.
1182 The clients(2) aggregation results in somewhat more
1183 aggregation (i.e., fewer resulting records). All transactions
1184 that share common application/client tuples are aggregated
1185 together, resulting in a set of metrics for all such unique
1188 The servers(3) aggregation usually results in still more
1189 aggregation (i.e., fewer resulting records). All transactions
1190 that share common application/server tuples are aggregated
1191 together, resulting in a set of metrics for all such unique
1194 The applications(4) aggregation results in the most
1195 aggregation (i.e., the fewest resulting records). All
1199 transactions that share a common application are aggregated
1200 together, resulting in a set of metrics for all such unique
1203 Note that it is not meaningful to aggregate applications, as
1204 different applications have widely varying characteristics.
1205 As a result, this set of aggregations is complete.
1207 This object may not be modified if the associated
1208 apmReportControlStatus object is equal to active(1)."
1209 ::= { apmReportControlEntry 3 }
1211 apmReportControlInterval OBJECT-TYPE
1214 MAX-ACCESS read-create
1217 "The interval in seconds over which data is accumulated before
1218 being aggregated into a report in the apmReportTable. All
1219 reports with the same apmReportControlIndex will be based on
1220 the same interval. This object must be greater than zero.
1222 Many users desire that these reports be synchronized to within
1223 seconds of the beginning of the hour because the results may
1224 be correlated more meaningfully to business behavior and so
1225 that data from multiple agents is aggregated over the same
1226 time periods. Thus management software may take extra effort
1227 to synchronize reports to the beginning of the hour and to one
1228 another. However, the agent must not allow reports to 'drift'
1229 over time as they will quickly become unsynchronized. In
1230 particular, if there is any fixed processing delay between
1231 reports, the reports should deduct this time from the interval
1232 so that reports don't drift.
1234 This object may not be modified if the associated
1235 apmReportControlStatus object is equal to active(1)."
1237 ::= { apmReportControlEntry 4 }
1239 apmReportControlRequestedSize OBJECT-TYPE
1241 MAX-ACCESS read-create
1244 "The number of entries requested to be allocated for each
1245 report generated on behalf of this entry."
1246 ::= { apmReportControlEntry 5 }
1250 apmReportControlGrantedSize OBJECT-TYPE
1252 MAX-ACCESS read-only
1255 "The number of entries per report the agent has allocated
1256 based on the requested amount in apmReportControlRequestedSize.
1257 Since multiple reports are saved, the total number of entries
1258 allocated will be this number multiplied by the value of
1259 apmReportControlGrantedReports, or 1 if that object doesn't
1262 When the associated apmReportControlRequestedSize object is
1263 created or modified, the agent should set this object as
1264 closely to the requested value as is possible for the
1265 particular implementation and available resources. When
1266 considering resources available, the agent must consider its
1267 ability to allocate this many entries for all reports.
1269 Note that while the actual number of entries stored in the
1270 reports may fluctuate due to changing conditions, the agent
1271 must continue to have storage available to satisfy the full
1272 report size for all reports when necessary. Further, the agent
1273 must not lower this value except as a result of a set to the
1274 associated apmReportControlRequestedSize object."
1275 ::= { apmReportControlEntry 6 }
1277 apmReportControlRequestedReports OBJECT-TYPE
1278 SYNTAX Unsigned32 (0..65535)
1279 MAX-ACCESS read-create
1282 "The number of saved reports requested to be allocated on
1283 behalf of this entry."
1284 ::= { apmReportControlEntry 7 }
1286 apmReportControlGrantedReports OBJECT-TYPE
1287 SYNTAX Unsigned32 (0..65535)
1288 MAX-ACCESS read-only
1291 "The number of saved reports the agent has allocated
1292 based on the requested amount in
1293 apmReportControlRequestedReports. Since each report can have
1294 many entries, the total number of entries allocated will be
1295 this number multiplied by the value of
1296 apmReportControlGrantedSize, or 1 if that object doesn't
1301 When the associated apmReportControlRequestedReports object is
1302 created or modified, the agent should set this object as
1303 closely to the requested value as is possible for the
1304 particular implementation and available resources. When
1305 considering resources available, the agent must consider its
1306 ability to allocate this many reports each with the number of
1307 entries represented by apmReportControlGrantedSize, or 1 if
1308 that object doesn't exist.
1310 Note that while the storage required for each report may
1311 fluctuate due to changing conditions, the agent must continue
1312 to have storage available to satisfy the full report size for
1313 all reports when necessary. Further, the agent must not lower
1314 this value except as a result of a set to the associated
1315 apmReportControlRequestedSize object."
1316 ::= { apmReportControlEntry 8 }
1318 apmReportControlStartTime OBJECT-TYPE
1320 MAX-ACCESS read-only
1323 "The value of sysUpTime when the system began processing the
1324 report in progress. Note that the report in progress is not
1327 This object may be used by the management station to figure
1328 out the start time for all previous reports saved for this
1329 apmReportControlEntry, as reports are started at fixed
1331 ::= { apmReportControlEntry 9 }
1333 apmReportControlReportNumber OBJECT-TYPE
1334 SYNTAX Unsigned32 (1..4294967295)
1335 MAX-ACCESS read-only
1338 "The number of the report in progress. When an
1339 apmReportControlEntry is activated, the first report will be
1341 ::= { apmReportControlEntry 10 }
1343 apmReportControlDeniedInserts OBJECT-TYPE
1345 MAX-ACCESS read-only
1348 "The number of failed attempts to add an entry to reports for
1352 this apmReportControlEntry because the number of entries
1353 would have exceeded apmReportControlGrantedSize.
1355 This number is valuable in determining if enough entries have
1356 been allocated for reports in light of fluctuating network
1357 usage. Note that since an entry that is denied will often be
1358 attempted again, this number will not predict the exact number
1359 of additional entries needed, but can be used to understand
1360 the relative magnitude of the problem.
1362 Also note that there is no ordering specified for the entries
1363 in the report, thus there are no rules for which entries will
1364 be omitted when not enough entries are available. As a
1365 consequence, the agent is not required to delete 'least
1366 valuable' entries first."
1367 ::= { apmReportControlEntry 11 }
1369 apmReportControlDroppedFrames OBJECT-TYPE
1371 MAX-ACCESS read-only
1374 "The total number of frames which were received by the agent
1375 and therefore not accounted for in the *StatsDropEvents, but
1376 for which the agent chose not to count for this entry for
1377 whatever reason. Most often, this event occurs when the agent
1378 is out of some resources and decides to shed load from this
1381 This count does not include packets that were not counted
1382 because they had MAC-layer errors.
1384 This counter is only relevant if this apm report is based on
1385 a data source whose collection methodology is based on
1386 analyzing network traffic.
1388 Note that if the apmReportTables are inactive because no
1389 applications are enabled in the application directory, this
1392 Note that, unlike the dropEvents counter, this number is the
1393 exact number of frames dropped."
1394 ::= { apmReportControlEntry 12 }
1396 apmReportControlOwner OBJECT-TYPE
1398 MAX-ACCESS read-create
1404 "The entity that configured this entry and is
1405 therefore using the resources assigned to it."
1406 ::= { apmReportControlEntry 13 }
1408 apmReportControlStorageType OBJECT-TYPE
1410 MAX-ACCESS read-create
1413 "The storage type of this apmReportControlEntry. If the value
1414 of this object is 'permanent', no objects in this row need to
1416 ::= { apmReportControlEntry 14 }
1418 apmReportControlStatus OBJECT-TYPE
1420 MAX-ACCESS read-create
1423 "The status of this apmReportControlEntry.
1425 An entry may not exist in the active state unless all
1426 objects in the entry have an appropriate value. The only
1427 objects in the entry that may be modified while the entry is
1428 in the active state are apmReportControlRequestedSize and
1429 apmReportControlRequestedReports.
1431 If this object is not equal to active(1), all
1432 associated entries in the apmReportTable shall be deleted
1434 ::= { apmReportControlEntry 15 }
1436 -- The APM Report Table
1438 apmReportTable OBJECT-TYPE
1439 SYNTAX SEQUENCE OF ApmReportEntry
1440 MAX-ACCESS not-accessible
1443 "The data resulting from aggregated APM reports. Consult the
1444 definition of apmReportControlAggregationType for the
1445 definition of the various types of aggregations."
1446 ::= { apmMibObjects 10 }
1448 apmReportEntry OBJECT-TYPE
1449 SYNTAX ApmReportEntry
1450 MAX-ACCESS not-accessible
1456 "A conceptual row in the apmReportTable.
1457 The apmReportControlIndex value in the index identifies the
1458 apmReportControlEntry on whose behalf this entry was created.
1459 The apmReportIndex value in the index identifies which report
1460 (in the series of reports) this entry is a part of.
1461 The apmAppDirAppLocalIndex value in the index identifies
1462 the common application of the transactions aggregated in this
1464 The apmAppDirResponsivenessType value in the index
1465 identifies the type of responsiveness metric reported by
1466 this entry and uniquely identifies this entry when more
1467 than one responsiveness metric is measured for a flow.
1468 Entries will only exist in this table for those
1469 combinations of AppLocalIndex and ResponsivenessType
1470 that are configured 'on(1)'.
1471 The protocolDirLocalIndex value in the index identifies
1472 the network layer protocol of the apmReportServerAddress.
1473 When the associated apmReportControlAggregationType value is
1474 equal to applications(4) or clients(2), this
1475 protocolDirLocalIndex value will equal 0.
1476 The apmReportServerAddress value in the index identifies the
1477 network layer address of the server in transactions aggregated
1479 The apmNameClientID value in the index identifies the
1480 client in transactions aggregated in this entry. If the
1481 associated apmReportControlAggregationType is equal to
1482 applications(4) or servers(3), then this protocolDirLocalIndex
1485 An example of the indexing of this entry is
1486 apmReportTransactionCount.3.15.3.1.8.4.192.168.1.2.3232235788
1488 Note that some combinations of index values may result in an
1489 index that exceeds 128 sub-identifiers in length which exceeds
1490 the maximum for the SNMP protocol. Implementations should take
1491 care to avoid such combinations."
1492 INDEX { apmReportControlIndex, apmReportIndex,
1493 apmAppDirAppLocalIndex,
1494 apmAppDirResponsivenessType,
1495 protocolDirLocalIndex, apmReportServerAddress,
1497 ::= { apmReportTable 1 }
1499 ApmReportEntry ::= SEQUENCE {
1500 apmReportIndex Unsigned32,
1501 apmReportServerAddress ProtocolDirNetworkAddress,
1505 apmReportTransactionCount Unsigned32,
1506 apmReportSuccessfulTransactions Unsigned32,
1507 apmReportResponsivenessMean Unsigned32,
1508 apmReportResponsivenessMin Unsigned32,
1509 apmReportResponsivenessMax Unsigned32,
1510 apmReportResponsivenessB1 Unsigned32,
1511 apmReportResponsivenessB2 Unsigned32,
1512 apmReportResponsivenessB3 Unsigned32,
1513 apmReportResponsivenessB4 Unsigned32,
1514 apmReportResponsivenessB5 Unsigned32,
1515 apmReportResponsivenessB6 Unsigned32,
1516 apmReportResponsivenessB7 Unsigned32
1519 apmReportIndex OBJECT-TYPE
1520 SYNTAX Unsigned32 (1..4294967295)
1521 MAX-ACCESS not-accessible
1524 "The value of apmReportControlReportNumber for the report to
1525 which this entry belongs."
1526 ::= { apmReportEntry 1 }
1528 apmReportServerAddress OBJECT-TYPE
1529 SYNTAX ProtocolDirNetworkAddress
1530 MAX-ACCESS not-accessible
1533 "The network server address for this apmReportEntry.
1535 This is represented as an octet string with
1536 specific semantics and length as identified
1537 by the protocolDirLocalIndex component of the index.
1539 Since this object is an index variable, it is encoded in the
1540 index according to the index encoding rules. For example, if
1541 the protocolDirLocalIndex indicates an encapsulation of ip,
1542 this object is encoded as a length octet of 4, followed by the
1543 4 octets of the ip address, in network byte order. Care
1544 should be taken to avoid values of this object that, in
1545 conjunction with the other index variables, would result in an
1546 index longer than SNMP's maximum of 128 subidentifiers.
1548 If the associated apmReportControlAggregationType is equal to
1549 applications(4) or clients(2), then this object will be a null
1550 string and will be encoded simply as a length octet of 0."
1551 ::= { apmReportEntry 2 }
1556 apmReportTransactionCount OBJECT-TYPE
1558 MAX-ACCESS read-only
1561 "The total number of transactions aggregated into this record."
1562 ::= { apmReportEntry 3 }
1564 apmReportSuccessfulTransactions OBJECT-TYPE
1566 MAX-ACCESS read-only
1569 "The total number of successful transactions aggregated into
1571 ::= { apmReportEntry 4 }
1573 apmReportResponsivenessMean OBJECT-TYPE
1575 MAX-ACCESS read-only
1578 "The arithmetic mean of the responsiveness metrics for all
1579 successful transactions aggregated into this record."
1580 ::= { apmReportEntry 5 }
1582 apmReportResponsivenessMin OBJECT-TYPE
1584 MAX-ACCESS read-only
1587 "The minimum of the responsiveness metrics for all
1588 successful transactions aggregated into this record."
1589 ::= { apmReportEntry 6 }
1591 apmReportResponsivenessMax OBJECT-TYPE
1593 MAX-ACCESS read-only
1596 "The maximum of the responsiveness metrics for all
1597 successful transactions aggregated into this record."
1598 ::= { apmReportEntry 7 }
1600 -- Note that when updating a report entry, a transaction will not be
1601 -- counted in more than 1 bucket in an entry. It will be counted in
1602 -- the first bucket that matches, starting with Bucket 1 (B1). Note
1603 -- that if a transaction matches 2 application types, it will update
1607 -- one bucket in each of 2 entries in this table.
1609 apmReportResponsivenessB1 OBJECT-TYPE
1611 MAX-ACCESS read-only
1614 "The number of successful transactions aggregated into this
1615 record whose responsiveness was less than boundary1 value for
1617 ::= { apmReportEntry 8 }
1619 apmReportResponsivenessB2 OBJECT-TYPE
1621 MAX-ACCESS read-only
1624 "The number of successful transactions aggregated into this
1625 record whose responsiveness did not fall into Bucket 1 and was
1626 greater than or equal to the boundary1 value for this
1627 application and less than the boundary2 value for this
1629 ::= { apmReportEntry 9 }
1631 apmReportResponsivenessB3 OBJECT-TYPE
1633 MAX-ACCESS read-only
1636 "The number of successful transactions aggregated into this
1637 record whose responsiveness did not fall into Bucket 1 or 2
1638 and as greater than or equal to the boundary2 value for this
1639 application and less than the boundary3 value for this
1641 ::= { apmReportEntry 10 }
1643 apmReportResponsivenessB4 OBJECT-TYPE
1645 MAX-ACCESS read-only
1648 "The number of successful transactions aggregated into this
1649 record whose responsiveness did not fall into Buckets 1
1650 through 3 and was greater than or equal to the boundary3 value
1651 for this application and less than the boundary4 value for
1653 ::= { apmReportEntry 11 }
1658 apmReportResponsivenessB5 OBJECT-TYPE
1660 MAX-ACCESS read-only
1663 "The number of successful transactions aggregated into this
1664 record whose responsiveness did not fall into Buckets 1
1665 through 4 and was greater than or equal to the boundary4 value
1666 for this application and less than the boundary5 value for
1668 ::= { apmReportEntry 12 }
1670 apmReportResponsivenessB6 OBJECT-TYPE
1672 MAX-ACCESS read-only
1675 "The number of successful transactions aggregated into this
1676 record whose responsiveness did not fall into Buckets 1
1677 through 5 and was greater than or equal to the
1678 boundary5 value for this application and less than the
1679 boundary6 value for this application."
1680 ::= { apmReportEntry 13 }
1682 apmReportResponsivenessB7 OBJECT-TYPE
1684 MAX-ACCESS read-only
1687 "The number of successful transactions aggregated into this
1688 record whose responsiveness did not fall into Buckets 1
1689 through 6 and was greater than or equal to the boundary6 value
1690 for this application."
1691 ::= { apmReportEntry 14 }
1693 -- APM Transaction Table
1695 apmTransactionTable OBJECT-TYPE
1696 SYNTAX SEQUENCE OF ApmTransactionEntry
1697 MAX-ACCESS not-accessible
1700 "This table contains transactions that are currently running
1701 or have recently finished."
1702 ::= { apmMibObjects 11 }
1704 apmTransactionEntry OBJECT-TYPE
1705 SYNTAX ApmTransactionEntry
1709 MAX-ACCESS not-accessible
1712 "A conceptual row in the apmTransactionTable.
1714 The apmAppDirAppLocalIndex value in the index identifies
1715 the application of the transaction represented by this entry.
1716 The apmAppDirResponsivenessType value in the index
1717 identifies the type of responsiveness metric reported by
1718 this entry and uniquely identifies this entry when more
1719 than one responsiveness metric is measured for a flow.
1720 Entries will only exist in this table for those
1721 combinations of AppLocalIndex and ResponsivenessType
1722 that are configured 'on(1)'.
1723 The protocolDirLocalIndex value in the index identifies
1724 the network layer protocol of the apmTransactionServerAddress.
1725 The apmTransactionServerAddress value in the index identifies
1726 the network layer address of the server in the transaction
1727 represented by this entry.
1728 The apmNameClientID value in the index identifies the
1729 client in the transaction represented by this entry.
1731 An example of the indexing of this entry is
1732 apmTransactionCount.3.1.8.4.192.168.1.2.3232235788.2987
1734 Note that some combinations of index values may result in an
1735 index that exceeds 128 sub-identifiers in length which exceeds
1736 the maximum for the SNMP protocol. Implementations should take
1737 care to avoid such combinations."
1738 INDEX { apmAppDirAppLocalIndex,
1739 apmAppDirResponsivenessType,
1740 protocolDirLocalIndex, apmTransactionServerAddress,
1741 apmNameClientID, apmTransactionID }
1742 ::= { apmTransactionTable 1 }
1744 ApmTransactionEntry ::= SEQUENCE {
1745 apmTransactionServerAddress ProtocolDirNetworkAddress,
1746 apmTransactionID Unsigned32,
1747 apmTransactionResponsiveness Unsigned32,
1748 apmTransactionAge TimeInterval,
1749 apmTransactionSuccess TruthValue
1752 apmTransactionServerAddress OBJECT-TYPE
1753 SYNTAX ProtocolDirNetworkAddress (SIZE (1..255))
1754 MAX-ACCESS not-accessible
1760 "The network server address for this apmTransactionEntry.
1762 This is represented as an octet string with specific semantics
1763 and length as identified by the protocolDirLocalIndex
1764 component of the index. This object may not be the zero length
1767 For example, if the protocolDirLocalIndex indicates an
1768 encapsulation of ip, this object is encoded as a length octet
1769 of 4, followed by the 4 octets of the ip address, in network
1770 byte order. Care should be taken to avoid values of this
1771 object that, in conjunction with the other index variables,
1772 would result in an index longer than SNMP's maximum of 128
1774 ::= { apmTransactionEntry 1 }
1776 apmTransactionID OBJECT-TYPE
1777 SYNTAX Unsigned32 (0..4294967295)
1778 MAX-ACCESS not-accessible
1781 "A unique value for this transaction amongst other
1782 transactions sharing the same application layer protocol and
1783 server and client addresses. Implementations may choose to use
1784 the value of the client's source port, when possible."
1785 ::= { apmTransactionEntry 2 }
1787 apmTransactionResponsiveness OBJECT-TYPE
1789 MAX-ACCESS read-only
1792 "The current value of the responsiveness metric for this
1793 transaction. If this transaction has completed, the final
1794 value of the metric will be available.
1796 Note that this value may change over the lifetime of the
1797 transaction and it is the final value of this metric that is
1798 recorded as the responsiveness of the transaction for use in
1799 other APM MIB functions."
1800 ::= { apmTransactionEntry 3 }
1802 apmTransactionAge OBJECT-TYPE
1804 MAX-ACCESS read-only
1807 "If this transaction is still executing, this value shall be
1811 the length of time since it was started. If it has completed,
1812 this value shall be the length of time it was executing."
1813 ::= { apmTransactionEntry 4 }
1815 apmTransactionSuccess OBJECT-TYPE
1817 MAX-ACCESS read-only
1820 "The success of this transaction up to this time. Once a
1821 transaction has been marked as failed, it cannot move back
1822 into the successful state."
1823 ::= { apmTransactionEntry 5 }
1825 apmTransactionsRequestedHistorySize OBJECT-TYPE
1827 MAX-ACCESS read-write
1830 "The maximum number of completed transactions desired to be
1831 retained in the apmTransactionTable. If the agent doesn't have
1832 enough resources to retain this many, it will retain as many as
1833 possible. Regardless of this value, the agent must attempt to
1834 keep records for all current transactions it is monitoring.
1836 The value of this object must persist across reboots."
1837 ::= { apmMibObjects 12 }
1839 -- The APM Exception table
1840 -- The APM Exception Table creates filters so that a management
1841 -- station can get immediate notification of a transaction that has
1842 -- had poor availability or responsiveness.
1844 -- This function is particularly helpful in unaggregated situations
1845 -- where the numbers of agents is relatively high and the transaction
1846 -- rate per agent is relatively low (such as agents for desktops or
1847 -- dedicated to small workgroups). Polling agents in such an
1848 -- environment would either cause scalability problems (high rate) or
1849 -- lead to long notification delays (low rate).
1852 apmExceptionTable OBJECT-TYPE
1853 SYNTAX SEQUENCE OF ApmExceptionEntry
1854 MAX-ACCESS not-accessible
1857 "This table creates filters so that a management station can
1858 get immediate notification of a transaction that has had poor
1862 availability or responsiveness.
1864 Each apmExceptionEntry is associated with a particular type of
1865 transaction and is applied to all transactions of that
1866 type. Multiple apmExceptionEntries may be associated with a
1867 particular type of transaction. A transaction type is
1868 identified by the value of the apmAppDirAppLocalIndex
1869 component of the index.
1871 Because the quality of a transaction is not known until it is
1872 completed, these thresholds are only applied after the
1873 transaction has completed."
1874 ::= { apmMibObjects 13 }
1876 apmExceptionEntry OBJECT-TYPE
1877 SYNTAX ApmExceptionEntry
1878 MAX-ACCESS not-accessible
1881 "A conceptual row in the apmExceptionTable.
1883 The apmAppDirAppLocalIndex value in the index identifies
1884 the application this entry will monitor.
1885 The apmAppDirResponsivenessType value in the index
1886 identifies the type of responsiveness metric this entry will
1889 INDEX { apmAppDirAppLocalIndex,
1890 apmAppDirResponsivenessType, apmExceptionIndex }
1891 ::= { apmExceptionTable 1 }
1893 ApmExceptionEntry ::= SEQUENCE {
1894 apmExceptionIndex Unsigned32,
1895 apmExceptionResponsivenessComparison INTEGER,
1896 apmExceptionResponsivenessThreshold Unsigned32,
1897 apmExceptionUnsuccessfulException INTEGER,
1898 apmExceptionResponsivenessEvents Counter32,
1899 apmExceptionUnsuccessfulEvents Counter32,
1900 apmExceptionOwner OwnerString,
1901 apmExceptionStorageType StorageType,
1902 apmExceptionStatus RowStatus
1905 apmExceptionIndex OBJECT-TYPE
1906 SYNTAX Unsigned32 (1..65535)
1907 MAX-ACCESS not-accessible
1913 "An index that uniquely identifies an entry in the
1914 apmExceptionTable amongst other entries with equivalent index
1915 values for apmAppDirAppLocalIndex and
1916 apmAppDirResponsivenessType. Each such entry sets up
1917 thresholds for a particular measurement of a particular
1919 ::= { apmExceptionEntry 1 }
1921 apmExceptionResponsivenessComparison OBJECT-TYPE
1927 MAX-ACCESS read-create
1930 "If this value is greater(2) or less(3), the associated
1931 apmExceptionResponsivenessThreshold will be compared to this
1932 value and an exception will be created if the responsiveness
1933 is greater than the threshold (greater(2)) or less than the
1934 threshold (less(3))."
1935 ::= { apmExceptionEntry 2 }
1937 apmExceptionResponsivenessThreshold OBJECT-TYPE
1939 MAX-ACCESS read-create
1942 "The threshold that responsiveness metrics are compared to."
1943 ::= { apmExceptionEntry 3 }
1945 apmExceptionUnsuccessfulException OBJECT-TYPE
1950 MAX-ACCESS read-create
1953 "If this value is on(2), an exception will be created if a
1954 transaction of the associated type is unsuccessful."
1955 ::= { apmExceptionEntry 4 }
1957 apmExceptionResponsivenessEvents OBJECT-TYPE
1959 MAX-ACCESS read-only
1965 "The total number of responsiveness exceptions generated. This
1966 counter will be incremented even if no notification was sent
1967 due to notifications not being configured or due to exceeding
1968 the apmNotificationMaxRate value."
1969 ::= { apmExceptionEntry 5 }
1971 apmExceptionUnsuccessfulEvents OBJECT-TYPE
1973 MAX-ACCESS read-only
1976 "The total number of unsuccessful exceptions generated. This
1977 counter will be incremented even if no notification was sent
1978 due to notifications not being configured or due to exceeding
1979 the apmNotificationMaxRate value."
1980 ::= { apmExceptionEntry 6 }
1982 apmExceptionOwner OBJECT-TYPE
1984 MAX-ACCESS read-create
1987 "The entity that configured this entry and is
1988 therefore using the resources assigned to it."
1989 ::= { apmExceptionEntry 7 }
1991 apmExceptionStorageType OBJECT-TYPE
1993 MAX-ACCESS read-create
1996 "The storage type of this apmReportControlEntry. If the value
1997 of this object is 'permanent', no objects in this row need to
1999 ::= { apmExceptionEntry 8 }
2001 apmExceptionStatus OBJECT-TYPE
2003 MAX-ACCESS read-create
2006 "The status of this apmExceptionEntry. The only objects in the
2007 entry that may be modified while the entry is in the active
2008 state are apmExceptionResponsivenessComparison,
2009 apmExceptionResponsivenessThreshold and
2010 apmExceptionUnsuccessfulException."
2011 ::= { apmExceptionEntry 9 }
2015 apmThroughputExceptionMinTime OBJECT-TYPE
2018 MAX-ACCESS read-write
2021 "Because the responsiveness for throughput-oriented
2022 transactions is divided by the elapsed time, it can be very
2023 sensitive to short-term performance variations for
2024 transactions that take a short period of time. For example,
2025 when downloading a very short file, a single dropped packet
2026 could double or triple the total response time.
2028 Further, throughput is usually examined for applications that
2029 transfer a lot of data, and when doing so it is helpful to
2030 conceptualize transaction costs that are proportional to the
2031 amount of data separately from those costs that are relatively
2032 fixed (i.e., independent of the amount of data). For very
2033 short transactions, these fixed transaction costs (handshake,
2034 setup time, authentication, round-trip time) may dominate the
2035 total response time for the transaction, resulting in
2036 throughput measurements that aren't really proportional to the
2037 network's, server's and client's combined data throughput
2040 This object controls the minimum number of seconds that an
2041 throughput-based transaction must exceed before an exception
2042 can be generated for it. If this object is set to zero, then
2043 all throughput-based transactions are candidates for
2046 The value of this object must persist across reboots."
2048 ::= { apmMibObjects 14 }
2050 apmNotificationMaxRate OBJECT-TYPE
2052 MAX-ACCESS read-write
2055 "The maximum number of notifications that can be generated
2056 from this agent by the apmExceptionTable in any 60 second
2059 The value of this object must persist across reboots."
2061 ::= { apmMibObjects 15 }
2066 -- APM Notifications
2068 apmNotifications OBJECT IDENTIFIER ::= { apm 0 }
2070 apmTransactionResponsivenessAlarm NOTIFICATION-TYPE
2071 OBJECTS { apmExceptionResponsivenessThreshold,
2072 apmTransactionResponsiveness }
2075 "Notification sent when a transaction exceeds a threshold
2076 defined in the apmException table. The index of the
2077 included apmExceptionResponsivenessThreshold object identifies
2078 the apmExceptionEntry that specified the threshold. The
2079 apmTransactionResponsiveness variable identifies the actual
2080 transaction and its responsiveness.
2082 Agent implementors are urged to include additional data
2083 objects in the alarm that may explain the reason for the
2084 alarm. It is helpful to include such data in the alarm because
2085 it describes the situation at the time the alarm was
2086 generated, where polls after the fact may not provide
2087 meaningful information. Examples of such information are CPU
2088 load, memory utilization, network utilization, and transaction
2090 ::= { apmNotifications 1 }
2092 apmTransactionUnsuccessfulAlarm NOTIFICATION-TYPE
2093 OBJECTS { apmExceptionResponsivenessThreshold }
2096 "Notification sent when a transaction is unsuccessful.
2097 The index of the included apmExceptionResponsivenessThreshold
2098 object identifies both the type of the transaction that caused
2099 this notification as well as the apmExceptionEntry that
2100 specified the threshold.
2102 Agent implementors are urged to include additional data
2103 objects in the alarm that may explain the reason for the
2104 alarm. It is helpful to include such data in the alarm because
2105 it describes the situation at the time the alarm was
2106 generated, where polls after the fact may not provide
2107 meaningful information. Examples of such information are CPU
2108 load, memory utilization, network utilization, and transaction
2110 ::= { apmNotifications 2 }
2112 apmCompliance MODULE-COMPLIANCE
2118 "Describes the requirements for conformance to
2120 MODULE -- this module
2121 MANDATORY-GROUPS { apmAppDirGroup, apmReportGroup }
2123 GROUP apmUserDefinedApplicationsGroup
2125 "Implementation of the apmUserDefinedApplicationsGroup
2128 GROUP apmTransactionGroup
2130 "Implementation of the apmTransactionGroup is optional."
2132 GROUP apmExceptionGroup
2134 "Implementation of the apmExceptionGroup is optional."
2136 GROUP apmNotificationGroup
2138 "Implementation of the apmNotificationGroup is optional."
2140 ::= { apmCompliances 1 }
2142 apmAppDirGroup OBJECT-GROUP
2143 OBJECTS { apmAppDirConfig,
2144 apmAppDirResponsivenessBoundary1,
2145 apmAppDirResponsivenessBoundary2,
2146 apmAppDirResponsivenessBoundary3,
2147 apmAppDirResponsivenessBoundary4,
2148 apmAppDirResponsivenessBoundary5,
2149 apmAppDirResponsivenessBoundary6,
2150 apmBucketBoundaryLastChange, apmAppDirID,
2151 apmNameMachineName, apmNameUserName }
2154 "The APM MIB directory of applications and application verbs."
2157 apmUserDefinedApplicationsGroup OBJECT-GROUP
2158 OBJECTS { apmHttpFilterAppLocalIndex,
2159 apmHttpFilterServerProtocol,
2160 apmHttpFilterServerAddress, apmHttpFilterURLPath,
2161 apmHttpFilterMatchType, apmHttpFilterOwner,
2162 apmHttpFilterStorageType, apmHttpFilterRowStatus,
2163 apmHttpIgnoreUnregisteredURLs, apmHttp4xxIsFailure,
2164 apmUserDefinedAppParentIndex,
2168 apmUserDefinedAppApplication }
2171 "Objects used for creating and managing user-defined
2175 apmReportGroup OBJECT-GROUP
2176 OBJECTS { apmReportControlDataSource,
2177 apmReportControlAggregationType,
2178 apmReportControlInterval,
2179 apmReportControlRequestedSize,
2180 apmReportControlGrantedSize,
2181 apmReportControlRequestedReports,
2182 apmReportControlGrantedReports,
2183 apmReportControlStartTime,
2184 apmReportControlReportNumber,
2185 apmReportControlDeniedInserts,
2186 apmReportControlDroppedFrames,
2187 apmReportControlOwner,
2188 apmReportControlStorageType,
2189 apmReportControlStatus,
2190 apmReportTransactionCount,
2191 apmReportSuccessfulTransactions,
2192 apmReportResponsivenessMean,
2193 apmReportResponsivenessMin,
2194 apmReportResponsivenessMax,
2195 apmReportResponsivenessB1,
2196 apmReportResponsivenessB2,
2197 apmReportResponsivenessB3,
2198 apmReportResponsivenessB4,
2199 apmReportResponsivenessB5,
2200 apmReportResponsivenessB6,
2201 apmReportResponsivenessB7 }
2204 "The apm report group controls the creation and retrieval of
2205 reports that aggregate application performance."
2208 apmTransactionGroup OBJECT-GROUP
2209 OBJECTS { apmTransactionResponsiveness,
2210 apmTransactionAge, apmTransactionSuccess,
2211 apmTransactionsRequestedHistorySize }
2214 "The apm transaction group contains statistics for
2215 individual transactions."
2221 apmExceptionGroup OBJECT-GROUP
2222 OBJECTS { apmExceptionResponsivenessComparison,
2223 apmExceptionResponsivenessThreshold,
2224 apmExceptionUnsuccessfulException,
2225 apmExceptionResponsivenessEvents,
2226 apmExceptionUnsuccessfulEvents,
2227 apmExceptionOwner, apmExceptionStorageType,
2228 apmExceptionStatus, apmThroughputExceptionMinTime,
2229 apmNotificationMaxRate }
2232 "The apm exception group causes notifications to be sent
2233 whenever transactions are detected that had poor availability
2237 apmNotificationGroup NOTIFICATION-GROUP
2238 NOTIFICATIONS { apmTransactionResponsivenessAlarm,
2239 apmTransactionUnsuccessfulAlarm }
2242 "Notifications sent by an APM MIB agent."