VELOCITY-MIB DEFINITIONS ::= BEGIN

IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, mib-2,
Integer32, Counter32, Gauge32, TimeTicks, enterprises FROM SNMPv2-SMI

TEXTUAL-CONVENTION, DisplayString,
TruthValue, DateAndTime, AutonomousType   FROM SNMPv2-TC

MODULE-COMPLIANCE, OBJECT-GROUP           FROM SNMPv2-CONF

InterfaceIndexOrZero                      FROM IF-MIB;

velocityMibModule MODULE-IDENTITY
   LAST-UPDATED "200607310000Z"    -- 31 July 2006
   ORGANIZATION "Velocity Software Inc."
   CONTACT-INFO
       "Dennis Andrews
       Postal: Velocity Software, Inc.
               106-D Castro St.
               Mountain View, CA 94041
               USA
       Phone:  650-964-8867
       Fax:    650-964-9012
       Email:  dennis@velocitysoftware.com"
   DESCRIPTION
       "This MIB is an extension of the host MIB. This MIB currently
       only runs on linux. This is the original version."
   ::= { velocityMIBAdminInfo 1 }

velocity     OBJECT IDENTIFIER ::= { enterprises 15601 }

velocitySystem        OBJECT IDENTIFIER ::= { velocity 1 }
velocitySWRun         OBJECT IDENTIFIER ::= { velocity 4 }
velocitySWRunPerf     OBJECT IDENTIFIER ::= { velocity 5 }
velocityAppTable      OBJECT IDENTIFIER ::= { velocity 6 }
velocityMIBAdminInfo  OBJECT IDENTIFIER ::= { velocity 7 }

-- The Host Resources System Group

velocitySystemUptime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The amount of time since this host was last
        initialized.  Note that this is different from
        sysUpTime in the SNMPv2-MIB [RFC1907] because
        sysUpTime is the uptime of the network management
        portion of the system."
    ::= { velocitySystem 1 }

velocitySystemDate OBJECT-TYPE
    SYNTAX     DateAndTime
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The host's notion of the local date and time of day."
    ::= { velocitySystem 2 }

velocitySystemInitialLoadDevice OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The index of the velocityDeviceEntry for the device from
        which this host is configured to load its initial
        operating system configuration (i.e., which operating
        system code and/or boot parameters).

        Note that writing to this object just changes the
        configuration that will be used the next time the
        operating system is loaded and does not actually cause
        the reload to occur."
    ::= { velocitySystem 3 }

velocitySystemInitialLoadParameters OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE (0..128))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This object contains the parameters (e.g. a pathname
        and parameter) supplied to the load device when
        requesting the initial operating system configuration
        from that device.

     Note that writing to this object just changes the
     configuration that will be used the next time the
     operating system is loaded and does not actually cause
     the reload to occur."
    ::= { velocitySystem 4 }

velocitySystemNumUsers OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of user sessions for which this host is
        storing state information.  A session is a collection
        of processes requiring a single act of user
        authentication and possibly subject to collective job
        control."
    ::= { velocitySystem 5 }

velocitySystemProcesses OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of process contexts currently loaded or
        running on this system."
    ::= { velocitySystem 6 }

velocitySystemMaxProcesses OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The maximum number of process contexts this system
        can support.  If there is no fixed maximum, the value
        should be zero.  On systems that have a fixed maximum,
        this object can help diagnose failures that occur when
        this maximum is reached."
    ::= { velocitySystem 7 }

velocitySystemPageIn OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of pages that the system paged in"
    ::= { velocitySystem 8 }

velocitySystemPageOut OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of pages that the system paged out"
    ::= { velocitySystem 9 }

velocitySystemSwapIn OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of swap pages that have been brought in"
    ::= { velocitySystem 10 }

velocitySystemSwapOut OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of swap pages that have been swapped out"
    ::= { velocitySystem 11 }

velocitySystemInterupts OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of interupts since system boot"
    ::= { velocitySystem 12 }

velocitySystemContext OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of context switches the system had done."
    ::= { velocitySystem 13 }

velocitySystemProcessTotal OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Total number of processes the system has started since boot."
    ::= { velocitySystem 14 }




-- The Velocity Running Software Group
--
-- The velocitySWRunTable contains an entry for each distinct piece of
-- software that is running or loaded into physical or virtual
-- memory in preparation for running.  This includes the velocity's
-- operating system, device drivers, and applications.

velocitySWOSIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of the velocitySWRunIndex for the velocitySWRunEntry
        that represents the primary operating system running
        on this velocity.  This object is useful for quickly and
        uniquely identifying that primary operating system."
    ::= { velocitySWRun 1 }

velocitySWRunTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VelocitySWRunEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of software running on the
        velocity."
    ::= { velocitySWRun 2 }

velocitySWRunEntry OBJECT-TYPE
    SYNTAX     VelocitySWRunEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry for one piece of software
        running on the velocity Note that because the installed
        software table only contains information for software
        stored locally on this velocity, not every piece of
        running software will be found in the installed
        software table.  This is true of software that was
        loaded and run from a non-local source, such as a
        network-mounted file system.

        As an example of how objects in this table are named,
        an instance of the velocitySWRunName object might be named
        velocitySWRunName.1287"
    INDEX { velocitySWRunIndex }
    ::= { velocitySWRunTable 1 }

VelocitySWRunEntry ::= SEQUENCE {
        velocitySWRunIndex       Integer32,
        velocitySWRunName        InternationalDisplayString,
        velocitySWRunID          ProductID,
        velocitySWRunPath        InternationalDisplayString,
        velocitySWRunParameters  InternationalDisplayString,
        velocitySWRunType        INTEGER,
        velocitySWRunStatus      INTEGER,
        velocitySWRunPPID        Integer32,
        velocitySWRunPGRP        Integer32
    }

velocitySWRunIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A unique value for each piece of software running on
        the velocity.  Wherever possible, this should be the
        system's native, unique identification number."
    ::= { velocitySWRunEntry 1 }

velocitySWRunName OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE (0..64))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A textual description of this running piece of
        software, including the manufacturer, revision,  and
        the name by which it is commonly known.  If this
        software was installed locally, this should be the
        same string as used in the corresponding
        velocitySWInstalledName."
    ::= { velocitySWRunEntry 2 }

velocitySWRunID OBJECT-TYPE
    SYNTAX     ProductID
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The product ID of this running piece of software."
    ::= { velocitySWRunEntry 3 }

velocitySWRunPath OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A description of the location on long-term storage
        (e.g. a disk drive) from which this software was
        loaded."
    ::= { velocitySWRunEntry 4 }

velocitySWRunParameters OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "A description of the parameters supplied to this
        software when it was initially loaded."
    ::= { velocitySWRunEntry 5 }

velocitySWRunType OBJECT-TYPE
    SYNTAX     INTEGER {
                   unknown(1),
                   operatingSystem(2),
                   deviceDriver(3),
                   application(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The type of this software."
    ::= { velocitySWRunEntry 6 }

velocitySWRunStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                   running(1),
                   runnable(2),    -- waiting for resource
                                   -- (i.e., CPU, memory, IO)
                   notRunnable(3), -- loaded but waiting for event
                   invalid(4)      -- not loaded
               }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The status of this running piece of software.
        Setting this value to invalid(4) shall cause this
        software to stop running and to be unloaded. Sets to
        other values are not valid."
    ::= { velocitySWRunEntry 7 }

velocitySWRunPPID OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The ID of the parent process."
    ::= { velocitySWRunEntry 8 }

velocitySWRunPGRP OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The ID of the process group that the process belongs to."
    ::= { velocitySWRunEntry 9 }


-- The Velocity Resources Running Software Performance Group
--
-- The velocitySWRunPerfTable contains an entry corresponding to
-- each entry in the velocitySWRunTable.

velocitySWRunPerfTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF VelocitySWRunPerfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table of running software
        performance metrics."
    ::= { velocitySWRunPerf 1 }

velocitySWRunPerfEntry OBJECT-TYPE
    SYNTAX     VelocitySWRunPerfEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "A (conceptual) entry containing software performance
        metrics.  As an example, an instance of the
        velocitySWRunPerfCPU object might be named
        velocitySWRunPerfCPU.1287"
    AUGMENTS { velocitySWRunEntry }  -- This table augments information in
                               -- the velocitySWRunTable.
    ::= { velocitySWRunPerfTable 1 }

VelocitySWRunPerfEntry ::= SEQUENCE {
        velocitySWRunPerfCPUUser      Integer32,
        velocitySWRunPerfCPUSys       Integer32,
        velocitySWRunPerfMem          KBytes,
        velocitySWRunPerfCPUCummUser  Integer32,
        velocitySWRunPerfCPUCummSys   Integer32,
        velocitySWRunPerfMinFault     Integer32,
        velocitySWRunPerfMajFault     Integer32,
        velocitySWRunPerfMinFaultCumm Integer32,
        velocitySWRunPerfMajFaultCumm Integer32,
        velocitySWRunPerfRss          Integer32,
        velocitySWRunPerfPrio         Integer32,
	velocitySWRunPerfAll          InternationalDisplayString,
	velocitySWRunPerfUID          InternationalDisplayString,
	velocitySWRunPerfUName        InternationalDisplayString
}

velocitySWRunPerfCPUUser OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of centi-seconds of the User's CPU
        resources consumed by this process.  Note that on a
        multi-processor system, this value may increment by
        more than one centi-second in one centi-second of real
        (wall clock) time."
    ::= { velocitySWRunPerfEntry 1 }

velocitySWRunPerfCPUSys OBJECT-TYPE
    SYNTAX     Integer32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of centi-seconds of the system's CPU
        resources consumed by this process.  Note that on a
        multi-processor system, this value may increment by
        more than one centi-second in one centi-second of real
        (wall clock) time."
    ::= { velocitySWRunPerfEntry 2 }

velocitySWRunPerfMem OBJECT-TYPE
    SYNTAX     KBytes
    UNITS      "KBytes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The total amount of real system memory allocated to
        this process."
    ::= { velocitySWRunPerfEntry 3 }

velocitySWRunPerfCPUCummUser OBJECT-TYPE
     SYNTAX     Integer32 (0..2147483647)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The number of cummulative centi-seconds of the total user's CPU
         resources consumed by this process.  Note that on a
         multi-processor system, this value may increment by
         more than one centi-second in one centi-second of real
         (wall clock) time."
     ::= { velocitySWRunPerfEntry 4 }

velocitySWRunPerfCPUCummSys OBJECT-TYPE
     SYNTAX     Integer32 (0..2147483647)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The number of cummulative centi-seconds of the total system's CPU
         resources consumed by this process.  Note that on a
         multi-processor system, this value may increment by
         more than one centi-second in one centi-second of real
         (wall clock) time."
     ::= { velocitySWRunPerfEntry 5 }

velocitySWRunPerfMinFault OBJECT-TYPE
     SYNTAX     Integer32 (0..2147483647)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The number of minor page faults. (Those that have not
          required loading a page from disk.)"
     ::= { velocitySWRunPerfEntry 6 }

velocitySWRunPerfMajFault OBJECT-TYPE
     SYNTAX     Integer32 (0..2147483647)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The number of major page faults. (Those that have
          required loading a page from disk.)"
     ::= { velocitySWRunPerfEntry 7 }

velocitySWRunPerfMinFaultCumm OBJECT-TYPE
     SYNTAX     Integer32 (0..2147483647)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The number of minor page faults for this process and its
          children. (Those that have not required loading a page 
          from disk.)"
     ::= { velocitySWRunPerfEntry 8 }

velocitySWRunPerfMajFaultCumm OBJECT-TYPE
     SYNTAX     Integer32 (0..2147483647)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The number of major page faults. for this process and its
          children. (Those that have required loading a page from disk.)"
     ::= { velocitySWRunPerfEntry 9 }

velocitySWRunPerfRss OBJECT-TYPE
     SYNTAX     Integer32 (0..2147483647)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The number of pages in real memory minus 3 for administrative
          purposes. This is just the pages which count towards text,
          data, or stack space. This does not include pages which
          have not been demand-loaded in, or which are swapped out."
     ::= { velocitySWRunPerfEntry 10 }

velocitySWRunPerfPrio OBJECT-TYPE
     SYNTAX     Integer32 (0..2147483647)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The standard nice value, plus fifteen.  The value is never
          negative in the kernel."
     ::= { velocitySWRunPerfEntry 11 }

velocitySWRunPerfAll OBJECT-TYPE
     SYNTAX     InternationalDisplayString (SIZE (0..256))
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
         "The complete information from the stat file for the given process"
     ::= { velocitySWRunPerfEntry 12 }

velocitySWRunPerfUID OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The owning user ID and group ID of this process."
    ::= { velocitySWRunPerfEntry 13 }

velocitySWRunPerfUName OBJECT-TYPE
    SYNTAX     InternationalDisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The name of the owning user ID and group of this process."
    ::= { velocitySWRunPerfEntry 14 }

velocityAppTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AppEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing a list of applications that are of special
         interest. The process table is searched for the given string
         that identifies the given process(s). Other than being able to
	 return the process ids of interest this is the same MIB is the
	 UCD-snmp proc MIB. "
    ::= { velocity 6 }

velocityAppEntry OBJECT-TYPE
    SYNTAX      velocityAppEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing an application and its statistics."
    INDEX       { appIndex }
    ::= { velocityAppTable  1 }

velocityAppEntry ::= SEQUENCE {
    velocityAppIndex             Integer32,
    velocityAppNames             DisplayString,
    velocityAppPid               DisplayString,
    velocityAppMin               Integer32,
    velocityAppMax               Integer32,
    velocityAppCount             Integer32,
    velocityAppIds		 DisplayString,
    velocityAppErrorFlag         Integer32,
    velocityAppErrMessage        DisplayString
}

velocityAppIndex OBJECT-TYPE
    SYNTAX	Integer32 (0..65535)
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"Reference Index for each observed application."
    ::= { velocityAppEntry 1 }

velocityAppNames OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The application name we're counting/checking on."
    ::= { velocityAppEntry 2 }

velocityAppPid OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The absolute location of the PID file for the application."
    ::= { velocityAppEntry 3 }

velocityAppMin OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The minimum number of processes for that applicationes that should be
	 running.  An error flag is generated if the number of
	 running processes is < the minimum."
    ::= { velocityAppEntry 4 }

velocityAppMax OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The maximum number of processes for that application that should be
	 running.  An error flag is generated if the number of
	 running processes is > the maximum."
    ::= { velocityAppEntry 5 }

velocityAppCount OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The number of current applications running with the name
	 in question."
    ::= { velocityAppEntry 6 }

velocityAppIds OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"The list of process Ids that match the Application name."
    ::= { velocityAppEntry 7 }

velocityAppErrorFlag OBJECT-TYPE
    SYNTAX	Integer32
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"A Error flag to indicate trouble with a application.  It
	 goes to 1 if there is an error, 0 if no error."
    ::= { velocityAppEntry 100 }

velocityAppErrMessage OBJECT-TYPE
    SYNTAX	DisplayString
    MAX-ACCESS	read-only
    STATUS	current
    DESCRIPTION
	"An error message describing the problem (if one exists)."
    ::= { velocityAppEntry 101 }

velocityMIBCompliances OBJECT IDENTIFIER ::= { velocityMIBAdminInfo 2 }
velocityMIBGroups      OBJECT IDENTIFIER ::= { velocityMIBAdminInfo 3 }

    velocitySystemGroup OBJECT-GROUP
        OBJECTS {
            velocitySystemUptime, velocitySystemDate,
            velocitySystemInitialLoadDevice,
            velocitySystemInitialLoadParameters,
            velocitySystemNumUsers, velocitySystemProcesses,
            velocitySystemMaxProcesses
        }
        STATUS current
        DESCRIPTION
            "The Velocity System Group."
        ::= { velocityMIBGroups 1 }

    velocitySWRunGroup OBJECT-GROUP
        OBJECTS {
            velocitySWOSIndex, velocitySWRunIndex, velocitySWRunName,
            velocitySWRunID, velocitySWRunPath, velocitySWRunParameters,
            velocitySWRunType, velocitySWRunStatus, velocitySWRunPPID,
	    velocitySWRunPGRP
        }
        STATUS current
        DESCRIPTION
            "The Velocity Resources Running Software Group."
        ::= { velocityMIBGroups 4 }

    velocitySWRunPerfGroup OBJECT-GROUP
        OBJECTS { velocitySWRunPerfCPUUser, velocitySWRunPerfCPUSys, velocitySWRunPerfMem, velocitySWRunPerfCPUCummUser, velocitySWRunPerfCPUCummSys }
        STATUS current
        DESCRIPTION
            "The Velocity Resources Running Software
            Performance Group."
        ::= { velocityMIBGroups 5 }

END
