class Dc::Metrics::PubSub

Attributes

pub_sub[R]
topic[R]

Public Class Methods

new() click to toggle source
   # File lib/dc/metrics/pub_sub.rb
12 def initialize
13   @pub_sub = Google::Cloud::PubSub.new(**cloud_params)
14   @topic = pub_sub.topic(Metrics.configuration.pubsub_topic_name)
15 end

Public Instance Methods

publish(message) click to toggle source
   # File lib/dc/metrics/pub_sub.rb
17 def publish(message)
18   t = Thread.new{
19     begin
20     encoded_data = DeliveryCenter::Logging::Integration::V1::WriteMetricsRequest.encode(message)
21     response = topic.publish(encoded_data)
22     rescue StandardError => e
23       puts "[Error][Dc::Metrics] #{e.message}"      if e.message != nil
24       puts "[Error][Dc::Metrics] #{e.backtrace[0]}" if e.backtrace[0] != nil
25       puts "[Error][Dc::Metrics] #{e.backtrace[1]}" if e.backtrace[1] != nil
26     end
27   }
28   Metrics.add_pending_thread(t)
29   Metrics.clean_pending_threads
30 end

Private Instance Methods

cloud_params() click to toggle source
   # File lib/dc/metrics/pub_sub.rb
34 def cloud_params
35   {
36     project_id:  Metrics.configuration.gcp_project_id,
37     credentials: Metrics.configuration.gcp_credentials_path
38   }
39 end