Module: InfluxDB::Rails

Defined in:
lib/influxdb-rails.rb,
lib/influxdb/rails/tags.rb,
lib/influxdb/rails/metric.rb,
lib/influxdb/rails/values.rb,
lib/influxdb/rails/context.rb,
lib/influxdb/rails/railtie.rb,
lib/influxdb/rails/version.rb,
lib/influxdb/rails/sql/query.rb,
lib/influxdb/rails/test_client.rb,
lib/influxdb/rails/configuration.rb,
lib/influxdb/rails/sql/normalizer.rb,
lib/influxdb/rails/middleware/subscriber.rb,
lib/influxdb/rails/helpers/rspec_matchers.rb,
lib/influxdb/rails/middleware/sql_subscriber.rb,
lib/influxdb/rails/middleware/render_subscriber.rb,
lib/influxdb/rails/middleware/request_subscriber.rb,
lib/influxdb/rails/middleware/active_job_subscriber.rb,
lib/influxdb/rails/middleware/action_mailer_subscriber.rb,
lib/influxdb/rails/middleware/active_record_subscriber.rb,
lib/influxdb/rails/middleware/block_instrumentation_subscriber.rb

Overview

InfluxDB::Rails contains the glue code needed to integrate with InfluxDB and Rails. This is a singleton class.

Defined Under Namespace

Modules: Matchers, Middleware, Sql Classes: Configuration, Context, Metric, Railtie, Tags, TestClient, Values

Constant Summary collapse

VERSION =
"1.0.3".freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.clientObject

rubocop:disable Metrics/MethodLength



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/influxdb-rails.rb', line 35

def client
  @client ||= begin
    cfg = configuration.client
    InfluxDB::Client.new \
      database:       cfg.database,
      username:       cfg.username,
      password:       cfg.password,
      auth_method:    cfg.auth_method,
      hosts:          cfg.hosts,
      port:           cfg.port,
      async:          cfg.async,
      use_ssl:        cfg.use_ssl,
      retry:          cfg.retry,
      open_timeout:   cfg.open_timeout,
      read_timeout:   cfg.read_timeout,
      max_delay:      cfg.max_delay,
      time_precision: cfg.time_precision
  end
end

.configurationObject

rubocop:enable Metrics/MethodLength



57
58
59
# File 'lib/influxdb-rails.rb', line 57

def configuration
  @configuration ||= InfluxDB::Rails::Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



26
27
28
29
30
31
# File 'lib/influxdb-rails.rb', line 26

def configure
  return configuration unless block_given?

  yield configuration
  self.client = nil # if we change configuration, reload the client
end

.currentObject



61
62
63
# File 'lib/influxdb-rails.rb', line 61

def current
  @current ||= InfluxDB::Rails::Context.new
end

.instrument(name, options = {}) ⇒ Object



65
66
67
68
69
70
# File 'lib/influxdb-rails.rb', line 65

def instrument(name, options = {})
  ActiveSupport::Notifications.instrument "block_instrumentation.influxdb_rails",
                                          **options.merge(name: name) do
    yield if block_given?
  end
end