Class: Lepus::ProcessRegistry::MessageBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/lepus/process_registry/message_builder.rb

Overview

Builds heartbeat messages for RabbitMQ publishing.

Constant Summary collapse

VERSION =
"1.0"

Instance Method Summary collapse

Constructor Details

#initialize(process, metrics: {}) ⇒ MessageBuilder

Returns a new instance of MessageBuilder.



11
12
13
14
# File 'lib/lepus/process_registry/message_builder.rb', line 11

def initialize(process, metrics: {})
  @process = process
  @metrics = metrics
end

Instance Method Details

#build_deregisterObject



25
26
27
28
29
30
31
32
# File 'lib/lepus/process_registry/message_builder.rb', line 25

def build_deregister
  {
    type: "deregister",
    version: VERSION,
    process_id: @process.id,
    timestamp: Time.now.iso8601(6)
  }
end

#build_heartbeatObject



16
17
18
19
20
21
22
23
# File 'lib/lepus/process_registry/message_builder.rb', line 16

def build_heartbeat
  {
    type: "heartbeat",
    version: VERSION,
    process: process_data,
    metrics: metrics_data
  }
end

#to_jsonObject



34
35
36
# File 'lib/lepus/process_registry/message_builder.rb', line 34

def to_json
  JSON.generate(build_heartbeat)
end