Resource for understanding source

Asked by James

Is there a resource somewhere that would help explain how the source code fits together and understand what pieces do what?

Question information

Language:
English Edit question
Status:
Answered
For:
Graphite Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
chrismd (chrismd) said :
#1

Unfortunately no there is no formal developer documentation yet though there has been a lot of progress on user docs at http://graphite.readthedocs.org over the last few months. That said, #graphite on freenode is a great place to talk to graphite developers. And this question forum is a fine place to ask such questions. There are many development related questions already on this forum but sadly there is no organization that makes browsing them useful, typically you have to be after a specific question to find what you need. That said, do you have any specific questions?

Revision history for this message
James (jregovic) said :
#2

I'm interested in understanding how I might be able to adapt the Graphite UI to use HBase for its storage, more or less as an interface to OpenTSDB. HBase would offer more scale in terms of storage while also making the data accessible to map-reduce applications.

The Graphite UI is really nice, but the storage isn't friendly to map-reduce analytic jobs.

Revision history for this message
chrismd (chrismd) said :
#3

The upcoming 0.9.10 release will sport a new database plugin system that lets you use Graphite with a custom database backend, you just have to implement a plugin that conforms to a pretty simple interface. Again no docs yet as this is still being actively developed, but the code is pretty simple to read. You can take a sneak peek here, lp:~chrismd/+junk/graphite-megacarbon

Revision history for this message
James (jregovic) said :
#4

Would I have to extend something in carbon/lib/carbon/database.py for this?

Revision history for this message
chrismd (chrismd) said :
#5

Yes you would just subclass the database plugin class like the whisper and ceres implementations do. The mechanics around users registering their own plugins separate from the codebase still needs a little work but not too much, defining the subclass registers it automatically, we just need to tell carbon how/where to look for user-defined plugins so it can load them on startup. The only hold-up there is that we want the webapp use the same plugins and I am still working integrating the webapp's refactored storage API from the 1.1 branch into the megacarbon branch. Once thats done it should be fairly straight forward.

Can you help with this problem?

Provide an answer of your own, or ask James for more information if necessary.

To post a message you must log in.