libtsdb-go

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 25, 2018 License: MIT

README

libtsdb-go

Clients and Server implementation of multiple TSDB protocols in Go

Supported time series databases

Database client write client read server write server read
Akumuli TCP/RESP N N N
InfluxDB HTTP/Line N N N
Graphite TCP/Line N N N
KairosDB HTTP/JSON TCP/Line N N N
Xephon-K (TODO) TCP HTTP/JSON GRPC N N N
OpenTSDB HTTP/JSON (NA) N N N
Heroic HTTP/JSON (NA) N N N

Motivation

Metrics

To be used with benchmark like xephon-b, the client (both http and tcp) return struct that meet libtsdb.Trace interface to avoid user add extra wrapper to get latency etc. http client uses net/http/httptrace and can give more detailed data.

For a single request

  • request start time
  • request end time (for http, this include reading response)
  • series, points written
  • raw size (data + meta)
  • raw meta size (series name, tags)
  • payload size

Accumulated results

  • points written
  • raw size (data + meta)
  • raw meta size (series name, tags)
  • payload size

Roadmap

  • client write
    • simple text line protocol, InfluxDB, Graphite, Akumuli
    • OpenTSDB(ish) JSON, KairosDB, Heroic, Xephon-K
      • Xephon-K no longer use JSOn, OpenTSDB and Heroic don't have handy docker images
    • GRPC, Xephon-K
    • Thrift, Gorilla
  • client read
    • InfluxDB
    • OpenTSDB(ish) JSON, KairosDB, Heroic, Xephon-K
    • Prometheus?
  • server write

License

MIT

Directories

Path Synopsis
cmd
client
Package client contains client for multiple time series databases, note write and read clients are separated to reduce dependencies in write client, and it's common when using time series database, some clients always write (i.e.
Package client contains client for multiple time series databases, note write and read clients are separated to reduce dependencies in write client, and it's common when using time series database, some clients always write (i.e.
common/xephonk
Package xephonk only imports xephon-k's client package to register meta
Package xephonk only imports xephon-k's client package to register meta
libtsdbpb
Package libtsdbpb is a generated protocol buffer package.
Package libtsdbpb is a generated protocol buffer package.
storage
Package storage contains compatible implementation or wrapper around existing tsdb storage engines (written in go), i.e.
Package storage contains compatible implementation or wrapper around existing tsdb storage engines (written in go), i.e.
storage/influxtsm
Package tsm is wrapper around InfluxDB's Time Structure Merge Tree engine
Package tsm is wrapper around InfluxDB's Time Structure Merge Tree engine
storage/promtsdb
Package promtsdb wraps https://github.com/prometheus/tsdb
Package promtsdb wraps https://github.com/prometheus/tsdb

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL