Module: PulseMeter

Defined in:
lib/pulse_meter/sensor.rb,
lib/pulse_meter_core.rb,
lib/pulse_meter/observer.rb,
lib/pulse_meter/udp_server.rb,
lib/pulse_meter/sensor/base.rb,
lib/pulse_meter/mixins/utils.rb,
lib/pulse_meter/sensor/multi.rb,
lib/pulse_meter/mixins/dumper.rb,
lib/pulse_meter/sensor/counter.rb,
lib/pulse_meter/time_converter.rb,
lib/pulse_meter/sensor/timeline.rb,
lib/pulse_meter/sensor/indicator.rb,
lib/pulse_meter/observer/extended.rb,
lib/pulse_meter/sensor/uniq_counter.rb,
lib/pulse_meter/sensor/configuration.rb,
lib/pulse_meter/sensor/timelined/max.rb,
lib/pulse_meter/sensor/timelined/min.rb,
lib/pulse_meter/sensor/hashed_counter.rb,
lib/pulse_meter/command_aggregator/udp.rb,
lib/pulse_meter/sensor/timeline_reduce.rb,
lib/pulse_meter/command_aggregator/sync.rb,
lib/pulse_meter/sensor/hashed_indicator.rb,
lib/pulse_meter/sensor/timelined/median.rb,
lib/pulse_meter/command_aggregator/async.rb,
lib/pulse_meter/sensor/timelined/average.rb,
lib/pulse_meter/sensor/timelined/counter.rb,
lib/pulse_meter/sensor/timelined/indicator.rb,
lib/pulse_meter/sensor/timelined/percentile.rb,
lib/pulse_meter/sensor/timelined/zset_based.rb,
lib/pulse_meter/sensor/timelined/uniq_counter.rb,
lib/pulse_meter/sensor/timelined/hashed_counter.rb,
lib/pulse_meter/sensor/timelined/hashed_indicator.rb,
lib/pulse_meter/sensor/timelined/multi_percentile.rb

Overview

Static hashed counter to count values by multiple keys

Defined Under Namespace

Modules: CommandAggregator, Mixins, Remote, Sensor Classes: BadSensorName, DumpConflictError, DumpError, Observer, RedisNotInitialized, RestoreError, SensorData, SensorError, TimeConverter, UDPServer

Constant Summary collapse

@@redis =
nil

Class Method Summary collapse

Class Method Details

.command_aggregatorObject

Returns global command aggegator (i.e. object that accumulates Redis commands emitted by events and sends them into client)



31
32
33
# File 'lib/pulse_meter_core.rb', line 31

def self.command_aggregator
  @@command_aggregator ||= PulseMeter::CommandAggregator::Async.instance
end

.command_aggregator=(command_aggregator) ⇒ Object

Sets global command_aggregator

Parameters:

  • type (Symbol)

    type of command aggegator (:async or :sync)

Raises:

  • (ArgumentError)

    if type is none of :async, :sync



38
39
40
41
42
43
44
# File 'lib/pulse_meter_core.rb', line 38

def self.command_aggregator=(command_aggregator)
  @@command_aggregator = case command_aggregator
    when :sync; PulseMeter::CommandAggregator::Sync.instance
    when :async; PulseMeter::CommandAggregator::Async.instance
    else command_aggregator
  end
end

.error(msg) ⇒ Object

Sends error message to PulseMeter logger

Parameters:

  • message (String)

    error message



63
64
65
# File 'lib/pulse_meter_core.rb', line 63

def self.error(msg)
  logger.error(msg)
end

.loggerObject

Returns global PulseMeter logger



53
54
55
56
57
58
59
# File 'lib/pulse_meter_core.rb', line 53

def self.logger
  @@logger ||= begin 
    logger = Logger.new($stderr)
    logger.datetime_format = '%Y-%m-%d %H:%M:%S.%3N'
    logger
  end
end

.logger=(new_logger) ⇒ Object

Sets global logger for all PulseMeter error messages

Parameters:

  • logger (Logger)

    logger to be used



48
49
50
# File 'lib/pulse_meter_core.rb', line 48

def self.logger=(new_logger)
  @@logger = new_logger
end

.redisObject

Returns global Redis client



20
21
22
# File 'lib/pulse_meter_core.rb', line 20

def self.redis
  @@redis 
end

.redis=(redis) ⇒ Object

Sets global Redis client

Parameters:

  • redis (Redis)

    redis client



26
27
28
# File 'lib/pulse_meter_core.rb', line 26

def self.redis=(redis)
  @@redis = redis
end