I am using graphite with statsd to collect various pieces of data from an application I have clustered in ec2. Among other things I have statistics for messages delivered by by application ond those that failed delivery. Because the number of consumers of messages of my application is somewhat fluid (changes every few days) I would like to be able to dynamicaaly generate graphs for these two stats per consumer. I post messages to statsd/graphite with the consumer id that is generated by the system as part of the stat:
stats.myapp.consumers.<consumerId>.messagesDelivered
stats.myapp.consumers.<consumerId>.messagesFailed
I currently generate two graphs using the wildcard for the consumerId:
stats.myapp.consumers.*.messagesDelivered
stats.myapp.consumers.*.messagesFailed
This is ok for a few consumers but I currently have >300 and it is growing rapidly. What I would like to be able to do is pass the above targets (or similar) and have graphite return a graph for each unique id. (I say graph but I am actually getting json results) I am currently using a personally modified version of the giraffe dashboard but am open to other suggestions.
Is this something that is even possible? (I suppose I could write some custom code to retrieve each id then generate the requests for each one each time. But I would really like to keep my customizations minimal if possible.)
I'm sure it's likely I will need to provide more details. Please let me know what you would need to know or if I am possibly just off-base with my request.
More details:
So, the end result of what I am hoping for is not to have one graph with, for lack of a better term, 300 lines each representing a node. I would like to have one graph for each node, each with two lines. One for delivered messages and one for failed messages.
When I attempted the solution from @Matt Self I ended-up with one graph with 300 lines on it. (Or, maybe I misinterpreted the suggestion?)