diff --git a/config/initializers/rack/attack.rb b/config/initializers/rack/attack.rb index e3769efc7..71bd91124 100644 --- a/config/initializers/rack/attack.rb +++ b/config/initializers/rack/attack.rb @@ -28,4 +28,10 @@ class Rack::Attack request.env["HTTP_FASTLY_CLIENT_IP"].to_s end end + + track("request_tracking") do |request| + if request.env["HTTP_FASTLY_CLIENT_IP"].present? + Honeycomb.add_field("fastly_client_ip", request.env["HTTP_FASTLY_CLIENT_IP"]) + end + end end diff --git a/spec/initializers/rack/attack_spec.rb b/spec/initializers/rack/attack_spec.rb index 3d4c7b3f5..c781255df 100644 --- a/spec/initializers/rack/attack_spec.rb +++ b/spec/initializers/rack/attack_spec.rb @@ -96,4 +96,13 @@ describe Rack::Attack, type: :request, throttle: true do end end end + + describe "request_tracking" do + it "adds fastly client IP to Honeycomb span" do + allow(Honeycomb).to receive(:add_field) + get api_articles_path, headers: { "HTTP_FASTLY_CLIENT_IP" => "5.6.7.8" } + + expect(Honeycomb).to have_received(:add_field).with("fastly_client_ip", "5.6.7.8") + end + end end