class Stackify::Metrics::MetricsSender
Constants
- GET_METRIC_INFO_URI
- SUBMIT_METRIS_URI
Public Instance Methods
monitor_info(aggr_metric)
click to toggle source
# File lib/stackify/metrics/metrics_sender.rb, line 6 def monitor_info aggr_metric if Stackify.authorized? send_request GET_METRIC_INFO_URI, GetMetricRequest.new(aggr_metric).to_h.to_json else Stackify.log_internal_error "Getting of monitor_info is failed because of authorization failure" end end
upload_metrics(aggr_metrics)
click to toggle source
# File lib/stackify/metrics/metrics_sender.rb, line 14 def upload_metrics aggr_metrics return true if aggr_metrics.nil? || aggr_metrics.length == 0 current_time = Stackify::Utils.rounded_current_time device_id = Stackify::EnvDetails.instance.auth_info['DeviceID'] if Stackify.authorized? records = [] aggr_metrics.each_pair do |_key, metric| next if metric.sent || metric.occurred_utc.to_i >= current_time.to_i record = Stackify::Metrics::MetricForSubmit.new(metric).to_h record['ClientDeviceID'] = device_id if !device_id.nil? records << record metric.sent = true end if records.any? Stackify.internal_log :debug, "Uploading Aggregate Metrics at #{ Time.now }: \n" + JSON.pretty_generate(records) response = send_request SUBMIT_METRIS_URI, records.to_json Stackify.internal_log :info, 'Metrics are uploaded successfully' if response.try(:status) == 200 end else Stackify.log_internal_error "Uploading of metrics is failed because of authorization failure" end end