Skip to content

aerosol/kai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 hq@mtod.org

Łukasz Biedrycki lukasz.biedrycki@gmail.com

Special thanks

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