<?xml version="1.0" encoding="UTF-8"?>

<xmpMIB xmlns="http://xmlns.krupczak.org/xsd/xmptypes-2.0">

<mibName>cartographer</mibName>

<mibOrganization>
The Krupczak Organization, LLC.
</mibOrganization>

<mibDescription>
MIB objects contained in the Cartographer plugin.  These MIB objects
implement the dependency tracking tables and algorithms used by the
Cartographer agent for distributed root cause analysis and
network/system/application management.  Schemas for the protocol and
SMI can be found at http://xmlns.krupczak.org/
</mibDescription>

<mibContactInfo>
Bobby Krupczak, rdk@krupczak.org, http://www.krupczak.org/cartographer/
</mibContactInfo>

<mibLastUpdate>
Fri May  3 17:28:52 EDT 2013
Wed May  1 11:08:36 EDT 2013
Sat Oct 13 20:11:33 EDT 2012
</mibLastUpdate>

<!-- configuration/operation parameters group -->

<mibObject>
 <objectName>pluginVersion</objectName>
 <objectSyntax>floatingPoint</objectSyntax>
 <objectDescription>
 Version of this Cartographer plugin.  Versions are typically floatingPoint
 values.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>connectionDataVersion</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 Cartographer project configuration files are encoded in XML and have a version
 number and, unless they are local-only, are distributed among peer agents
 using Cartographer's software updating facility.  That way, configuration
 changes can be made globally across all agents.  This MIB object tracks
 the version number of the connectiondata.xml config file.  The agent
 periodically examines the config file and if a newer version is available,
 it is re-read by the agent.  The agent also periodically compares this
 version number with its peers and downloads newer versions when available.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>applicationDataVersion</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 Cartographer project configuration files are encoded in XML and have a version
 number and, unless they are local-only, are distributed among peer agents
 using Cartographer's software updating facility.  That way, configuration
 changes can be made globally across all agents.  This MIB object tracks
 the version number of the appdata.xml config file.  The agent
 periodically examines the config file and if a newer version is available,
 it is re-read by the agent.  The agent also periodically compares this
 version number with its peers and downloads newer versions when available.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>dependencyAgeOutInterval</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 The interval, in seconds, after which dependencies will age out if they
 have not been re-validated.  A dependency is re-validated if it is
 found, discovered, or observed again.
 </objectDescription>
 <objectAccess>get set</objectAccess>
</mibObject>

<mibObject>
 <objectName>peerAgeOutInterval</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 The interval, in seconds, after which peers will age out if they have
 not been re-validated.  A peer is re-validated if it has been determined
 to continue to utilize the same service or services from the same server
 as the agent implementing this MIB.
 </objectDescription>
 <objectAccess>get set</objectAccess>
</mibObject>

<mibObject>
 <objectName>cartographerConfigVersion</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 Cartographer project configuration files are encoded in XML and have a version
 number and, unless they are local-only, are distributed among peer agents
 using Cartographer's software updating facility.  That way, configuration
 changes can be made globally across all agents.  This MIB object tracks
 the version number of the cartographer.xml config file.  The agent
 periodically examines the config file and if a newer version is available,
 it is re-read by the agent.  The agent also periodically compares this
 version number with its peers and downloads newer versions when available.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>cartographerLocalConfigVersion</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 Cartographer project configuration files are encoded in XML and have a version
 number and, unless they are local-only, are distributed among peer agents
 using Cartographer's software updating facility.  This MIB object tracks
 the version number of the cartographer-local.xml config file.  The agent
 periodically examines the config file and if a newer version is available,
 it is re-read by the agent.  Since this configuration file is local-only, 
 it is not automatically updated nor re-distributed.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>subGraph</objectName>
 <objectSyntax>displayString</objectSyntax>
 <objectDescription>
 Each agent tracks/views a sub-graph of the global, distributed dependency 
 graph. This object represents this agent's view or sub-graph and is 
 base64 encoded graphML format.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numGraphNodes</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 Number of nodes in this agent's sub-graph.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numGraphEdges</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 Number of edges in thsi agent's sub-graph.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>subGraphLastChange</objectName>
 <objectSyntax>dateTime</objectSyntax>
 <objectDescription>
 The date/time of the last change (add/remove) to this agent's sub-graph.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>subGraphLastUpdate</objectName>
 <objectSyntax>dateTime</objectSyntax>
 <objectDescription>
 The date/time of the last update (add/remove/update) to this agent's 
 sub-graph.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>dependencyScanInterval</objectName>
 <objectSyntax>integer</objectSyntax>
 <objectDescription>
 The interval, in seconds, between iterations of the dependency discovery
 algorithm.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<!-- dependency table -->

<tableObject>
<tableName>dependencyTable</tableName>
<tableDescription>
Table containing one entry per dependency that the underlying agent has 
discovered.  This table only contains dependency to this system or 
dependencies that this system has to others.
</tableDescription>
<tableOps>select</tableOps>
<tableKey>dependType dependPeer dependArgs</tableKey>

 <columnObject>
  <objectName>dependType</objectName>
  <objectSyntax>dependencyTypeType</objectSyntax>
  <objectDescription>
  The type of dependency as defined by enumerated integer.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependLastUpdate</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The date/time this dependency was last discovered or re-validated.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependArgs</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  Dependency arguments/options.  The args field is usually a space-separated
  list of keyword=value pairs.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependSrc</objectName>
  <objectSyntax>dependencySrcType</objectSyntax>
  <objectDescription>
  The source of this dependency which indicates how the dependency was 
  discovered.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependReference</objectName>
  <objectSyntax>dependencyReferenceType</objectSyntax>
  <objectDescription>
  Whether the dependency is inbound or outbound as defined by enumerated
  integer.  A dependency is transit if the underlying system is neither
  the client or server.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependReachable</objectName>
  <objectSyntax>extendedBoolean</objectSyntax>
  <objectDescription>
  Is this dependency peer (client or server) reachable via ICMP?
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependReachableTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The last time the dependency peer was successfully reached via ICMP.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependPeer</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The dependency peer for this entry.  If the underlying system
  is the client, the then peer is the dependServer.  If the underlying system
  is the server, then the peer is the dependClient.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependClient</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The client hostname or address for this dependency.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependServer</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The server hostname or address for this dependency.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependCreateTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The date/time this dependency was first discovered and entry created within 
  this table.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependScore</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Health score for this dependency; the larger the value, the worse the
  "health" is.  Health is calculated via a combination of ICMP delay and
  application/dependency-specific testing.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependNumIcmp</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The number ICMP echo request sent to the dependency peer.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependAvgIcmpRespTime</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Decaying average, in milliseconds, of the cumultative response times 
  of all echo requests sent/received to/from the dependency peer.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependMovingAvgIcmpRespTime</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Cumulative moving average, in milliseconds, of all ICMP echo 
  request/replies sent/received to/from the dependency peer.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependIcmpRespTime</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The response time, in milliseconds, of the last ICMP echo request/reply.
  Responses lost or dropped are counted as having taken 5 seconds.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>dependIpVersion</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The version of the IP protocol over which this dependency is based.  Current
  values for IP include 4 and 6.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

</tableObject>

<!-- process table -->

<tableObject>
<tableName>processTable</tableName>
<tableDescription>
The process table contains one entry for each process running on the 
underlying system.
</tableDescription>
<tableOps>select</tableOps>
<tableKey>processPID processName</tableKey>

 <columnObject>
  <objectName>processPID</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The unique identifier for this process.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processName</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The name and command-line of the process.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processGID</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The group-identifier for this process.  This field number supported on
  Windows.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processState</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The operating-system specific state of this process.  Processes can
  be sleeping, runnable, zombie, running, etc. depending on the unique
  flavor of the underlying operating system.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processRSS</objectName>
  <objectSyntax>gauge</objectSyntax>
  <objectDescription>
  The resident set size, in KBytes, of physical memory used by this process.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processSize</objectName>
  <objectSyntax>gauge</objectSyntax>
  <objectDescription>
  The size of the process, in KBytes, of virtual memory used by this process.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processHandleCount</objectName>
  <objectSyntax>gauge</objectSyntax>
  <objectDescription>
  The number of open handles owned by this process.  Handles include sockets,
  files, devices, etc.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processThreadCount</objectName>
  <objectSyntax>gauge</objectSyntax>
  <objectDescription>
  The number of threads contained in and running within this process.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processCPUTime</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  The total CPU time, in centi-seconds, consumed by this process.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processStartTime</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The date/time this process was created.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processReads</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  The number of read operations performed by this process which can include
  file and network.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processWrites</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  The number of write operations performed by this process which can include
  file and network.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processReadBytes</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  The number of bytes read by this process which can include file and network.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processWriteBytes</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  The number of bytes written by this process which can include file and 
  network.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

</tableObject>

<!-- process endpoint table -->

<tableObject>
<tableName>processEndptTable</tableName>
<tableDescription>
This table contains endpoints of communication (e.g. TCP, UDP sockets) by
process.  Endpoints can be connected or unconnected.
</tableDescription>
<tableOps>select</tableOps>
<tableKey>processEndptPID processEndptProto processEndptState processEndptLocalAddress processEndptLocalPort processEndptRemAddress processEndptRemPort</tableKey>
 <columnObject>
  <objectName>processEndptPID</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The process identifier (PID) for the process which owns this endpoint.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processEndptName</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The name of the process which owns this endpoint.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processEndptProto</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The integer, corresponding to the IP header field proto, for the higher
  layer protocol that this endpoint is using.  For example, UDP is 17, 
  TCP is 6, Raw is 255, and ICMP is 1.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processEndptState</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The protocol-specific state of the endpoint.  For example, if the 
  endpoint is a TCP connection, the state corresponds to the TCP state
  of the endpoint.  If UDP, the state corresponds to the UDP state.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processEndptLocalAddress</objectName>
  <objectSyntax>ipAddress</objectSyntax>
  <objectDescription>
  Either an IPv4 or IPv6 address of the local endpoint.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processEndptLocalPort</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The local protocol port number or 0 if no port has been assigned.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processEndptRemAddress</objectName>
  <objectSyntax>ipAddress</objectSyntax>
  <objectDescription>
  Either an IPv4 or IPv6 address of the remote endpoint.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>processEndptRemPort</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The remote protocol port number or 0 if no port has been assigned.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

</tableObject>

<!-- performance group -->

<mibObject>
 <objectName>totalSwap</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Total swap space in KBytes contained by this system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>usedSwap</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Used swap space in KBytes contained by this system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>freeSwap</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Free swap space in KBytes contained by this system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>totalMem</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Total random access memory (RAM) contained in this system in KBytes.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>usedMem</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 RAM (in KBytes) used and/or allocated by the system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>freeMem</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 RAM (in KBytes) unused and/or un-allocated by the system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>loadAvg1Min</objectName>
 <objectSyntax>floatingPoint</objectSyntax>
 <objectDescription>
 The system's load average over the last one minute.  The load average is 
 decaying average of the length of the operating system run-queue.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>loadAvg5Min</objectName>
 <objectSyntax>floatingPoint</objectSyntax>
 <objectDescription>
 The system's load average over the last five minutes.  The load average is 
 decaying average of the length of the operating system run-queue.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>loadAvg15Min</objectName>
 <objectSyntax>floatingPoint</objectSyntax>
 <objectDescription>
 The system's load average over the last fifteen minutes.  The load average is 
 decaying average of the length of the operating system run-queue.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numberCPUs</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Number of CPUs or cores contained in this system.  CPUs may be online or
 offline as long as the operating system recognizes them.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>kernelVers</objectName>
 <objectSyntax>displayString</objectSyntax>
 <objectDescription>
 The operating system kernel version which usually includes version number,
 build date/number, and CPU architecture.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numTCPEndpts</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Total number of active TCP endpoints contained in this system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numUDPEndpts</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Total number of active UDP endpoints contained in this system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numProcesses</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Total number of processes in this system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numHandles</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Total number of handles allocated and active in this system.  Handles include
 open files and communication endpoints.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numUsers</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Total number of current users of the system.  The value is somewhat
 system-dependent as it may include users logged into the system or those 
 using resources.  Typicall, however, the number represents users logged into
 the system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numDependencies</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Number of dependencies or entries in the dependency table.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numPeers</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Number of peers this system knows about.  A system is a peer if it utilizes
 the same service from same server as this system.  This value also
 indicates the number of entries in the peer table.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>numThreads</objectName>
 <objectSyntax>gauge</objectSyntax>
 <objectDescription>
 Total number active threads in the system including process and kernel threads.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>diskReads</objectName>
 <objectSyntax>counter</objectSyntax>
 <objectDescription>
 Total disk reads over all the disks contained in the system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>diskReadKB</objectName>
 <objectSyntax>counter</objectSyntax>
 <objectDescription>
 Total KBs read from all the disks contained in the system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>diskWrites</objectName>
 <objectSyntax>counter</objectSyntax>
 <objectDescription>
 Total disk writes over all the disks contained in the system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>diskWriteKB</objectName>
 <objectSyntax>counter</objectSyntax>
 <objectDescription>
 Total KBs written to all the disks contained in the system.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>systemTotalCpuUser</objectName>
 <objectSyntax>counter</objectSyntax>
 <objectDescription>
 Total number clock ticks spent, summed over all CPUs, in user mode.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>systemTotalCpuIdle</objectName>
 <objectSyntax>counter</objectSyntax>
 <objectDescription>
 Total number clock ticks spent, summed over all CPUs, in idle mode.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>systemTotalCpuKernel</objectName>
 <objectSyntax>counter</objectSyntax>
 <objectDescription>
 Total number clock ticks spent, summed over all CPUs, in kernel mode.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>systemTotalCpuWait</objectName>
 <objectSyntax>counter</objectSyntax>
 <objectDescription>
 Total number clock ticks spent, summed over all CPUs, in wait mode.
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<mibObject>
 <objectName>virtualSystem</objectName>
 <objectSyntax>extendedBoolean</objectSyntax>
 <objectDescription>
 Is this system running within a virtual machine?
 </objectDescription>
 <objectAccess>get</objectAccess>
</mibObject>

<!-- filesystem table -->
<tableObject>
<tableName>filesysTable</tableName>
<tableDescription>
Table containing an entry for each filesystem mounted by the underlying
system.  Filesystems can be local or remote.
</tableDescription>
<tableOps>select</tableOps>
<tableKey>mountpoint</tableKey>

 <columnObject>
  <objectName>filesystem</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The filesystem name (e.g /dev/sda1 or a Windows volume name)
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>mountpoint</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The location that the filesystem is mounted (e.g. home or C:\).
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>fstype</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The type of filesystem (e.g. NTFS, NFS, CDFS, ext4).
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>totalBlocks</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Total number of blocks of blockSize bytes in this filesystem.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>usedBlocks</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Number of blocks in use or allocated in this filesystem.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>freeBlocks</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Number of blocks free to be used or allocated in this filesystem.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>availBlocks</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Some filesystems reserve blocks for root or administrator.  Available
  blocks are those that are available to non-root users.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>totalFiles</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Filesystems often contain a structure for tracking blocks allocated
  to files.  This value represents the total number of file structures
  in this filesystem.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>freeFiles</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The number of free file structures in this filesystem.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>usedFiles</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The number of used or allocated file structures in this filesystem.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>blockSize</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Size in bytes of a block in this filesystem.  
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>percentUsedBlocks</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Percentage of blocks, in the filesystem, that are allocated and/or
  used.  The value is calculated using the formula used / (used  avail).
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>percentUsedFiles</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  The percentage of file structures, in this filesystem, that are
  allocated and/or used.  The value is calculated using the formula
  used / (used - avail).
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>availFiles</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The number of file structures available to non-root users.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

</tableObject>

<!-- cpu table -->

<tableObject>
<tableName>cpuTable</tableName>
<tableDescription>
Table containing one entry per CPU or core contained in this system.
</tableDescription>
<tableOps>select</tableOps>
<tableKey>cpuNumber</tableKey>

 <columnObject>
  <objectName>cpuNumber</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Index number of this CPU/core in the table.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuDescription</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  Description of this CPU/core.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuTotalUserPercent</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Running total of percentage of time this CPU has been in user mode since
  system boot.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuTotalIdlePercent</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Running total of percentage of time this CPU has been in idle mode since
  system boot.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuTotalKernelPercent</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Running total of percentage of time this CPU has been in kernel mode since
  system boot.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuTotalWaitPercent</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Running total of percentage of time this CPU has been in wait mode since
  system boot.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuIntervalUserPercent</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Percentage of time this CPU has been in user mode over the last interval.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuIntervalIdlePercent</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Percentage of time this CPU has been in idle mode over the last interval.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuIntervalKernelPercent</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Percentage of time this CPU has been in kernel mode over the last interval.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuIntervalWaitPercent</objectName>
  <objectSyntax>floatingPoint</objectSyntax>
  <objectDescription>
  Percentage of time this CPU has been in wait mode over the last interval.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuInterval</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The interval, in seconds, over which the interval CPU mode percentages
  were calculated.  The interval is not a sliding one but rather discrete,
  consecutive intervals of time.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuTotalUser</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  Raw counter of total ticks or time CPU has spent in user mode.  Querying
  this value and the other raw counters allows the user to calculate CPU
  state percentages over arbitrary intervals of time.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuTotalIdle</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  Raw counter of total ticks or time CPU has spent in idle mode.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuTotalKernel</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  Raw counter of total ticks or time CPU has spent in kernel mode.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>cpuTotalWait</objectName>
  <objectSyntax>counter</objectSyntax>
  <objectDescription>
  Raw counter of total ticks or time CPU has spent in wait mode.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

</tableObject>

<!-- peer table -->

<tableObject>
<tableName>peerTable</tableName>
<tableDescription>
A table containing known peers.  A system is a peer if it utilizes the same
service from same server as this system.
</tableDescription>
<tableOps>select</tableOps>
<tableKey>peerName peerDependType</tableKey>

 <columnObject>
  <objectName>peerName</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  Hostname or IP address of the peer system.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>peerServer</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  Hostname or IP address of the server which we share with peer.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>peerDependType</objectName>
  <objectSyntax>dependencyTypeType</objectSyntax>
  <objectDescription>
  The type of service, we share with peer, that we utilize from server.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>peerContactTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The date/time of the last peer contact.  Agents periodically 
  contact peers and exchange dependency information.  This date/time
  represents the last successful XMP exchange with this peer.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>peerReachable</objectName>
  <objectSyntax>bool</objectSyntax>
  <objectDescription>
  Is this peer reachable via ICMP echo or via XMP connection?  True, false,
  or unknown.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>peerReachableTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The date/time the last time this peer was reachable via ICMP echo.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

</tableObject>

<!-- logfile dependency table -->

<tableObject>
<tableName>logfileDependencyTable</tableName>
<tableDescription>
</tableDescription>
<tableOps>select</tableOps>
<tableKey>lfDependType lfLogfile lfAddExpression lfRemExpression</tableKey>

 <columnObject>
  <objectName>lfLogfile</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The name of the logfile to scan.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfDependType</objectName>
  <objectSyntax>dependencyTypeType</objectSyntax>
  <objectDescription>
  The type of dependency that this entry will match and add.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfAddExpression</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The remove regular expression used when searching for matches that
  would cause resulting dependencies to be added.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfRemExpression</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The remove regular expression used when searching for matches that
  would cause resulting dependencies to be removed.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfDependClient</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The dependency client used when entries are matched.  It may be a
  hardcoded client name or a regular expression based on the matched string.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfDependServer</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The dependency server used when entries are matched.  It may be a 
  hardcoded server name or a regular expression based on the matched string.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfDependArgs</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  Dependency arguments to be used when adding dependencies discovered
  via this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfScanInterval</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The interval, in seconds, between scans for this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfTimeout</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The timeout, in seconds, that dependencies discovered via this entry,
  will be automatically removed or pruned.  If 0, dependencies will
  remain until they are explicitly removed.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfLastScanTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  Date/time of this entry's last file scan.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfLastOffset</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The starting offset that this entry will scan next time it is processed.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfNumberMatches</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Total number of matches for this entry which includes add and remove 
  string matching.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfLastMatch</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The date/time of the last match.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfLastMatchOffset</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The file offset where the last match occurred.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfLastMatchString</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The last most recent string that matched this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfLastAddRemove</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Was the last match an add(1) or remove(0)?
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfLastUpdateTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The last date/time this entry was updated or modified.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfNumberLines</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The number of logfile lines scanned so far by this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfDescription</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  A string describing the purpose or intent of this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

</tableObject>

<!-- logfile monitor table -->

<tableObject>
<tableName>logfileMonitorTable</tableName>
<tableDescription>
Each entry in this table represents a logfile monitor which scan a 
logfile for a particular regular expression.  When matches are made,
events are sent and counters are updated.
</tableDescription>
<tableOps>select</tableOps>
<tableKey></tableKey>

 <columnObject>
  <objectName>lfmLogfile</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The name of the logfile to scan.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmExpression</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The regular expression that the logfile is scanned for.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmScanInterval</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The interval, in seconds, between scans for this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmLastScanTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The date/time that this entry was last processed and logfile scanned.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmLastOffset</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription> 
  The starting offset that this entry will scan next time it is processed.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmNumberMatches</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  Total number of logfile matches made for this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmLastMatchTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The date/time the last logfile match was made.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmLastMatchOffset</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The file offset containing the last matching string.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmLastMatchString</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  The last string to match this logfile monitor entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmLastUpdateTime</objectName>
  <objectSyntax>dateTime</objectSyntax>
  <objectDescription>
  The date/time of the last update to this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmNumberLines</objectName>
  <objectSyntax>integer</objectSyntax>
  <objectDescription>
  The number of logfile lines scanned so far by this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>

 <columnObject>
  <objectName>lfmDescription</objectName>
  <objectSyntax>displayString</objectSyntax>
  <objectDescription>
  A string describing the purpose or intent of this entry.
  </objectDescription>
  <objectAccess>get</objectAccess>
 </columnObject>


</tableObject>

</xmpMIB>
