I've updated the branch again. Here is an update for its current state: 1. storeByGroup/storeByForeignSource is working now. 2. fetchLastValue() and fetchLastValueInRange() now return a value. 3. There is no handling of the JRobin datasource types (ABSOLUTE/GAUGE/COUNTER). The collected values are what is stored. 4. There is no handling of the JRobin consolidation functions (FIRST/LAST/MAX/MIN/TOTAL). Only AVERAGE is currently supported. 5. Periodic data point aggregation still needs to be implemented. 6. Evaluate performance, and improve deficiencies. 7. Move filesystem metadata files into RrdStrategy? (ds.properties and strings.properties)
One OpenNMS core functionality issue I'd like some guidance on is I've added a new method to RrdStrategy: public boolean fileExists(String fileName) (See commit 60b3f9667a30d688bff59ea4056d336872acf0fa from my git repo https://github.com/roskens/opennms.git) The problem that I want to solve with this method and possibly others to be declared, are that there are classes in opennms-dao that walk the filesystem where the rrd's are stored to determine which attributes/resources are available for a node. Since the graph data is now inside cassandra, it really doesn't make sense to have a file system sitting there with thousands of 0 length files just so that graphs work. The main classes with references to the filesystem are RrdFileConstants, NodeSnmpResourceType, ResourceTypeUtils. RrdFileConstants defines some FileFilter's (NODE_DIRECTORY_FILTER, INTERFACE_DIRECTORY_FILTER, RRD_FILENAME_FILTER, DOMAIN_INTERFACE_DIRECTORY_FILTER) that are used by other classes to search for the rrds. They use 'java.io.File' which means I need an alternative object to pass around. Also, there should be some thought on handling ds.properties and strings.properties via RrdStrategy/RrdUtils rather than in these other classes. Any thoughts/suggestions? Ron On 8/25/2012 10:32 PM, Ronald Roskens wrote: > If anyone is interested in the code, checkout my branch on github.com: > > https://github.com/roskens/opennms/tree/roskens/features/cassandra-rrd-backend > > Ron > > On 8/25/2012 9:59 PM, Ronald Roskens wrote: >> Hey all, >> >> Just wanted to give an update on my hacking on the >> features/cassandra-rrd-backend branch. >> >> One of the problems I'd noticed with the CassandraRrdStrategy was that >> it kept creating temp files as it created graphs. I had created a pool >> of files to get around this, but it was kind of hackish. >> >> I've now solved this problem in a much better way. >> >> The JRobin API lets you pass a definition for a datasource, and send the >> data { timestamps + values } as part of the graph definition. So now >> when the strategy class retrieves the timestamps+values from cassandra, >> it stores them in a org.jrobin.data.LinearInterpolator object and we >> don't have to worry about temp files any more. >> >> Woot! >> >> Things that still need work: >> 1. storeByGroup/storeByForeignSource handling. >> 2. fix fetchLastValue() and fetchLastValueInRange(). >> 3. Periodic data point aggregation for all data sources. >> 4. Performance stress test >> >> Ron ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Please read the OpenNMS Mailing List FAQ: http://www.opennms.org/index.php/Mailing_List_FAQ opennms-devel mailing list To *unsubscribe* or change your subscription options, see the bottom of this page: https://lists.sourceforge.net/lists/listinfo/opennms-devel