1

I am writing an application for Google App Engine and I would like to use RRDs as the file format for graphical data. However, I am having trouble locating a GAE-compatible python library for interacting with RRD files.

It looks to me like most, such as the "rrdtool" python implementation are just wrappers for the rrdtool executable.

Anyway, does anyone know of a suitable library?

jpreed00
  • 893
  • 8
  • 25
  • I dont believe there are any. whisper is a pure python implementation of something similiar to rrd (underlying backend for graphite http://graphite.wikidot.com/whisper) however making it run on appengine would not be easy. It has it's own file format, and you would have to rewrite it to use the datastore. That would be quite an excercise, though possibly doable. – Tim Hoffman Sep 01 '12 at 03:00
  • scrub that, I reckon it would be very hard ;-) – Tim Hoffman Sep 01 '12 at 08:04
  • Well, they have the blob store, which is just like writing to a regular file, so I figured it wouldn't be terribly difficult to port whatever RRD library over to using that methodology...the trouble is finding a python RRD library to begin with. – jpreed00 Sep 01 '12 at 16:00
  • yes the blobstore does have a file like api however once you finalize the file, you can no longer write to it. This would mean all your writes would have to occurr inside a small time window. (ie you could use a backend to keep the filelike blob open a for a longer period of time than a single front end instance could. But once written you could not ever update it again. rrd/whisper etc constantly write/over write, compress within the same file. – Tim Hoffman Sep 01 '12 at 23:22
  • Ahh, yes, I missed that detail. Thanks for pointing that out. That means that it's probably not possible to use the blobstore like I wanted to. Oh well, thanks for saving the me the time! – jpreed00 Sep 02 '12 at 05:37
  • To support something like that you would need to create a abstract file systems, where blobstore or blobproperties where blocks in the filesystem. Then you could overwrite individual blocks. A good programming excercise ;-) – Tim Hoffman Sep 02 '12 at 07:15
  • Are you intending to write to it using App Engine, or just to read uploaded RRDs? Doing the former would be difficult and pointless - it wouldn't gain you anything you couldn't get by using the existing datastore mechanism. – Nick Johnson Sep 02 '12 at 20:34

0 Answers0