Is there a way to Aggregate data across Devices in a Multi-Graph report?

In a run of the mill template, I can write my own custom RRD command plot 
derived values.  For example if I'm collecting two values and want to plot 
their sum, I can just not display them, create a CDEF that adds them and plot 
that.  But in this case I know the names of the DEFS that Zenoss is creating.

But if I build a Multi-Graph report that has 'all servers in one graph', I 
won't know the names of the DEFS in advance.  Ok, for a static set of devices 
in the collection, with a bit of decoding the args to RenderServer, I can 
discover their names. But I'm trying to do this for a dynamic set of Devices, 
i.e. all devices of class foo.  And any custom graph points I create get 
replicated across all devices in the set.  I really want a single graph point.

Just in case this sound a bit esoteric and abstract, let me lay out a slightly 
simplified version of it.

          There is a pool of Servers that handle external requests
  
         I'm collecting requests as a counter from all the servers, and 
plotting requests/sec on each server
  
         Those servers share a DeviceClass
  
         Those servers emit events across a message bus for each request
  
         Further back in the stack there is a pool of Servers that perform 
analysis of the messages.
  
         These servers also share a (different) Device class
  
         I'm collecting message counts as a counter and plotting message per 
second.
  
         The two server pools are different sizes and can be expanded or 
contracted to deal with load


So what I'd like to do is to plot the sum of requests/second from
the first pool against the sum of messages/second in the second pool, where a 
significant difference implies either message loss (bad) or that the analytics 
servers are falling behind (not quite as bad, but if persistent a good reason 
to expand that server pool).

What I'm not seeing is a place to hang a custom graph point not on the server, 
but on the collection its self.  Nor am I seeing any way to dynamically 
generate the RPN expression as say an iteration over the Device names or the 
DEFS.

Am I missing something, or is there another way to do something like this 
inside the Zenoss framework?  My fallback is to build a python script that 
walks over the dmd, builds a list of devices, generates the RRD commands 
dynamically and spits out a graph, then run that from a cron and serve it as a 
static resource.  But that places it 'outside the system' where its harder for 
folks to find.
 
I can sort of approximate what I want by creating a Multi-graph report, 
plotting the two server classes in separate graphs, and stacking the values.  
But its a lot harder to spot differences when the two data sets are not 
overlayed.




-------------------- m2f --------------------

Read this topic online here:
http://forums.zenoss.com/viewtopic.php?p=25895#25895

-------------------- m2f --------------------



_______________________________________________
zenoss-users mailing list
[email protected]
http://lists.zenoss.org/mailman/listinfo/zenoss-users

Reply via email to