Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals
Shared data types for MIB modules that keep statistics in 15-minute buckets.
Tesink, K., Ed., "Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals", RFC 3593, DOI 10.17487/RFC3593, September 2003, <https://www.rfc-editor.org/info/rfc3593>.
@misc{rfc3593,
series = {Request for Comments},
number = 3593,
howpublished = {RFC 3593},
publisher = {RFC Editor},
doi = {10.17487/RFC3593},
url = {https://www.rfc-editor.org/info/rfc3593},
author = {K. Tesink},
title = {{Textual Conventions for MIB Modules Using Performance History Based on 15 Minute Intervals}},
pagetotal = 10,
year = 2003,
month = sep,
} RFC text
Contents
Network Working Group K. Tesink, Ed.
Request for Comments: 3593 Telcordia Technologies
Obsoletes: 2493 September 2003
Category: Standards Track
Textual Conventions for MIB Modules Using Performance History
Based on 15 Minute Intervals
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract
This document defines a set of Textual Conventions for MIB modules
that make use of performance history data based on 15 minute
intervals.
This memo replaces RFC 2493. Changes relative to RFC 2493 are
summarized in the MIB module's REVISION clause.
Table of Contents
1. Introduction ................................................. 2
2. Note on Invalid Data and Proxies ............................. 2
3. Note on xyzTimeElapsed ....................................... 3
4. Note on xyzValidIntervals .................................... 3
5. Definitions .................................................. 4
6. Acknowledgments .............................................. 8
7. References ................................................... 8
7.1. Normative References ................................... 8
7.2. Informative References ................................. 8
8. Security Considerations ...................................... 9
9. Intellectual Property Statement .............................. 9
10. Editor's Address ............................................. 9
11. Full Copyright Statement ..................................... 10
1. Introduction
In cases where a manager must obtain performance history data about
the behavior of equipment it manages, several strategies can be
followed in the design of a MIB that represents the managed
equipment, including:
0 The agent counts events on a continuous basis and, whenever
desired, the manager obtains the value of the event counter and
adjusts its understanding of the history of events at the agent.
0 The agent allocates events to 'buckets' where each bucket
represents an interval of time.
Telecommunications equipment often makes use of the latter strategy.
See [3][4][5][7][8] for examples. In particular, for this equipment
it is common that history data is maintained by the agent in terms of
fifteen minute intervals.
This memo does not attempt to compare the relative merits of
different strategies used to obtain history data. Differences may
include polling policy, the amount of management traffic between
manager and agent, agent simplicity, and 'data currentness' of the
data obtained by the manager. MIB designers should consider these
aspects when choosing a particular strategy in a MIB design.
Instead, this memo provides definitions that can be used in MIB
modules that require history data based on fifteen minute intervals.
When designing a MIB module, it is often useful to define new types
similar to those defined in the SMI [2]. In comparison to a type
defined in the SMI, each of these new types has a different name, a
similar syntax, but more precise semantics. These newly defined
types are termed textual conventions, and are used for the
convenience of humans reading the MIB module. This is done through
Textual Conventions as defined in RFC 2579 [1]. It is the purpose of
this document to define the set of textual conventions to be used
when performance history based on 15 minute intervals is kept. The
performance history textual conventions defined in this memo are
based on 32 bit counts. For high capacity performance history counts
see [9].
2. Note on Invalid Data and Proxies
In this document, the word proxy indicates an application which
receives SNMP messages and replies to them on behalf of the devices
where the actual implementation resides, e.g., DS3/E3 interfaces.
The proxy will have already collected the information about the
DS3/E3 interfaces into its local database and may not necessarily
forward requests to the actual DS3/E3 interface. It is expected in
such an application that there are periods of time where the proxy is
not communicating with the DS3/E3 interfaces. In these instances,
the proxy will not necessarily have up-to-date configuration
information, and will most likely have missed the collection of some
data. Missed data collection may result in some intervals in the
interval table being unavailable.
3. Note on xyzTimeElapsed
While xyzTimeElapsed is defined as having a maximum, there may be
cases (e.g., an adjustment in the system's time-of-day clock) where
the actual value of the current interval would exceed this maximum
value.
Suppose that an agent which aligns its 15-minute measurement
intervals to 15-minute time-of-day ("wall clock") boundaries has a
time-of-day clock that systematically gains time, and that a manager
periodically corrects the clock by setting it back.
It is assumed that the agent's time-of-day clock is reasonably
accurate, say within a few seconds per day. Thus, the manager's
periodic clock adjustments will normally be small, and if done
frequently enough, need not ever exceed 10 seconds. In this case,
all interval durations will be within the allowed tolerance and none
need be marked invalid, _if_ the ANSI procedure of ending measurement
intervals at 15-minute time-of-day boundaries is followed [6].
If the time-of-day clock is systematically adjusted in small
increments, then always ending measurement intervals at 15-minute
time-of-day boundaries will result, in the long term, in the correct
number of intervals with the correct average duration, irrespective
of whether the clock is moved ahead or moved back. Thus, if for some
reason, such as an adjustment in the system's time-of-day clock, the
current interval exceeds the maximum value, it is considered
acceptable that the agent will return the maximum value.
4. Note on xyzValidIntervals
The overall constraint on <n> is 1 =< n =< 96. Any additional
constraints on n must be defined in the DESCRIPTION clause (e.g., see
[5]).
5. Definitions
PerfHist-TC-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY,
Gauge32, mib-2
FROM SNMPv2-SMI
TEXTUAL-CONVENTION
FROM SNMPv2-TC;
perfHistTCMIB MODULE-IDENTITY
LAST-UPDATED "200308130000Z"
ORGANIZATION "IETF AToM MIB WG"
CONTACT-INFO
"WG charter:
http://www.ietf.org/html.charters/atommib-charter.html
Mailing Lists:
General Discussion: atommib@research.telcordia.com
To Subscribe: atommib-request@research.telcordia.com
Editor: Kaj Tesink
Postal: Telcordia Technologies
331 Newman Springs Road
Red Bank, NJ 07701
USA
Tel: +1 732 758 5254
E-mail: kaj@research.telcordia.com"
DESCRIPTION
"This MIB Module provides Textual Conventions
to be used by systems supporting 15 minute
based performance history counts.
Copyright (C) The Internet Society (2003).
This version of this MIB module is part of
RFC 3593; see the RFC itself for full
legal notices."
REVISION "200308130000Z"
DESCRIPTION
"Contact information and references updated.
No technical changes have been applied.
Published as RFC 3593."
REVISION "199811071100Z"
DESCRIPTION
"The RFC 2493 version of this MIB module."
::= { mib-2 58 }
-- The Textual Conventions defined below are organized
-- alphabetically
-- Use of these TCs assumes the following:
-- 0 The agent supports 15 minute based history
-- counters.
-- 0 The agent is capable of keeping a history of n
-- intervals of 15 minute performance data. The
-- value of n is defined by the specific MIB
-- module but shall be 0 < n =< 96.
-- 0 The agent may optionally support performance
-- data aggregating the history intervals.
-- 0 The agent will keep separate tables for the
-- current interval, the history intervals, and
-- the total aggregates.
-- 0 The agent will keep the following objects.
-- If performance data is kept for multiple instances
-- of a measured entity, then
-- these objects are applied to each instance of
-- the measured entity (e.g., interfaces).
--
-- xyzTimeElapsed OBJECT-TYPE
-- SYNTAX INTEGER (0..899)
-- MAX-ACCESS read-only
-- STATUS current
-- DESCRIPTION
-- "The number of seconds that have elapsed since
-- the beginning of the current measurement period.
-- If, for some reason, such as an adjustment in the
-- system's time-of-day clock, the current interval
-- exceeds the maximum value, the agent will return
-- the maximum value."
-- ::= { xxx }
-- xyzValidIntervals OBJECT-TYPE
-- SYNTAX INTEGER (0..<n>)
-- MAX-ACCESS read-only
-- STATUS current
-- DESCRIPTION
-- "The number of previous near end intervals
-- for which data was collected.
-- [ The overall constraint on <n> is 1 =< n =< 96; ]
-- [ Define any additional constraints on <n> here. ]
-- The value will be <n> unless the measurement was
-- (re-)started within the last (<n>*15) minutes, in which
-- case the value will be the number of complete 15
-- minute intervals for which the agent has at least
-- some data. In certain cases (e.g., in the case
-- where the agent is a proxy) it is possible that some
-- intervals are unavailable. In this case, this
-- interval is the maximum interval number for
-- which data is available."
-- ::= { xxx }
-- xyzInvalidIntervals OBJECT-TYPE
-- SYNTAX INTEGER (0..<n>)
-- MAX-ACCESS read-only
-- STATUS current
-- DESCRIPTION
-- "The number of intervals in the range from
-- 0 to xyzValidIntervals for which no
-- data is available. This object will typically
-- be zero except in cases where the data for some
-- intervals are not available (e.g., in proxy
-- situations)."
-- ::= { xxx }
PerfCurrentCount ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A counter associated with a
performance measurement in a current 15
minute measurement interval. The value
of this counter starts from zero and is
increased when associated events occur,
until the end of the 15 minute interval.
At that time the value of the counter is
stored in the first 15 minute history
interval, and the CurrentCount is
restarted at zero. In the
case where the agent has no valid data
available for the current interval the
corresponding object instance is not
available and upon a retrieval request
a corresponding error message shall be
returned to indicate that this instance
does not exist (for example, a noSuchName
error for SNMPv1 and a noSuchInstance for
SNMPv2 GET operation)."
SYNTAX Gauge32
PerfIntervalCount ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A counter associated with a
performance measurement in a previous
15 minute measurement interval. In the
case where the agent has no valid data
available for a particular interval the
corresponding object instance is not
available and upon a retrieval request
a corresponding error message shall be
returned to indicate that this instance
does not exist (for example, a noSuchName
error for SNMPv1 and a noSuchInstance for
SNMPv2 GET operation).
In a system supporting
a history of n intervals with
IntervalCount(1) and IntervalCount(n) the
most and least recent intervals
respectively, the following applies at
the end of a 15 minute interval:
- discard the value of IntervalCount(n)
- the value of IntervalCount(i) becomes that
of IntervalCount(i-1) for n >= i > 1
- the value of IntervalCount(1) becomes that
of CurrentCount
- the TotalCount, if supported, is adjusted."
SYNTAX Gauge32
PerfTotalCount ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A counter associated with a
performance measurements aggregating the
previous valid 15 minute measurement
intervals. (Intervals for which no valid
data was available are not counted)"
SYNTAX Gauge32
END
6. Acknowledgments
This document is a product of the AToM MIB Working Group. The editor
would like to acknowledge Mike Heard for his many valuable
contributions to this memo.
7. References
7.1. Normative References
[1] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose,
M. and S. Waldbusser, "Textual Conventions for SMIv2", STD 58,
RFC 2579, April 1999.
[2] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose,
M. and S. Waldbusser, "Structure of Management Information
Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
7.2. Informative References
[3] Fowler, D., "Definitions of Managed Objects for the DS1, E1, DS2
and E2 Interface Types", RFC 2495, January 1999.
[4] Fowler, D., "Definitions of Managed Objects for the DS3/E3
Interface Type", RFC 2496, January 1999.
[5] Tesink, K., "Definitions of Managed Objects for the Synchronous
Optical Network/Synchronous Digital Hierarchy (SONET/SDH)
Interface Type", RFC 3592, September 2003.
[6] American National Standard for Telecommunications - Digital
Hierarchy - Layer 1 In-Service Digital Transmission Performance
Monitoring, ANSI T1.231-1997, September 1997.
[7] Bathrick, G. and F. Ly, "Definitions of Managed Objects for the
ADSL Lines", RFC 2662, August 1999.
[8] Ray, B., and R. Abbi, "Definitions of Managed Objects for High
Bit-Rate DSL - 2nd generation (HDSL2) and Single-Pair High-Speed
Digital Subscriber Line (SHDSL) Lines", RFC 3276, May 2002.
[9] Ray, B. and R. Abbi, "High Capacity Textual Conventions for MIB
Modules Using Performance History Based on 15 Minute Intervals",
Work in Progress.
8. Security Considerations
This memo defines textual conventions for use in other MIB modules.
Security issues for these MIB modules are addressed in the memos
defining those modules.
9. Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to
obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification can
be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.
10. Editor's Address
Kaj Tesink
Telcordia Technologies
331 Newman Springs Road
P.O. Box 7020
Red Bank, NJ 07701-7020
Phone: +1 732 758 5254
EMail: kaj@research.telcordia.com
11. Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
ISO Plain Language
On this page
§1Buckets of Fifteen Minutes
When a manager wants a history of how some equipment has behaved, a MIB can be designed in several ways. The agent can count events continuously and let the manager build the history from successive readings of the counter. Or the agent can allocate the events to buckets, each covering a span of time. Telecommunications equipment often uses the second approach, and for that equipment it is common to keep the history in fifteen-minute intervals.
The memo does not compare the merits of the strategies. The differences include polling policy, the amount of management traffic between manager and agent, agent simplicity and how current the data is when the manager gets it. MIB designers are asked to consider those aspects when choosing a strategy. What the memo provides is the set of definitions to use in MIB modules that need history data based on fifteen-minute intervals.
The conventions defined here are based on 32-bit counts. For high-capacity performance history counts, the document points to separate work in progress.
Two ways to keep a history are common: count everything and let the manager work out the history, or sort the counts into fixed time slots. Telecom gear does the second, with slots of fifteen minutes, and this document defines the shared vocabulary for that.
- Quarter-hour history countersThe agent supports history counters based on 15-minute intervals.
- A history of n intervalsThe agent can keep a history of n intervals, where n is at most 96.
- Optional totalsThe agent may also support counters that aggregate the history intervals.
- Separate tablesThe current interval, the history intervals and the total aggregates are kept in separate tables.
§2Proxies and Missing Data
In this document a proxy means an application that receives SNMP messages and replies to them on behalf of devices where the actual implementation sits, for example DS3/E3 interfaces. The proxy has already collected the information about those interfaces into its local database and may not necessarily forward requests to the actual interface.
It is expected that there are periods when the proxy is not communicating with the interfaces it represents. During those periods the proxy will not necessarily have up-to-date configuration information and will most likely have missed collecting some data. Missed data collection may result in some intervals in the interval table being unavailable, which is why the conventions include a way of saying how many intervals hold valid data and how many are missing.
A proxy answers SNMP requests on behalf of equipment it watches. When it loses touch with that equipment it misses data, and the document says how to report the gaps instead of pretending the counters were zero.
§3The Time Elapsed Object
Each measured entity is expected to have an object named after it, of the form xyzTimeElapsed, giving the number of seconds since the current measurement period began. The object has a maximum, but there are cases, such as an adjustment in the system's time-of-day clock, where the actual value of the current interval would exceed it.
The document works through the case of an agent that aligns its fifteen-minute measurement intervals to fifteen-minute time-of-day boundaries and has a clock that systematically gains time, which the manager periodically corrects by setting it back. Assuming the clock is reasonably accurate, say within a few seconds per day, the corrections will normally be small, and if they are made often enough they need never exceed ten seconds. In that case all interval durations stay within the allowed tolerance and none need be marked invalid, provided the procedure of ending measurement intervals at fifteen-minute time-of-day boundaries is followed.
If the clock is adjusted in small increments, always ending measurement intervals at those boundaries results, in the long term, in the correct number of intervals with the correct average duration, whether the clock is moved ahead or moved back. If the current interval does exceed the maximum, it is acceptable for the agent to return the maximum value.
One object says how far into the current quarter-hour we are. It has a ceiling, and the document explains that a clock adjusted a little at a time will not break the counting as long as the intervals still end on the quarter-hour.
§4Valid and Invalid Intervals
Each measured entity is expected to have an object named xyzValidIntervals, giving the number of previous near-end intervals for which data was collected. The overall constraint on the number of intervals is 1 to 96, and any additional constraint has to be defined in the description of the object.
The value will be the full number of intervals unless the measurement was started or restarted within the last n times fifteen minutes, in which case it is the number of complete fifteen-minute intervals for which the agent has at least some data. In certain cases, such as a proxy, some intervals can be unavailable, and then this object holds the highest interval number for which data is available.
A companion object, xyzInvalidIntervals, counts the intervals in the range from 0 to xyzValidIntervals for which no data is available. It will typically be zero, except in cases where the data for some intervals is not available.
Two objects keep the bookkeeping honest: how many of the stored slots actually hold data, and how many are holes. A manager can then tell a missing interval from a quiet one.
§5The Three Counter Conventions
PerfCurrentCount is a counter for a measurement in the current fifteen-minute interval. Its value starts at zero and rises as events occur, until the end of the interval. At that point the value is stored in the first history interval and the current count restarts at zero. If the agent has no valid data for the current interval, the object instance does not exist, and a request for it returns an error, for example noSuchName in SNMPv1 and noSuchInstance for an SNMPv2 GET.
PerfIntervalCount is a counter for a previous fifteen-minute interval, with the same rule about missing instances. In a system supporting a history of n intervals, where IntervalCount(1) is the most recent and IntervalCount(n) the least recent, the end of an interval does the following: the value of IntervalCount(n) is discarded, the value of IntervalCount(i) becomes that of IntervalCount(i-1) for n greater than or equal to i and greater than 1, the value of IntervalCount(1) becomes that of CurrentCount, and the total count, if supported, is adjusted.
PerfTotalCount is a counter for a measurement that aggregates the previous valid fifteen-minute intervals. Intervals for which no valid data was available are not counted. All three conventions use the syntax Gauge32.
Three counters make up a performance history: one for the quarter-hour in progress, one for each stored quarter-hour, and one running total. At the end of a quarter-hour the newest value is stored and the whole set shifts along, dropping the oldest.
- STORE AND RESETAt the end of the interval the current value is stored as IntervalCount(1) and the current count restarts at zero.
- SHIFTIntervalCount(1) takes the value of IntervalCount(2), and so on down the history.
- DISCARDThe value of the oldest interval, IntervalCount(n), is discarded.
§8Security Considerations
This memo defines textual conventions for use in other MIB modules. The security issues for those MIB modules are addressed in the memos that define them, and this document does not add anything to them.
This document only names the counters. Anything about who may read or change them belongs to the memo that defines the module using them.