module OpenTelemetry.Resource.Service where
import Data.Text (Text)
import OpenTelemetry.Attributes.Key (unkey)
import OpenTelemetry.Resource
import qualified OpenTelemetry.SemanticConventions as SC
data Service = Service
{ Service -> Text
serviceName :: Text
, Service -> Maybe Text
serviceNamespace :: Maybe Text
, Service -> Maybe Text
serviceInstanceId :: Maybe Text
, Service -> Maybe Text
serviceVersion :: Maybe Text
, Service -> Maybe Text
serviceCriticality :: Maybe Text
}
instance ToResource Service where
toResource :: Service -> Resource
toResource Service {Maybe Text
Text
serviceName :: Service -> Text
serviceNamespace :: Service -> Maybe Text
serviceInstanceId :: Service -> Maybe Text
serviceVersion :: Service -> Maybe Text
serviceCriticality :: Service -> Maybe Text
serviceName :: Text
serviceNamespace :: Maybe Text
serviceInstanceId :: Maybe Text
serviceVersion :: Maybe Text
serviceCriticality :: Maybe Text
..} =
Maybe Text -> [Maybe (Text, Attribute)] -> Resource
mkResourceWithSchema
(Text -> Maybe Text
forall a. a -> Maybe a
Just Text
semConvSchemaUrl)
[ AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.service_name Text -> Text -> Maybe (Text, Attribute)
forall a. ToAttribute a => Text -> a -> Maybe (Text, Attribute)
.= Text
serviceName
, AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.service_namespace Text -> Maybe Text -> Maybe (Text, Attribute)
forall a.
ToAttribute a =>
Text -> Maybe a -> Maybe (Text, Attribute)
.=? Maybe Text
serviceNamespace
, AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.service_instance_id Text -> Maybe Text -> Maybe (Text, Attribute)
forall a.
ToAttribute a =>
Text -> Maybe a -> Maybe (Text, Attribute)
.=? Maybe Text
serviceInstanceId
, AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.service_version Text -> Maybe Text -> Maybe (Text, Attribute)
forall a.
ToAttribute a =>
Text -> Maybe a -> Maybe (Text, Attribute)
.=? Maybe Text
serviceVersion
, AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.service_criticality Text -> Maybe Text -> Maybe (Text, Attribute)
forall a.
ToAttribute a =>
Text -> Maybe a -> Maybe (Text, Attribute)
.=? Maybe Text
serviceCriticality
]