Module: Stackify::Metrics

Defined in:
lib/stackify/metrics/metric.rb,
lib/stackify/metrics/metrics.rb,
lib/stackify/metrics/monitor.rb,
lib/stackify/metrics/metrics_queue.rb,
lib/stackify/metrics/metrics_client.rb,
lib/stackify/metrics/metrics_sender.rb,
lib/stackify/metrics/metric_aggregate.rb

Defined Under Namespace

Classes: GetMetricRequest, GetMetricResponse, LatestAggregate, Metric, MetricAggregate, MetricForSubmit, MetricSettings, MetricsClient, MetricsQueue, MetricsSender

Constant Summary collapse

METRIC_TYPES =
{
  metric_last: 134,
  counter: 129,
  metric_average: 132,
  counter_time: 131
}

Class Method Summary collapse

Class Method Details

.avarage_time(category, metric_name, elapsed_time, advanced_settings = nil) ⇒ Object



74
75
76
77
78
79
# File 'lib/stackify/metrics/metrics.rb', line 74

def avarage_time category, metric_name, elapsed_time, advanced_settings = nil
  m = Metric.new category, metric_name, Stackify::Metrics::METRIC_TYPES[:counter_time]
  m.value = elapsed_time.round #seconds
  m.settings = advanced_settings
  Stackify::Metrics.metrics_client.queue_metric m
end

.average(category, metric_name, value, advanced_settings = nil) ⇒ Object



21
22
23
24
25
26
# File 'lib/stackify/metrics/metrics.rb', line 21

def average category, metric_name, value, advanced_settings = nil
  m = Metric.new category, metric_name, Stackify::Metrics::METRIC_TYPES[:metric_average]
  m.value = value
  m.settings = advanced_settings
  Stackify::Metrics.metrics_client.queue_metric m
end

.count(category, metric_name, increment_by = 1, advanced_settings = nil) ⇒ Object



28
29
30
31
32
33
# File 'lib/stackify/metrics/metrics.rb', line 28

def count category, metric_name, increment_by= 1, advanced_settings = nil
  m = Metric.new category, metric_name, Stackify::Metrics::METRIC_TYPES[:counter]
  m.value = increment_by
  m.settings = advanced_settings
  Stackify::Metrics.metrics_client.queue_metric m
end

.count_and_time(category, metric_name, start_time, advanced_settings = nil) ⇒ Object



81
82
83
84
85
86
87
88
89
90
# File 'lib/stackify/metrics/metrics.rb', line 81

def count_and_time category, metric_name, start_time, advanced_settings = nil
  counter_m = Metric.new category, metric_name, Stackify::Metrics::METRIC_TYPES[:counter]
  counter_m.value = 1
  counter_m.settings = advanced_settings
  time_m = Metric.new category, metric_name + ' Time', Stackify::Metrics::METRIC_TYPES[:counter_time]
  time_m.value = (Time.now.utc - start_time.utc).round
  time_m.settings = advanced_settings
  Stackify::Metrics.metrics_client.queue_metric counter_m
  Stackify::Metrics.metrics_client.queue_metric time_m
end

.get_latest(category, metric_name) ⇒ Object



35
36
37
# File 'lib/stackify/metrics/metrics.rb', line 35

def get_latest category, metric_name
  metrics_client.get_latest category, metric_name
end

.get_latest_all_metricsObject



39
40
41
# File 'lib/stackify/metrics/metrics.rb', line 39

def get_latest_all_metrics
  metrics_client.get_latest_all_metrics
end

.increment_gauge(category, metric_name, increment_by = 1, advanced_settings = nil) ⇒ Object



43
44
45
46
47
48
49
# File 'lib/stackify/metrics/metrics.rb', line 43

def increment_gauge category, metric_name, increment_by = 1, advanced_settings = nil
  m = Metric.new category, metric_name, Stackify::Metrics::METRIC_TYPES[:metric_last]
  m.value = increment_by
  m.is_increment = true
  m.settings = advanced_settings
  Stackify::Metrics.metrics_client.queue_metric m
end

.metrics_clientObject



17
18
19
# File 'lib/stackify/metrics/metrics.rb', line 17

def metrics_client
  @@metrics_client ||= Stackify::Metrics::MetricsClient.new
end

.set_gauge(category, metric_name, value, advanced_settings = nil) ⇒ Object



51
52
53
54
55
56
# File 'lib/stackify/metrics/metrics.rb', line 51

def set_gauge category, metric_name, value, advanced_settings = nil
  m = Metric.new category, metric_name, Stackify::Metrics::METRIC_TYPES[:metric_last]
  m.value = value
  m.settings = advanced_settings
  Stackify::Metrics.metrics_client.queue_metric m
end

.sum(category, metric_name, value, advanced_settings = nil) ⇒ Object



58
59
60
61
62
63
# File 'lib/stackify/metrics/metrics.rb', line 58

def sum category, metric_name, value, advanced_settings = nil
  m = Metric.new category, metric_name, Stackify::Metrics::METRIC_TYPES[:counter]
  m.value = value
  m.settings = advanced_settings
  Stackify::Metrics.metrics_client.queue_metric m
end

.time(category, metric_name, start_time, advanced_settings = nil) ⇒ Object



65
66
67
68
# File 'lib/stackify/metrics/metrics.rb', line 65

def time category, metric_name, start_time, advanced_settings = nil
  time_taken = Time.now.utc - start_time.utc
  avarage_time category, metric_name, time_taken, advanced_settings
end

.time_duration(category, metric_name, duration_time, advanced_settings = nil) ⇒ Object



70
71
72
# File 'lib/stackify/metrics/metrics.rb', line 70

def time_duration category, metric_name, duration_time, advanced_settings = nil
  avarage_time category, metric_name, duration_time, advanced_settings
end