Tests for datadog logs
parent
34cd38bbbf
commit
7cb8649191
|
@ -8,18 +8,17 @@ class LogService < AbstractServiceRunner
|
|||
T.new(1.day) => 0.5 * 100_000
|
||||
|
||||
LOG_TPL = "FBOS LOG (device_%s): %s"
|
||||
ERR_TPL = "LOG ERROR: %s"
|
||||
ERR_TPL = "MALFORMED LOG CAPTURE: %s"
|
||||
|
||||
def process(delivery_info, payload)
|
||||
params = { routing_key: delivery_info.routing_key, payload: payload }
|
||||
m = AmqpLogParser.run!(params)
|
||||
if Rails.env.production?
|
||||
puts LOG_TPL % [m.device_id, m.payload["message"]]
|
||||
end
|
||||
THROTTLE_POLICY.track(m.device_id)
|
||||
maybe_deliver(m)
|
||||
rescue Mutations::ValidationException => e
|
||||
puts ERR_TPL % [params.merge({ e: e }).to_json]
|
||||
msg = ERR_TPL % [params.merge({ e: e }).to_json]
|
||||
puts msg unless Rails.env.test?
|
||||
raise e
|
||||
end
|
||||
|
||||
def maybe_deliver(data)
|
||||
|
@ -35,6 +34,7 @@ class LogService < AbstractServiceRunner
|
|||
dev, log = [data.device, data.payload]
|
||||
dev.maybe_unthrottle
|
||||
Log.deliver(dev, Logs::Create.run!(log, device: dev))
|
||||
puts LOG_TPL % [m.device_id, m.payload["message"]]
|
||||
rescue => x
|
||||
Rollbar.error(x)
|
||||
end
|
||||
|
|
|
@ -13,11 +13,12 @@ describe LogService do
|
|||
channels: [],
|
||||
}.to_json
|
||||
|
||||
FakeDeliveryInfo = Struct.new(:routing_key)
|
||||
FakeDeliveryInfo = Struct.new(:routing_key, :device)
|
||||
|
||||
let!(:device_id) { FactoryBot.create(:device).id }
|
||||
let!(:device) { FactoryBot.create(:device) }
|
||||
let!(:device_id) { device.id }
|
||||
let!(:fake_delivery_info) do
|
||||
FakeDeliveryInfo.new("bot.device_#{device_id}.logs")
|
||||
FakeDeliveryInfo.new("bot.device_#{device_id}.logs", device)
|
||||
end
|
||||
|
||||
it "Sends errors to rollbar" do
|
||||
|
@ -52,4 +53,10 @@ describe LogService do
|
|||
expect_any_instance_of(Device).to receive(:maybe_throttle).with(time)
|
||||
LogService.new.warn_user(data, time)
|
||||
end
|
||||
|
||||
it "handles bad params" do
|
||||
expect do
|
||||
LogService.new.process(fake_delivery_info, {})
|
||||
end.to raise_error(Mutations::ValidationException)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -18,7 +18,7 @@ describe User do
|
|||
expect(Rollbar).to receive(:error).with("Global UI refresh triggered")
|
||||
get_msg = receive(:raw_amqp_send)
|
||||
.with({
|
||||
"type" => "reload", "commit" => "NONE"
|
||||
"type" => "reload", "commit" => "NONE",
|
||||
}.to_json, Api::RmqUtilsController::PUBLIC_BROADCAST)
|
||||
expect(Transport.current).to get_msg
|
||||
User.refresh_everyones_ui
|
||||
|
|
Loading…
Reference in New Issue