Sha256: 2580ec4cade3eece5193f64ea715efdd182e1ed9332f3e45d4eceecf545e63f2

Contents?: true

Size: 913 Bytes

Versions: 2

Compression:

Stored size: 913 Bytes

Contents

module SnowmanIO
  module Spider
    # Metrics per second
    class Mps
      def grab
        # work with raw datapoints for simplicity
        key = Utils.floor_5min(Time.now)
        value = Aggregation.where(precision: "5min", at: key).map(&:count).sum/300.0
        prev_value = Aggregation.where(precision: "5min", at: key - 5.minutes).map(&:count).sum/300.0
        name = "Metrics Per Second"

        app = App.where(system: true).first
        metric = app.metrics.where(name: name, kind: "amount").first_or_create!
        metric.update_attributes!(last_value: value, last_value_updated_at: Time.now)
        point = metric.data_points.where(at: key).first_or_create!
        point.update_attributes!(value: value)
        prev_point = metric.data_points.where(at: key - 5.minutes).first_or_create!
        prev_point.update_attributes!(value: prev_value)
        app.touch
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
snowman-io-0.5.1 lib/snowman-io/spider/mps.rb
snowman-io-0.5.0 lib/snowman-io/spider/mps.rb