Module: Flapjack

Defined in:
lib/flapjack/data/alert.rb,
lib/flapjack.rb,
lib/flapjack/logger.rb,
lib/flapjack/pikelet.rb,
lib/flapjack/utility.rb,
lib/flapjack/version.rb,
lib/flapjack/data/tag.rb,
lib/flapjack/notifier.rb,
lib/flapjack/cli/purge.rb,
lib/flapjack/data/rule.rb,
lib/flapjack/processor.rb,
lib/flapjack/cli/server.rb,
lib/flapjack/data/check.rb,
lib/flapjack/data/event.rb,
lib/flapjack/data/state.rb,
lib/flapjack/exceptions.rb,
lib/flapjack/filters/ok.rb,
lib/flapjack/cli/flapper.rb,
lib/flapjack/cli/migrate.rb,
lib/flapjack/coordinator.rb,
lib/flapjack/data/medium.rb,
lib/flapjack/redis_proxy.rb,
lib/flapjack/cli/receiver.rb,
lib/flapjack/cli/simulate.rb,
lib/flapjack/data/contact.rb,
lib/flapjack/data/metrics.rb,
lib/flapjack/filters/base.rb,
lib/flapjack/gateways/web.rb,
lib/flapjack/record_queue.rb,
lib/flapjack/configuration.rb,
lib/flapjack/data/condition.rb,
lib/flapjack/data/statistic.rb,
lib/flapjack/filters/delays.rb,
lib/flapjack/gateways/email.rb,
lib/flapjack/gateways/slack.rb,
lib/flapjack/cli/maintenance.rb,
lib/flapjack/gateways/jabber.rb,
lib/flapjack/gateways/aws_sns.rb,
lib/flapjack/gateways/jsonapi.rb,
lib/flapjack/gateways/oobetet.rb,
lib/flapjack/data/notification.rb,
lib/flapjack/gateways/sms_nexmo.rb,
lib/flapjack/gateways/pager_duty.rb,
lib/flapjack/gateways/sms_aspsms.rb,
lib/flapjack/gateways/sms_twilio.rb,
lib/flapjack/data/acknowledgement.rb,
lib/flapjack/data/test_notification.rb,
lib/flapjack/filters/acknowledgement.rb,
lib/flapjack/gateways/sms_messagenet.rb,
lib/flapjack/data/extensions/short_name.rb,
lib/flapjack/data/scheduled_maintenance.rb,
lib/flapjack/data/extensions/associations.rb,
lib/flapjack/data/unscheduled_maintenance.rb,
lib/flapjack/data/validators/id_validator.rb,
lib/flapjack/filters/scheduled_maintenance.rb,
lib/flapjack/filters/unscheduled_maintenance.rb,
lib/flapjack/gateways/jsonapi/helpers/headers.rb,
lib/flapjack/gateways/jsonapi/methods/metrics.rb,
lib/flapjack/gateways/jsonapi/helpers/resources.rb,
lib/flapjack/gateways/jsonapi/helpers/serialiser.rb,
lib/flapjack/gateways/jsonapi/data/join_descriptor.rb,
lib/flapjack/gateways/jsonapi/helpers/swagger_docs.rb,
lib/flapjack/gateways/jsonapi/methods/resource_get.rb,
lib/flapjack/gateways/jsonapi/helpers/miscellaneous.rb,
lib/flapjack/gateways/jsonapi/methods/resource_post.rb,
lib/flapjack/gateways/jsonapi/data/method_descriptor.rb,
lib/flapjack/gateways/jsonapi/methods/resource_patch.rb,
lib/flapjack/gateways/jsonapi/methods/association_get.rb,
lib/flapjack/gateways/jsonapi/methods/resource_delete.rb,
lib/flapjack/gateways/jsonapi/methods/association_post.rb,
lib/flapjack/gateways/web/middleware/request_timestamp.rb,
lib/flapjack/gateways/jsonapi/methods/association_patch.rb,
lib/flapjack/gateways/jsonapi/methods/association_delete.rb,
lib/flapjack/gateways/jsonapi/middleware/array_param_fixer.rb,
lib/flapjack/gateways/jsonapi/middleware/request_timestamp.rb,
lib/flapjack/gateways/jsonapi/middleware/json_params_parser.rb

Overview

Hat-tip to github.com/glasnt for the suggestion

Defined Under Namespace

Modules: CLI, Data, Filters, Gateways, Pikelet, Utility Classes: Configuration, Coordinator, GlobalStop, Logger, Notifier, PikeletStop, Processor, RecordQueue, RedisProxy

Constant Summary collapse

UUID_RE =
"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
DEFAULT_INITIAL_FAILURE_DELAY =
30
DEFAULT_REPEAT_FAILURE_DELAY =
60
DEFAULT_INITIAL_RECOVERY_DELAY =

defaulting to 0 for backwards compatibility; can be overridden in config, or per check / event

0
VERSION =
'2.0.0'

Class Method Summary collapse

Class Method Details

.configure_log(name, config = {}) ⇒ Object

Thread and fiber-local



12
13
14
15
# File 'lib/flapjack/logger.rb', line 12

def configure_log(name, config = {})
  Thread.current[:flapjack_logger_name]   = name
  Thread.current[:flapjack_logger_config] = config
end

.dump_json(data) ⇒ Object



27
28
29
# File 'lib/flapjack.rb', line 27

def self.dump_json(data)
  ActiveSupport::JSON.encode(data)
end

.load_json(data) ⇒ Object



23
24
25
# File 'lib/flapjack.rb', line 23

def self.load_json(data)
  ActiveSupport::JSON.decode(data)
end

.loggerObject



21
22
23
24
25
26
# File 'lib/flapjack/logger.rb', line 21

def logger
  Thread.current[:flapjack_logger] ||= Flapjack::Logger.new(
    Thread.current[:flapjack_logger_name]   || 'default',
    Thread.current[:flapjack_logger_config] || {}
  )
end

.logger=(l) ⇒ Object



17
18
19
# File 'lib/flapjack/logger.rb', line 17

def logger=(l)
  Thread.current[:flapjack_logger] = l
end

.redisObject

Thread and fiber-local



12
13
14
15
16
# File 'lib/flapjack/redis_proxy.rb', line 12

def redis
  redis_cxn = Thread.current[:flapjack_redis]
  return redis_cxn unless redis_cxn.nil?
  Thread.current[:flapjack_redis] = Flapjack::RedisProxy.new
end

.sanitize(str) ⇒ Object



31
32
33
34
35
# File 'lib/flapjack.rb', line 31

def self.sanitize(str)
  return str if str.nil? || !str.is_a?(String) || str.valid_encoding?
  return str.scrub('?') if str.respond_to(:scrub)
  str.chars.collect {|c| c.valid_encoding? ? c : '_' }.join
end