OpenTSDB / opentsdb

A scalable, distributed Time Series Database.
http://opentsdb.net
GNU Lesser General Public License v2.1
5k stars 1.25k forks source link

Implementing an R library for opentsdb #82

Open matteoredaelli opened 13 years ago

matteoredaelli commented 13 years ago

Hello,

For the project Strategico (http://code.google.com/p/strategico/) I would like to save/read the time series to/from opentsdb.

I would like to implement a R (http://www.r-project.org/) library for using opentsdb using tcp/http protocols but I see that HTTP API (http://opentsdb.net/http-api.html ) (or its documentation) misses some features...

Is it possible to have a full TCP/HTTP interface? possibly http restful?

Thanks Matteo http://www.redaelli.org/matteo

tsuna commented 13 years ago

Yeah the HTTP interface currently doesn't do everything, such as adding or deleting data. There is already another feature request about being able to add data over HTTP (#35), being able to create metrics over HTTP (#79) although I'm not sure you'd need this, and being able to delete data over HTTP (#81, which you filed).

Other than the above, is there anything else you'd need? Is there any reason why you'd want an HTTP interface or would you also be happy if it was another TCP-based protocol?

matteoredaelli commented 13 years ago

Hi

An HTTP interface would be more easy and standard.. many programming languages have an http library (usually curl based). if not possibile, a well documented pure TCP interface would be usefull..

matteoredaelli commented 12 years ago

But also a TCP interface would be nice, if you prefer it or take less time to implement it..

Regards Matteo

dholstius commented 11 years ago

Hi, I'd like to reopen this and ask for advice from anyone who's thought about the best way to pull from OpenTSDB into R. I'm familiar with R package development, and with C/C++ (some) but not with the layers under OpenTSDB, like Hadoop and Thrift.

Is it worth building on top of RHadoop or is there a level of abstraction between Hadoop and the HTTP/JSON interfaces others have built that might be a sweet spot for a read-only interface?

dholstius commented 11 years ago

I've put together a (read-only) interface as an R package over at https://github.com/holstius/opentsdb. Seeking comment.

It's not optimized, only uses HTTP, but maybe could serve as a reference implementation (or straw man) for an R/OpenTSDB interface, whether read-only or more fully featured. If anyone would like to fork or contribute, please let me know!

tsuna commented 11 years ago

That seems fine to me. Maybe you'll get more feedback / comments if you write to the mailing list?

dholstius commented 11 years ago

Thanks tsuna. I posted a note to the mailing list (https://groups.google.com/forum/?fromgroups=#!topic/opentsdb/ETTCexDDjNo%5B1-25-false%5D). Comments welcome!

tsuna commented 11 years ago

BTW I would like to encourage you to name your repository something other than "opentsdb" unless it's actually a fork of opentsdb's repo, to avoid any confusion.

dholstius commented 11 years ago

Thanks, good point. Done and done.

tsuna commented 11 years ago

Thanks :)

bikash commented 11 years ago

Hi Holstius, I saw your work on opentsdbr. Since you are using HTTP API. There is performance issue with huge data. I am working similar stuff. But read data directly from hbase table 'tsdb' and plotting graph. I am using rbase/Rhipe, something similar to Rhadoop. I need to know how to get data from table 'tsdb' and 'tsdb-uid'. I don't have much idea on this table. how it is store. So can any one help me with hbase shell code. So I can carry up with rest stuff.

Looking forward for help

tsuna commented 11 years ago

Hi @bikash, you may want to read the documentation on OpenTSDB's schema to understand how to read the data in the tsdb table.

bikash commented 11 years ago

Thank you @tsuna, I read the document, But since data store is in binary format. I don't how to make row key using tsdb-uid table.

jiantinker commented 9 years ago

Hi @holstius, After I finished the installation step: Install directly from GitHub using devtools for the opentsdbr package. I ran the first example, after the step: (result <- tsd_get(metric, start, tags=c(site="*"), downsample="10m-avg")) I got the error message: Error: is.interval(interval) is not TRUE Do you know the reason why I the error message? Thanks, Jian

IDerr commented 7 years ago

https://github.com/holstius/opentsdbr

I think that issues for the library has to be asked in the opentsdr repo

@manolama You can close this

IDerr commented 7 years ago

@matteoredaelli if your question has been answered, could you please close this issue ? thanks :)