Opened 12 years ago
Last modified 12 years ago
#132 new
loadRRD() does not support types containing multiple measurements
Reported by: | chaos@bbn.com | Owned by: | somebody |
---|---|---|---|
Priority: | major | Milestone: | GEC15 demo |
Component: | Clients | Version: | |
Keywords: | v1.1.0 | Cc: | |
Dependencies: |
Description
The perl measurement_sender code supports the ability to bring in different columns of a multiple-column type from different RRDs. For instance, here is a measurement_sender config file stub which does this for a foam_sliver_state object:
# data group foam_sliver_state-sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr on host foam5.gpolab.bbn.com <DataGroup foam5.gpolab.bbn.com-foam_sliver_state-sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr> IntervalSec 15 Host foam5.gpolab.bbn.com Type foam_sliver_state Tags sliver:b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr # Data type approved comes from file foam_sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr_approved.rrd <DataSource "/var/spool/rrds/metrics/foam_sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr_approved.rrd"> Type RRD OutputColumnNames approved InputColumnNames sum </DataSource> # Data type enabled comes from file foam_sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr_enabled.rrd <DataSource "/var/spool/rrds/metrics/foam_sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr_enabled.rrd"> Type RRD OutputColumnNames enabled InputColumnNames sum </DataSource> # Data type pending comes from file foam_sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr_pending.rrd <DataSource "/var/spool/rrds/metrics/foam_sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr_pending.rrd"> Type RRD OutputColumnNames pending InputColumnNames sum </DataSource> # Data type rejected comes from file foam_sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr_rejected.rrd <DataSource "/var/spool/rrds/metrics/foam_sliver_b72b0a06-beb9-4be2-94ba-cfbd8654ad82:urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+chaos-montreve-macaddr_rejected.rrd"> Type RRD OutputColumnNames rejected InputColumnNames sum </DataSource> </DataGroup>
This flexibility is needed to interface with non-GMOC types of RRDs produced by non-GENI programs like ganglia.
I was not able to figure out any way of loading an RRD for a multi-column type. For instance, this code:
approved_rrd = '%s/foam_sliver_%s_approved.rrd' % (RRD_DIR, sliver_rrd_id) enabled_rrd = '%s/foam_sliver_%s_enabled.rrd' % (RRD_DIR, sliver_rrd_id) pending_rrd = '%s/foam_sliver_%s_pending.rrd' % (RRD_DIR, sliver_rrd_id) rejected_rrd = '%s/foam_sliver_%s_rejected.rrd' % (RRD_DIR, sliver_rrd_id) if os.path.isfile(approved_rrd) and os.path.isfile(enabled_rrd) \ and os.path.isfile(pending_rrd) and os.path.isfile(rejected_rrd): foam_sliver_state = gmoc.SliverState() foam_sliver_state.loadRRD(approved_rrd, start_secs, end_secs)
yields:
tau-verde,[~],20:20(148)$ sudo -u ganglia ./report_relations Traceback (most recent call last): File "./report_relations", line 315, in <module> attach_foam_sliver_state_metric(slivers[sliver], sliver) File "./report_relations", line 278, in attach_foam_sliver_state_metric foam_sliver_state.loadRRD(approved_rrd, start_secs, end_secs) File "/home/chaos/gmoc.py", line 486, in loadRRD rowVals[col] = row[idx] IndexError: tuple index out of range
Note: See
TracTickets for help on using
tickets.