{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DataKinds #-} ----------------------------------------------------------------------------- -- | -- Module : OpenTelemetry.Resource.Container -- Copyright : (c) Ian Duncan, 2021 -- License : BSD-3 -- Description : Detect & provide resource info about a container -- Maintainer : Ian Duncan -- Stability : experimental -- Portability : non-portable (GHC extensions) -- ----------------------------------------------------------------------------- module OpenTelemetry.Resource.Container where import Data.Text (Text) import OpenTelemetry.Resource -- | A container instance. data Container = Container { containerName :: Maybe Text -- ^ Container name used by container runtime. -- -- Examples: 'opentelemetry-autoconf' , containerId :: Maybe Text -- ^ Container ID. Usually a UUID, as for example used to identify Docker containers. The UUID might be abbreviated. , containerRuntime :: Maybe Text -- ^ The container runtime managing this container. , containerImageName :: Maybe Text -- ^ Name of the image the container was built on. , containerImageTag :: Maybe Text -- ^ Container image tag. } instance ToResource Container where type ResourceSchema Container = 'Nothing toResource Container{..} = mkResource [ "container.name" .=? containerName , "container.id" .=? containerId , "container.runtime" .=? containerRuntime , "container.image.name" .=? containerImageName , "container.image.tag" .=? containerImageTag ]