----------------------------------------------------------------------------- -- | -- Module : OpenTelemetry.Processor -- Copyright : (c) Ian Duncan, 2021 -- License : BSD-3 -- Description : Hooks for performing actions on the start and end of recording spans -- Maintainer : Ian Duncan -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Span processor is an interface which allows hooks for span start and end method invocations. The span processors are invoked only when IsRecording is true. -- -- Built-in span processors are responsible for batching and conversion of spans to exportable representation and passing batches to exporters. -- -- Span processors can be registered directly on SDK TracerProvider and they are invoked in the same order as they were registered. -- -- Each processor registered on TracerProvider is a start of pipeline that consist of span processor and optional exporter. SDK MUST allow to end each pipeline with individual exporter. -- -- SDK MUST allow users to implement and configure custom processors and decorate built-in processors for advanced scenarios such as tagging or filtering. -- ----------------------------------------------------------------------------- module OpenTelemetry.Processor ( Processor(..) , ShutdownResult(..) ) where import OpenTelemetry.Internal.Trace.Types