Module: Polyseerio
- Defined in:
- lib/log.rb,
lib/enum.rb,
lib/client.rb,
lib/helper.rb,
lib/request.rb,
lib/constant.rb,
lib/response.rb,
lib/agent/enum.rb,
lib/middleware.rb,
lib/polyseerio.rb,
lib/sdk/helper.rb,
lib/agent/agent.rb,
lib/sdk/factory.rb,
lib/url_builder.rb,
lib/agent/helper.rb,
lib/resource/base.rb,
lib/agent/executor.rb,
lib/resource/helper.rb,
lib/sdk/method/fact.rb,
lib/sdk/method/save.rb,
lib/sdk/static/find.rb,
lib/resource/factory.rb,
lib/resource/routine.rb,
lib/sdk/method/check.rb,
lib/sdk/method/gauge.rb,
lib/sdk/method/index.rb,
lib/sdk/static/check.rb,
lib/sdk/static/index.rb,
lib/sdk/method/attach.rb,
lib/sdk/method/detach.rb,
lib/sdk/method/remove.rb,
lib/sdk/static/attach.rb,
lib/sdk/static/create.rb,
lib/sdk/static/detach.rb,
lib/sdk/static/remove.rb,
lib/sdk/static/update.rb,
lib/agent/handler/fact.rb,
lib/sdk/method/execute.rb,
lib/sdk/method/message.rb,
lib/sdk/method/to_json.rb,
lib/sdk/method/trigger.rb,
lib/sdk/static/execute.rb,
lib/sdk/static/message.rb,
lib/sdk/static/trigger.rb,
lib/agent/handler/event.rb,
lib/agent/handler/index.rb,
lib/resource/definition.rb,
lib/sdk/method/add_fact.rb,
lib/agent/default_config.rb,
lib/agent/handler/metric.rb,
lib/sdk/method/add_gauge.rb,
lib/agent/handler/process.rb,
lib/sdk/static/find_by_id.rb,
lib/agent/handler/interface.rb,
lib/sdk/static/find_by_name.rb,
lib/agent/handler/expectation.rb
Overview
Default agent configuration.
Defined Under Namespace
Modules: Agent, Constant, Enum, Helper, Middleware, Resource, SDK, URL Classes: Client, Request, Response
Constant Summary collapse
- DEFAULT_CLIENT_OPTIONS =
Default client options.
{ agent: {}, deduce: true, env: Constant::DEFAULT_ENV, timeout: Constant::DEFAULT_TIMEOUT, environment: Constant::DEFAULT_ENVIRONMENT, token: nil, token_env: Constant::DEFAULT_TOKEN_ENV, upsert_env: true, version: Constant::DEFAULT_API_VERSION }.freeze
- REQUIRED_RESOURCES =
Required resources for constructing a client.
[ Enum::Resource::ALERT, Enum::Resource::CHANNEL, Enum::Resource::ENVIRONMENT, Enum::Resource::EVENT, Enum::Resource::EXPECTATION, Enum::Resource::INSTANCE, Enum::Resource::LOGIC_BLOCK, Enum::Resource::MEMBER, Enum::Resource::SETTING, Enum::Resource::TASK ].freeze
- CLIENT_RESOURCE_PATHS =
Maps resources to paths within a Client
{ Enum::Resource::ALERT => :Alert, Enum::Resource::CHANNEL => :Channel, Enum::Resource::ENVIRONMENT => :Environment, Enum::Resource::EVENT => :Event, Enum::Resource::EXPECTATION => :Expectation, Enum::Resource::INSTANCE => :Instance, Enum::Resource::LOGIC_BLOCK => :LogicBlock, Enum::Resource::MEMBER => :Member, Enum::Resource::SETTING => :Settings, Enum::Resource::TASK => :Task }.freeze
Class Attribute Summary collapse
-
.logger ⇒ Object
Gem logger.
Class Method Summary collapse
-
.level_to_severity(level) ⇒ Object
Convert a string log level to a severity.
-
.log(severity, *args) ⇒ Object
Convenience logging method.
-
.make(options = {}) ⇒ Object
Create a client.
-
.start(options = {}) ⇒ Object
Create a client and start it’s agent.
Class Attribute Details
.logger ⇒ Object
Gem logger.
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/log.rb', line 29 def logger @logger ||= Logger.new($stdout).tap do |log| log.level = if ENV.key? 'POLYSEERIO_LOG_LEVEL' level_to_severity ENV['POLYSEERIO_LOG_LEVEL'] else Logger::ERROR end log.progname = name end end |
Class Method Details
.level_to_severity(level) ⇒ Object
Convert a string log level to a severity.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/log.rb', line 9 def level_to_severity(level) # rubocop:disable all case level when 'debug' Logger::DEBUG when 'error' Logger::ERROR when 'fatal' Logger::FATAL when 'info' Logger::INFO when 'unknown' Logger::UNKNOWN when 'warn' Logger::WARN else raise ArgumentError, "Unsupported log level: #{level}." end end |
.log(severity, *args) ⇒ Object
Convenience logging method.
42 43 44 45 46 47 48 49 50 |
# File 'lib/log.rb', line 42 def log(severity, *args) severity = if severity.is_a? String level_to_severity severity else severity end logger.log(severity, *args) end |
.make(options = {}) ⇒ Object
Create a client.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/polyseerio.rb', line 67 def self.make( = {}) = Helper.defaults(, DEFAULT_CLIENT_OPTIONS) cid = @make_call_count token = Helper.resolve_token base_url = URL.get_base_url( Constant::DEFAULT_API_BASE_URL, Constant::DEFAULT_API_PROTOCOL, [:version] ) if token.nil? raise ArgumentError, 'Could not find an access token. None was passed' \ 'and non could be found in the environment variable: ' \ "#{[:token_env]}." end headers = { Constant::ACCESS_TOKEN_HEADER => token, :content_type => 'application/json' } rest_resource = RestClient::Resource.new( base_url, headers: headers, timeout: Helper.ms_to_seconds([:timeout]) ) # Create a request instance that uses middleware. request = Request.new( rest_resource, pre: [Middleware::Pre.format_arguments], post: [Middleware::Post.to_response, Middleware::Post.parse_response] ) resources = REQUIRED_RESOURCES.each_with_object({}) do |resource, acc| acc[resource] = Resource::Factory.make(resource, request, cid, ) acc end resources = Helper.rekey(resources, CLIENT_RESOURCE_PATHS) client = Client.new(cid, request: request, resources: resources) @make_call_count += 1 client end |
.start(options = {}) ⇒ Object
Create a client and start it’s agent.
56 57 58 59 60 61 62 |
# File 'lib/polyseerio.rb', line 56 def self.start( = {}) = Helper.defaults(, DEFAULT_CLIENT_OPTIONS) client = make() client.start_agent([:agent]) end |