Bug 1502012

Summary: gluster related stats are not pushed to graphite from collectd
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: anmol babu <anbabu>
Component: web-admin-tendrl-node-agentAssignee: Nishanth Thomas <nthomas>
Status: CLOSED ERRATA QA Contact: Daniel Horák <dahorak>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: rhgs-3.3CC: dahorak, mbukatov, mkarnik, nthomas, rcyriac, rhs-bugs, sankarshan
Target Milestone: ---   
Target Release: RHGS 3.4.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tendrl-node-agent-1.6.1-3.el7rhgs.noarch Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-09-04 06:58:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1503134    

Description anmol babu 2017-10-13 17:34:26 UTC
Description of problem:
node-agent rpm loads tendrl-specific collectd plugins in /usr/lib/collectd whereas the collectd plugin path is /usr/lib64/collectd hence the collectd shows the error:
python plugin: Error importing module "tendrl_gluster".
Unhandled python exception in importing module: ImportError: No module named tendrl_gluster

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. Import gluster cluster into Tendrl
2. Observe grafana brick dashboard

Actual results:
No collectd stats in grafana. It shows "No Datapoints"

Expected results:
All applicable stats pushed from either collectd or monitoring-integration should be available on grafana

Additional info:
node_agent rpm is installing collectd plugins at path /usr/lib/collectd instead of collectd plugin path /usr/lib64/collectd which is causing issue that our cusom collectd plugins are not pushing data to graphite.
This is possibly bcoz of difference in value of _libdir in rhel vs centos/fedora in https://github.com/Tendrl/node-agent/blob/master/tendrl-node-agent.spec#L47 of spec file. So we probably will need to hard code path as /usr/lib64/collectd in lines 47, 48 and 57 and 85.

Comment 2 Nishanth Thomas 2017-10-24 08:11:17 UTC
This issue is fixed with latest builds

Comment 3 Martin Bukatovic 2018-03-13 08:21:26 UTC
Moving into right component.

Comment 8 Daniel Horák 2018-07-26 09:17:32 UTC
Collectd plugins from tendrl-node-agent package are in
/usr/lib64/collectd path:

# rpm -ql tendrl-node-agent | grep lib64/collectd
  /usr/lib64/collectd/__init__.py
  /usr/lib64/collectd/__init__.pyc
  /usr/lib64/collectd/__init__.pyo
  /usr/lib64/collectd/gluster
  /usr/lib64/collectd/gluster/__init__.py
  /usr/lib64/collectd/gluster/__init__.pyc
  /usr/lib64/collectd/gluster/__init__.pyo
  /usr/lib64/collectd/gluster/heavy_weight
  /usr/lib64/collectd/gluster/heavy_weight/__init__.py
  /usr/lib64/collectd/gluster/heavy_weight/__init__.pyc
  /usr/lib64/collectd/gluster/heavy_weight/__init__.pyo
  /usr/lib64/collectd/gluster/heavy_weight/tendrl_gluster_heal_info.py
  /usr/lib64/collectd/gluster/heavy_weight/tendrl_gluster_heal_info.pyc
  /usr/lib64/collectd/gluster/heavy_weight/tendrl_gluster_heal_info.pyo
  /usr/lib64/collectd/gluster/heavy_weight/tendrl_glusterfs_profile_info.py
  /usr/lib64/collectd/gluster/heavy_weight/tendrl_glusterfs_profile_info.pyc
  /usr/lib64/collectd/gluster/heavy_weight/tendrl_glusterfs_profile_info.pyo
  /usr/lib64/collectd/gluster/low_weight
  /usr/lib64/collectd/gluster/low_weight/__init__.py
  /usr/lib64/collectd/gluster/low_weight/__init__.pyc
  /usr/lib64/collectd/gluster/low_weight/__init__.pyo
  /usr/lib64/collectd/gluster/low_weight/tendrl_glusterfs_brick_utilization.py
  /usr/lib64/collectd/gluster/low_weight/tendrl_glusterfs_brick_utilization.pyc
  /usr/lib64/collectd/gluster/low_weight/tendrl_glusterfs_brick_utilization.pyo
  /usr/lib64/collectd/gluster/low_weight/tendrl_glusterfs_health_counters.py
  /usr/lib64/collectd/gluster/low_weight/tendrl_glusterfs_health_counters.pyc
  /usr/lib64/collectd/gluster/low_weight/tendrl_glusterfs_health_counters.pyo
  /usr/lib64/collectd/gluster/tendrl_gluster.py
  /usr/lib64/collectd/gluster/tendrl_gluster.pyc
  /usr/lib64/collectd/gluster/tendrl_gluster.pyo
  /usr/lib64/collectd/gluster/tendrl_gluster_brick_disk_stats.py
  /usr/lib64/collectd/gluster/tendrl_gluster_brick_disk_stats.pyc
  /usr/lib64/collectd/gluster/tendrl_gluster_brick_disk_stats.pyo
  /usr/lib64/collectd/gluster/utils.py
  /usr/lib64/collectd/gluster/utils.pyc
  /usr/lib64/collectd/gluster/utils.pyo

Also there is no Import Error in the logs as described in the description and
Grafana dashboards contains the required data.

# rpm -q tendrl-node-agent 
  tendrl-node-agent-1.6.3-9.el7rhgs.noarch

NOTE: it is fixed also in the previous released version tendrl-node-agent-1.5.4-16.el7rhgs.noarch.

>> VERIFIED

Comment 10 errata-xmlrpc 2018-09-04 06:58:06 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2018:2616