class ElasticAPM::Filters::SecretsFilter
@api private
def call(payload)
def call(payload) strip_from payload[:transactions], :context, :request, :headers strip_from payload[:transactions], :context, :response, :headers strip_from payload[:errors], :context, :request, :headers strip_from payload[:errors], :context, :response, :headers payload end
def filter_key?(key)
def filter_key?(key) @key_filters.any? { |regex| key.match regex } end
def filter_value?(value)
def filter_value?(value) VALUE_FILTERS.any? { |regex| value.match regex } end
def initialize(config)
def initialize(config) @config = config @key_filters = KEY_FILTERS + config.custom_key_filters end
def strip_from(events, *path)
def strip_from(events, *path) return unless events events.each do |event| next unless (headers = event.dig(*path)) headers.each do |k, v| if filter_key?(k) || filter_value?(v) headers[k] = FILTERED end end end end