hs-opentelemetry-api-0.0.1.0: src/OpenTelemetry/Resource/Telemetry.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
-----------------------------------------------------------------------------
-- |
-- Module : OpenTelemetry.Resource.Telemetry
-- Copyright : (c) Ian Duncan, 2021
-- License : BSD-3
-- Description : Information about the telemetry SDK used to capture data recorded
-- by the instrumentation libraries.
-- Maintainer : Ian Duncan
-- Stability : experimental
-- Portability : non-portable (GHC extensions)
--
-----------------------------------------------------------------------------
module OpenTelemetry.Resource.Telemetry where
import Data.Text ( Text )
import OpenTelemetry.Resource
-- - id: cpp
-- value: "cpp"
-- - id: dotnet
-- value: "dotnet"
-- - id: erlang
-- value: "erlang"
-- - id: go
-- value: "go"
-- - id: java
-- value: "java"
-- - id: nodejs
-- value: "nodejs"
-- - id: php
-- value: "php"
-- - id: python
-- value: "python"
-- - id: ruby
-- value: "ruby"
-- - id: webjs
-- value: "webjs"
-- other allowed
-- | The telemetry SDK used to capture data recorded by the instrumentation libraries.
data Telemetry = Telemetry
{ telemetrySdkName :: Text
-- ^ The name of the telemetry SDK as defined above.
, telemetrySdkLanguage :: Maybe Text
-- ^ The name of the telemetry SDK as defined above.
, telemetrySdkVersion :: Maybe Text
-- ^ The version string of the telemetry SDK.
, telemetryAutoVersion :: Maybe Text
--- ^ The version string of the auto instrumentation agent, if used.
}
instance ToResource Telemetry where
type ResourceSchema Telemetry = 'Nothing
toResource Telemetry{..} = mkResource
[ "telemetry.sdk.name" .= telemetrySdkName
, "telemetry.sdk.language" .=? telemetrySdkLanguage
, "telemetry.sdk.version" .=? telemetrySdkVersion
, "telemetry.auto.version" .=? telemetryAutoVersion
]