Extend validation for new generic SNMP pollster

Bug #1503265 reported by Yurii Prokulevych
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ceilometer
Triaged
Wishlist
Unassigned

Bug Description

RDO Liberty setup.

We need additional validation for new SNMP pollster that uses definitions from YAML file.
Right now just validation for sample/meter fields(name, type, unit) is done.
And not validation regarding fields needed for actual SNMP gathering.

Edit snmp.yaml:(excerpt)
...
    - name: hardware.disk.bootable_flag_set_prefix
      unit: ChangedUnitCumulative
      type: gauge
      snmp_inspector:
          matching_type: "type_prefix"
          oid: ''
          type: "int"
          metadata:
              partition:
                  oid: "1.3.6.1.2.1.25.3.8.1.2"
                  type: "str"
          post_op: None

Configure pipeline.yaml(excerpt)
...
    - name: my_hw_source
      interval: 60
      resources:
          - snmp://user:pass@127.0.0.1
      meters:
          - "hardware.disk.bootable_flag_set_prefix"
      sinks:
          - simple_sink

Restart openstack-ceilometer-central.service and openstack-ceilometer-notification.service

In central.log no errors regardin snmp.yaml parsing, though errors regarding data retrieval are present:
...
2015-10-06 14:39:24.124 108957 DEBUG ceilometer.coordination [-] My subset: ['snmp://user:pass@1127.0.0.1'] extract_my_subset /usr/lib/python2.7/site-packages/ceilometer/coordination.py:171
2015-10-06 14:39:24.125 108957 INFO ceilometer.agent.manager [-] Polling pollster hardware.disk.bootable_flag_set_prefix in the context of my_hw_source
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic [-] inspector call failed for hardware.disk.bootable_flag_set_prefix host 192.168.100.50: string index out of range
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic Traceback (most recent call last):
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic File "/usr/lib/python2.7/site-packages/ceilometer/hardware/pollsters/generic.py", line 171, in get_samples
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic param=inspector_param))
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic File "/usr/lib/python2.7/site-packages/ceilometer/hardware/inspector/snmp.py", line 224, in inspect_generic
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic meter_def['matching_type'] == PREFIX)
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic File "/usr/lib/python2.7/site-packages/ceilometer/hardware/inspector/snmp.py", line 148, in _query_oids
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic lookupValues=True)
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic File "/usr/lib/python2.7/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 619, in bulkCmd
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic varBindHead = [ univ.ObjectIdentifier(x[0]) for x in self.__asynCmdGen.makeReadVarBinds(varNames) ]
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic File "/usr/lib/python2.7/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 201, in makeReadVarBinds
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic [ (x, self._null) for x in varNames ], oidOnly=True
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic File "/usr/lib/python2.7/site-packages/pysnmp/entity/rfc3413/oneliner/cmdgen.py", line 213, in makeVarBinds
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic elif isinstance(varName[0], tuple): # legacy
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic IndexError: string index out of range
2015-10-06 14:39:24.125 108957 ERROR ceilometer.hardware.pollsters.generic
...

Packages:
openstack-ceilometer-api-5.0.0.0b4-dev123.el7.centos.noarch
python-ceilometerclient-1.5.1-dev1.el7.centos.noarch
openstack-ceilometer-common-5.0.0.0b4-dev123.el7.centos.noarch
openstack-ceilometer-collector-5.0.0.0b4-dev123.el7.centos.noarch
openstack-ceilometer-polling-5.0.0.0b4-dev123.el7.centos.noarch
openstack-ceilometer-notification-5.0.0.0b4-dev123.el7.centos.noarch
openstack-ceilometer-central-5.0.0.0b4-dev123.el7.centos.noarch
openstack-ceilometer-compute-5.0.0.0b4-dev123.el7.centos.noarch
python-ceilometer-5.0.0.0b4-dev123.el7.centos.noarch

Regards,
Yurii

Zi Lian Ji (jizilian)
Changed in ceilometer:
assignee: nobody → Zi Lian Ji (jizilian)
gordon chung (chungg)
Changed in ceilometer:
importance: Undecided → Wishlist
status: New → Triaged
Revision history for this message
Zi Lian Ji (jizilian) wrote :

Hi Gordon

In this case, the user set the oid as ' ' and it leads the error. Do you think what parameters else we need to check for SNMP ?

Thanks

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ceilometer (master)

Fix proposed to branch: master
Review: https://review.openstack.org/262660

Changed in ceilometer:
status: Triaged → In Progress
Changed in ceilometer:
assignee: Zi Lian Ji (jizilian) → Xia Linjuan (ljxiash)
gordon chung (chungg)
Changed in ceilometer:
assignee: Xia Linjuan (ljxiash) → nobody
status: In Progress → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.