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

Reply via email to