Sha256: efddf9944c27caae6fda22087f2159d1c3d15c8cc90c5f6a2ec7f25d4ee9835e
Contents?: true
Size: 1.1 KB
Versions: 2
Compression:
Stored size: 1.1 KB
Contents
# typed: false # frozen_string_literal: true require "openapi_first" require "active_support/parameter_filter" module PlugApp module Middleware class TracingAttributes extend T::Sig sig { returns(T.untyped) } attr_reader :app HTTP_REQUEST_BODY = "http.request.body" sig { params(app: T.untyped).void } def initialize(app) @app = T.let(app, T.untyped) @filterer = ActiveSupport::ParameterFilter.new(Rails.application.config.filter_parameters) end sig { params(env: T.untyped).returns(T.untyped) } def call(env) request = ActionDispatch::Request.new(env.dup) OpenTelemetry::Trace.current_span.add_attributes({ OpenTelemetry::VERSION => PlugApp::Application::GIT_SHA, OpenTelemetry::SemanticConventions::Trace::HTTP_REQUEST_CONTENT_LENGTH => env["CONTENT_LENGTH"].to_i, HTTP_REQUEST_BODY => filtered_params(request), }) app.call(env) end def filtered_params(request) params = request.params @filterer.filter(params).to_json end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hephaestus-0.0.2 | templates/app/lib/plug_app/middleware/tracing_attributes.rb |
hephaestus-0.0.1 | templates/app/lib/plug_app/middleware/tracing_attributes.rb |