Class: Sematext::Metrics::Client
- Inherits:
-
Object
- Object
- Sematext::Metrics::Client
- Defined in:
- lib/sematext/metrics.rb
Class Method Summary collapse
Instance Method Summary collapse
- #epoch ⇒ Object
-
#initialize(sender) ⇒ Client
constructor
A new instance of Client.
- #send(datapoint) ⇒ Object
- #send_batch(datapoints) ⇒ Object
Constructor Details
#initialize(sender) ⇒ Client
Returns a new instance of Client.
69 70 71 72 73 |
# File 'lib/sematext/metrics.rb', line 69 def initialize(sender) @sender = sender @serializer = RawSerializer.new @validator = RawValidator.new end |
Class Method Details
.async(token, receiver_url = nil) ⇒ Object
57 58 59 60 |
# File 'lib/sematext/metrics.rb', line 57 def async(token, receiver_url = nil) url, path = parse_url(receiver_url) if receiver_url Client.new(AsyncSender.new(token, url, path)) end |
.sync(token, receiver_url = nil) ⇒ Object
52 53 54 55 |
# File 'lib/sematext/metrics.rb', line 52 def sync(token, receiver_url = nil) url, path = parse_url(receiver_url) if receiver_url Client.new(SyncSender.new(token, url, path)) end |
Instance Method Details
#epoch ⇒ Object
96 97 98 |
# File 'lib/sematext/metrics.rb', line 96 def epoch Time.now.to_i * 1000 end |
#send(datapoint) ⇒ Object
75 76 77 78 79 80 |
# File 'lib/sematext/metrics.rb', line 75 def send datapoint return nil if datapoint.nil? result = send_batch [datapoint] result.first end |
#send_batch(datapoints) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/sematext/metrics.rb', line 82 def send_batch datapoints return nil if datapoints.empty? datapoints.each do |dp| @validator.validate(dp) dp[:timestamp] = epoch unless dp[:timestamp] end datapoints.each_slice(Settings::MAX_DP_PER_REQUEST).map do |slice| serialized = @serializer.serialize_datapoints(slice) @sender.send serialized end end |