Resource
OpenTelemetry resource service and layers.
An OpenTelemetry resource identifies the process or service that emits spans, metrics, and logs. This module stores that resource in Effect context and provides layers for creating it from explicit service metadata, from OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES, or as an empty resource. It also includes configToAttributes for turning service metadata into raw OpenTelemetry attributes.
Converting
configToAttributes
Signature
declare function configToAttributes(options: {
readonly attributes?: any;
readonly serviceName: string;
readonly serviceVersion?: string;
}): Record<string, string>;Layers
Creates a Resource layer from service metadata and additional OpenTelemetry attributes.
Signature
declare function layer(config: {
readonly attributes?: any;
readonly serviceName: string;
readonly serviceVersion?: string;
}): Layer<Resource, never, never>;layerEmpty
Layer that provides an empty OpenTelemetry resource.
Signature
declare const layerEmpty: Layer<Resource, never, never>;layerFromEnv
Creates a Resource layer from OpenTelemetry environment variables, optionally merging additional attributes.
Signature
declare function layerFromEnv(additionalAttributes?: any): Layer<Resource>;Services
Service tag for OpenTelemetry metadata attached to emitted telemetry.
When to use
Use to provide process, service, and deployment metadata that should be attached to spans, metrics, and logs.
Signature
declare class Resource extends Shape<"@effect/opentelemetry/Resource", Resource, this> {
constructor(_: never);
}
Converts resource configuration into OpenTelemetry attributes, adding service name, optional service version, and telemetry SDK metadata.
When to use
Use to turn explicit service metadata into a raw OpenTelemetry attribute map for lower-level resource construction or merging with environment-derived attributes via
layerFromEnv.Details
The returned record copies
attributesfirst, then setsservice.name,telemetry.sdk.name, andtelemetry.sdk.language.service.versionis included only whenserviceVersionis provided.Gotchas
Custom values for
service.nameandtelemetry.sdk.*are overwritten by this helper. An emptyserviceVersionis treated as absent.See
layerfor creating aResourcelayer from explicit metadatalayerFromEnvfor merging attributes with OpenTelemetry environment variables