diff options
Diffstat (limited to 'lib/os_mon/mibs')
-rw-r--r-- | lib/os_mon/mibs/Makefile | 97 | ||||
-rw-r--r-- | lib/os_mon/mibs/OTP-OS-MON-MIB.funcs | 5 | ||||
-rw-r--r-- | lib/os_mon/mibs/OTP-OS-MON-MIB.mib | 422 | ||||
-rw-r--r-- | lib/os_mon/mibs/v1/.gitignore | 0 |
4 files changed, 524 insertions, 0 deletions
diff --git a/lib/os_mon/mibs/Makefile b/lib/os_mon/mibs/Makefile new file mode 100644 index 0000000000..cbbc337491 --- /dev/null +++ b/lib/os_mon/mibs/Makefile @@ -0,0 +1,97 @@ +# +# %CopyrightBegin% +# +# Copyright Ericsson AB 1997-2009. All Rights Reserved. +# +# The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved online at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# %CopyrightEnd% +# +include $(ERL_TOP)/make/target.mk +include $(ERL_TOP)/make/$(TARGET)/otp.mk + +# ---------------------------------------------------- +# Application version +# ---------------------------------------------------- +include ../vsn.mk +VSN=$(OS_MON_VSN) + +# ---------------------------------------------------- +# Release directory specification +# ---------------------------------------------------- +RELSYSDIR = $(RELEASE_PATH)/lib/os_mon-$(VSN) + +# ---------------------------------------------------- +# Target Specs +# ---------------------------------------------------- + +MIB_FILES= OTP-OS-MON-MIB.mib +FUNCS_FILES = OTP-OS-MON-MIB.funcs + +BIN_TARGETS= $(MIB_FILES:%.mib=$(SNMP_BIN_TARGET_DIR)/%.bin) +HRL_TARGETS= $(MIB_FILES:%.mib=$(SNMP_HRL_TARGET_DIR)/%.hrl) +V1_MIB_FILES= $(MIB_FILES:%.mib=v1/%.mib.v1) + +TARGET_FILES= $(SNMP_BIN_TARGET_DIR)/OTP-REG.bin \ + $(SNMP_BIN_TARGET_DIR)/OTP-TC.bin \ + $(SNMP_BIN_TARGET_DIR)/OTP-MIB.bin \ + $(BIN_TARGETS) $(HRL_TARGETS) $(V1_MIB_FILES) + +# ---------------------------------------------------- +# FLAGS +# ---------------------------------------------------- +SNMP_FLAGS = -I $(SNMP_BIN_TARGET_DIR) + +# ---------------------------------------------------- +# Targets +# ---------------------------------------------------- + +debug opt: $(TARGET_FILES) + +clean: + rm -f $(TARGET_FILES) + rm -f core + +docs: + +OTP_MIBDIR = $(shell if test -d ../../otp_mibs; then echo otp_mibs; \ + else echo sasl; fi) + +$(SNMP_BIN_TARGET_DIR)/OTP-REG.bin: $(ERL_TOP)/lib/$(OTP_MIBDIR)/mibs/OTP-REG.mib + $(ERLC) -pa $(SNMP_TOOLKIT)/ebin -I $(SNMP_TOOLKIT)/priv/mibs $(SNMP_FLAGS) -o $(SNMP_BIN_TARGET_DIR) $< + +$(SNMP_BIN_TARGET_DIR)/OTP-TC.bin: $(ERL_TOP)/lib/$(OTP_MIBDIR)/mibs/OTP-TC.mib + $(ERLC) -pa $(SNMP_TOOLKIT)/ebin -I $(SNMP_TOOLKIT)/priv/mibs $(SNMP_FLAGS) -o $(SNMP_BIN_TARGET_DIR) $< + +$(SNMP_BIN_TARGET_DIR)/OTP-MIB.bin: $(ERL_TOP)/lib/$(OTP_MIBDIR)/mibs/OTP-MIB.mib + $(ERLC) -pa $(SNMP_TOOLKIT)/ebin -I $(SNMP_TOOLKIT)/priv/mibs $(SNMP_FLAGS) -o $(SNMP_BIN_TARGET_DIR) $< + +v1/%.mib.v1: %.mib + $(ERL_TOP)/lib/snmp/bin/snmp-v2tov1 -o $@ $< + + +# ---------------------------------------------------- +# Release Target +# ---------------------------------------------------- +include $(ERL_TOP)/make/otp_release_targets.mk + +release_spec: opt + $(INSTALL_DIR) $(RELSYSDIR)/mibs + $(INSTALL_DIR) $(RELSYSDIR)/mibs/v1 + $(INSTALL_DATA) $(MIB_FILES) $(FUNCS_FILES) $(RELSYSDIR)/mibs + $(INSTALL_DATA) $(V1_MIB_FILES) $(RELSYSDIR)/mibs/v1 + $(INSTALL_DIR) $(RELSYSDIR)/include + $(INSTALL_DATA) $(HRL_TARGETS) $(RELSYSDIR)/include + $(INSTALL_DIR) $(RELSYSDIR)/priv/mibs + $(INSTALL_DATA) $(BIN_TARGETS) $(RELSYSDIR)/priv/mibs + +release_docs_spec: diff --git a/lib/os_mon/mibs/OTP-OS-MON-MIB.funcs b/lib/os_mon/mibs/OTP-OS-MON-MIB.funcs new file mode 100644 index 0000000000..7ed76517b9 --- /dev/null +++ b/lib/os_mon/mibs/OTP-OS-MON-MIB.funcs @@ -0,0 +1,5 @@ +{loadMemorySystemWatermark, {os_mon_mib, mem_sys_mark, []}}. +{loadMemoryErlProcWatermark, {os_mon_mib, mem_proc_mark, []}}. +{loadTable, {os_mon_mib, load_table, []}}. +{diskAlmostFullThreshold, {os_mon_mib, disk_threshold, []}}. +{diskTable, {os_mon_mib, disk_table, []}}. diff --git a/lib/os_mon/mibs/OTP-OS-MON-MIB.mib b/lib/os_mon/mibs/OTP-OS-MON-MIB.mib new file mode 100644 index 0000000000..d6ababdcea --- /dev/null +++ b/lib/os_mon/mibs/OTP-OS-MON-MIB.mib @@ -0,0 +1,422 @@ +-- +-- %CopyrightBegin% +-- +-- Copyright Ericsson AB 1997-2009. All Rights Reserved. +-- +-- The contents of this file are subject to the Erlang Public License, +-- Version 1.1, (the "License"); you may not use this file except in +-- compliance with the License. You should have received a copy of the +-- Erlang Public License along with this software. If not, it can be +-- retrieved online at http://www.erlang.org/. +-- +-- Software distributed under the License is distributed on an "AS IS" +-- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +-- the License for the specific language governing rights and limitations +-- under the License. +-- +-- %CopyrightEnd% +-- + +OTP-OS-MON-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-TYPE, + Counter32, Gauge32, Integer32, Unsigned32, Counter64 + FROM SNMPv2-SMI + TEXTUAL-CONVENTION, DisplayString + FROM SNMPv2-TC + MODULE-COMPLIANCE, NOTIFICATION-GROUP, OBJECT-GROUP + FROM SNMPv2-CONF + otpModules, otpApplications + FROM OTP-REG + erlNodeId + FROM OTP-MIB + ; + + +otpOsMonModule MODULE-IDENTITY + LAST-UPDATED "0305090900Z" + ORGANIZATION "Ericsson" + CONTACT-INFO + "Contact: Erlang Support see license agreement for Erlang/OTP." + + DESCRIPTION + "This MIB is part of the OTP MIB. It defines MIB objects + for the os_mon application in OTP." + + REVISION "0508260900Z" + DESCRIPTION + "Removed dependeny on EVA." + REVISION "0305090900Z" + DESCRIPTION + "Changed CONTACT-INFO as it was outdated, made it more generic + to avoid such changes in the future." + + REVISION "9807080900Z" + DESCRIPTION + "Changed MAX-ACCESS for diskDescr from not-accessible to + read-only." + + REVISION "9801270900Z" + DESCRIPTION + "Changed erroneous name of this module to otpOsMonModule." + + REVISION "9712010900Z" + DESCRIPTION + "Converted to v2 SMI and placed in the OTP tree." + + REVISION "9608191700Z" + DESCRIPTION + "The initial revision of MIB module OTP-OS-MON-MIB." + ::= { otpModules 4 } + +OTPCounterBasedGauge64 ::= TEXTUAL-CONVENTION + STATUS current + DESCRIPTION + "The CounterBasedGauge64 type represents a non-negative + integer, which may increase or decrease, but shall never + exceed a maximum value, nor fall below a minimum value. The + maximum value can not be greater than 2^64-1 + (18446744073709551615 decimal), and the minimum value can + + not be smaller than 0. The value of a CounterBasedGauge64 + has its maximum value whenever the information being modeled + is greater than or equal to its maximum value, and has its + minimum value whenever the information being modeled is + smaller than or equal to its minimum value. If the + information being modeled subsequently decreases below + (increases above) the maximum (minimum) value, the + CounterBasedGauge64 also decreases (increases). + + Note that this TC is not strictly supported in SMIv2, + because the 'always increasing' and 'counter wrap' semantics + associated with the Counter64 base type are not preserved. + It is possible that management applications which rely + solely upon the (Counter64) ASN.1 tag to determine object + semantics will mistakenly operate upon objects of this type + as they would for Counter64 objects. + + This textual convention represents a limited and short-term + solution, and may be deprecated as a long term solution is + defined and deployed to replace it." + SYNTAX Counter64 + +otpOsMonMIB OBJECT IDENTIFIER ::= { otpApplications 2 } +otpOsMonMIBConformance + OBJECT IDENTIFIER ::= { otpOsMonMIB 1 } +otpOsMonMIBObjects + OBJECT IDENTIFIER ::= { otpOsMonMIB 2 } +otpOsMonMIBAlarms + OBJECT IDENTIFIER ::= { otpOsMonMIB 4 } +otpOsMonMIBAlarmsV2 + OBJECT IDENTIFIER ::= { otpOsMonMIBAlarms 0 } + + +-- Datatypes + +-- Managed Objects + +load OBJECT IDENTIFIER ::= { otpOsMonMIBObjects 1 } +disk OBJECT IDENTIFIER ::= { otpOsMonMIBObjects 2 } + +loadMemorySystemWatermark OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Threshold in percent of the total available system + memory, which specifies how much memory can be allocated + by the system before an alarm is sent." + ::= { load 1 } + +loadMemoryErlProcWatermark OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Threshold in percent of the total available system + memory, which specifies how much memory can be allocated + by one Erlang process before an alarm is sent." + ::= { load 2 } + +loadTable OBJECT-TYPE + SYNTAX SEQUENCE OF LoadEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table with load and memory information + for each node." + ::= { load 3 } + +loadEntry OBJECT-TYPE + SYNTAX LoadEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A conceptual row in the loadTable." + INDEX { loadErlNodeName } + ::= { loadTable 1 } + +LoadEntry ::= SEQUENCE { + loadErlNodeName DisplayString, + loadSystemTotalMemory Gauge32, + loadSystemUsedMemory Gauge32, + loadLargestErlProcess DisplayString, + loadLargestErlProcessUsedMemory Gauge32, + loadCpuLoad Integer32, + loadCpuLoad5 Integer32, + loadCpuLoad15 Integer32, + loadOsWordsize Unsigned32, + loadSystemTotalMemory64 OTPCounterBasedGauge64, + loadSystemUsedMemory64 OTPCounterBasedGauge64, + loadLargestErlProcessUsedMemory64 OTPCounterBasedGauge64 + } + +loadErlNodeName OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "The name of the erlang node, e.g. erlnode@host1." + ::= { loadEntry 1 } + +loadSystemTotalMemory OBJECT-TYPE + SYNTAX Gauge32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of total memory in the system." + ::= { loadEntry 2 } + +loadSystemUsedMemory OBJECT-TYPE + SYNTAX Gauge32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of used memory." + ::= { loadEntry 3 } + +loadLargestErlProcess OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The process identifier (Pid) of the largest Erlang + process." + ::= { loadEntry 4 } + +loadLargestErlProcessUsedMemory OBJECT-TYPE + SYNTAX Gauge32 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of memory used by the largest Erlang + process." + ::= { loadEntry 5 } + +loadCpuLoad OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average load the last minute in percent of the CPU + where the Erlang node runs." + ::= { loadEntry 6 } + +loadCpuLoad5 OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average load the last 5 minutes in percent of the CPU + where the Erlang node runs." + ::= { loadEntry 7} + +loadCpuLoad15 OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The average load the last 15 minutes in percent of the CPU + where the Erlang node runs." + ::= { loadEntry 8} + +loadOsWordsize OBJECT-TYPE + SYNTAX Unsigned32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The wordsize of the operating operating system." + ::= { loadEntry 9 } + +loadSystemTotalMemory64 OBJECT-TYPE + SYNTAX OTPCounterBasedGauge64 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of total memory in the system for 64-bit operating system." + ::= { loadEntry 10 } + +loadSystemUsedMemory64 OBJECT-TYPE + SYNTAX OTPCounterBasedGauge64 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of used memory for 64-bit operating system." + ::= { loadEntry 11 } + +loadLargestErlProcessUsedMemory64 OBJECT-TYPE + SYNTAX OTPCounterBasedGauge64 + UNITS "bytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of memory used by the largest Erlang + process for 64-bit operating system.." + ::= { loadEntry 12 } + +diskAlmostFullThreshold OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Threshold in percent of the available disk space, + which specifies how much disk space can be used by + a disk or partition before an alarm is sent." + ::= { disk 1 } + +diskTable OBJECT-TYPE + SYNTAX SEQUENCE OF DiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A table with all local disks or partitions on each + node." + ::= { disk 2 } + +diskEntry OBJECT-TYPE + SYNTAX DiskEntry + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "A conceptual row in the diskTable." + INDEX { erlNodeId, diskId } + ::= { diskTable 1 } + +DiskEntry ::= SEQUENCE { + diskId Integer32, + diskDescr DisplayString, + diskKBytes Gauge32, + diskCapacity Integer32 + } + +diskId OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "An integer that uniquely identifies the disk + or partition." + ::= { diskEntry 1 } + +diskDescr OBJECT-TYPE + SYNTAX DisplayString + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "A string that identifies the disk or partition." + ::= { diskEntry 2 } + +diskKBytes OBJECT-TYPE + SYNTAX Gauge32 + UNITS "kbytes" + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The amount of total disk/partition space. " + ::= { diskEntry 3 } + +diskCapacity OBJECT-TYPE + SYNTAX Integer32 (0..100) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "How much of the disk's/partition's total capacity has + been used, in percent." + ::= { diskEntry 4 } + + +-- conformance information + +otpOsMonMIBCompliances + OBJECT IDENTIFIER ::= { otpOsMonMIBConformance 1 } +otpOsMonMIBGroups + OBJECT IDENTIFIER ::= { otpOsMonMIBConformance 2 } + + +-- compliance statements + +otpOsMonBasicCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for SNMPv2 entities which + implement the OTP-OS-MON-MIB." + MODULE -- this module + GROUP loadGroup + DESCRIPTION + "This group is mandatory for systems implementing the + load supervison functionality." + GROUP loadAlarmsGroup + DESCRIPTION + "This group is optional for systems implementing the + load supervison functionality." + GROUP diskGroup + DESCRIPTION + "This group is mandatory for system implementing the + disk supervison functionality." + GROUP diskAlarmsGroup + DESCRIPTION + "This group is optional for systems implementing the + disk supervison functionality." + ::= { otpOsMonMIBCompliances 1 } + + +-- units of conformance + +loadGroup OBJECT-GROUP + OBJECTS { loadMemorySystemWatermark, + loadMemoryErlProcWatermark, + loadSystemTotalMemory, + loadSystemUsedMemory, + loadLargestErlProcess, + loadLargestErlProcessUsedMemory, + loadCpuLoad, + loadCpuLoad5, + loadCpuLoad15, + loadOsWordsize, + loadSystemTotalMemory64, + loadSystemUsedMemory64, + loadLargestErlProcessUsedMemory64} + STATUS current + DESCRIPTION + "A collection of objects providing basic instrumentation + of the load of the OTP system." + ::= { otpOsMonMIBGroups 1 } + +diskGroup OBJECT-GROUP + OBJECTS { diskAlmostFullThreshold, + diskDescr, + diskKBytes, + diskCapacity } + STATUS current + DESCRIPTION + "A collection of objects providing basic instrumentation + of the disks in the OTP system." + ::= { otpOsMonMIBGroups 3 } + +END diff --git a/lib/os_mon/mibs/v1/.gitignore b/lib/os_mon/mibs/v1/.gitignore new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/lib/os_mon/mibs/v1/.gitignore |