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

Change History (1)

comment:1 Changed 12 years ago by chaos@bbn.com

Keywords: v1.1.0 added
Note: See TracTickets for help on using tickets.