{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DataKinds #-} ----------------------------------------------------------------------------- -- | -- Module : OpenTelemetry.Resource.Host -- Copyright : (c) Ian Duncan, 2021 -- License : BSD-3 -- Description : Information about the underlying general computing instance -- Maintainer : Ian Duncan -- Stability : experimental -- Portability : non-portable (GHC extensions) -- ----------------------------------------------------------------------------- module OpenTelemetry.Resource.Host ( Host (..) ) where import Data.Text (Text) import OpenTelemetry.Resource (ToResource(..), mkResource, (.=?)) -- | A host is defined as a general computing instance. data Host = Host { hostId :: Maybe Text -- ^ Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider. , hostName :: Maybe Text -- ^ Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user. , hostType :: Maybe Text -- ^ Type of host. For Cloud, this must be the machine type. , hostArch :: Maybe Text -- ^ The CPU architecture the host system is running on. , hostImageName :: Maybe Text -- ^ Name of the VM image or OS install the host was instantiated from. , hostImageId :: Maybe Text -- ^ VM image ID. For Cloud, this value is from the provider. , hostImageVersion :: Maybe Text -- ^ The version string of the VM image as defined in Version Attributes. } instance ToResource Host where type ResourceSchema Host = 'Nothing toResource Host{..} = mkResource [ "host.id" .=? hostId , "host.name" .=? hostName , "host.type" .=? hostType , "host.arch" .=? hostArch , "host.image.name" .=? hostImageName , "host.image.id" .=? hostImageId , "host.image.version" .=? hostImageVersion ]