Module: AppOpticsAPM::SDK::CustomMetrics

Included in:
AppOpticsAPM::SDK
Defined in:
lib/appoptics_apm/sdk/custom_metrics.rb

Instance Method Summary collapse

Instance Method Details

#increment_metric(name, count = 1, with_hostname = false, tags_kvs = {}) ⇒ Object

Send counts

Use this method to report the number of times an action occurs. The metric counts reported are summed and flushed every 60 seconds.

Arguments:

  • name (String) Name to be used for the metric. Must be 255 or fewer characters and consist only of A-Za-z0-9.:-*

  • count (Integer, optional, default = 1): Count of actions being reported

  • with_hostname (Boolean, optional, default = false): Indicates if the host name should be included as a tag for the metric

  • tags_kvs (Hash, optional): List of key/value pairs to describe the metric. The key must be <= 64 characters, the value must be <= 255 characters, allowed characters: A-Za-z0-9.:-_

Example:

class WorkTracker
  def counting(name, tags = {})
    yield # yield to where work is done
    AppOpticsAPM::SDK.increment_metric(name, 1, false, tags)
  end
end

Returns:

  • 0 on success, error code on failure


34
35
36
37
38
39
# File 'lib/appoptics_apm/sdk/custom_metrics.rb', line 34

def increment_metric(name, count = 1, with_hostname = false, tags_kvs = {})
  return true unless AppOpticsAPM.loaded
  with_hostname = with_hostname ? 1 : 0
  tags, tags_count = make_tags(tags_kvs)
  AppOpticsAPM::CustomMetrics.increment(name.to_s, count, with_hostname, nil, tags, tags_count) == 1
end

#summary_metric(name, value, count = 1, with_hostname = false, tags_kvs = {}) ⇒ Object

Send values with counts

Use this method to report a value for each or multiple counts. The metric values reported are aggregated and flushed every 60 seconds. The dashboard displays the average value per count.

Arguments:

  • name (String) Name to be used for the metric. Must be 255 or fewer characters and consist only of A-Za-z0-9.:-*

  • value (Numeric) Value to be added to the current sum

  • count (Integer, optional, default = 1): Count of actions being reported

  • with_hostname (Boolean, optional, default = false): Indicates if the host name should be included as a tag for the metric

  • tags_kvs (Hash, optional): List of key/value pairs to describe the metric. The key must be <= 64 characters, the value must be <= 255 characters, allowed characters: A-Za-z0-9.:-_

Example:

class WorkTracker
  def timing(name, tags = {})
    start = Time.now
    yield # yield to where work is done
    duration = Time.now - start
    AppOpticsAPM::SDK.summary_metric(name, duration, 1, false, tags)
  end
end

Returns:

  • 0 on success, error code on failure


67
68
69
70
71
72
# File 'lib/appoptics_apm/sdk/custom_metrics.rb', line 67

def summary_metric(name, value, count = 1, with_hostname = false, tags_kvs = {})
  return true unless AppOpticsAPM.loaded
  with_hostname = with_hostname ? 1 : 0
  tags, tags_count = make_tags(tags_kvs)
  AppOpticsAPM::CustomMetrics.summary(name.to_s, value, count, with_hostname, nil, tags, tags_count) == 1
end