Class: Honeybadger::Backend::Server
- Defined in:
- lib/honeybadger/backend/server.rb
Constant Summary collapse
- ENDPOINTS =
{ ping: '/v1/ping'.freeze, notices: '/v1/notices'.freeze, metrics: '/v1/metrics'.freeze, traces: '/v1/traces'.freeze, deploys: '/v1/deploys'.freeze }.freeze
- HTTP_ERRORS =
[Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError, Errno::ECONNREFUSED, SocketError].freeze
Instance Method Summary collapse
-
#initialize(config) ⇒ Server
constructor
A new instance of Server.
-
#notify(feature, payload) ⇒ Object
Internal: Post payload to endpoint for feature.
Constructor Details
Instance Method Details
#notify(feature, payload) ⇒ Object
Internal: Post payload to endpoint for feature.
feature - The feature which is being notified. payload - The payload to send, responding to ‘#to_json`.
Returns Response.
41 42 43 44 45 46 47 48 |
# File 'lib/honeybadger/backend/server.rb', line 41 def notify(feature, payload) ENDPOINTS[feature] or raise(BackendError, "Unknown feature: #{feature}") Response.new(@http.post(ENDPOINTS[feature], payload, payload_headers(payload))) rescue *HTTP_ERRORS => e Response.new(:error, nil, "HTTP Error: #{e.class}").tap do |response| error { sprintf('http error class=%s message=%s', e.class, e..dump) } end end |