Skip to content

aerosol/kai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bedc08a · Nov 26, 2014

History

68 Commits
Nov 26, 2014
Nov 16, 2014
Oct 8, 2014
Oct 6, 2014
Nov 15, 2014
Oct 21, 2014
Nov 21, 2014

Repository files navigation

kai

KairosDB Erlang Client

⚠️ WIP. Do not use yet.

Roadmap / planned features:

  1. Inserting metrics:
  • pool of raw tcp clients (aka telnet API)
  • schedules ELB-friendly "ping", prevents corporate firewalls from killing idle connections
  1. Retreiving metrics and aggregations:
  1. pre-aggregation facility

  2. benchmarks / load-testing tools

Detailed implementation status

  • Configuration

    • Telnet port
    • Telnet host
    • Pool size
    • Ping interval
    • REST API port
    • REST API host
  • Pool of telnet clients

    • Insert data points
    • Query version
    • Auto-reconnect
      • Proper back-off on connection errors (currently each connection is delayed to prevent reconnections at the same time)
    • ELB friendly keep-alive for erlang node-cassandra
    • ELB friendly keep-alive for kairos-cassandra
  • REST API (adding data points is not planned, there is no good reason to do it within the scope of this client)

    • custom response wrappers
      • delete data points
      • delete metric
      • list metric names
      • list tag names
      • list tag values
      • query metrics
        • query builder api - stable (improvements pending)
        • validate input as much as possible
        • aggregates:
          • avg
          • sum
          • dev
          • div
          • histogram
          • least_squares
          • max
          • min
          • rate
        • tags support
        • group_by support
          • tags
          • time
          • value
        • exclude_tags
        • limit
        • order
  • Pre-aggregation (TBD)

  • Load-testing / spammers (TBD)

Credits

Authors

Adam Rutkowski [email protected]

Łukasz Biedrycki [email protected]

Special thanks

Thanks to Mahesh Paolini-Subramanya and Ubiquiti Networks for letting us making it an open source project.