Method: Sensu::Client::Socket#process_data

Defined in:
lib/sensu/client/socket.rb

#process_data(data) ⇒ Object

Process the data received. This method validates the data encoding, provides ping/pong functionality, and passes potential check results on for further processing.

Parameters:

  • data (String)

    to be processed.



188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# File 'lib/sensu/client/socket.rb', line 188

def process_data(data)
  if data.bytes.find { |char| char > 0x80 }
    @logger.warn("socket received non-ascii characters")
    respond("invalid")
  elsif data.strip == "ping"
    @logger.debug("socket received ping")
    respond("pong")
  else
    @logger.debug("socket received data", {
      :data => data
    })
    begin
      parse_check_result(data)
    rescue => error
      @logger.error("failed to process check result from socket", {
        :data => data,
        :error => error.to_s
      })
      respond("invalid")
    end
  end
end