Module: Sensu::API::Utilities::PublishCheckResult
- Included in:
- ResolveEvent
- Defined in:
- lib/sensu/api/utilities/publish_check_result.rb
Instance Method Summary collapse
-
#publish_check_result(client_name, check) ⇒ Object
Publish a check result to the Transport for processing.
Instance Method Details
#publish_check_result(client_name, check) ⇒ Object
Publish a check result to the Transport for processing. A
check result is composed of a client name and a check
definition, containing check :output and :status. A client
signature is added to the check result payload if one is
registered for the client. JSON serialization is used when
publishing the check result payload to the Transport pipe.
Transport errors are logged.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/sensu/api/utilities/publish_check_result.rb', line 15 def publish_check_result(client_name, check) check[:issued] = Time.now.to_i check[:executed] = Time.now.to_i check[:status] ||= 0 payload = { :client => client_name, :check => check } @redis.get("client:#{client_name}:signature") do |signature| payload[:signature] = signature unless signature.nil? @logger.info("publishing check result", :payload => payload) @transport.publish(:direct, "results", Sensu::JSON.dump(payload)) do |info| if info[:error] @logger.error("failed to publish check result", { :payload => payload, :error => info[:error].to_s }) end end end end |