Skip to content

InfluxDB v2.x crystal-lang client / Flux query language tools

License

Notifications You must be signed in to change notification settings

place-labs/flux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flux

Client library for pushing data to, and querying information from InfluxDB v2.x.

Installation

  1. Add the dependency to your shard.yml:
dependencies:
  flux:
    github: place-labs/flux
  1. Run shards install

Usage

require "flux"

Configure the client

Define your client configuration with Flux.configure. This yields an Options object with appriopriate setters.

Flux.configure do |settings|
  settings.uri     = ENV["INFLUX_HOST"]? || abort "INFLUX_HOST env var not set"
  settings.api_key = ENV["INFLUX_API_KEY"]? || abort "INFLUX_API_KEY env var not set"
  settings.org     = ENV["INFLUX_ORG"]? || "vandelay-industries"
  settings.bucket  = ENV["INFLUX_BUCKET"]? || "latex-sales"
end

NOTE: INFLUX_HOST is expected to be a well-formed URI.

Writing data

Use Flux.write to enqueue a point. Writes are automatically buffered and flushed after either a time delay or optimal write size.

Running queries

Once information is available in the bucket, queries are executed with Flux.query. This accepts a Flux expression.

Parallel clients

If your application requires connectivity with more that one InfluxDB instance or bucket, clients can be directly created with Flux::Client.new.

Contributing

  1. Fork it (https://github.com/place-labs/flux/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors