From fe02b479bf9e516a7abf5f5341a7e4bbd1531fec Mon Sep 17 00:00:00 2001 From: "typelevel-steward[bot]" <106827141+typelevel-steward[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 16:56:49 +0000 Subject: [PATCH 1/3] Update otel4s-core, otel4s-core-common, ... to 1.0.1 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 60b2c8c9..72619677 100644 --- a/build.sbt +++ b/build.sbt @@ -95,7 +95,7 @@ val ScalaPBCirceVersion = "0.16.0" val CaseInsensitiveVersion = "1.5.0" val ScalaJavaTimeVersion = "2.6.0" val ScribeVersion = "3.17.0" -val Otel4sVersion = "1.0.0" +val Otel4sVersion = "1.0.1" lazy val scalaReflectDependency = Def.settings( libraryDependencies ++= { From 14321acfd9673a747fa4aa92b8e2f59a6335bed5 Mon Sep 17 00:00:00 2001 From: Maksym Ochenashko Date: Sun, 21 Jun 2026 08:43:55 +0100 Subject: [PATCH 2/3] Use attributes from stable semantic conventions --- .../otel4s/sdk/contrib/aws/resource/AwsEcsDetector.scala | 7 ++++--- .../otel4s/sdk/contrib/aws/resource/AwsEksDetector.scala | 6 ++++-- .../sdk/contrib/aws/resource/AWSEksDetectorSuite.scala | 4 ++-- .../sdk/contrib/aws/resource/AwsEcsDetectorSuite.scala | 3 ++- .../sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala | 2 +- .../sdk/contrib/metrics/runtime/RuntimeMetricsSuite.scala | 2 +- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/sdk-contrib/aws/resource/src/main/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEcsDetector.scala b/sdk-contrib/aws/resource/src/main/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEcsDetector.scala index 71811384..325437e3 100644 --- a/sdk-contrib/aws/resource/src/main/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEcsDetector.scala +++ b/sdk-contrib/aws/resource/src/main/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEcsDetector.scala @@ -35,6 +35,7 @@ import org.typelevel.otel4s.sdk.TelemetryResource import org.typelevel.otel4s.sdk.common.Diagnostic import org.typelevel.otel4s.sdk.resource.TelemetryResourceDetector import org.typelevel.otel4s.semconv.SchemaUrls +import org.typelevel.otel4s.semconv.attributes.ContainerAttributes import scala.concurrent.duration._ @@ -167,10 +168,10 @@ object AwsEcsDetector { val CloudAvailabilityZones: AttributeKey[String] = AttributeKey("cloud.availability_zone") val CloudRegion: AttributeKey[String] = AttributeKey("cloud.region") val CloudResourceId: AttributeKey[String] = AttributeKey("cloud.resource_id") - val ContainerId: AttributeKey[String] = AttributeKey("container.id") + val ContainerId: AttributeKey[String] = ContainerAttributes.ContainerId val ContainerName: AttributeKey[String] = AttributeKey("container.name") - val ContainerImageName: AttributeKey[String] = AttributeKey("container.image.name") - val ContainerImageTags: AttributeKey[Seq[String]] = AttributeKey("container.image.tags") + val ContainerImageName: AttributeKey[String] = ContainerAttributes.ContainerImageName + val ContainerImageTags: AttributeKey[Seq[String]] = ContainerAttributes.ContainerImageTags val AwsEcsClusterArn: AttributeKey[String] = AttributeKey("aws.ecs.cluster.arn") val AwsEcsContainerImageId: AttributeKey[String] = AttributeKey("aws.ecs.container.image.id") val AwsEcsContainerArn: AttributeKey[String] = AttributeKey("aws.ecs.container.arn") diff --git a/sdk-contrib/aws/resource/src/main/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEksDetector.scala b/sdk-contrib/aws/resource/src/main/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEksDetector.scala index ce49da21..e69b6560 100644 --- a/sdk-contrib/aws/resource/src/main/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEksDetector.scala +++ b/sdk-contrib/aws/resource/src/main/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEksDetector.scala @@ -43,6 +43,8 @@ import org.typelevel.otel4s.sdk.TelemetryResource import org.typelevel.otel4s.sdk.common.Diagnostic import org.typelevel.otel4s.sdk.resource.TelemetryResourceDetector import org.typelevel.otel4s.semconv.SchemaUrls +import org.typelevel.otel4s.semconv.attributes.ContainerAttributes +import org.typelevel.otel4s.semconv.attributes.K8sAttributes import scala.concurrent.duration._ @@ -183,8 +185,8 @@ object AwsEksDetector { private object Keys { val CloudProvider: AttributeKey[String] = AttributeKey("cloud.provider") val CloudPlatform: AttributeKey[String] = AttributeKey("cloud.platform") - val K8sClusterName: AttributeKey[String] = AttributeKey("k8s.cluster.name") - val ContainerId: AttributeKey[String] = AttributeKey("container.id") + val K8sClusterName: AttributeKey[String] = K8sAttributes.K8sClusterName + val ContainerId: AttributeKey[String] = ContainerAttributes.ContainerId } /** The detector detects if running on AWS EKS and provides EKS-specific resource attributes. diff --git a/sdk-contrib/aws/resource/src/test/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AWSEksDetectorSuite.scala b/sdk-contrib/aws/resource/src/test/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AWSEksDetectorSuite.scala index 47983afb..f41bdb6c 100644 --- a/sdk-contrib/aws/resource/src/test/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AWSEksDetectorSuite.scala +++ b/sdk-contrib/aws/resource/src/test/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AWSEksDetectorSuite.scala @@ -29,9 +29,9 @@ import org.http4s.dsl.io._ import org.typelevel.otel4s.Attributes import org.typelevel.otel4s.sdk.TelemetryResource import org.typelevel.otel4s.semconv.SchemaUrls +import org.typelevel.otel4s.semconv.attributes.ContainerAttributes._ +import org.typelevel.otel4s.semconv.attributes.K8sAttributes._ import org.typelevel.otel4s.semconv.experimental.attributes.CloudExperimentalAttributes._ -import org.typelevel.otel4s.semconv.experimental.attributes.ContainerExperimentalAttributes._ -import org.typelevel.otel4s.semconv.experimental.attributes.K8sExperimentalAttributes._ import scala.collection.immutable diff --git a/sdk-contrib/aws/resource/src/test/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEcsDetectorSuite.scala b/sdk-contrib/aws/resource/src/test/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEcsDetectorSuite.scala index 15c843fd..3ac8991e 100644 --- a/sdk-contrib/aws/resource/src/test/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEcsDetectorSuite.scala +++ b/sdk-contrib/aws/resource/src/test/scala/org/typelevel/otel4s/sdk/contrib/aws/resource/AwsEcsDetectorSuite.scala @@ -29,9 +29,10 @@ import org.typelevel.otel4s.Attribute import org.typelevel.otel4s.Attributes import org.typelevel.otel4s.sdk.TelemetryResource import org.typelevel.otel4s.semconv.SchemaUrls +import org.typelevel.otel4s.semconv.attributes.ContainerAttributes._ import org.typelevel.otel4s.semconv.experimental.attributes.AwsExperimentalAttributes._ import org.typelevel.otel4s.semconv.experimental.attributes.CloudExperimentalAttributes._ -import org.typelevel.otel4s.semconv.experimental.attributes.ContainerExperimentalAttributes._ +import org.typelevel.otel4s.semconv.experimental.attributes.ContainerExperimentalAttributes.ContainerName import scala.collection.immutable diff --git a/sdk-contrib/metrics/js/src/main/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala b/sdk-contrib/metrics/js/src/main/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala index 5e2b58af..a8032496 100644 --- a/sdk-contrib/metrics/js/src/main/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala +++ b/sdk-contrib/metrics/js/src/main/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala @@ -77,7 +77,7 @@ private object NodeMemoryMetrics { Attributes(Keys.V8jsHeapSpaceName(spaceName)) private object MetricNames { - val V8jsMemoryHeapLimit = "v8js.memory.heap.limit" + val V8jsMemoryHeapLimit = "v8js.memory.heap.space.size" val V8jsMemoryHeapUsed = "v8js.memory.heap.used" val V8jsHeapSpaceAvailableSize = "v8js.memory.heap.space.available_size" val V8jsHeapSpacePhysicalSize = "v8js.memory.heap.space.physical_size" diff --git a/sdk-contrib/metrics/js/src/test/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/RuntimeMetricsSuite.scala b/sdk-contrib/metrics/js/src/test/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/RuntimeMetricsSuite.scala index d3813fad..f3f8ec61 100644 --- a/sdk-contrib/metrics/js/src/test/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/RuntimeMetricsSuite.scala +++ b/sdk-contrib/metrics/js/src/test/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/RuntimeMetricsSuite.scala @@ -52,7 +52,7 @@ class RuntimeMetricsSuite extends CatsEffectSuite { // V8jsExperimentalMetrics.GcDuration, // todo: I don't think we can trigger gc on demand in JS? // V8 JS Memory V8jsExperimentalMetrics.MemoryHeapUsed, - V8jsExperimentalMetrics.MemoryHeapLimit, + V8jsExperimentalMetrics.MemoryHeapSpaceSize, V8jsExperimentalMetrics.MemoryHeapSpacePhysicalSize, V8jsExperimentalMetrics.MemoryHeapSpaceAvailableSize, // thread From 3186e2bb85787079797aadef347c699fca441e82 Mon Sep 17 00:00:00 2001 From: Maksym Ochenashko Date: Tue, 23 Jun 2026 19:55:32 +0100 Subject: [PATCH 3/3] Update v8 heap memory metric description --- .../otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk-contrib/metrics/js/src/main/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala b/sdk-contrib/metrics/js/src/main/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala index a8032496..25254ff6 100644 --- a/sdk-contrib/metrics/js/src/main/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala +++ b/sdk-contrib/metrics/js/src/main/scala/org/typelevel/otel4s/sdk/contrib/metrics/runtime/NodeMemoryMetrics.scala @@ -37,7 +37,7 @@ private object NodeMemoryMetrics { Meter[F].batchCallback.of( Meter[F] .observableGauge[Double](MetricNames.V8jsMemoryHeapLimit) - .withDescription("Total heap memory size pre-allocated.") + .withDescription("Total heap memory size pre-allocated for a heap space.") .withUnit("By") .createObserver, Meter[F]