Class: RubyEventStore::Outbox::Metrics::Influx

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_event_store/outbox/metrics/influx.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ Influx

Returns a new instance of Influx.



9
10
11
12
# File 'lib/ruby_event_store/outbox/metrics/influx.rb', line 9

def initialize(url)
  options = { url: url, async: true, time_precision: "ns" }
  @influxdb_client = InfluxDB::Client.new(**options)
end

Instance Attribute Details

#influxdb_clientObject (readonly)

Returns the value of attribute influxdb_client.



43
44
45
# File 'lib/ruby_event_store/outbox/metrics/influx.rb', line 43

def influxdb_client
  @influxdb_client
end

Instance Method Details

#write_operation_result(operation, result) ⇒ Object



14
15
16
17
18
19
# File 'lib/ruby_event_store/outbox/metrics/influx.rb', line 14

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) ⇒ Object



38
39
40
41
# File 'lib/ruby_event_store/outbox/metrics/influx.rb', line 38

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) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/ruby_event_store/outbox/metrics/influx.rb', line 21

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