Skip to content

Commit ce7240f

Browse files
authored
Add TimeMachines device support (librenms#19926)
* Add TimeMachines device support * Refine TimeMachines detection
1 parent 17946a8 commit ce7240f

7 files changed

Lines changed: 682 additions & 0 deletions

File tree

html/images/os/timemachines.png

992 Bytes
Loading

mibs/timemachines/TMI-COMMON-SMI

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
--
2+
-- TMI-COMMON-SMI
3+
--
4+
5+
TMI-COMMON-SMI DEFINITIONS ::= BEGIN
6+
7+
IMPORTS
8+
enterprises,
9+
MODULE-IDENTITY,
10+
OBJECT-IDENTITY,
11+
OBJECT-TYPE,
12+
NOTIFICATION-TYPE,
13+
Unsigned32
14+
FROM SNMPv2-SMI
15+
DisplayString
16+
FROM SNMPv2-TC;
17+
18+
timemachines MODULE-IDENTITY
19+
LAST-UPDATED "201908301200Z"
20+
ORGANIZATION "TimeMachines, Inc."
21+
CONTACT-INFO
22+
"TimeMachines, Inc.
23+
300 S 68th St Place, STE 100
24+
Lincoln, NE 68510"
25+
DESCRIPTION
26+
"This is the MIB Module for TimeMachines TM2000A specific parameters."
27+
REVISION "201908300000Z"
28+
DESCRIPTION
29+
"Initial revision of this MIB module."
30+
::= { enterprises 54414 }
31+
32+
GPSFixType ::= INTEGER {
33+
nolock(0),
34+
twoDlock(1),
35+
threeDlock(2)
36+
}
37+
38+
tmiSNMPManagement OBJECT-IDENTITY
39+
STATUS current
40+
DESCRIPTION
41+
"This is the root object identifier for all MIBs under the TimeMachines tree."
42+
::= { timemachines 1 }
43+
44+
tmiTM2000A OBJECT-IDENTITY
45+
STATUS current
46+
DESCRIPTION
47+
"This is reserved for objects related to TimeMachines TM2000A products."
48+
::= { tmiSNMPManagement 1 }
49+
50+
tmiManualTimeSet OBJECT-TYPE
51+
SYNTAX DisplayString
52+
MAX-ACCESS read-only
53+
STATUS current
54+
DESCRIPTION
55+
"Whether time on TM2000A was set from webpage."
56+
::= { tmiTM2000A 0 }
57+
58+
tmiNTPCount OBJECT-TYPE
59+
SYNTAX Unsigned32
60+
MAX-ACCESS read-only
61+
STATUS current
62+
DESCRIPTION
63+
"Total Count of NTP Look Ups from Clients."
64+
::= { tmiTM2000A 1 }
65+
66+
tmiNTPStratum OBJECT-TYPE
67+
SYNTAX Unsigned32
68+
MAX-ACCESS read-only
69+
STATUS current
70+
DESCRIPTION
71+
"Stratum Level reported to clients."
72+
::= { tmiTM2000A 2 }
73+
74+
tmiNTPPeerSynced OBJECT-TYPE
75+
SYNTAX Unsigned32
76+
MAX-ACCESS read-only
77+
STATUS current
78+
DESCRIPTION
79+
"If time is derived from Peer time source."
80+
::= { tmiTM2000A 3 }
81+
82+
tmiNTPTimeSincePeerSynced OBJECT-TYPE
83+
SYNTAX Unsigned32
84+
MAX-ACCESS read-only
85+
STATUS current
86+
DESCRIPTION
87+
"How long has it been since lost sync with peers source."
88+
::= { tmiTM2000A 4 }
89+
90+
tmiGPSAltitude OBJECT-TYPE
91+
SYNTAX Unsigned32
92+
MAX-ACCESS read-only
93+
STATUS current
94+
DESCRIPTION
95+
"Reported GPS Altitude."
96+
::= { tmiTM2000A 5 }
97+
98+
tmiGPSFix OBJECT-TYPE
99+
SYNTAX GPSFixType
100+
MAX-ACCESS read-only
101+
STATUS current
102+
DESCRIPTION
103+
"GPS Lock (fix) Level. 0=No Lock, 1=2D Lock, 2=3D Lock."
104+
::= { tmiTM2000A 6 }
105+
106+
tmiGPSHoldovertime OBJECT-TYPE
107+
SYNTAX Unsigned32
108+
MAX-ACCESS read-only
109+
STATUS current
110+
DESCRIPTION
111+
"Amount of time GPS has been without lock."
112+
::= { tmiTM2000A 7 }
113+
114+
tmiGPSLocation OBJECT-TYPE
115+
SYNTAX DisplayString
116+
MAX-ACCESS read-only
117+
STATUS current
118+
DESCRIPTION
119+
"Coordinate Location of TM2000A."
120+
::= { tmiTM2000A 8 }
121+
122+
tmiGPSSatIDs OBJECT-TYPE
123+
SYNTAX DisplayString
124+
MAX-ACCESS read-only
125+
STATUS current
126+
DESCRIPTION
127+
"Comma delimited list of received satellites, listed in order of SNR strength."
128+
::= { tmiTM2000A 9 }
129+
130+
tmiGPSSatSNRs OBJECT-TYPE
131+
SYNTAX DisplayString
132+
MAX-ACCESS read-only
133+
STATUS current
134+
DESCRIPTION
135+
"Comma delimited list of satellite SNR signal levels, aligned with satellite ID list."
136+
::= { tmiTM2000A 10 }
137+
138+
tmiGPSSatsUsed OBJECT-TYPE
139+
SYNTAX Unsigned32
140+
MAX-ACCESS read-only
141+
STATUS current
142+
DESCRIPTION
143+
"Reports the number of satellites used for GPS lock."
144+
::= { tmiTM2000A 11 }
145+
146+
tmiGPSTimeKnown OBJECT-TYPE
147+
SYNTAX Unsigned32
148+
MAX-ACCESS read-only
149+
STATUS current
150+
DESCRIPTION
151+
"Equals 1 if 1PPS averaging routine is complete and PTP is available."
152+
::= { tmiTM2000A 12 }
153+
154+
tmiSystemTime OBJECT-TYPE
155+
SYNTAX DisplayString
156+
MAX-ACCESS read-only
157+
STATUS current
158+
DESCRIPTION
159+
"Current UTC time on TM2000A."
160+
::= { tmiTM2000A 13 }
161+
162+
tmiPeerSyncFail OBJECT-TYPE
163+
SYNTAX Unsigned32
164+
MAX-ACCESS read-only
165+
STATUS current
166+
DESCRIPTION
167+
"True(1) if Peer sync has failed, requires that Peer sync was enabled."
168+
::= { tmiTM2000A 14 }
169+
170+
tmiHoldoverExpired OBJECT-TYPE
171+
SYNTAX Unsigned32
172+
MAX-ACCESS read-only
173+
STATUS current
174+
DESCRIPTION
175+
"TRUE(1) if Holdover has expired, used primarily for trap."
176+
::= { tmiTM2000A 15 }
177+
178+
tmiAlarmList OBJECT IDENTIFIER ::= { tmiSNMPManagement 2 }
179+
180+
tmiGPSLockAlarm NOTIFICATION-TYPE
181+
OBJECTS { tmiGPSFix }
182+
STATUS current
183+
DESCRIPTION
184+
"GPS Lock Status Changed."
185+
::= { tmiAlarmList 1 }
186+
187+
tmiPeerSyncAlarm NOTIFICATION-TYPE
188+
OBJECTS { tmiPeerSyncFail }
189+
STATUS current
190+
DESCRIPTION
191+
"Peer NTP Sync Lost."
192+
::= { tmiAlarmList 2 }
193+
194+
tmiHoldoverAlarm NOTIFICATION-TYPE
195+
OBJECTS { tmiHoldoverExpired }
196+
STATUS current
197+
DESCRIPTION
198+
"Holdover Period Ended."
199+
::= { tmiAlarmList 3 }
200+
201+
tmiStratumAlarm NOTIFICATION-TYPE
202+
OBJECTS { tmiNTPStratum }
203+
STATUS current
204+
DESCRIPTION
205+
"NTP Stratum Reported has changed."
206+
::= { tmiAlarmList 4 }
207+
208+
END

resources/definitions/os_detection/linux.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,16 @@ discovery:
2323
sysObjectID: .1.3.6.1.4.1.8072.3.2.10
2424
sysDescr_regex_except:
2525
- '/^USG/'
26+
snmpget:
27+
oid: .1.3.6.1.4.1.54414.1.1.1.0
28+
op: '='
29+
value: false
2630
-
2731
sysDescr_regex: '/^Linux/'
32+
snmpget:
33+
oid: .1.3.6.1.4.1.54414.1.1.1.0
34+
op: '='
35+
value: false
2836
ignore_mount_regexp:
2937
- '#^/run($|/)#'
3038
- '#^/dev/shm$#'
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
os: timemachines
2+
text: 'TM2000A'
3+
type: timing
4+
group: unix
5+
icon: timemachines
6+
mib_dir: timemachines
7+
over:
8+
- { graph: device_processor, text: 'Processor Usage' }
9+
- { graph: device_mempool, text: 'Memory Usage' }
10+
- { graph: device_storage, text: 'Storage Usage' }
11+
discovery:
12+
-
13+
sysDescr_regex: '/^Linux am335x-evm/'
14+
snmpget:
15+
oid: .1.3.6.1.4.1.54414.1.1.1.0
16+
op: '!='
17+
value: false
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
modules:
2+
sensors:
3+
count:
4+
data:
5+
-
6+
oid: TMI-COMMON-SMI::tmiNTPCount
7+
value: TMI-COMMON-SMI::tmiNTPCount
8+
num_oid: '.1.3.6.1.4.1.54414.1.1.1.0{{ $noindex }}'
9+
descr: 'NTP Client Lookups'
10+
index: 'tmiNTPCount.0'
11+
-
12+
oid: TMI-COMMON-SMI::tmiNTPStratum
13+
value: TMI-COMMON-SMI::tmiNTPStratum
14+
num_oid: '.1.3.6.1.4.1.54414.1.1.2.0{{ $noindex }}'
15+
descr: 'NTP Stratum'
16+
index: 'tmiNTPStratum.0'
17+
-
18+
oid: TMI-COMMON-SMI::tmiGPSAltitude
19+
value: TMI-COMMON-SMI::tmiGPSAltitude
20+
num_oid: '.1.3.6.1.4.1.54414.1.1.5.0{{ $noindex }}'
21+
descr: 'GPS Altitude'
22+
index: 'tmiGPSAltitude.0'
23+
-
24+
oid: TMI-COMMON-SMI::tmiGPSHoldovertime
25+
value: TMI-COMMON-SMI::tmiGPSHoldovertime
26+
num_oid: '.1.3.6.1.4.1.54414.1.1.7.0{{ $noindex }}'
27+
descr: 'GPS Holdover Time'
28+
index: 'tmiGPSHoldovertime.0'
29+
-
30+
oid: TMI-COMMON-SMI::tmiGPSSatsUsed
31+
value: TMI-COMMON-SMI::tmiGPSSatsUsed
32+
num_oid: '.1.3.6.1.4.1.54414.1.1.11.0{{ $noindex }}'
33+
descr: 'GPS Satellites Used'
34+
index: 'tmiGPSSatsUsed.0'
35+
state:
36+
data:
37+
-
38+
oid: TMI-COMMON-SMI::tmiGPSFix
39+
value: TMI-COMMON-SMI::tmiGPSFix
40+
num_oid: '.1.3.6.1.4.1.54414.1.1.6.0{{ $noindex }}'
41+
descr: 'GPS Fix'
42+
index: 'tmiGPSFix.0'
43+
state_name: tmiGPSFix
44+
states:
45+
- { value: 0, generic: 2, descr: 'No Lock' }
46+
- { value: 1, generic: 1, descr: '2D Lock' }
47+
- { value: 2, generic: 0, descr: '3D Lock' }
48+
-
49+
oid: TMI-COMMON-SMI::tmiNTPPeerSynced
50+
value: TMI-COMMON-SMI::tmiNTPPeerSynced
51+
num_oid: '.1.3.6.1.4.1.54414.1.1.3.0{{ $noindex }}'
52+
descr: 'Peer Synced'
53+
index: 'tmiNTPPeerSynced.0'
54+
state_name: tmiNTPPeerSynced
55+
states:
56+
- { value: 0, generic: 0, descr: 'No' }
57+
- { value: 1, generic: 0, descr: 'Yes' }
58+
-
59+
oid: TMI-COMMON-SMI::tmiGPSTimeKnown
60+
value: TMI-COMMON-SMI::tmiGPSTimeKnown
61+
num_oid: '.1.3.6.1.4.1.54414.1.1.12.0{{ $noindex }}'
62+
descr: 'GPS Time Known'
63+
index: 'tmiGPSTimeKnown.0'
64+
state_name: tmiGPSTimeKnown
65+
states:
66+
- { value: 0, generic: 2, descr: 'No' }
67+
- { value: 1, generic: 0, descr: 'Yes' }
68+
-
69+
oid: TMI-COMMON-SMI::tmiPeerSyncFail
70+
value: TMI-COMMON-SMI::tmiPeerSyncFail
71+
num_oid: '.1.3.6.1.4.1.54414.1.1.14.0{{ $noindex }}'
72+
descr: 'Peer Sync Failure'
73+
index: 'tmiPeerSyncFail.0'
74+
state_name: tmiPeerSyncFail
75+
states:
76+
- { value: 0, generic: 0, descr: 'No' }
77+
- { value: 1, generic: 2, descr: 'Yes' }
78+
-
79+
oid: TMI-COMMON-SMI::tmiHoldoverExpired
80+
value: TMI-COMMON-SMI::tmiHoldoverExpired
81+
num_oid: '.1.3.6.1.4.1.54414.1.1.15.0{{ $noindex }}'
82+
descr: 'Holdover Expired'
83+
index: 'tmiHoldoverExpired.0'
84+
state_name: tmiHoldoverExpired
85+
states:
86+
- { value: 0, generic: 0, descr: 'No' }
87+
- { value: 1, generic: 2, descr: 'Yes' }

0 commit comments

Comments
 (0)