class RubyEventStore::Outbox::Metrics::Influx

Attributes

influxdb_client[R]

Public Class Methods

new(url) click to toggle source
# File lib/ruby_event_store/outbox/metrics/influx.rb, line 7
def initialize(url)
  uri = URI.parse(url)
  options = {
    url: url,
    async: true,
    time_precision: 'ns',
  }
  @influxdb_client = InfluxDB::Client.new(**options)
end

Public Instance Methods

write_operation_result(operation, result) click to toggle source
# File lib/ruby_event_store/outbox/metrics/influx.rb, line 17
def write_operation_result(operation, result)
  write_point("ruby_event_store.outbox.lock", {
    values: {
      value: 1,
    },
    tags: {
      operation: operation,
      result: result,
    }
  })
end
write_point(series, data) click to toggle source
# File lib/ruby_event_store/outbox/metrics/influx.rb, line 43
def write_point(series, data)
  data[:timestamp] = Process.clock_gettime(Process::CLOCK_REALTIME, :nanosecond)
  influxdb_client.write_point(series, data)
end
write_point_queue(enqueued: 0, failed: 0, remaining: 0, format: nil, split_key: nil) click to toggle source
# File lib/ruby_event_store/outbox/metrics/influx.rb, line 29
def write_point_queue(enqueued: 0, failed: 0, remaining: 0, format: nil, split_key: nil)
  write_point("ruby_event_store.outbox.queue", {
    values: {
      enqueued: enqueued,
      failed: failed,
      remaining: remaining,
    },
    tags: {
      format: format,
      split_key: split_key,
    }
  })
end