lib/opentelemetry/instrumentation/action_view/instrumentation.rb in opentelemetry-instrumentation-action_view-0.7.2 vs lib/opentelemetry/instrumentation/action_view/instrumentation.rb in opentelemetry-instrumentation-action_view-0.7.3

- old
+ new

@@ -5,11 +5,46 @@ # SPDX-License-Identifier: Apache-2.0 module OpenTelemetry module Instrumentation module ActionView - # The Instrumentation class contains logic to detect and install the ActionView instrumentation + # The {OpenTelemetry::Instrumentation::ActionView::Instrumentation} class contains logic to detect and install the ActionView instrumentation + # + # Installation and configuration of this instrumentation is done within the + # {https://www.rubydoc.info/gems/opentelemetry-sdk/OpenTelemetry/SDK#configure-instance_method OpenTelemetry::SDK#configure} + # block, calling {https://www.rubydoc.info/gems/opentelemetry-sdk/OpenTelemetry%2FSDK%2FConfigurator:use use()} + # or {https://www.rubydoc.info/gems/opentelemetry-sdk/OpenTelemetry%2FSDK%2FConfigurator:use_all use_all()}. + # + # ## Configuration keys and options + # + # ### `:disallowed_notification_payload_keys` + # + # Specifies an array of keys that should be excluded from the notification payload as span attributes. + # + # ### `:notification_payload_transform` + # + # - `proc` **default** `nil` + # + # Specifies custom proc used to extract span attributes form the notification payload. + # Use this to rename keys, extract nested values, or perform any other custom logic. + # + # ### `:legacy_span_names` + # + # - `boolean` **default** `false` + # + # Specifies whether spans names should use the legacy format where the subscription was reverse ordered and white space separated. (Ex. `action_view render_template`) + # If set to `true`, the span name will match the name of the notification itself. (Ex. `render_template.action_view`) + # + # @example An explicit default configuration + # OpenTelemetry::SDK.configure do |c| + # c.use_all({ + # 'OpenTelemetry::Instrumentation::ActionView' => { + # disallowed_notification_payload_keys: [], + # legacy_span_names: true, + # }, + # }) + # end class Instrumentation < OpenTelemetry::Instrumentation::Base MINIMUM_VERSION = Gem::Version.new('6.1.0') install do |_config| require_dependencies end @@ -22,9 +57,10 @@ gem_version >= MINIMUM_VERSION end option :disallowed_notification_payload_keys, default: [], validate: :array option :notification_payload_transform, default: nil, validate: :callable + option :legacy_span_names, default: false, validate: :boolean private def gem_version ::ActionView.version