module InfluxDB::Rails::Instrumentation

Public Class Methods

included(base) click to toggle source
# File lib/influxdb/rails/instrumentation.rb, line 22
def self.included(base)
  base.extend(ClassMethods)
end

Public Instance Methods

benchmark_for_instrumentation() { || ... } click to toggle source
# File lib/influxdb/rails/instrumentation.rb, line 4
def benchmark_for_instrumentation # rubocop:disable Metrics/MethodLength
  start = Time.now
  yield

  c = InfluxDB::Rails.configuration
  return if c.ignore_current_environment?

  InfluxDB::Rails.client.write_point \
    c.series_name_for_instrumentation,
    values: {
      value: ((Time.now - start) * 1000).ceil,
    },
    tags:   configuration.tags_middleware.call(
      method: "#{controller_name}##{action_name}",
      server: Socket.gethostname
    )
end