idnits 2.17.1 draft-ietf-rmonmib-apm-mib-12.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 2804: '...It is RECOMMENDED that implementers co...' RFC 2119 keyword, line 2810: '... Instead, it is RECOMMENDED to deploy...' Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 398 has weird spacing: '...expense pref...' == Line 1188 has weird spacing: '...b pages or se...' == Line 2873 has weird spacing: '...imed to perta...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (October 24, 2003) is 7452 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Looks like a reference, but probably isn't: 'RFC2578' on line 59 -- Looks like a reference, but probably isn't: 'RFC2579' on line 59 -- Looks like a reference, but probably isn't: 'RFC2580' on line 60 == Unused Reference: '1' is defined on line 2820, but no explicit reference was found in the text == Unused Reference: '2' is defined on line 2825, but no explicit reference was found in the text == Unused Reference: '3' is defined on line 2830, but no explicit reference was found in the text == Unused Reference: '4' is defined on line 2834, but no explicit reference was found in the text == Unused Reference: '10' is defined on line 2858, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2021 (ref. '6') (Obsoleted by RFC 4502) -- Obsolete informational reference (is this intentional?): RFC 1738 (ref. '11') (Obsoleted by RFC 4248, RFC 4266) Summary: 5 errors (**), 0 flaws (~~), 10 warnings (==), 7 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Draft APM MIB October 24, 2003 4 Application Performance Measurement MIB 5 draft-ietf-rmonmib-apm-mib-12.txt 6 October 24, 2003 8 Steven Waldbusser 10 waldbusser@nextbeacon.com 12 Status of this Memo 14 This document is an Internet-Draft and is in full conformance 15 with all provisions of Section 10 of RFC2026. 17 Internet-Drafts are working documents of the Internet 18 Engineering Task Force (IETF), its areas, and its working 19 groups. Note that other groups may also distribute working 20 documents as Internet-Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six 23 months and may be updated, replaced, or obsoleted by other 24 documents at any time. It is inappropriate to use Internet- 25 Drafts as reference material or to cite them other than as 26 "work in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt 31 The list of Internet-Draft Shadow Directories can be accessed 32 at http://www.ietf.org/shadow.html. 34 Copyright Notice 36 Copyright (C) The Internet Society (2003). All Rights Reserved. 38 Abstract 40 This memo defines a portion of the Management Information Base 41 (MIB) for use with network management protocols in TCP/IP- 42 based internets. In particular, it defines objects for 43 measuring the application performance as experienced by end- 44 users. 46 1. The Internet-Standard Management Framework 48 For a detailed overview of the documents that describe the 49 current Internet-Standard Management Framework, please 50 refer to section 7 of RFC 3410 [9]. 52 Managed objects are accessed via a virtual information 53 store, termed the Management Information Base or MIB. MIB 54 objects are generally accessed through the Simple Network 55 Management Protocol (SNMP). Objects in the MIB are defined 56 using the mechanisms defined in the Structure of Management 57 Information (SMI). This memo specifies a MIB module that 58 is compliant to the SMIv2, which is described in STD 58, 59 RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, 60 RFC 2580 [RFC2580]. 62 2. Overview 64 This document continues the architecture created in the RMON 65 MIB [8] by providing analysis of application performance as 66 experienced by end-users. 68 Application performance measurement measures the quality of 69 service delivered to end-users by applications. With this 70 perspective, a true end-to-end view of the IT infrastructure 71 results, combining the performance of the application, 72 desktop, network, and server, as well as any positive or 73 negative interactions between these components. 75 Despite all the technically sophisticated ways in which 76 networking and system resources can be measured, human end- 77 users perceive only two things about an application: 78 availability and responsiveness. 80 Availability - The percentage of the time that the 81 application is ready to give a user service. 83 Responsiveness - The speed at which the application 84 delivers the requested service. 86 A transaction is an action initiated by a user that starts and 87 completes a distributed processing function. A transaction 88 begins when a user initiates a request for service (i.e. 89 pushing a submit button) and ends when the work is completed 90 (i.e. information is provided or a confirmation is delivered). 91 A transaction is the fundamental item measured by the APM MIB. 93 A failed transaction is a transaction that fails to provide 94 the service requested by the end user, regardless of whether 95 it is due to a processing failure or transport failure. 97 An application protocol (e.g. POP3) may implement different 98 commands or application "verbs" (e.g. POP3 Login and POP3 99 Retrieval). It will often be interesting to monitor these 100 verbs separately because: 101 1) The verbs may have widely differing performance 102 characteristics (in fact some may be response time 103 oriented while others are throughput oriented) 104 2) The verbs have varying business significance 105 3) It provides more granularity of exactly what might be 106 performing poorly 108 This MIB Module allows the measurement of a parent 109 application, its component verbs, or both. If monitoring both, 110 one can watch the top-level application and then drill down to 111 the verbs when trouble is spotted to learn which subcomponents 112 are in trouble. Each application verb is registered separately 113 in the Protocol Directory [6] [7] as a child of its parent 114 application. 116 Application protocols implement one of three different types 117 of transactions: transaction-oriented, throughput-oriented, or 118 streaming-oriented. While the availability metric is the same 119 for all three types, the responsiveness metric varies: 121 Transaction-Oriented: These transactions have a fairly 122 constant workload to perform for all transactions. In 123 particular, to the degree that the workload may vary, it 124 doesn't vary based on the amount of data to be transferred 125 but based on the parameters of the transaction. The 126 responsiveness metric for transaction-oriented applications 127 is application response time, the elapsed time between the 128 user's request for service (e.g. pushing the submit button) 129 and the completion of the request (e.g. displaying the 130 results) and is measured in milliseconds. This is commonly 131 referred to as end-user response time. 133 Throughput-Oriented: These transactions have widely varying 134 workloads based on the amount of data requested. The 135 responsiveness metric for throughput-oriented applications 136 is kilobits per second. 138 Streaming-Oriented: These transactions deliver data at a 139 constant metered rate of speed regardless of excess 140 capacity in the networking and computing infrastructure. 141 However, when the infrastructure's cannot deliver data at 142 this speed, interruption of service or degradation of 143 service can result. The responsiveness metric for 144 streaming-oriented applications is the signal quality ratio 145 of time that the service is degraded or interrupted to the 146 total service time. This metric is measured in parts per 147 million. 149 2.1. Report Aggregation 151 This MIB Module provides functions to aggregate measurements 152 into higher level summaries. 154 Every transaction is identified by its application, server, 155 and client and has an availability measure as well as a 156 responsiveness measure. The appropriate responsiveness measure 157 is context-sensitive depending on whether the application is 158 transaction-oriented, throughput-oriented, or streaming- 159 oriented. For example, in a 5 minute period several 160 transactions might be recorded: 162 Application Client Server Successful Responsiveness 163 HTTP Jim Sales 1 6 sec. 164 SAP/R3 Jane Finance 1 17 sec. 165 HTTP Joe HR 0 - 166 FTP Jim FTP 1 212 Kbps 167 HTTP Joe HR 1 25 sec. 168 RealVideo Joe Videoconf 1 100.0% 169 HTTP Jane HR 1 5 sec. 171 These transactions can be aggregated in several ways, 172 providing statistical summaries - for example summarizing all 173 HTTP transactions, or all HTTP transactions to the HR Server. 174 Note that data from different applications may not be 175 summarized because: 177 1. The performance characteristics of different 178 applications differ widely enough to render statistical 179 analysis meaningless. 181 2. The responsiveness metrics of different applications may 182 be different, making a statistical analysis impossible (in 183 other words, one application may be transaction-oriented, 184 while another is throughput-oriented). 186 Aggregating transactions collected over a period requires an 187 aggregation algorithm. In this MIB Module, transaction 188 aggregation always results in the following statistics: 190 TransactionCount 191 The total number of transactions during this period 193 SuccessfulTransactions 194 The total number of transactions that were successful. The 195 management station can derive the percent success by dividing 196 SuccessfulTransactions by the TransactionCount. 198 ResponsivenessMean 199 The average of the responsiveness metric for all aggregated 200 transactions that completed successfully 202 ResponsivenessMin 203 The minimum responsiveness metric for all aggregated transactions 204 that completed successfully 206 ResponsivenessMax 207 The maximum responsiveness metric for all aggregated transactions 208 that completed successfully 210 ResponsivenessBx 211 The count of successful transactions whose responsiveness metric 212 fell into the range specified for Bx. There are 7 buckets 213 specified. Because the performance of different applications varies 214 widely, the bucket ranges are specified separately for each 215 application (in the apmAppDirTable) so that they may be 216 tuned to typical performance of each application. 218 For example, when aggregating the previous set of transactions 219 by application we get (for simplicity the example only shows 220 TransactionCount, SuccessfulTransactions, and 221 ResponsivenessMean): 223 Application Count Successful ResponsivenessMean 224 HTTP 4 3 12 sec. 225 SAP/R3 1 1 17 sec. 226 FTP 1 1 212 Kbps. 227 RealVideo 1 1 100.0% 229 There are four different types of aggregation. 231 The flows(1) aggregation is the simplest. All transactions 232 that share common application/server/client 3-tuples are 233 aggregated together, resulting in a set of metrics for all 234 such unique 3-tuples. 236 The clients(2) aggregation results in somewhat more 237 aggregation (i.e. fewer resulting records). All 238 transactions that share common application/client tuples 239 are aggregated together, resulting in a set of metrics for 240 all such unique tuples. 242 The servers(3) aggregation usually results in still more 243 aggregation (i.e. fewer resulting records). All 244 transactions that share common application/server tuples 245 are aggregated together, resulting in a set of metrics for 246 all such unique tuples. 248 The applications(4) aggregation results in the most 249 aggregation (i.e. the fewest resulting records). All 250 transactions that share a common application are aggregated 251 together, resulting in a set of metrics for all such unique 252 applications. 254 For example, if in a 5 minute period the following 255 transactions occurred: 257 Actual Transactions: 258 # App Client Server Successful Responsiveness 259 1 HTTP Jim CallCtr N - 260 2 HTTP Jim HR Y 12 sec. 261 3 HTTP Jim Sales Y 7 sec. 262 4 HTTP Jim CallCtr Y 5 sec. 263 5 Email Jim Pop3 Y 12 sec. 264 6 HTTP Jane CallCtr Y 3 sec. 265 7 SAP/R3 Jane Finance Y 19 sec. 266 8 Email Jane Pop3 Y 16 sec. 267 9 HTTP Joe HR Y 18 sec. 269 The flows(1) aggregation results in the following table. Note that the 270 first record (HTTP/Jim/CallCtr) is the aggregation of transactions #1 271 and #4: 273 Flow Aggregation: 274 App Client Server Count Succe- Rsp Rsp Rsp RspB1 RspB2 275 ssful Mean Min Max 276 HTTP Jim CallCtr 2 1 5 5 5 1 0 277 HTTP Jim HR 1 1 12 12 12 0 1 278 HTTP Jim Sales 1 1 7 7 7 1 0 279 Email Jim Pop3 1 1 12 12 12 0 1 280 HTTP Jane CallCtr 1 1 3 3 3 1 0 281 SAP/R3 Jane Finance 1 1 19 19 19 0 1 282 Email Jane Pop3 1 1 16 16 16 0 1 283 HTTP Joe HR 1 1 18 18 18 0 1 285 (Note: Columns above such as RspMean and RspB1 are abbreviations for 286 objects in the apmReportTable) 288 The clients(2) aggregation results in the following table. Note that 289 the first record (HTTP/Jim) is the aggregate of transactions #1, #2, 290 #3 and #4: 292 Client Aggregation: 293 App Client Count Succe- Rsp Rsp Rsp RspB1 RspB2 ... 294 ssful Mean Min Max 295 HTTP Jim 4 3 8 5 12 2 1 296 Email Jim 1 1 12 12 12 0 1 297 HTTP Jane 1 1 3 3 3 1 0 298 SAP/R3 Jane 1 1 19 19 19 0 1 299 Email Jane 1 1 16 16 16 0 1 300 HTTP Joe 1 1 18 18 18 0 1 302 The servers(3) aggregation results in the following table. Note that 303 the first record (HTTP/CallCtr) is the aggregation of transactions #1, 304 #4 and #6: 306 Server Aggregation: 307 App Server Count Succe- Rsp Rsp Rsp RspB1 RspB2 ... 308 ssful Mean Min Max 309 HTTP CallCtr 3 2 4 3 5 2 0 310 HTTP HR 2 2 15 12 18 0 2 311 HTTP Sales 1 1 7 7 7 1 0 312 Email Pop3 2 2 14 12 16 0 2 313 SAP/R3 Finance 1 1 19 19 19 0 1 314 The applications(4) aggregation results in the following table. Note 315 that the first record (HTTP) is the aggregate of transactions #1, #2, 316 #3, #5, #6 and #9: 318 Application Aggregation: 319 App Count Succe- Rsp Rsp Rsp RspB1 RspB2 ... 320 ssful Mean Min Max 321 HTTP 6 5 9 3 18 3 2 322 Email 2 2 14 12 16 0 2 323 SAP/R3 1 1 19 19 19 0 1 324 The apmReportControlTable provides for a historical set of the 325 last 'X' reports, combining the historical records found in 326 history tables with the periodic snapshots found in TopN tables. 327 Conceptually the components are: 329 apmReportControlTable 330 Specifies data collection and summarization parameters, including 331 the number of reports to keep and the size of each report. 333 apmReport 334 Each APM Report contains an aggregated list of records 335 that represent data collected during a specific time period. 337 An apmReportControlEntry causes a family of APM Reports to be 338 created, where each report summarizes different, successive, 339 contiguous periods of time. 341 While the conceptual model of APM Reports shows them as distinct 342 entities, they are all entries in a single apmReportTable, where 343 entries in report 'A' are separated from entries in report 'B' 344 by different values of the apmReportIndex. 346 +-----------------------+ 347 | | 348 | apmReportControlTable | 349 | | +-----------+ 350 +-----------------------+ | | 351 +-----------+ | 352 | | | 353 +-----------+ |---+ 354 | | | 355 +----------+ |---+ 356 | | | apmReport 357 |apmReport |----+ +-----------------------+ 358 | | |Thu Mar 30 12-1PM | 359 +----------+ | | 360 |CLNT SERV PROT stats | 361 | | 362 |Joe News HTTP data | 363 |Jan POP POP3 data | 364 |Jan POP SMTP data | 365 |Bob HR PSOFT data | 366 |... | 367 |... | 368 +-----------------------+ 370 2.2. AppLocalIndex Linkages 372 The following set of example tables illustrates a few points: 373 1. How protocolDirEntries, apmHttpFilterEntries and 374 apmUserDefinedAppEntries(not shown) all result in entries in 375 the apmAppDirTable. 376 2. How a single appLocalIndex may be represented multiple times in 377 the apmAppDirTable and apmReportTable if the agent 378 measures multiple responsiveness types for that application. 380 A convention in the formatting of these tables is that the columns to 381 the left of the '|' separator are index columns for the table. 383 Assuming the following entries in the RMON2 protocolDirectory: 385 protocolDirectory 386 ID (*) Parameters | LocalIndex ... 387 WWW None | 1 388 WWW Get None | 2 389 SAP/R3 None | 3 391 (*) These IDs are represented here symbolically. Consult [6] for 392 more detail in their format 394 and the following entry in the apmHttpFilterTable: 396 ApmHttpFilterTable 397 Index | AppLocalIndex ServerAddress URLPath MatchType ... 398 5 | 20 hr.example.com /expense prefix(3) ... 400 the apmAppDirTable would be populated with the following 401 entries: 403 apmAppDir 404 AppLocalIndex ResponsivenessType | Config ... 405 1 transaction(1) | On ... 406 1 throughput(2) | On ... 407 2 transaction(1) | On ... 408 2 throughput(2) | On ... 409 3 transaction(1) | On ... 410 20 transaction(1) | On ... 411 20 throughput(2) | On ... 413 The entries in the apmAppDirTable with an appLocalIndex of 1, 2 414 and 3 correspond to the identically named entries in the 415 protocolDirectory table. 416 appLocalIndex #1 results in 2 entries, one to measure the transaction 417 responsiveness of WWW and one to measure its throughput 418 responsiveness. In contrast, appLocalIndex #3 results in only a 419 transaction entry because the agent does not measure the throughput 420 responsiveness for SAP/R3 (probably because it isn't very 421 meaningful). Finally, appLocalIndex #20 corresponds to the entry in 422 the apmHttpFilterTable and has transaction responsiveness and 423 throughput responsiveness measurements available. 425 If a report was configured using application aggregation, entries in 426 that report might look like: 428 apmReportTable 429 CtlIndex Index AppLocalIdx ResponsivenessType | TransactionCount ... 430 1 1 1 transaction(1) | counters... 431 1 1 1 throughput(2) | counters... 432 1 1 2 transaction(1) | counters... 433 1 1 2 throughput(2) | counters... 434 1 1 3 transaction(1) | counters... 435 1 1 20 transaction(1) | counters... 436 1 1 20 throughput(2) | counters... 438 Note that the index items protocolDirLocalIndex, 439 apmReportServerAddress and apmReportClientID were omitted from 440 apmReportTable example for brevity because they would have been 441 equal to zero due to the use of the application aggregation in 442 this example. 444 2.3. Measurement Methodology 446 There are many different measurement methodologies available 447 for measuring application performance (e.g., probe-based, 448 client-based, synthetic-transaction, etc.). This specification 449 does not mandate a particular methodology - it is open to any 450 that meet the minimum requirements. Conformance to this 451 specification requires that the collected data match the 452 semantics described herein. In particular, a data collection 453 methodology must be able to measure response time, throughput, 454 streaming responsiveness and availability as specified. 456 Note that in some cases a transaction may run for a long time 457 but ultimately be successful. The measurement software 458 shouldn't prematurely classify lengthy transactions as 459 failures but should wait as long as the client application 460 will wait for a successful response. 462 2.4. Instrumentation Architectures 464 Different architectural approaches and deployment strategies 465 may be taken towards implementation of this specification. If 466 a highly distributed approach is desired (e.g.: an agent per 467 desktop), one or both of the two approaches below may be used 468 to make it more practical. 470 2.4.1. Application Directory Caching 472 It is necessary for the manager to have a copy of the tables 473 that define the Application Directory in order to interpret 474 APM measurements. It is likely that in a highly distributed 475 network of thousands of APM agents, this Application Directory 476 will be the same on many, if not all of the agents. Repeated 477 downloads of the Application Directory may be inefficient. 479 The apmAppDirID object is a single object that identifies the 480 configuration of all aspects of the Application Directory when 481 it is equal to a well-known, registered configuration. Thus, 482 when a manager sees an apmAppDirID value that it recognizes, 483 it need not download the Application Directory from that 484 agent. In fact, the manager may discover a new registered 485 Application Directory configuration on one agent and then re- 486 use that configuration on another agent that shares the same 487 apmAppDirID value. 489 Application directory registrations are unique within an 490 administrative domain, allowing an administrator to create a 491 custom application directory configuration without the need to 492 assign it a globally-unique registration. 494 2.4.2. Push Model 496 When APM agents are installed on "desktops" (including 497 laptops), a few issues make polling difficult: 499 1. Desktops often have dynamically-assigned addresses so there 500 is no long-lived address to poll. 502 2. Desktops are not available as much as infrastructure 503 components due to crashes, user-initiated reboots and 504 shutdowns and user control over monitoring software. Thus 505 a desktop may not be available to answer a poll at the 506 moment when the manager is scheduled to poll that desktop. 508 3. Laptops that are connected via dialup connections are only 509 sporadically connected and will routinely be unreachable 510 when the manager is scheduled to poll. 512 As a consequence, a push model is usually more appropriate for 513 desktop-based agents. To achieve this, the agent should follow 514 the following rules in deciding what data to send in 515 notifications. 517 APM Reports 518 If an agent wishes to push APM reports to a manager, it 519 must send: 520 apmAppDirID 521 apmNameTable (any data updated since the last push) 522 For each report the agent wishes to upload, it must 523 send the entire apmReportControlEntry associated with 524 that report and the associated entries in the 525 apmReportTable that have changed since the last report. 527 APM Transactions 528 If an agent wishes to push APM transactions to 529 a manager, it must send: 530 apmAppDirID 531 apmNameTable (any data updated since the last push) 532 apmTransactionTable (relevant entries) 534 APM Exceptions 535 The agent must send: 536 apmAppDirID 537 apmNameTable (any data updated since the last push) 538 apmTransactionEntry (of exception transaction) 539 apmExceptionEntry (entry that generated exception) 540 [Note that this list supercedes the information in the 541 OBJECTS clauses of the apmTransactionResponsivenessAlarm 542 and apmTransactionUnsuccessfulAlarm when the agent is 543 using a push model. This additional information 544 eliminates the need for the manager to request additional 545 data to understand the exception.] 547 The order of varbinds and where to segment varbinds into 548 PDUs is at the discretion of the agent. 550 2.5. Structure of this MIB Module 552 The objects are arranged into the following groups: 554 - APM Application Directory Group 556 - APM User Defined Applications Group 558 - APM Report Group 560 - APM Transaction Group 562 - APM Exception Group 564 - APM Notification Group 566 These groups are the basic unit of conformance. If an agent 567 implements a group, then it must implement all objects in that 568 group. While this section provides an overview of grouping and 569 conformance information for this MIB Module, the authoritative 570 reference for such information is contained in the MODULE- 571 COMPLIANCE and OBJECT-GROUP macros later in this MIB Module. 573 These groups are defined to provide a means of assigning 574 object identifiers, and to provide a method for implementors 575 of managed agents to know which objects they must implement. 577 2.5.1. The APM Application Directory Group 579 The APM Application Directory group contains configuration 580 objects for every application or application verb monitored on 581 this system. This group consists of the apmAppDirTable. 583 2.5.2. The APM User Defined Applications Group 585 The APM User Defined Applications Group contains objects that 586 allow for the tracking of applications or application verbs 587 that aren't registered in the protocolDirTable. This group 588 consists of the apmHttpFilterTable and the 589 apmUserDefinedAppTable. 591 2.5.3. The APM Report Group 593 The APM Report Group is used to prepare regular reports that 594 aggregate application performance by flow, by client, by 595 server, or by application. This group consists of the 596 apmReportControlTable and the apmReportTable. 598 2.5.4. The APM Transaction Group 600 The APM Transaction Group is used to show transactions that 601 are currently in progress and ones that have ended recently, 602 along with their responsiveness metric. 604 Because many transactions last a very short time and because 605 an agent may not retain completed transactions very long, 606 transactions may exist in this table for a very short time. 607 Thus, polling this table isn't an effective mechanism for 608 retrieving all transactions unless the value of 609 apmTransactionsHistorySize is suitably large for the 610 transactions being monitored. 612 One important benefit of this table is that it allows a 613 management station to check on the status of long-lived 614 transactions. Because the apmReport and apmException 615 mechanisms act only on transactions that have finished, a 616 network manager may not have visibility for some time into the 617 performance of long-lived transactions such as streaming 618 applications, large data transfers, or (very) poorly 619 performing transactions. In fact, by their very definition, 620 the apmReport and apmException mechanisms only provide 621 visibility into a problem after nothing can be done about it. 622 This group consists primarily of the apmTransactionTable. 624 2.5.5. The APM Exception Group 626 The APM Exception Group is used to generate immediate 627 notifications of transactions that cross certain thresholds. 628 The apmExceptionTable is used to configure which thresholds 629 are to be checked for which types of transactions. The 630 apmTransactionResponsivenessAlarm notification is sent when a 631 transaction occurs with a responsiveness that crosses a 632 threshold. The apmTransactionUnsuccessfulAlarm notification is 633 sent when a transaction fails for which exception checking was 634 configured. This group consists primarily of the 635 apmExceptionTable. 637 2.5.6. The APM Notification Group 639 The APM Notification Group contains 2 notifications that are 640 sent when thresholds in the APM Exception Table are exceeded. 642 3. Definitions 644 APM-MIB DEFINITIONS ::= BEGIN 645 IMPORTS 646 MODULE-IDENTITY, OBJECT-TYPE, 647 NOTIFICATION-TYPE, 648 Counter32, Unsigned32 FROM SNMPv2-SMI 649 TEXTUAL-CONVENTION, RowStatus, TimeStamp, 650 TimeInterval, TruthValue, DateAndTime, 651 StorageType FROM SNMPv2-TC 652 MODULE-COMPLIANCE, OBJECT-GROUP, 653 NOTIFICATION-GROUP FROM SNMPv2-CONF 654 SnmpAdminString FROM SNMP-FRAMEWORK-MIB 655 rmon, OwnerString FROM RMON-MIB 656 protocolDirLocalIndex FROM RMON2-MIB; 658 -- Application Performance Measurement MIB 660 apm MODULE-IDENTITY 661 LAST-UPDATED "200310241500Z" -- October 24, 2003 662 ORGANIZATION "IETF RMON MIB Working Group" 663 CONTACT-INFO 664 "Author: 665 Steve Waldbusser 666 Phone: +1-650-948-6500 667 Fax : +1-650-745-0671 668 Email: waldbusser@nextbeacon.com 670 Working Group Chair: 671 Andy Bierman 672 Cisco Systems, Inc. 673 Postal: 170 West Tasman Drive 674 San Jose, CA USA 95134 675 Tel: +1 408 527-3711 676 E-mail: abierman@cisco.com 678 Working Group Mailing List: 679 To subscribe send email to: 680 " 681 DESCRIPTION 682 "The MIB module for measuring application performance 683 as experienced by end-users. 685 Copyright (C) The Internet Society (2003). This version of 686 this MIB module is part of RFC xxxx; see the RFC itself for 687 full legal notices." 689 REVISION "200310241500Z" -- October 24, 2003 690 DESCRIPTION 691 "The original version of this MIB Module, published as 692 RFCXXXX." 693 -- RFC-Editor assigns XXXX 694 ::= { rmon 23 } 696 apmMibObjects OBJECT IDENTIFIER ::= { apm 1 } 697 apmConformance OBJECT IDENTIFIER ::= { apm 2 } 698 apmCompliances OBJECT IDENTIFIER ::= { apmConformance 1 } 699 apmGroups OBJECT IDENTIFIER ::= { apmConformance 2 } 701 AppLocalIndex ::= TEXTUAL-CONVENTION 702 STATUS current 703 DESCRIPTION 704 "A locally arbitrary unique identifier associated with an 705 application or application verb. 707 All objects of type AppLocalIndex are assigned by the agent 708 out of a common number space. In other words, AppLocalIndex 709 values assigned to entries in one table must not overlap with 710 AppLocalIndex values assigned to entries in another 711 table. Further, every protocolDirLocalIndex value registered 712 by the agent automatically assigns the same value out of the 713 AppLocalIndex number space. 715 For example, if the protocolDirLocalIndex values { 1, 3, 5, 7 } 716 have been assigned, and the apmHttpFilterAppLocalIndex values 717 { 6, 8, 9 } have been assigned: 719 - Assignment of new AppLocalIndex values must not use the 720 values { 1, 3, 5, 6, 7, 8, 9 }. 721 - AppLocalIndex values { 1, 3, 5, 7 } are automatically 722 assigned and are associated with the identical value of 723 protocolDirLocalIndex. In particular, an entry in the 724 apmAppDirTable indexed by a value provides further 725 information about a protocol indexed by the same value 726 in the protocolDirTable of RMON2. 728 The value for each supported application must remain constant 729 at least from one re-initialization of the entity's network 730 management system to the next re-initialization, except that 731 if an application is deleted and re-created, it must be 732 re-created with a new value that has not been used since the 733 last re-initialization. 735 The specific value is meaningful only within a given SNMP 736 entity. An AppLocalIndex value must not be re-used until the 737 next agent restart." 738 SYNTAX Unsigned32 (1..2147483647) 740 ProtocolDirNetworkAddress ::= TEXTUAL-CONVENTION 741 STATUS current 742 DESCRIPTION 743 "A network level address whose semantics and encoding are 744 specified by an associated protocolDirLocalIndex 745 value. Objects of this type must specify which 746 protocolDirLocalIndex value is used. This value is encoded 747 according to the encoding rules for the identified 748 protocolDirectory entry. 750 For example, if the associated protocolDirLocalIndex indicates 751 an encapsulation of ip, this object is encoded as a length 752 octet of 4, followed by the 4 octets of the ip address, 753 in network byte order. 755 Objects of this type may allow this value to be the zero 756 length string. If so, they must identify they meaning of this 757 value." 758 SYNTAX OCTET STRING (SIZE(0..255)) 760 DataSourceOrZero ::= TEXTUAL-CONVENTION 761 STATUS current 762 DESCRIPTION 763 "Identifies the source of the data that the associated 764 function is configured to analyze. This source can be any 765 interface on this device. 767 In order to identify a particular interface, this 768 object shall identify the instance of the ifIndex 769 object, defined in [5], for the desired interface. 771 For example, if an entry were to receive data from 772 interface #1, this object would be set to ifIndex.1. 774 If the source of the data isn't an interface or cannot be 775 localized to an interface, this object would be set to 0.0" 777 REFERENCE "The DataSource textual convention is defined in 778 RFC 2021 [6]." 779 SYNTAX OBJECT IDENTIFIER 781 RmonClientID ::= TEXTUAL-CONVENTION 782 STATUS current 783 DESCRIPTION 784 "A long-lived unique ID assigned to an end-system. This ID is 785 assigned by the agent using an implementation-specific 786 algorithm. 788 Becaue a client machine may be assigned multiple addresses 789 over any time period it can be difficult to attribute 790 behavior to a particular client based solely on its 791 address. A ClientID may be assigned to provide a more 792 stable handle for referencing that client. The entity that 793 assigns the ClientID may use various implementation 794 techniques to keep track of a client but if the assigning 795 entity is unable to track client address mappings, it may map 796 client identifiers to client addresses rather than to 797 distinct client machines. 799 This is named ClientID because it helps to solve a problem 800 seen in network clients (servers usually have well-known, 801 long-lived addresses). However, ClientID's may be assigned to 802 any end-system regardless of its role on the network." 803 SYNTAX Unsigned32 (0..4294967295) 805 TransactionAggregationType ::= TEXTUAL-CONVENTION 806 STATUS current 807 DESCRIPTION 808 "Specifies one of 4 different techniques for aggregating 809 transactions. 811 The metrics for a single transaction are the responsiveness of 812 the transaction and whether the transaction succeeded (a 813 boolean). When such metrics are aggregated in this MIB Module, 814 these metrics are replaced by averages and distributions of 815 responsiveness and availability. The metrics describing 816 aggregates are constant no matter which type of aggregation is 817 being performed. These metrics may be found in the 818 apmReportTable. 820 The flows(1) aggregation is the simplest. All transactions 821 that share common application/server/client 3-tuples are 822 aggregated together, resulting in a set of metrics for all 823 such unique 3-tuples. 825 The clients(2) aggregation results in somewhat more 826 aggregation (i.e. fewer resulting records). All transactions 827 that share common application/client tuples are aggregated 828 together, resulting in a set of metrics for all such unique 829 tuples. 831 The servers(3) aggregation usually results in still more 832 aggregation (i.e. fewer resulting records). All transactions 833 that share common application/server tuples are aggregated 834 together, resulting in a set of metrics for all such unique 835 tuples. 837 The applications(4) aggregation results in the most 838 aggregation (i.e. the fewest resulting records). All 839 transactions that share a common application are aggregated 840 together, resulting in a set of metrics for all such unique 841 applications. 843 Note that it is not meaningful to aggregate applications, as 844 different applications have widely varying characteristics. As a 845 result, this set of aggregations is complete." 846 SYNTAX INTEGER { 847 flows(1), -- Least Aggregation 848 clients(2), 849 servers(3), 850 applications(4) -- Most Aggregation 851 } 853 -- The APM Application Directory Group 855 -- The Application Directory Table contains a record for every 856 -- application monitored by this agent. This table is also used to 857 -- configure whether or not an application will be measured and which 858 -- bucket boundaries will be used for the application. 859 -- 860 -- The bucket boundaries define the break-points between bins of a 861 -- histogram analysis for that application. As an example of how this 862 -- works, consider an entry representing response-time for http. 863 -- If the boundaries are set as follows: 864 -- Boundary1: 500 milliseconds 865 -- Boundary2: 1 second 866 -- Boundary3: 2 seconds 867 -- Boundary4: 5 868 -- Boundary5: 15 869 -- Boundary6: 60 870 -- 871 -- If the following measurements are made (all in milliseconds): 872 -- 377, 8645, 1300, 487, 1405, 775, 1115, 850, 945, 1054, 7745, 9380 873 -- 874 -- A report run during this interval would report the following 875 -- counts: 876 -- Bucket1: 2 877 -- Bucket2: 3 878 -- Bucket3: 4 879 -- Bucket4: 0 880 -- Bucket5: 3 881 -- Bucket6: 0 882 -- Bucket7: 0 884 apmAppDirTable OBJECT-TYPE 885 SYNTAX SEQUENCE OF ApmAppDirEntry 886 MAX-ACCESS not-accessible 887 STATUS current 888 DESCRIPTION 889 "The APM MIB directory of applications and application 890 verbs. The agent will populate this table with all 891 applications/verbs of any responsivenessType it has the 892 capability to monitor. Since the agent populates this table 893 with every entry it has the capability to monitor, the 894 entries in this table are read-write, allowing the management 895 station to modify parameters in this table but not to add new 896 entries or delete entries (however, entries may be 897 disabled). If new entries are added to the apmHttpFilterTable 898 or the apmUserDefinedAppTable, the agent will add the 899 corresponding entries to this table. 901 It is an implementation-dependent matter as to how the agent 902 sets these default parameters. For example, it may leave 903 certain entries in this table 'off(0)' if the agent developer 904 believes that combination will be infrequently used, allowing 905 a manager that needs that capability to set it to 'on(1)'. 907 Some applications are registered in the RMON2 protocol 908 directory and some are registered in other tables in this 909 MIB Module. Regardless of where an application is originally 910 registered, it is assigned an AppLocalIndex value that is the 911 primary index for this table. 913 The contents of this table affect all reports and exceptions 914 generated by this agent. Accordingly, modification of this 915 table should be performed by a manager acting in the role of 916 administrator. In particular, management software should not 917 require or enforce particular configuration of this table - it 918 should reflect the preferences of the site administrator, not 919 the software author. As a practical matter, this requires 920 management software to allow the administrator to configure 921 the values it will use so that it can be adapted to the site 922 policy." 923 ::= { apmMibObjects 1 } 925 apmAppDirEntry OBJECT-TYPE 926 SYNTAX ApmAppDirEntry 927 MAX-ACCESS not-accessible 928 STATUS current 929 DESCRIPTION 930 "The APM MIB directory of applications and application 931 verbs. An entry will exist in this table for all applications 932 for which application performance measurement is supported." 933 INDEX { apmAppDirAppLocalIndex, 934 apmAppDirResponsivenessType } 935 ::= { apmAppDirTable 1 } 937 ApmAppDirEntry ::= SEQUENCE { 938 apmAppDirAppLocalIndex AppLocalIndex, 939 apmAppDirResponsivenessType INTEGER, 940 apmAppDirConfig INTEGER, 941 apmAppDirResponsivenessBoundary1 Unsigned32, 942 apmAppDirResponsivenessBoundary2 Unsigned32, 943 apmAppDirResponsivenessBoundary3 Unsigned32, 944 apmAppDirResponsivenessBoundary4 Unsigned32, 945 apmAppDirResponsivenessBoundary5 Unsigned32, 946 apmAppDirResponsivenessBoundary6 Unsigned32 947 } 949 apmAppDirAppLocalIndex OBJECT-TYPE 950 SYNTAX AppLocalIndex 951 MAX-ACCESS not-accessible 952 STATUS current 953 DESCRIPTION 954 "The AppLocalIndex assigned for this application Directory 955 entry." 957 ::= { apmAppDirEntry 1 } 959 apmAppDirResponsivenessType OBJECT-TYPE 960 SYNTAX INTEGER { 961 transactionOriented(1), 962 throughputOriented(2), 963 streamingOriented(3) 964 } 965 MAX-ACCESS not-accessible 966 STATUS current 967 DESCRIPTION 968 "This object describes and configures the agent's support for 969 application performance measurement for this application. 970 There are 3 types of measurements for different types of 971 applications: 973 Transaction-Oriented applications have a fairly constant 974 workload to perform for all transactions. The responsiveness 975 metric for transaction-oriented applications is application 976 response time (from first request to final delivery of 977 service) and is measured in milliseconds. This is 978 commonly referred to as end-user response time. 980 Throughput-Oriented applications have widely varying workloads 981 based on the nature of the client request. In particular, 982 throughput-oriented applications vary widely in the amount of 983 data that must be transported to satisfy the request. The 984 responsiveness metric for throughput-oriented applications is 985 kilobits per second. 987 Streaming-Oriented applications deliver data at a constant 988 metered rate of speed regardless of the responsiveness of the 989 networking and computing infrastructure. This constant rate of 990 speed is generally specified to be below (sometimes well 991 below) the nominal capability of the infrastructure. However, 992 when the infrastructure's cannot deliver data at this speed, 993 interruption of service or degradation of service can 994 result. The responsiveness metric for streaming-oriented 995 applications is the ratio of time that the service is degraded 996 or interrupted to the total service time. This metric is 997 measured in parts per million. 999 Note that for some applications, measuring more than one 1000 responsiveness type may be interesting. For agents that wish 1001 to support more than one measurement for a application, they 1002 will populate this table with multiple entries for that 1003 application, one for each type." 1004 ::= { apmAppDirEntry 2 } 1006 apmAppDirConfig OBJECT-TYPE 1007 SYNTAX INTEGER { 1008 off(1), 1009 on(2) 1010 } 1011 MAX-ACCESS read-write 1012 STATUS current 1013 DESCRIPTION 1014 "This object describes and configures support for application 1015 performance measurement for this application. 1017 If the value of this object is on(2), the agent supports 1018 measurement of application performance metrics for this 1019 application and is configured to measure such metrics for all 1020 APM MIB functions and all interfaces. If the value of this 1021 object is off(1), the agent supports measurement of 1022 application performance for this application but is configured 1023 to not measure these metrics for any APM MIB functions or 1024 interfaces. Whenever this value changes from on(2) to off(1), 1025 the agent shall delete all related entries in all tables in 1026 this MIB Module. 1028 The value of this object must persist across reboots." 1029 ::= { apmAppDirEntry 3 } 1031 apmAppDirResponsivenessBoundary1 OBJECT-TYPE 1032 SYNTAX Unsigned32 1033 MAX-ACCESS read-write 1034 STATUS current 1035 DESCRIPTION 1036 "The boundary value between bucket1 and bucket 2. If this 1037 value is modified, all entries in the apmReportTable must be 1038 deleted by the agent. 1040 The value of this object must persist across reboots." 1041 ::= { apmAppDirEntry 4 } 1043 apmAppDirResponsivenessBoundary2 OBJECT-TYPE 1044 SYNTAX Unsigned32 1045 MAX-ACCESS read-write 1046 STATUS current 1047 DESCRIPTION 1048 "The boundary value between bucket2 and bucket 3. If this 1049 value is modified, all entries in the apmReportTable must be 1050 deleted by the agent. 1052 The value of this object must persist across reboots." 1053 ::= { apmAppDirEntry 5 } 1055 apmAppDirResponsivenessBoundary3 OBJECT-TYPE 1056 SYNTAX Unsigned32 1057 MAX-ACCESS read-write 1058 STATUS current 1059 DESCRIPTION 1060 "The boundary value between bucket3 and bucket 4. If this 1061 value is modified, all entries in the apmReportTable must be 1062 deleted by the agent. 1064 The value of this object must persist across reboots." 1065 ::= { apmAppDirEntry 6 } 1067 apmAppDirResponsivenessBoundary4 OBJECT-TYPE 1068 SYNTAX Unsigned32 1069 MAX-ACCESS read-write 1070 STATUS current 1071 DESCRIPTION 1072 "The boundary value between bucket4 and bucket 5. If this 1073 value is modified, all entries in the apmReportTable must be 1074 deleted by the agent. 1076 The value of this object must persist across reboots." 1077 ::= { apmAppDirEntry 7 } 1079 apmAppDirResponsivenessBoundary5 OBJECT-TYPE 1080 SYNTAX Unsigned32 1081 MAX-ACCESS read-write 1082 STATUS current 1083 DESCRIPTION 1084 "The boundary value between bucket5 and bucket 6. If this 1085 value is modified, all entries in the apmReportTable must be 1086 deleted by the agent. 1088 The value of this object must persist across reboots." 1089 ::= { apmAppDirEntry 8 } 1091 apmAppDirResponsivenessBoundary6 OBJECT-TYPE 1092 SYNTAX Unsigned32 1093 MAX-ACCESS read-write 1094 STATUS current 1095 DESCRIPTION 1096 "The boundary value between bucket6 and bucket 7. If this 1097 value is modified, all entries in the apmReportTable must be 1098 deleted by the agent. 1100 The value of this object must persist across reboots." 1101 ::= { apmAppDirEntry 9 } 1103 -- Scalars related to the Application Directory table 1105 apmBucketBoundaryLastChange OBJECT-TYPE 1106 SYNTAX TimeStamp 1107 MAX-ACCESS read-only 1108 STATUS current 1109 DESCRIPTION 1110 "The value of sysUpTime the last time that any bucket boundary 1111 in any appDirEntry was changed. This object can help to 1112 determine if two managers are both trying to enforce different 1113 configurations of this table." 1114 ::= { apmMibObjects 2 } 1116 apmAppDirID OBJECT-TYPE 1117 SYNTAX OBJECT IDENTIFIER 1118 MAX-ACCESS read-write 1119 STATUS current 1120 DESCRIPTION 1121 "This object allows managers to avoid downloading application 1122 directory information when the directory is set to a known 1123 (usually fixed) configuration. 1125 If the value of this object isn't 0.0, it signifies 1126 that the entire contents of the apmAppDirTable, 1127 apmHttpFilterTable, apmUserDefinedAppTable and 1128 protocolDirTable are equal to a known state identified 1129 by the value of this object. If a manager recognizes this 1130 value as identifying a directory configuration it has a local 1131 copy of, it may use this local copy rather than downloading 1132 these tables. Note that it may have downloaded this local copy 1133 (and the ID) from another agent and used this copy for all 1134 other agents that advertised the same ID. 1136 If an agent recognizes that the entire contents of the 1137 apmAppDirTable, apmHttpFilterTable, 1138 apmUserDefinedAppTable and protocolDirTable are equal to 1139 a known state to which an ID has been assigned, it should set 1140 this object to that ID. 1142 In many cases when this feature is used, the application 1143 directory information will be in read-only memory and thus the 1144 tables may not be modified via SNMP requests. In the event 1145 that the tables are writable and a modification is made, the 1146 agent is responsible for setting this object to 0.0 if it 1147 cannot determine that the state is equal to a known state. 1149 An agent is not obligated to recognize and advertise all such 1150 registered states as it may not have knowledge of all states. 1151 Thus, a manager may encounter agents whose DirectoryID value 1152 is 0.0 even though the contents of the directory were equal to 1153 a registered state. 1155 Note that the contents of those tables includes the 1156 protocolDirLocalIndex and appLocalIndex values. In other 1157 words, these values can't be assigned randomly on each agent, 1158 but must be equal to values that are part of the known 1159 state. While it is possible for a manager to download 1160 application directory details using SNMP and to set the 1161 appropriate directoryID, the manager would need to have some 1162 scheme to ensure consistent values of LocalIndex variables 1163 from agent to agent. Such schemes are outside the scope of 1164 this specification. 1166 Application directory registrations are unique within an 1167 administrative domain. 1169 Typically these registrations will be made by an agent 1170 software developer who will set the application directory 1171 tables to a read-only state and assign a DirectoryID to that 1172 state. Thus, all agents running this software would share the 1173 same DirectoryID. As the application directory might change 1174 from one software release to the next, the developer may 1175 register different DirectoryID's for each software release. 1177 A customer could also create a site-wide application directory 1178 configuration and assign a DirectoryID to that configuration 1179 as long as consistent values of LocalIndex variables can be 1180 ensured. 1182 The value of this object must persist across reboots." 1183 ::= { apmMibObjects 3 } 1185 -- APM HTTP Filter Table 1187 -- The HTTP Filter Table creates virtual applications which measure the 1188 -- performance of certain web pages or sets of web pages. Some 1189 -- circumstances where this is particularly useful are: 1190 -- 1191 -- - An Intranet or ASP scenario where a business application is 1192 -- running on one or more web pages or scripts. 1193 -- (i.e. /expense/submit.cgi?employeeID=3426&...) 1194 -- - A web-hosting scenario where one wants to measure the 1195 -- service level for a particular customer 1196 -- - An e-commerce scenario where the performance of certain 1197 -- pages needs to be monitored more closely. 1198 -- (i.e. shopping cart, shipping, credit card authorization) 1200 apmHttpFilterTable OBJECT-TYPE 1201 SYNTAX SEQUENCE OF ApmHttpFilterEntry 1202 MAX-ACCESS not-accessible 1203 STATUS current 1204 DESCRIPTION 1205 "A table that creates virtual applications which measure the 1206 performance of certain web pages or sets of web pages. 1208 When an entry is added to this table, the agent will 1209 automatically create one or more entries in the 1210 apmAppDirTable (one for each responsivenessType it is 1211 capable of measuring). 1213 Note that when entries exist in this table some HTTP 1214 transactions will be summarized twice: in applications 1215 represented here as well as the HTTP application. If entries 1216 in this table overlap, these transactions may be summarized 1217 additional times. 1219 The contents of this table affect all reports and exceptions 1220 generated by this agent. Accordingly, modification of this 1221 table should be performed by a manager acting in the role of 1222 administrator. In particular, management software should not 1223 require or enforce particular configuration of this table - it 1224 should reflect the preferences of the site administrator, not 1225 the software author." 1226 ::= { apmMibObjects 4 } 1228 apmHttpFilterEntry OBJECT-TYPE 1229 SYNTAX ApmHttpFilterEntry 1230 MAX-ACCESS not-accessible 1231 STATUS current 1232 DESCRIPTION 1233 "A virtual application which measure the performance of certain 1234 web pages or sets of web pages." 1235 INDEX { apmHttpFilterIndex } 1236 ::= { apmHttpFilterTable 1 } 1238 ApmHttpFilterEntry ::= SEQUENCE { 1239 apmHttpFilterIndex Unsigned32, 1240 apmHttpFilterAppLocalIndex AppLocalIndex, 1241 apmHttpFilterServerProtocol Unsigned32, 1242 apmHttpFilterServerAddress ProtocolDirNetworkAddress, 1243 apmHttpFilterURLPath OCTET STRING, 1244 apmHttpFilterMatchType INTEGER, 1245 apmHttpFilterOwner OwnerString, 1246 apmHttpFilterStorageType StorageType, 1247 apmHttpFilterRowStatus RowStatus 1248 } 1250 apmHttpFilterIndex OBJECT-TYPE 1251 SYNTAX Unsigned32 (0..65535) 1252 MAX-ACCESS not-accessible 1253 STATUS current 1254 DESCRIPTION 1255 "An index that uniquely identifies an entry in the 1256 apmHttpFilterTable." 1257 ::= { apmHttpFilterEntry 1 } 1259 apmHttpFilterAppLocalIndex OBJECT-TYPE 1260 SYNTAX AppLocalIndex 1261 MAX-ACCESS read-only 1262 STATUS current 1263 DESCRIPTION 1264 "The AppLocalIndex that represents HTTP transactions 1265 that match this entry. 1267 This object is read-only. A value is created by the agent from 1268 an unused AppLocalIndex value when this apmHttpFilterEntry is 1269 created." 1270 ::= { apmHttpFilterEntry 2 } 1272 apmHttpFilterServerProtocol OBJECT-TYPE 1273 SYNTAX Unsigned32 (1..2147483647) 1274 MAX-ACCESS read-create 1275 STATUS current 1276 DESCRIPTION 1277 "The protocolDirLocalIndex value of the network level protocol 1278 of the apmHttpFilterServerAddress." 1279 ::= { apmHttpFilterEntry 3 } 1281 apmHttpFilterServerAddress OBJECT-TYPE 1282 SYNTAX ProtocolDirNetworkAddress 1283 MAX-ACCESS read-create 1284 STATUS current 1285 DESCRIPTION 1286 "This entry will only represent transactions coming from the 1287 network address specified in this object. 1289 This is represented as an octet string with 1290 specific semantics and length as identified 1291 by the associated apmHttpFilterServerProtocol object. 1293 If this object is the zero-length string, then this entry will 1294 match one of the addresses represented by the 'host' component 1295 of the associated apmHttpFilterURLPath object, where the 1296 format if a URL [11] is 1297 http://:/?." 1298 ::= { apmHttpFilterEntry 4 } 1300 apmHttpFilterURLPath OBJECT-TYPE 1301 SYNTAX OCTET STRING (SIZE(0..65535)) 1302 MAX-ACCESS read-create 1303 STATUS current 1304 DESCRIPTION 1305 "This entry will only represent HTTP transactions 1306 where the URL path component in the request matches this 1307 value. This value represents the requested path regardless of 1308 any substitution that the server might perform. 1310 Prior to the matching, the URL is stripped of any server 1311 address or DNS name and consists solely of the path name on 1312 that server. 1314 If the length of this object is zero, then this entry will 1315 match if the associated apmHttpFilterServerAddress match. If 1316 the length of that object is also zero, then this entry will 1317 match nothing. 1319 The value of the associated apmHttpFilterMatchType dictates 1320 the type of matching that will be attempted." 1321 ::= { apmHttpFilterEntry 5 } 1323 apmHttpFilterMatchType OBJECT-TYPE 1324 SYNTAX INTEGER { 1325 exact(1), 1326 stripTrailingSlash(2), 1327 prefix(3) 1328 } 1329 MAX-ACCESS read-create 1330 STATUS current 1331 DESCRIPTION 1332 "The matching algorithm used to compare the URL pathname. 1334 If the value is exact(1), then the pathname component will be 1335 compared with the associated apmHttpFilterURLPath and 1336 will only be associated with this entry if it matches exactly. 1338 If the value is stripTrailingSlash(2), then the pathname 1339 component will be compared with the associated 1340 apmHttpFilterURLPath and will only be associated with this 1341 entry if it matches exactly or if the pathname ends with a '/' 1342 symbol and matches apmHttpFilterURLPath if the '/' symbol is 1343 removed from the pathname. This option exists for those paths 1344 where an optional trailing slash is possible but for which a 1345 prefix match would be too broad. 1347 If the value is prefix(3), then the pathname component will be 1348 compared with the associated apmHttpFilterURLPath and will 1349 only be associated with this entry if the beginning of the 1350 pathname matches every octet of this value. Octets that extend 1351 beyond the length of this value are ignored." 1352 ::= { apmHttpFilterEntry 6 } 1354 apmHttpFilterOwner OBJECT-TYPE 1355 SYNTAX OwnerString 1356 MAX-ACCESS read-create 1357 STATUS current 1358 DESCRIPTION 1359 "The entity that configured this entry and is 1360 therefore using the resources assigned to it." 1361 ::= { apmHttpFilterEntry 7 } 1363 apmHttpFilterStorageType OBJECT-TYPE 1364 SYNTAX StorageType 1365 MAX-ACCESS read-create 1366 STATUS current 1367 DESCRIPTION 1368 "The storage type of this apmHttpFilterEntry. If the value of 1369 this object is 'permanent', no objects in this row need to be 1370 writable." 1371 ::= { apmHttpFilterEntry 8 } 1373 apmHttpFilterRowStatus OBJECT-TYPE 1374 SYNTAX RowStatus 1375 MAX-ACCESS read-create 1376 STATUS current 1377 DESCRIPTION 1378 "The status of this apmHttpFilterEntry. No objects in this row 1379 may be modified while the row's status is 'active'." 1380 ::= { apmHttpFilterEntry 9 } 1382 apmHttpIgnoreUnregisteredURLs OBJECT-TYPE 1383 SYNTAX TruthValue 1384 MAX-ACCESS read-write 1385 STATUS current 1386 DESCRIPTION 1387 "When true, APM measurements of HTTP transactions will only 1388 measure transactions relating to URLs that match a filter in 1389 the apmHttpFilterTable. Thus, measurements for the HTTP 1390 application will present aggregated statistics for 1391 URL-matching HTTP transactions and measurements for the HTTP 1392 GET application verb will present aggregated statistics for 1393 URL-matching HTTP GET transactions. 1395 This will be used in environments that wish to monitor only 1396 targeted URLs and to ignore large volumes of internet web 1397 browsing traffic. 1399 This object affects all APM reports and exceptions generated 1400 by this agent. Accordingly, modification of this object should 1401 be performed by a manager acting in the role of 1402 administrator. In particular, management software should not 1403 require or enforce particular configuration of this object - 1404 it should reflect the preferences of the site administrator, 1405 not the software author. 1407 The value of this object must persist across reboots." 1408 ::= { apmMibObjects 5 } 1410 apmHttp4xxIsFailure OBJECT-TYPE 1411 SYNTAX TruthValue 1412 MAX-ACCESS read-write 1413 STATUS current 1414 DESCRIPTION 1415 "When true, this agent will recognize HTTP errors in the range 1416 of 400 through 499 and will treat them as unavailable 1417 transactions. When false or when this object isn't supported, 1418 they will be treated as successful transactions. 1420 This object allows such error pages to be tracked at the 1421 possible expense of having user typo's treated as poor service 1422 on the part of the web server. 1424 This object affects all reports and exceptions generated by 1425 this agent. Accordingly, modification of this object should be 1426 performed by a manager acting in the role of administrator. In 1427 particular, management software should not require or enforce 1428 particular configuration of this object - it should reflect 1429 the preferences of the site administrator, not the software 1430 author. 1432 The value of this object must persist across reboots." 1433 ::= { apmMibObjects 6 } 1435 -- The APM User-Defined Application Table 1437 -- Many application protocols will never be registered with a 1438 -- standards body (and thus included in a protocol directory standard) 1439 -- because they are custom, in-house or proprietary 1440 -- applications. Nevertheless, implementation strategies exist for 1441 -- monitoring the end-user experience of these applications. 1442 -- 1443 -- This read-only table provides a means for the agent to advertise 1444 -- which user-defined applications it is monitoring and to associate 1445 -- each with an AppLocalIndex value. It is an implementation-dependent 1446 -- matter as to how the agent learns how to monitor these 1447 -- applications. 1449 apmUserDefinedAppTable OBJECT-TYPE 1450 SYNTAX SEQUENCE OF ApmUserDefinedAppEntry 1451 MAX-ACCESS not-accessible 1452 STATUS current 1453 DESCRIPTION 1454 "A table that advertises user-defined applications that the 1455 agent is measuring. 1457 The agent will automatically create one or more entries in the 1458 apmAppDirTable (one for each responsivenessType it is 1459 capable of measuring) for each entry in this table. 1461 Note that when entries exist in this table some 1462 transactions can be summarized more than once if there is 1463 overlap between applications defined here and applications 1464 defined in the protocol directory or in the httpFilter table." 1465 ::= { apmMibObjects 7 } 1467 apmUserDefinedAppEntry OBJECT-TYPE 1468 SYNTAX ApmUserDefinedAppEntry 1469 MAX-ACCESS not-accessible 1470 STATUS current 1471 DESCRIPTION 1472 "A user-defined application that the agent is measuring, along 1473 with its AppLocalIndex assignment. 1475 The apmAppDirAppLocalIndex value in the index identifies 1476 the agent-assigned AppLocalIndex value for this user-defined 1477 application." 1478 INDEX { apmAppDirAppLocalIndex } 1479 ::= { apmUserDefinedAppTable 1 } 1481 ApmUserDefinedAppEntry ::= SEQUENCE { 1482 apmUserDefinedAppParentIndex Unsigned32, 1483 apmUserDefinedAppApplication SnmpAdminString 1484 } 1486 apmUserDefinedAppParentIndex OBJECT-TYPE 1487 SYNTAX Unsigned32 (1..2147483647) 1488 MAX-ACCESS read-only 1489 STATUS current 1490 DESCRIPTION 1491 "The protocolDirLocalIndex value of the highest-layer 1492 protocol defined in the protocolDirTable that this 1493 application is a child of." 1494 ::= { apmUserDefinedAppEntry 1 } 1496 apmUserDefinedAppApplication OBJECT-TYPE 1497 SYNTAX SnmpAdminString 1498 MAX-ACCESS read-only 1499 STATUS current 1500 DESCRIPTION 1501 "A human readable descriptive tag for this application." 1502 ::= { apmUserDefinedAppEntry 2 } 1504 -- The APM Name Table 1506 apmNameTable OBJECT-TYPE 1507 SYNTAX SEQUENCE OF ApmNameEntry 1508 MAX-ACCESS not-accessible 1509 STATUS current 1510 DESCRIPTION 1511 "A client machine may have multiple addresses during a period 1512 of monitoring. The apmNameTable assigns a long-lived 1513 identifier to a client and records what addresses were 1514 assigned to that client for periods of time. Various 1515 implementation techniques exist for tracking this mapping but 1516 if an agent is unable to track client address mappings, it may 1517 map client identifiers to client addresses rather than to 1518 distinct client machines. 1520 A particular apmNameClientID should be a constant attribute of 1521 a particular client. When available, the agent may also record 1522 the machine name and/or user name which may be valuable for 1523 displaying to humans. The apmNameMachineName and 1524 apmNameUserName are relatively constant, changing only if 1525 these attributes actually change on the client. 1527 The agent will store a historical log of these entries, aging 1528 out old entries as the log becomes too large. Since this table 1529 contains information vital to the interpretation of other 1530 tables (e.g. the apmReportTable), the agent should ensure that 1531 the log doesn't age out entries that would be referenced by 1532 data in those tables. 1534 Note that an entry for a clientID is active from its 1535 StartTime until the StartTime of another entry (for the same 1536 clientID) that supercedes it, or 'now' if none supercede 1537 it. Therefore, if a clientID only has a single entry, it is by 1538 definition very new and should never be aged out. No entry for 1539 a clientID should be aged out unless it has been updated by a 1540 new entry for the client (i.e. with an updated address) and 1541 only if the new entry is 'old' enough. 1543 To determine how old is old enough, compute the maximum value 1544 of Interval * (NumReports + 1) of all entries in the 1545 apmReportControlTable (the '+ 1' is to allow a reasonable 1546 period of time for the report to be downloaded). Then take the 1547 larger of this value and the age in seconds of the oldest 1548 entry in the current transaction table. If an entry for a 1549 clientID is superceded by another entry whose StartTime is 1550 more than this many seconds ago, then the older entry may be 1551 deleted." 1552 ::= { apmMibObjects 8 } 1554 apmNameEntry OBJECT-TYPE 1555 SYNTAX ApmNameEntry 1556 MAX-ACCESS not-accessible 1557 STATUS current 1558 DESCRIPTION 1559 "An entry in the APM name table. An entry exists for each 1560 period of time that a client has been associated with a 1561 particular address. 1563 The protocolDirLocalIndex value in the index identifies 1564 the network layer protocol for the ClientAddress for this 1565 entry. 1567 Note that some combinations of index values may result in an 1568 index that exceeds 128 sub-identifiers in length which exceeds 1569 the maximum for the SNMP protocol. Implementations should take 1570 care to avoid such combinations." 1571 INDEX { apmNameClientID, 1572 protocolDirLocalIndex, apmNameClientAddress, 1573 apmNameMappingStartTime } 1574 ::= { apmNameTable 1 } 1576 ApmNameEntry ::= SEQUENCE { 1577 apmNameClientID RmonClientID, 1578 apmNameClientAddress ProtocolDirNetworkAddress, 1579 apmNameMappingStartTime DateAndTime, 1580 apmNameMachineName SnmpAdminString, 1581 apmNameUserName SnmpAdminString 1582 } 1584 apmNameClientID OBJECT-TYPE 1585 SYNTAX RmonClientID 1586 MAX-ACCESS not-accessible 1587 STATUS current 1588 DESCRIPTION 1589 "A unique ID assigned to the machine represented by this 1590 mapping. This ID is assigned by the agent using an 1591 implementation-specific algorithm." 1592 ::= { apmNameEntry 1 } 1594 apmNameClientAddress OBJECT-TYPE 1595 SYNTAX ProtocolDirNetworkAddress (SIZE(1..255)) 1596 MAX-ACCESS not-accessible 1597 STATUS current 1598 DESCRIPTION 1599 "The network client address for this client when this mapping 1600 was active. 1602 This is represented as an octet string with specific semantics 1603 and length as identified by the protocolDirLocalIndex 1604 component of the index. This object may not be the zero length 1605 string. 1607 Since this object is an index variable, it is encoded in the 1608 index according to the index encoding rules. For example, if 1609 the protocolDirLocalIndex component of the index indicates an 1610 encapsulation of ip, this object is encoded as a length octet 1611 of 4, followed by the 4 octets of the ip address, in network 1612 byte order. Care should be taken to avoid values of this 1613 object that, in conjunction with the other index variables, 1614 would result in an index longer than SNMP's maximum of 128 1615 subidentifiers." 1616 ::= { apmNameEntry 2 } 1618 apmNameMappingStartTime OBJECT-TYPE 1619 SYNTAX DateAndTime 1620 MAX-ACCESS not-accessible 1621 STATUS current 1622 DESCRIPTION 1623 "The time that the agent first discovered this mapping 1624 as active." 1625 ::= { apmNameEntry 3 } 1627 apmNameMachineName OBJECT-TYPE 1628 SYNTAX SnmpAdminString 1629 MAX-ACCESS read-only 1630 STATUS current 1631 DESCRIPTION 1632 "The human readable name of the client machine. 1634 If the client has no machine name or the agent is 1635 unable to learn the machine name, this object will be 1636 a zero-length string." 1637 ::= { apmNameEntry 4 } 1639 apmNameUserName OBJECT-TYPE 1640 SYNTAX SnmpAdminString 1641 MAX-ACCESS read-only 1642 STATUS current 1643 DESCRIPTION 1644 "The human readable name of a human user using the client 1645 machine. If more than one user name are available 1646 simultaneously, it is an implementation-dependent matter as to 1647 which is used here. However, if the user name changes, this 1648 object should change to reflect that change. 1650 Non-human user names like 'root' or 'administrator' aren't 1651 intended as values for this object. If the client has no 1652 recorded user name or the agent is unable to learn a user 1653 name, this object will be a zero-length string." 1654 ::= { apmNameEntry 5 } 1656 -- The APM Report Group 1658 apmReportControlTable OBJECT-TYPE 1659 SYNTAX SEQUENCE OF ApmReportControlEntry 1660 MAX-ACCESS not-accessible 1661 STATUS current 1662 DESCRIPTION 1663 "Parameters that control the creation of a set of reports that 1664 aggregate application performance." 1665 ::= { apmMibObjects 9 } 1667 apmReportControlEntry OBJECT-TYPE 1668 SYNTAX ApmReportControlEntry 1669 MAX-ACCESS not-accessible 1670 STATUS current 1671 DESCRIPTION 1672 "A conceptual row in the apmReportControlTable. 1674 An example of the indexing of this table is 1675 apmReportControlInterval.3" 1676 INDEX { apmReportControlIndex } 1677 ::= { apmReportControlTable 1 } 1679 ApmReportControlEntry ::= SEQUENCE { 1680 apmReportControlIndex Unsigned32, 1681 apmReportControlDataSource DataSourceOrZero, 1682 apmReportControlAggregationType TransactionAggregationType, 1683 apmReportControlInterval Unsigned32, 1684 apmReportControlRequestedSize Unsigned32, 1685 apmReportControlGrantedSize Unsigned32, 1686 apmReportControlRequestedReports Unsigned32, 1687 apmReportControlGrantedReports Unsigned32, 1688 apmReportControlStartTime TimeStamp, 1689 apmReportControlReportNumber Unsigned32, 1690 apmReportControlDeniedInserts Counter32, 1691 apmReportControlDroppedFrames Counter32, 1692 apmReportControlOwner OwnerString, 1693 apmReportControlStorageType StorageType, 1694 apmReportControlStatus RowStatus 1695 } 1697 apmReportControlIndex OBJECT-TYPE 1698 SYNTAX Unsigned32 (1..65535) 1699 MAX-ACCESS not-accessible 1700 STATUS current 1701 DESCRIPTION 1702 "An index that uniquely identifies an entry in the 1703 apmReportControlTable. Each such entry defines a unique 1704 report whose results are placed in the apmReportTable on 1705 behalf of this apmReportControlEntry." 1706 ::= { apmReportControlEntry 1 } 1708 apmReportControlDataSource OBJECT-TYPE 1709 SYNTAX DataSourceOrZero 1710 MAX-ACCESS read-create 1711 STATUS current 1712 DESCRIPTION 1713 "The source of the data for APM Reports generated on 1714 behalf of this apmReportControlEntry. 1716 If the measurement is being performed by a probe, this should 1717 be set to interface or port where data was received for 1718 analysis. If the measurement isn't being performed by a probe, 1719 this should be set to the primary interface over which the 1720 measurement is being performed. If the measurement isn't being 1721 performed by a probe and there is no primary interface or this 1722 information isn't known, this object should be set to 0.0. 1724 This object may not be modified if the associated 1725 apmReportControlStatus object is equal to active(1)." 1726 ::= { apmReportControlEntry 2 } 1728 apmReportControlAggregationType OBJECT-TYPE 1729 SYNTAX TransactionAggregationType 1730 -- INTEGER { 1731 -- flows(1), 1732 -- clients(2), 1733 -- servers(3), 1734 -- applications(4) 1735 -- } 1736 MAX-ACCESS read-create 1737 STATUS current 1738 DESCRIPTION 1739 "The type of aggregation being performed for this set of 1740 reports. 1742 The metrics for a single transaction are the responsiveness of 1743 the transaction and whether the transaction succeeded (a 1744 boolean). When such metrics are aggregated in this MIB Module, 1745 these metrics are replaced by averages and distributions of 1746 responsiveness and availability. The metrics describing 1747 aggregates are constant no matter which type of aggregation is 1748 being performed. These metrics may be found in the 1749 apmReportTable. 1751 The flows(1) aggregation is the simplest. All transactions 1752 that share common application/server/client 3-tuples are 1753 aggregated together, resulting in a set of metrics for all 1754 such unique 3-tuples. 1756 The clients(2) aggregation results in somewhat more 1757 aggregation (i.e. fewer resulting records). All transactions 1758 that share common application/client tuples are aggregated 1759 together, resulting in a set of metrics for all such unique 1760 tuples. 1762 The servers(3) aggregation usually results in still more 1763 aggregation (i.e. fewer resulting records). All transactions 1764 that share common application/server tuples are aggregated 1765 together, resulting in a set of metrics for all such unique 1766 tuples. 1768 The applications(4) aggregation results in the most 1769 aggregation (i.e. the fewest resulting records). All 1770 transactions that share a common application are aggregated 1771 together, resulting in a set of metrics for all such unique 1772 applications. 1774 Note that it is not meaningful to aggregate applications, as 1775 different applications have widely varying characteristics. 1776 As a result, this set of aggregations is complete. 1778 This object may not be modified if the associated 1779 apmReportControlStatus object is equal to active(1)." 1780 ::= { apmReportControlEntry 3 } 1782 apmReportControlInterval OBJECT-TYPE 1783 SYNTAX Unsigned32 1784 UNITS "Seconds" 1785 MAX-ACCESS read-create 1786 STATUS current 1787 DESCRIPTION 1788 "The interval in seconds over which data is accumulated before 1789 being aggregated into a report in the apmReportTable. All 1790 reports with the same apmReportControlIndex will be based on 1791 the same interval. This object must be greater than zero. 1793 Many users desire that these reports be synchronized to within 1794 seconds of the beginning of the hour because the results may 1795 be correlated more meaningfully to business behavior and so 1796 that data from multiple agents is aggregated over the same 1797 time periods. Thus management software may take extra effort 1798 to synchronize reports to the beginning of the hour and to one 1799 another. However, the agent must not allow reports to 'drift' 1800 over time as they will quickly become unsynchronized. In 1801 particular, if there is any fixed processing delay between 1802 reports, the reports should deduct this time from the interval 1803 so that reports don't drift. 1805 This object may not be modified if the associated 1806 apmReportControlStatus object is equal to active(1)." 1807 DEFVAL { 3600 } 1808 ::= { apmReportControlEntry 4 } 1810 apmReportControlRequestedSize OBJECT-TYPE 1811 SYNTAX Unsigned32 1812 MAX-ACCESS read-create 1813 STATUS current 1814 DESCRIPTION 1815 "The number of entries requested to be allocated for each 1816 report generated on behalf of this entry." 1817 ::= { apmReportControlEntry 5 } 1819 apmReportControlGrantedSize OBJECT-TYPE 1820 SYNTAX Unsigned32 1821 MAX-ACCESS read-only 1822 STATUS current 1823 DESCRIPTION 1824 "The number of entries per report the agent has allocated 1825 based on the requested amount in apmReportControlRequestedSize. 1826 Since multiple reports are saved, the total number of entries 1827 allocated will be this number multiplied by the value of 1828 apmReportControlGrantedReports, or 1 if that object doesn't 1829 exist. 1831 When the associated apmReportControlRequestedSize object is 1832 created or modified, the agent should set this object as 1833 closely to the requested value as is possible for the 1834 particular implementation and available resources. When 1835 considering resources available, the agent must consider its 1836 ability to allocate this many entries for all reports. 1838 Note that while the actual number of entries stored in the 1839 reports may fluctuate due to changing conditions, the agent 1840 must continue to have storage available to satisfy the full 1841 report size for all reports when necessary. Further, the agent 1842 must not lower this value except as a result of a set to the 1843 associated apmReportControlRequestedSize object." 1844 ::= { apmReportControlEntry 6 } 1846 apmReportControlRequestedReports OBJECT-TYPE 1847 SYNTAX Unsigned32 (0..65535) 1848 MAX-ACCESS read-create 1849 STATUS current 1850 DESCRIPTION 1851 "The number of saved reports requested to be allocated on 1852 behalf of this entry." 1853 ::= { apmReportControlEntry 7 } 1855 apmReportControlGrantedReports OBJECT-TYPE 1856 SYNTAX Unsigned32 (0..65535) 1857 MAX-ACCESS read-only 1858 STATUS current 1859 DESCRIPTION 1860 "The number of saved reports the agent has allocated 1861 based on the requested amount in 1862 apmReportControlRequestedReports. Since each report can have 1863 many entries, the total number of entries allocated will be 1864 this number multiplied by the value of 1865 apmReportControlGrantedSize, or 1 if that object doesn't 1866 exist. 1868 When the associated apmReportControlRequestedReports object is 1869 created or modified, the agent should set this object as 1870 closely to the requested value as is possible for the 1871 particular implementation and available resources. When 1872 considering resources available, the agent must consider its 1873 ability to allocate this many reports each with the number of 1874 entries represented by apmReportControlGrantedSize, or 1 if 1875 that object doesn't exist. 1877 Note that while the storage required for each report may 1878 fluctuate due to changing conditions, the agent must continue 1879 to have storage available to satisfy the full report size for 1880 all reports when necessary. Further, the agent must not lower 1881 this value except as a result of a set to the associated 1882 apmReportControlRequestedSize object." 1883 ::= { apmReportControlEntry 8 } 1885 apmReportControlStartTime OBJECT-TYPE 1886 SYNTAX TimeStamp 1887 MAX-ACCESS read-only 1888 STATUS current 1889 DESCRIPTION 1890 "The value of sysUpTime when the system began processing the 1891 report in progress. Note that the report in progress is not 1892 available. 1894 This object may be used by the management station to figure 1895 out the start time for all previous reports saved for this 1896 apmReportControlEntry, as reports are started at fixed 1897 intervals." 1898 ::= { apmReportControlEntry 9 } 1900 apmReportControlReportNumber OBJECT-TYPE 1901 SYNTAX Unsigned32 (1..4294967295) 1902 MAX-ACCESS read-only 1903 STATUS current 1904 DESCRIPTION 1905 "The number of the report in progress. When an 1906 apmReportControlEntry is activated, the first report will be 1907 numbered one." 1908 ::= { apmReportControlEntry 10 } 1910 apmReportControlDeniedInserts OBJECT-TYPE 1911 SYNTAX Counter32 1912 MAX-ACCESS read-only 1913 STATUS current 1914 DESCRIPTION 1915 "The number of failed attempts to add an entry to reports for 1916 this apmReportControlEntry because the number of entries 1917 would have exceeded apmReportControlGrantedSize. 1919 This number is valuable in determining if enough entries have 1920 been allocated for reports in light of fluctuating network 1921 usage. Note that since an entry that is denied will often be 1922 attempted again, this number will not predict the exact number 1923 of additional entries needed, but can be used to understand 1924 the relative magnitude of the problem. 1926 Also note that there is no ordering specified for the entries 1927 in the report, thus there are no rules for which entries will 1928 be omitted when not enough entries are available. As a 1929 consequence, the agent is not required to delete 'least 1930 valuable' entries first." 1931 ::= { apmReportControlEntry 11 } 1933 apmReportControlDroppedFrames OBJECT-TYPE 1934 SYNTAX Counter32 1935 MAX-ACCESS read-only 1936 STATUS current 1937 DESCRIPTION 1938 "The total number of frames which were received by the agent 1939 and therefore not accounted for in the *StatsDropEvents, but 1940 for which the agent chose not to count for this entry for 1941 whatever reason. Most often, this event occurs when the agent 1942 is out of some resources and decides to shed load from this 1943 collection. 1945 This count does not include packets that were not counted 1946 because they had MAC-layer errors. 1948 This counter is only relevant if this apm report is based on 1949 a data source whose collection methodology is based on 1950 analyzing network traffic. 1952 Note that if the apmReportTables are inactive because no 1953 applications are enabled in the application directory, this 1954 value should be 0. 1956 Note that, unlike the dropEvents counter, this number is the 1957 exact number of frames dropped." 1958 ::= { apmReportControlEntry 12 } 1960 apmReportControlOwner OBJECT-TYPE 1961 SYNTAX OwnerString 1962 MAX-ACCESS read-create 1963 STATUS current 1964 DESCRIPTION 1965 "The entity that configured this entry and is 1966 therefore using the resources assigned to it." 1967 ::= { apmReportControlEntry 13 } 1969 apmReportControlStorageType OBJECT-TYPE 1970 SYNTAX StorageType 1971 MAX-ACCESS read-create 1972 STATUS current 1973 DESCRIPTION 1974 "The storage type of this apmReportControlEntry. If the value 1975 of this object is 'permanent', no objects in this row need to 1976 be writable." 1977 ::= { apmReportControlEntry 14 } 1979 apmReportControlStatus OBJECT-TYPE 1980 SYNTAX RowStatus 1981 MAX-ACCESS read-create 1982 STATUS current 1983 DESCRIPTION 1984 "The status of this apmReportControlEntry. 1986 An entry may not exist in the active state unless all 1987 objects in the entry have an appropriate value. The only 1988 objects in the entry that may be modified while the entry is 1989 in the active state are apmReportControlRequestedSize and 1990 apmReportControlRequestedReports. 1992 If this object is not equal to active(1), all 1993 associated entries in the apmReportTable shall be deleted 1994 by the agent." 1995 ::= { apmReportControlEntry 15 } 1997 -- The APM Report Table 1999 apmReportTable OBJECT-TYPE 2000 SYNTAX SEQUENCE OF ApmReportEntry 2001 MAX-ACCESS not-accessible 2002 STATUS current 2003 DESCRIPTION 2004 "The data resulting from aggregated APM reports. Consult the 2005 definition of apmReportControlAggregationType for the 2006 definition of the various types of aggregations." 2007 ::= { apmMibObjects 10 } 2009 apmReportEntry OBJECT-TYPE 2010 SYNTAX ApmReportEntry 2011 MAX-ACCESS not-accessible 2012 STATUS current 2013 DESCRIPTION 2014 "A conceptual row in the apmReportTable. 2016 The apmReportControlIndex value in the index identifies the 2017 apmReportControlEntry on whose behalf this entry was created. 2018 The apmReportIndex value in the index identifies which report 2019 (in the series of reports) this entry is a part of. 2020 The apmAppDirAppLocalIndex value in the index identifies 2021 the common application of the transactions aggregated in this 2022 entry. 2023 The apmAppDirResponsivenessType value in the index 2024 identifies the type of responsiveness metric reported by 2025 this entry and uniquely identifies this entry when more 2026 than one responsiveness metric is measured for a flow. 2027 Entries will only exist in this table for those 2028 combinations of AppLocalIndex and ResponsivenessType 2029 that are configured 'on(1)'. 2030 The protocolDirLocalIndex value in the index identifies 2031 the network layer protocol of the apmReportServerAddress. 2032 When the associated apmReportControlAggregationType value is 2033 equal to applications(4) or clients(2), this 2034 protocolDirLocalIndex value will equal 0. 2035 The apmReportServerAddress value in the index identifies the 2036 network layer address of the server in transactions aggregated 2037 in this entry. 2038 The apmNameClientID value in the index identifies the 2039 client in transactions aggregated in this entry. If the 2040 associated apmReportControlAggregationType is equal to 2041 applications(4) or servers(3), then this protocolDirLocalIndex 2042 value will equal 0. 2044 An example of the indexing of this entry is 2045 apmReportTransactionCount.3.15.3.1.8.4.192.168.1.2.3232235788 2047 Note that some combinations of index values may result in an 2048 index that exceeds 128 sub-identifiers in length which exceeds 2049 the maximum for the SNMP protocol. Implementations should take 2050 care to avoid such combinations." 2051 INDEX { apmReportControlIndex, apmReportIndex, 2052 apmAppDirAppLocalIndex, 2053 apmAppDirResponsivenessType, 2054 protocolDirLocalIndex, apmReportServerAddress, 2055 apmNameClientID } 2056 ::= { apmReportTable 1 } 2058 ApmReportEntry ::= SEQUENCE { 2059 apmReportIndex Unsigned32, 2060 apmReportServerAddress ProtocolDirNetworkAddress, 2061 apmReportTransactionCount Unsigned32, 2062 apmReportSuccessfulTransactions Unsigned32, 2063 apmReportResponsivenessMean Unsigned32, 2064 apmReportResponsivenessMin Unsigned32, 2065 apmReportResponsivenessMax Unsigned32, 2066 apmReportResponsivenessB1 Unsigned32, 2067 apmReportResponsivenessB2 Unsigned32, 2068 apmReportResponsivenessB3 Unsigned32, 2069 apmReportResponsivenessB4 Unsigned32, 2070 apmReportResponsivenessB5 Unsigned32, 2071 apmReportResponsivenessB6 Unsigned32, 2072 apmReportResponsivenessB7 Unsigned32 2073 } 2075 apmReportIndex OBJECT-TYPE 2076 SYNTAX Unsigned32 (1..4294967295) 2077 MAX-ACCESS not-accessible 2078 STATUS current 2079 DESCRIPTION 2080 "The value of apmReportControlReportNumber for the report to 2081 which this entry belongs." 2082 ::= { apmReportEntry 1 } 2084 apmReportServerAddress OBJECT-TYPE 2085 SYNTAX ProtocolDirNetworkAddress 2086 MAX-ACCESS not-accessible 2087 STATUS current 2088 DESCRIPTION 2089 "The network server address for this apmReportEntry. 2091 This is represented as an octet string with 2092 specific semantics and length as identified 2093 by the protocolDirLocalIndex component of the index. 2095 Since this object is an index variable, it is encoded in the 2096 index according to the index encoding rules. For example, if 2097 the protocolDirLocalIndex indicates an encapsulation of ip, 2098 this object is encoded as a length octet of 4, followed by the 2099 4 octets of the ip address, in network byte order. Care 2100 should be taken to avoid values of this object that, in 2101 conjunction with the other index variables, would result in an 2102 index longer than SNMP's maximum of 128 subidentifiers. 2104 If the associated apmReportControlAggregationType is equal to 2105 applications(4) or clients(2), then this object will be a null 2106 string and will be encoded simply as a length octet of 0." 2107 ::= { apmReportEntry 2 } 2109 apmReportTransactionCount OBJECT-TYPE 2110 SYNTAX Unsigned32 2111 MAX-ACCESS read-only 2112 STATUS current 2113 DESCRIPTION 2114 "The total number of transactions aggregated into this record." 2115 ::= { apmReportEntry 3 } 2117 apmReportSuccessfulTransactions OBJECT-TYPE 2118 SYNTAX Unsigned32 2119 MAX-ACCESS read-only 2120 STATUS current 2121 DESCRIPTION 2122 "The total number of successful transactions aggregated into 2123 this record." 2124 ::= { apmReportEntry 4 } 2126 apmReportResponsivenessMean OBJECT-TYPE 2127 SYNTAX Unsigned32 2128 MAX-ACCESS read-only 2129 STATUS current 2130 DESCRIPTION 2131 "The arithmetic mean of the responsiveness metrics for all 2132 successful transactions aggregated into this record." 2133 ::= { apmReportEntry 5 } 2135 apmReportResponsivenessMin OBJECT-TYPE 2136 SYNTAX Unsigned32 2137 MAX-ACCESS read-only 2138 STATUS current 2139 DESCRIPTION 2140 "The minimum of the responsiveness metrics for all 2141 successful transactions aggregated into this record." 2142 ::= { apmReportEntry 6 } 2144 apmReportResponsivenessMax OBJECT-TYPE 2145 SYNTAX Unsigned32 2146 MAX-ACCESS read-only 2147 STATUS current 2148 DESCRIPTION 2149 "The maximum of the responsiveness metrics for all 2150 successful transactions aggregated into this record." 2152 ::= { apmReportEntry 7 } 2154 -- Note that when updating a report entry, a transaction will not be 2155 -- counted in more than 1 bucket in an entry. It will be counted in 2156 -- the first bucket that matches, starting with Bucket 1 (B1). Note 2157 -- that if a transaction matches 2 application types, it will update 2158 -- one bucket in each of 2 entries in this table. 2160 apmReportResponsivenessB1 OBJECT-TYPE 2161 SYNTAX Unsigned32 2162 MAX-ACCESS read-only 2163 STATUS current 2164 DESCRIPTION 2165 "The number of successful transactions aggregated into this 2166 record whose responsiveness was less than boundary1 value for 2167 this application." 2168 ::= { apmReportEntry 8 } 2170 apmReportResponsivenessB2 OBJECT-TYPE 2171 SYNTAX Unsigned32 2172 MAX-ACCESS read-only 2173 STATUS current 2174 DESCRIPTION 2175 "The number of successful transactions aggregated into this 2176 record whose responsiveness did not fall into Bucket 1 and was 2177 greater than or equal to the boundary1 value for this 2178 application and less than the boundary2 value for this 2179 application." 2180 ::= { apmReportEntry 9 } 2182 apmReportResponsivenessB3 OBJECT-TYPE 2183 SYNTAX Unsigned32 2184 MAX-ACCESS read-only 2185 STATUS current 2186 DESCRIPTION 2187 "The number of successful transactions aggregated into this 2188 record whose responsiveness did not fall into Bucket 1 or 2 2189 and as greater than or equal to the boundary2 value for this 2190 application and less than the boundary3 value for this 2191 application." 2192 ::= { apmReportEntry 10 } 2194 apmReportResponsivenessB4 OBJECT-TYPE 2195 SYNTAX Unsigned32 2196 MAX-ACCESS read-only 2197 STATUS current 2198 DESCRIPTION 2199 "The number of successful transactions aggregated into this 2200 record whose responsiveness did not fall into Buckets 1 2201 through 3 and was greater than or equal to the boundary3 value 2202 for this application and less than the boundary4 value for 2203 this application." 2204 ::= { apmReportEntry 11 } 2206 apmReportResponsivenessB5 OBJECT-TYPE 2207 SYNTAX Unsigned32 2208 MAX-ACCESS read-only 2209 STATUS current 2210 DESCRIPTION 2211 "The number of successful transactions aggregated into this 2212 record whose responsiveness did not fall into Buckets 1 2213 through 4 and was greater than or equal to the boundary4 value 2214 for this application and less than the boundary5 value for 2215 this application." 2216 ::= { apmReportEntry 12 } 2218 apmReportResponsivenessB6 OBJECT-TYPE 2219 SYNTAX Unsigned32 2220 MAX-ACCESS read-only 2221 STATUS current 2222 DESCRIPTION 2223 "The number of successful transactions aggregated into this 2224 record whose responsiveness did not fall into Buckets 1 2225 through 5 and was greater than or equal to the 2226 boundary5 value for this application and less than the 2227 boundary6 value for this application." 2228 ::= { apmReportEntry 13 } 2230 apmReportResponsivenessB7 OBJECT-TYPE 2231 SYNTAX Unsigned32 2232 MAX-ACCESS read-only 2233 STATUS current 2234 DESCRIPTION 2235 "The number of successful transactions aggregated into this 2236 record whose responsiveness did not fall into Buckets 1 2237 through 6 and was greater than or equal to the boundary6 value 2238 for this application." 2239 ::= { apmReportEntry 14 } 2241 -- APM Transaction Table 2242 apmTransactionTable OBJECT-TYPE 2243 SYNTAX SEQUENCE OF ApmTransactionEntry 2244 MAX-ACCESS not-accessible 2245 STATUS current 2246 DESCRIPTION 2247 "This table contains transactions that are currently running 2248 or have recently finished." 2249 ::= { apmMibObjects 11 } 2251 apmTransactionEntry OBJECT-TYPE 2252 SYNTAX ApmTransactionEntry 2253 MAX-ACCESS not-accessible 2254 STATUS current 2255 DESCRIPTION 2256 "A conceptual row in the apmTransactionTable. 2258 The apmAppDirAppLocalIndex value in the index identifies 2259 the application of the transaction represented by this entry. 2260 The apmAppDirResponsivenessType value in the index 2261 identifies the type of responsiveness metric reported by 2262 this entry and uniquely identifies this entry when more 2263 than one responsiveness metric is measured for a flow. 2264 Entries will only exist in this table for those 2265 combinations of AppLocalIndex and ResponsivenessType 2266 that are configured 'on(1)'. 2267 The protocolDirLocalIndex value in the index identifies 2268 the network layer protocol of the apmTransactionServerAddress. 2269 The apmTransactionServerAddress value in the index identifies 2270 the network layer address of the server in the transaction 2271 represented by this entry. 2272 The apmNameClientID value in the index identifies the 2273 client in the transaction represented by this entry. 2275 An example of the indexing of this entry is 2276 apmTransactionCount.3.1.8.4.192.168.1.2.3232235788.2987 2278 Note that some combinations of index values may result in an 2279 index that exceeds 128 sub-identifiers in length which exceeds 2280 the maximum for the SNMP protocol. Implementations should take 2281 care to avoid such combinations." 2282 INDEX { apmAppDirAppLocalIndex, 2283 apmAppDirResponsivenessType, 2284 protocolDirLocalIndex, apmTransactionServerAddress, 2285 apmNameClientID, apmTransactionID } 2286 ::= { apmTransactionTable 1 } 2288 ApmTransactionEntry ::= SEQUENCE { 2289 apmTransactionServerAddress ProtocolDirNetworkAddress, 2290 apmTransactionID Unsigned32, 2291 apmTransactionResponsiveness Unsigned32, 2292 apmTransactionAge TimeInterval, 2293 apmTransactionSuccess TruthValue 2294 } 2296 apmTransactionServerAddress OBJECT-TYPE 2297 SYNTAX ProtocolDirNetworkAddress (SIZE (1..255)) 2298 MAX-ACCESS not-accessible 2299 STATUS current 2300 DESCRIPTION 2301 "The network server address for this apmTransactionEntry. 2303 This is represented as an octet string with specific semantics 2304 and length as identified by the protocolDirLocalIndex 2305 component of the index. This object may not be the zero length 2306 string. 2308 For example, if the protocolDirLocalIndex indicates an 2309 encapsulation of ip, this object is encoded as a length octet 2310 of 4, followed by the 4 octets of the ip address, in network 2311 byte order. Care should be taken to avoid values of this 2312 object that, in conjunction with the other index variables, 2313 would result in an index longer than SNMP's maximum of 128 2314 subidentifiers." 2315 ::= { apmTransactionEntry 1 } 2317 apmTransactionID OBJECT-TYPE 2318 SYNTAX Unsigned32 (0..4294967295) 2319 MAX-ACCESS not-accessible 2320 STATUS current 2321 DESCRIPTION 2322 "A unique value for this transaction amongst other 2323 transactions sharing the same application layer protocol and 2324 server and client addresses. Implementations may choose to use 2325 the value of the client's source port, when possible." 2326 ::= { apmTransactionEntry 2 } 2328 apmTransactionResponsiveness OBJECT-TYPE 2329 SYNTAX Unsigned32 2330 MAX-ACCESS read-only 2331 STATUS current 2332 DESCRIPTION 2333 "The current value of the responsiveness metric for this 2334 transaction. If this transaction has completed, the final 2335 value of the metric will be available. 2337 Note that this value may change over the lifetime of the 2338 transaction and it is the final value of this metric that is 2339 recorded as the responsiveness of the transaction for use in 2340 other APM MIB functions." 2341 ::= { apmTransactionEntry 3 } 2343 apmTransactionAge OBJECT-TYPE 2344 SYNTAX TimeInterval 2345 MAX-ACCESS read-only 2346 STATUS current 2347 DESCRIPTION 2348 "If this transaction is still executing, this value shall be 2349 the length of time since it was started. If it has completed, 2350 this value shall be the length of time it was executing." 2351 ::= { apmTransactionEntry 4 } 2353 apmTransactionSuccess OBJECT-TYPE 2354 SYNTAX TruthValue 2355 MAX-ACCESS read-only 2356 STATUS current 2357 DESCRIPTION 2358 "The success of this transaction up to this time. Once a 2359 transaction has been marked as failed, it cannot move back 2360 into the successful state." 2361 ::= { apmTransactionEntry 5 } 2363 apmTransactionsRequestedHistorySize OBJECT-TYPE 2364 SYNTAX Unsigned32 2365 MAX-ACCESS read-write 2366 STATUS current 2367 DESCRIPTION 2368 "The maximum number of completed transactions desired to be 2369 retained in the apmTransactionTable. If the agent doesn't have 2370 enough resources to retain this many, it will retain as many as 2371 possible. Regardless of this value, the agent must attempt to 2372 keep records for all current transactions it is monitoring. 2374 The value of this object must persist across reboots." 2375 ::= { apmMibObjects 12 } 2377 -- The APM Exception table 2378 -- The APM Exception Table creates filters so that a management 2379 -- station can get immediate notification of a transaction that has 2380 -- had poor availability or responsiveness. 2381 -- 2382 -- This function is particularly helpful in unaggregated situations 2383 -- where the numbers of agents is relatively high and the transaction 2384 -- rate per agent is relatively low (such as agents for desktops or 2385 -- dedicated to small workgroups). Polling agents in such an 2386 -- environment would either cause scalability problems (high rate) or 2387 -- lead to long notification delays (low rate). 2389 apmExceptionTable OBJECT-TYPE 2390 SYNTAX SEQUENCE OF ApmExceptionEntry 2391 MAX-ACCESS not-accessible 2392 STATUS current 2393 DESCRIPTION 2394 "This table creates filters so that a management station can 2395 get immediate notification of a transaction that has had poor 2396 availability or responsiveness. 2398 Each apmExceptionEntry is associated with a particular type of 2399 transaction and is applied to all transactions of that 2400 type. Multiple apmExceptionEntries may be associated with a 2401 particular type of transaction. A transaction type is 2402 identified by the value of the apmAppDirAppLocalIndex 2403 component of the index. 2405 Because the quality of a transaction is not known until it is 2406 completed, these thresholds are only applied after the 2407 transaction has completed." 2408 ::= { apmMibObjects 13 } 2410 apmExceptionEntry OBJECT-TYPE 2411 SYNTAX ApmExceptionEntry 2412 MAX-ACCESS not-accessible 2413 STATUS current 2414 DESCRIPTION 2415 "A conceptual row in the apmExceptionTable. 2417 The apmAppDirAppLocalIndex value in the index identifies 2418 the application this entry will monitor. 2419 The apmAppDirResponsivenessType value in the index 2420 identifies the type of responsiveness metric this entry will 2421 monitor." 2423 INDEX { apmAppDirAppLocalIndex, 2424 apmAppDirResponsivenessType, apmExceptionIndex } 2425 ::= { apmExceptionTable 1 } 2427 ApmExceptionEntry ::= SEQUENCE { 2428 apmExceptionIndex Unsigned32, 2429 apmExceptionResponsivenessComparison INTEGER, 2430 apmExceptionResponsivenessThreshold Unsigned32, 2431 apmExceptionUnsuccessfulException INTEGER, 2432 apmExceptionResponsivenessEvents Counter32, 2433 apmExceptionUnsuccessfulEvents Counter32, 2434 apmExceptionOwner OwnerString, 2435 apmExceptionStorageType StorageType, 2436 apmExceptionStatus RowStatus 2437 } 2439 apmExceptionIndex OBJECT-TYPE 2440 SYNTAX Unsigned32 (1..65535) 2441 MAX-ACCESS not-accessible 2442 STATUS current 2443 DESCRIPTION 2444 "An index that uniquely identifies an entry in the 2445 apmExceptionTable amongst other entries with equivalent index 2446 values for apmAppDirAppLocalIndex and 2447 apmAppDirResponsivenessType. Each such entry sets up 2448 thresholds for a particular measurement of a particular 2449 application." 2450 ::= { apmExceptionEntry 1 } 2452 apmExceptionResponsivenessComparison OBJECT-TYPE 2453 SYNTAX INTEGER { 2454 none(1), 2455 greater(2), 2456 less(3) 2457 } 2458 MAX-ACCESS read-create 2459 STATUS current 2460 DESCRIPTION 2461 "If this value is greater(2) or less(3), the associated 2462 apmExceptionResponsivenessThreshold will be compared to this 2463 value and an exception will be created if the responsiveness 2464 is greater than the threshold (greater(2)) or less than the 2465 threshold (less(3))." 2466 ::= { apmExceptionEntry 2 } 2468 apmExceptionResponsivenessThreshold OBJECT-TYPE 2469 SYNTAX Unsigned32 2470 MAX-ACCESS read-create 2471 STATUS current 2472 DESCRIPTION 2473 "The threshold that responsiveness metrics are compared to." 2474 ::= { apmExceptionEntry 3 } 2476 apmExceptionUnsuccessfulException OBJECT-TYPE 2477 SYNTAX INTEGER { 2478 off(1), 2479 on(2) 2480 } 2481 MAX-ACCESS read-create 2482 STATUS current 2483 DESCRIPTION 2484 "If this value is on(2), an exception will be created if a 2485 transaction of the associated type is unsuccessful." 2486 ::= { apmExceptionEntry 4 } 2488 apmExceptionResponsivenessEvents OBJECT-TYPE 2489 SYNTAX Counter32 2490 MAX-ACCESS read-only 2491 STATUS current 2492 DESCRIPTION 2493 "The total number of responsiveness exceptions generated. This 2494 counter will be incremented even if no notification was sent 2495 due to notifications not being configured or due to exceeding 2496 the apmNotificationMaxRate value." 2497 ::= { apmExceptionEntry 5 } 2499 apmExceptionUnsuccessfulEvents OBJECT-TYPE 2500 SYNTAX Counter32 2501 MAX-ACCESS read-only 2502 STATUS current 2503 DESCRIPTION 2504 "The total number of unsuccessful exceptions generated. This 2505 counter will be incremented even if no notification was sent 2506 due to notifications not being configured or due to exceeding 2507 the apmNotificationMaxRate value." 2508 ::= { apmExceptionEntry 6 } 2510 apmExceptionOwner OBJECT-TYPE 2511 SYNTAX OwnerString 2512 MAX-ACCESS read-create 2513 STATUS current 2514 DESCRIPTION 2515 "The entity that configured this entry and is 2516 therefore using the resources assigned to it." 2517 ::= { apmExceptionEntry 7 } 2519 apmExceptionStorageType OBJECT-TYPE 2520 SYNTAX StorageType 2521 MAX-ACCESS read-create 2522 STATUS current 2523 DESCRIPTION 2524 "The storage type of this apmReportControlEntry. If the value 2525 of this object is 'permanent', no objects in this row need to 2526 be writable." 2527 ::= { apmExceptionEntry 8 } 2529 apmExceptionStatus OBJECT-TYPE 2530 SYNTAX RowStatus 2531 MAX-ACCESS read-create 2532 STATUS current 2533 DESCRIPTION 2534 "The status of this apmExceptionEntry. The only objects in the 2535 entry that may be modified while the entry is in the active 2536 state are apmExceptionResponsivenessComparison, 2537 apmExceptionResponsivenessThreshold and 2538 apmExceptionUnsuccessfulException." 2539 ::= { apmExceptionEntry 9 } 2541 apmThroughputExceptionMinTime OBJECT-TYPE 2542 SYNTAX Unsigned32 2543 UNITS "seconds" 2544 MAX-ACCESS read-write 2545 STATUS current 2546 DESCRIPTION 2547 "Because the responsiveness for throughput-oriented 2548 transactions is divided by the elapsed time, it can be very 2549 sensitive to short-term performance variations for 2550 transactions that take a short period of time. For example, 2551 when downloading a very short file, a single dropped packet 2552 could double or triple the total response time. 2554 Further, throughput is usually examined for applications that 2555 transfer a lot of data, and when doing so it is helpful to 2556 conceptualize transaction costs that are proportional to the 2557 amount of data separately from those costs that are relatively 2558 fixed (i.e. independent of the amount of data). For very 2559 short transactions, these fixed transaction costs (handshake, 2560 setup time, authentication, round-trip time) may dominate the 2561 total response time for the transaction, resulting in 2562 throughput measurements that aren't really proportional to the 2563 network's, server's and client's combined data throughput 2564 capability. 2566 This object controls the minimum number of seconds that an 2567 throughput-based transaction must exceed before an exception 2568 can be generated for it. If this object is set to zero, then 2569 all throughput-based transactions are candidates for 2570 exceptions. 2572 The value of this object must persist across reboots." 2573 DEFVAL { 10 } 2574 ::= { apmMibObjects 14 } 2576 apmNotificationMaxRate OBJECT-TYPE 2577 SYNTAX Unsigned32 2578 MAX-ACCESS read-write 2579 STATUS current 2580 DESCRIPTION 2581 "The maximum number of notifications that can be generated 2582 from this agent by the apmExceptionTable in any 60 second 2583 period. 2585 The value of this object must persist across reboots." 2586 DEFVAL { 1 } 2587 ::= { apmMibObjects 15 } 2589 -- APM Notifications 2591 apmNotifications OBJECT IDENTIFIER ::= { apm 0 } 2593 apmTransactionResponsivenessAlarm NOTIFICATION-TYPE 2594 OBJECTS { apmExceptionResponsivenessThreshold, 2595 apmTransactionResponsiveness } 2596 STATUS current 2597 DESCRIPTION 2598 "Notification sent when a transaction exceeds a threshold 2599 defined in the apmException table. The index of the 2600 included apmExceptionResponsivenessThreshold object identifies 2601 the apmExceptionEntry that specified the threshold. The 2602 apmTransactionResponsiveness variable identifies the actual 2603 transaction and its responsiveness. 2605 Agent implementors are urged to include additional data 2606 objects in the alarm that may explain the reason for the 2607 alarm. It is helpful to include such data in the alarm because 2608 it describes the situation at the time the alarm was 2609 generated, where polls after the fact may not provide 2610 meaningful information. Examples of such information are CPU 2611 load, memory utilization, network utilization, and transaction 2612 statistics." 2613 ::= { apmNotifications 1 } 2615 apmTransactionUnsuccessfulAlarm NOTIFICATION-TYPE 2616 OBJECTS { apmExceptionResponsivenessThreshold } 2617 STATUS current 2618 DESCRIPTION 2619 "Notification sent when a transaction is unsuccessful. 2620 The index of the included apmExceptionResponsivenessThreshold 2621 object identifies both the type of the transaction that caused 2622 this notification as well as the apmExceptionEntry that 2623 specified the threshold. 2625 Agent implementors are urged to include additional data 2626 objects in the alarm that may explain the reason for the 2627 alarm. It is helpful to include such data in the alarm because 2628 it describes the situation at the time the alarm was 2629 generated, where polls after the fact may not provide 2630 meaningful information. Examples of such information are CPU 2631 load, memory utilization, network utilization, and transaction 2632 statistics." 2633 ::= { apmNotifications 2 } 2635 apmCompliance MODULE-COMPLIANCE 2636 STATUS current 2637 DESCRIPTION 2638 "Describes the requirements for conformance to 2639 the APM MIB" 2640 MODULE -- this module 2641 MANDATORY-GROUPS { apmAppDirGroup, apmReportGroup } 2643 GROUP apmUserDefinedApplicationsGroup 2644 DESCRIPTION 2645 "Implementation of the apmUserDefinedApplicationsGroup 2646 is optional." 2648 GROUP apmTransactionGroup 2649 DESCRIPTION 2650 "Implementation of the apmTransactionGroup is optional." 2652 GROUP apmExceptionGroup 2653 DESCRIPTION 2654 "Implementation of the apmExceptionGroup is optional." 2656 GROUP apmNotificationGroup 2657 DESCRIPTION 2658 "Implementation of the apmNotificationGroup is optional." 2660 ::= { apmCompliances 1 } 2662 apmAppDirGroup OBJECT-GROUP 2663 OBJECTS { apmAppDirConfig, 2664 apmAppDirResponsivenessBoundary1, 2665 apmAppDirResponsivenessBoundary2, 2666 apmAppDirResponsivenessBoundary3, 2667 apmAppDirResponsivenessBoundary4, 2668 apmAppDirResponsivenessBoundary5, 2669 apmAppDirResponsivenessBoundary6, 2670 apmBucketBoundaryLastChange, apmAppDirID, 2671 apmNameMachineName, apmNameUserName } 2672 STATUS current 2673 DESCRIPTION 2674 "The APM MIB directory of applications and application verbs." 2675 ::= { apmGroups 1 } 2677 apmUserDefinedApplicationsGroup OBJECT-GROUP 2678 OBJECTS { apmHttpFilterAppLocalIndex, 2679 apmHttpFilterServerProtocol, 2680 apmHttpFilterServerAddress, apmHttpFilterURLPath, 2681 apmHttpFilterMatchType, apmHttpFilterOwner, 2682 apmHttpFilterStorageType, apmHttpFilterRowStatus, 2683 apmHttpIgnoreUnregisteredURLs, apmHttp4xxIsFailure, 2684 apmUserDefinedAppParentIndex, 2685 apmUserDefinedAppApplication } 2686 STATUS current 2687 DESCRIPTION 2688 "Objects used for creating and managing user-defined 2689 applications." 2690 ::= { apmGroups 2 } 2692 apmReportGroup OBJECT-GROUP 2693 OBJECTS { apmReportControlDataSource, 2694 apmReportControlAggregationType, 2695 apmReportControlInterval, 2696 apmReportControlRequestedSize, 2697 apmReportControlGrantedSize, 2698 apmReportControlRequestedReports, 2699 apmReportControlGrantedReports, 2700 apmReportControlStartTime, 2701 apmReportControlReportNumber, 2702 apmReportControlDeniedInserts, 2703 apmReportControlDroppedFrames, 2704 apmReportControlOwner, 2705 apmReportControlStorageType, 2706 apmReportControlStatus, 2707 apmReportTransactionCount, 2708 apmReportSuccessfulTransactions, 2709 apmReportResponsivenessMean, 2710 apmReportResponsivenessMin, 2711 apmReportResponsivenessMax, 2712 apmReportResponsivenessB1, 2713 apmReportResponsivenessB2, 2714 apmReportResponsivenessB3, 2715 apmReportResponsivenessB4, 2716 apmReportResponsivenessB5, 2717 apmReportResponsivenessB6, 2718 apmReportResponsivenessB7 } 2719 STATUS current 2720 DESCRIPTION 2721 "The apm report group controls the creation and retrieval of 2722 reports that aggregate application performance." 2723 ::= { apmGroups 3 } 2725 apmTransactionGroup OBJECT-GROUP 2726 OBJECTS { apmTransactionResponsiveness, 2727 apmTransactionAge, apmTransactionSuccess, 2728 apmTransactionsRequestedHistorySize } 2729 STATUS current 2730 DESCRIPTION 2731 "The apm transaction group contains statistics for 2732 individual transactions." 2733 ::= { apmGroups 4 } 2735 apmExceptionGroup OBJECT-GROUP 2736 OBJECTS { apmExceptionResponsivenessComparison, 2737 apmExceptionResponsivenessThreshold, 2738 apmExceptionUnsuccessfulException, 2739 apmExceptionResponsivenessEvents, 2740 apmExceptionUnsuccessfulEvents, 2741 apmExceptionOwner, apmExceptionStorageType, 2742 apmExceptionStatus, apmThroughputExceptionMinTime, 2743 apmNotificationMaxRate } 2744 STATUS current 2745 DESCRIPTION 2746 "The apm exception group causes notifications to be sent 2747 whenever transactions are detected that had poor availability 2748 or responsiveness." 2749 ::= { apmGroups 5 } 2751 apmNotificationGroup NOTIFICATION-GROUP 2752 NOTIFICATIONS { apmTransactionResponsivenessAlarm, 2753 apmTransactionUnsuccessfulAlarm } 2754 STATUS current 2755 DESCRIPTION 2756 "Notifications sent by an APM MIB agent." 2757 ::= { apmGroups 6 } 2759 END 2760 4. Security Considerations 2762 There are a number of management objects defined in this MIB 2763 module with a MAX-ACCESS clause of read-write and/or read- 2764 create. Such objects may be considered sensitive or 2765 vulnerable in some network environments. The support for SET 2766 operations in a non-secure environment without proper 2767 protection can have a negative effect on network operations. 2769 Specifically, most of the read-write and read-create objects 2770 in this MIB module may be used to configure an agent to reveal 2771 network addresses, application usage information and 2772 conversation statistics that may be considered sensitive in 2773 some environments. 2775 Some of the readable objects in this MIB module (i.e., objects 2776 with a MAX-ACCESS other than not-accessible) may be considered 2777 sensitive or vulnerable in some network environments. It is 2778 thus important to control even GET and/or NOTIFY access to 2779 these objects and possibly to even encrypt the values of these 2780 objects when sending them over the network via SNMP. 2782 Specifically, this MIB contains network addresses, machine 2783 names, user names, application usage information, and 2784 conversation statistics. Data of this nature may be considered 2785 sensitive or subject to privacy regulations in some 2786 environments. In such environments the administrator may wish 2787 to restrict even read-only SNMP access to the agent. 2789 Systems that implement the objects in this MIB module have the 2790 capability of measuring the time taken to execute 2791 transactions. Depending on the transaction type, some or all 2792 of this transaction time may be associated with the time taken 2793 to perform security calculations. Such data may help an 2794 attacker to use timing attacks to extract secrets from the 2795 systems involved in the transactions. See [12] for more 2796 information. 2798 SNMP versions prior to SNMPv3 did not include adequate 2799 security. Even if the network itself is secure (for example 2800 by using IPSec), even then, there is no control as to who on 2801 the secure network is allowed to access and GET/SET 2802 (read/change/create/delete) the objects in this MIB module. 2804 It is RECOMMENDED that implementers consider the security 2805 features as provided by the SNMPv3 framework (see [9], section 2806 8), including full support for the SNMPv3 cryptographic 2807 mechanisms (for authentication and privacy). 2809 Further, deployment of SNMP versions prior to SNMPv3 is NOT 2810 RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and 2811 to enable cryptographic security. It is then a 2812 customer/operator responsibility to ensure that the SNMP 2813 entity giving access to an instance of this MIB module is 2814 properly configured to give access to the objects only to 2815 those principals (users) that have legitimate rights to indeed 2816 GET or SET (change/create/delete) them. 2818 5. Normative References 2820 [1] Harrington, D., Presuhn, R., and B. Wijnen, "An 2821 Architecture for Describing Simple Network Management 2822 Protocol (SNMP) Management Frameworks", RFC 3411, 2823 December 2002. 2825 [2] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 2826 Rose, M., and S. Waldbusser, "Structure of Management 2827 Information Version 2 (SMIv2)", STD 58, RFC 2578, April 2828 1999. 2830 [3] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 2831 Rose, M., and S. Waldbusser, "Textual Conventions for 2832 SMIv2", STD 58, RFC 2579, April 1999. 2834 [4] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., 2835 Rose, M., and S. Waldbusser, "Conformance Statements for 2836 SMIv2", STD 58, RFC 2580, April 1999. 2838 [5] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 2839 MIB", RFC 2863, Cisco Systems, Argon Networks, June 2000. 2841 [6] Waldbusser, S., "Remote Network Monitoring Management 2842 Information Base Version 2 using SMIv2", RFC 2021, 2843 International Network Services, January 1997. 2845 [7] Bierman, A., Bucci, C., and R. Iddon, "Remote Network 2846 Monitoring MIB Protocol Identifiers", RFC 2895, Cisco 2847 Systems, 3Com Inc., August 2000. 2849 [8] Waldbusser, S., "Remote Network Monitoring MIB", STD 59, 2850 RFC 2819, Lucent Technologies, May 2000 2852 6. Informative References 2854 [9] Case, J., Mundy, R., Partain, D. and B. Stewart, 2855 "Introduction and Applicability Statements for Internet- 2856 Standard Management Framework", RFC 3410, December 2002. 2858 [10] Waldbusser, S., Cole, R., Kalbfleisch, C. and D. 2859 Romascanu, "Introduction to the Remote Monitoring (RMON) 2860 Family of MIB Modules", RFC 3577, August 2003 2862 [11] Berners-Lee, T., Masinter, L. and M. McCahill, "Uniform 2863 Resource Locators (URL)", RFC 1738, December 1994 2865 [12] Boneh, D. and D. Brumley, "Remote timing attacks are 2866 practical", Proceedings of 12th USENIX Security 2867 Symposium, August 2003 2869 7. Intellectual Property 2871 The IETF takes no position regarding the validity or scope of 2872 any intellectual property or other rights that might be 2873 claimed to pertain to the implementation or use of the 2874 technology described in this document or the extent to which 2875 any license under such rights might or might not be available; 2876 neither does it represent that it has made any effort to 2877 identify any such rights. Information on the IETF's 2878 procedures with respect to rights in standards-track and 2879 standards-related documentation can be found in BCP-11. 2880 Copies of claims of rights made available for publication and 2881 any assurances of licenses to be made available, or the result 2882 of an attempt made to obtain a general license or permission 2883 for the use of such proprietary rights by implementors or 2884 users of this specification can be obtained from the IETF 2885 Secretariat. 2887 The IETF invites any interested party to bring to its 2888 attention any copyrights, patents or patent applications, or 2889 other proprietary rights which may cover technology that may 2890 be required to practice this standard. Please address the 2891 information to the IETF Executive Director. 2893 8. Full Copyright Statement 2895 Copyright (C) The Internet Society (2003). All Rights Reserved. 2897 This document and translations of it may be copied and 2898 furnished to others, and derivative works that comment on or 2899 otherwise explain it or assist in its implementation may be 2900 prepared, copied, published and distributed, in whole or in 2901 part, without restriction of any kind, provided that the above 2902 copyright notice and this paragraph are included on all such 2903 copies and derivative works. However, this document itself 2904 may not be modified in any way, such as by removing the 2905 copyright notice or references to the Internet Society or 2906 other Internet organizations, except as needed for the 2907 purpose of developing Internet standards in which case the 2908 procedures for copyrights defined in the Internet Standards 2909 process must be followed, or as required to translate it into 2910 languages other than English. 2912 The limited permissions granted above are perpetual and will 2913 not be revoked by the Internet Society or its successors or 2914 assigns. 2916 This document and the information contained herein is provided 2917 on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET 2918 ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR 2919 IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE 2920 USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR 2921 ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A 2922 PARTICULAR PURPOSE. 2924 Table of Contents 2926 1 The Internet-Standard Management Framework ............ 2 2927 2 Overview .............................................. 3 2928 2.1 Report Aggregation .................................. 5 2929 2.2 AppLocalIndex Linkages .............................. 11 2930 2.3 Measurement Methodology ............................. 12 2931 2.4 Instrumentation Architectures ....................... 13 2932 2.4.1 Application Directory Caching ..................... 13 2933 2.4.2 Push Model ........................................ 13 2934 2.5 Structure of this MIB Module ........................ 15 2935 2.5.1 The APM Application Directory Group ............... 15 2936 2.5.2 The APM User Defined Applications Group ........... 15 2937 2.5.3 The APM Report Group .............................. 16 2938 2.5.4 The APM Transaction Group ......................... 16 2939 2.5.5 The APM Exception Group ........................... 16 2940 2.5.6 The APM Notification Group ........................ 17 2941 3 Definitions ........................................... 18 2942 4 Security Considerations ............................... 68 2943 5 Normative References .................................. 70 2944 6 Informative References ................................ 70 2945 7 Intellectual Property ................................. 71 2946 8 Full Copyright Statement .............................. 71