{-# OPTIONS_HADDOCK not-home #-}

{- |
Support for building observability into your program by marking spans and
sub-spans, forming them into traces, and sending them to a backend capable of
ingesting such telemetry and performing analysis on it.

This is intended to be used directly:

@
import "Core.Telemetry"
@

the submodules are mostly there to group documentation, along with grouping
the implementations for each of the different supported backends.
-}
module Core.Telemetry
    ( -- * Traces and Spans

      -- |
      -- Adding observability tracing to your program.
        module Core.Telemetry.Observability

      -- * Exporting to backends

      -- |
      -- Processors to export telemetry to a backend.
    , module Core.Telemetry.Console
    , module Core.Telemetry.General
    , module Core.Telemetry.Honeycomb
    , module Core.Telemetry.Structured

      -- * Internals

      -- |
      -- Various helper functions.
    , module Core.Telemetry.Identifiers
    ) where

import Core.Telemetry.Console
import Core.Telemetry.General
import Core.Telemetry.Honeycomb
import Core.Telemetry.Identifiers
import Core.Telemetry.Observability
import Core.Telemetry.Structured