-----------------------------------------------------------------------------
-- |
-- 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