BraydenNeale/DT-SNMP

DT-SNMP - Configure Interface or limiting number

Closed this issue · 4 comments

2020-10-30 15_49_22-SNMP Base - Spirit Airlines_ Production - Dynatrace

Love your application, I came across an issue when encountering a device with too many interfaces.

Please point me to where I can make config changes.

Thanks in advance,
Teemunz

Hi teemunz,

That warning is just that the device property sysDescr is longer than a 200 character display limit in Dynatrace.
It will still be shown under the device details, just trimmed to 200 chars. This won't impact the monitored metrics.

There is a dimension limit in DTSNMP/processing.py which limits metric dimensions to 100. This was to match an internal limit in Dynatrace, but that may have increased recently.

# DT limits metric splits at 100, so stop processing after that
DIMENSION_LIMIT = 100

Thanks,
Brayden

Hello Brayden,

Thanks for your response. Is there a way to omit sysDescr from the request? I basically only need the Read Device Uptime (SysUptime).

If not including sysDescr is not an option, can I limit the number of interfaces returned?

Thanks in advance,
Teemunz

You could omit it with a simple code change and rebuild.
The only issue with it being there is that warning message in the extension endpoint settings. No monitoring data will be impacted and the sysDescr string is just trimmed to that 200 char limit.

You would just have to update snmpv2_mib.py to remove the sysDescr.

def poll_properties(self):
		mib_properties = [
			#'1.3.6.1.2.1.1.1',	# 'sysDescr', - REMOVE THIS LINE
			'1.3.6.1.2.1.1.2',	# 'sysObjectID',
def get_system_properties(varBinds, props):
	#props['sysDescr'] = str(varBinds[0][1]) - REMOVE THIS LINE
        # UPDATE THE REMAINING PROPERTY INDEXES (DECREMENT BY 1 - sysObjectID would now be str(varBinds[0][1])
	props['sysObjectID'] = str(varBinds[1][1])
	props['sysUpTime'] = convert_to_readable_time(str(varBinds[2][1]))

Examples of the properties reported are in the recently added Production Examples section in the wiki.

I'll look into silencing that warning by explicitly trimming the properties in the extension to that 200 limit in a future release.

Hello @BraydenNeale I need add other mib_properties about status of PowerSupply "cpqRackPowerSupplyCondition" of Blade HP:

I update snmpv2_mib.py to add the PowerSupply:

def poll_properties(self):
    mib_properties = [
          '1.3.6.1.4.1.232.22.2.5.1.1.1.17.1.1' #PowerSupply

def get_system_properties(varBinds, props):
    props['PowerSupply'] = str(varBinds[8][1])

But it is not being displayed on "Dynatrace - Properties and tags" of my Device.

When I execute snmpwalk to this OID the result is:
snmpwalk -c public -v 2c 192.168.x.x 1.3.6.1.4.1.232.22.2.5.1.1.1.17.1
SNMPv2-SMI::enterprises.232.22.2.5.1.1.1.17.1 = INTEGER: 2

When I execute snmpwalk of all power supply:
snmpwalk -c public -v 2c 192.168.x.x 1.3.6.1.4.1.232.22.2.5.1.1.1.17
SNMPv2-SMI::enterprises.232.22.2.5.1.1.1.17.1 = INTEGER: 2
SNMPv2-SMI::enterprises.232.22.2.5.1.1.1.17.2 = INTEGER: 2
SNMPv2-SMI::enterprises.232.22.2.5.1.1.1.17.3 = INTEGER: 2
SNMPv2-SMI::enterprises.232.22.2.5.1.1.1.17.4 = INTEGER: 2
SNMPv2-SMI::enterprises.232.22.2.5.1.1.1.17.5 = INTEGER: 2
SNMPv2-SMI::enterprises.232.22.2.5.1.1.1.17.6 = INTEGER: 2

Thanks