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