Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ val OpenTelemetryVersion = "1.63.0"
val OpenTelemetryAlphaVersion = s"$OpenTelemetryVersion-alpha"
val OpenTelemetryInstrumentationVersion = "2.29.0"
val OpenTelemetryInstrumentationAlphaVersion = s"$OpenTelemetryInstrumentationVersion-alpha"
val OpenTelemetrySemConvVersion = "1.42.0"
val OpenTelemetrySemConvVersion = "1.43.0"
val OpenTelemetrySemConvAlphaVersion = s"$OpenTelemetrySemConvVersion-alpha"
val Otel4sAgentVersion = "2.22.0"
val PekkoStreamVersion = "1.6.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ object AzureExperimentalAttributes {
val AzureCosmosdbResponseSubStatusCode: AttributeKey[Long] =
AttributeKey("azure.cosmosdb.response.sub_status_code")

/** The name of the Azure <a
* href="https://learn.microsoft.com/azure/azure-resource-manager/management/manage-resource-groups-portal">resource
* group</a> the resource belongs to.
*/
val AzureResourceGroupName: AttributeKey[String] =
AttributeKey("azure.resource_group.name")

/** <a
* href="https://learn.microsoft.com/azure/azure-resource-manager/management/azure-services-resource-providers">Azure
* Resource Provider Namespace</a> as recognized by the client.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ package experimental.attributes
object CloudExperimentalAttributes {

/** The cloud account ID the resource is assigned to.
*
* @note
* <p> For Azure, this is the subscription ID.
*/
val CloudAccountId: AttributeKey[String] =
AttributeKey("cloud.account.id")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,11 +243,21 @@ object DbExperimentalAttributes {
val DbOperation: AttributeKey[String] =
AttributeKey("db.operation")

/** The number of queries included in a batch operation.
/** The number of database operations included in a batch operation.
*
* @note
* <p> Operations are only considered batches when they contain two or more operations, and so
* `db.operation.batch.size` SHOULD never be `1`.
* <p> Except for empty batch requests described below, a batch operation contains two or more database operations
* explicitly submitted as separate operations in a single client call, protocol message, or database command. <p>
* Requests to batch APIs that contain only one operation SHOULD be modeled as single operations, not as batch
* operations. <p> A database call is not a batch operation solely because one operation accepts multiple operands,
* such as keys, rows, documents, points, or other data elements, including Redis <a
* href="https://redis.io/docs/latest/commands/mget/">`MGET`</a> with multiple keys. <p> In batch APIs that execute
* the same parameterized operation with parameter sets, each parameter set represents one database operation for
* determining whether the request is a batch operation. Requests with only one parameter set SHOULD be modeled as
* single operations, not as batch operations. <p> `db.operation.batch.size` SHOULD be set to the number of
* operations in the batch. It SHOULD NOT be set for non-batch operations. <p> A request to execute a batch
* operation with no operations SHOULD also be treated as a batch operation, and `db.operation.batch.size` SHOULD
* be set to `0`.
*/
@deprecated(
"use `org.typelevel.otel4s.semconv.attributes.DbAttributes.DbOperationBatchSize` instead.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,8 @@ object K8sExperimentalAttributes {
* value, even if the value is empty.
*
* @note
* <p> Examples: <ul> <li>A label `replicas` with value `1` SHOULD be recorded as the
* `k8s.daemonset.annotation.replicas` attribute with value `"1"`. <li>A label `data` with empty string value
* <p> Examples: <ul> <li>An annotation `replicas` with value `1` SHOULD be recorded as the
* `k8s.daemonset.annotation.replicas` attribute with value `"1"`. <li>An annotation `data` with empty string value
* SHOULD be recorded as the `k8s.daemonset.annotation.data` attribute with value `""`. </ul>
*/
@deprecated(
Expand All @@ -168,7 +168,7 @@ object K8sExperimentalAttributes {
*
* @note
* <p> Examples: <ul> <li>A label `app` with value `guestbook` SHOULD be recorded as the `k8s.daemonset.label.app`
* attribute with value `"guestbook"`. <li>A label `data` with empty string value SHOULD be recorded as the
* attribute with value `"guestbook"`. <li>A label `injected` with empty string value SHOULD be recorded as the
* `k8s.daemonset.label.injected` attribute with value `""`. </ul>
*/
@deprecated(
Expand Down Expand Up @@ -200,9 +200,9 @@ object K8sExperimentalAttributes {
* value, even if the value is empty.
*
* @note
* <p> Examples: <ul> <li>A label `replicas` with value `1` SHOULD be recorded as the
* `k8s.deployment.annotation.replicas` attribute with value `"1"`. <li>A label `data` with empty string value
* SHOULD be recorded as the `k8s.deployment.annotation.data` attribute with value `""`. </ul>
* <p> Examples: <ul> <li>An annotation `replicas` with value `1` SHOULD be recorded as the
* `k8s.deployment.annotation.replicas` attribute with value `"1"`. <li>An annotation `data` with empty string
* value SHOULD be recorded as the `k8s.deployment.annotation.data` attribute with value `""`. </ul>
*/
@deprecated(
"use `org.typelevel.otel4s.semconv.attributes.K8sAttributes.K8sDeploymentAnnotation` instead.",
Expand All @@ -215,7 +215,7 @@ object K8sExperimentalAttributes {
* value is empty.
*
* @note
* <p> Examples: <ul> <li>A label `replicas` with value `0` SHOULD be recorded as the `k8s.deployment.label.app`
* <p> Examples: <ul> <li>A label `app` with value `guestbook` SHOULD be recorded as the `k8s.deployment.label.app`
* attribute with value `"guestbook"`. <li>A label `injected` with empty string value SHOULD be recorded as the
* `k8s.deployment.label.injected` attribute with value `""`. </ul>
*/
Expand Down Expand Up @@ -295,9 +295,9 @@ object K8sExperimentalAttributes {
* even if the value is empty.
*
* @note
* <p> Examples: <ul> <li>A label `number` with value `1` SHOULD be recorded as the `k8s.job.annotation.number`
* attribute with value `"1"`. <li>A label `data` with empty string value SHOULD be recorded as the
* `k8s.job.annotation.data` attribute with value `""`. </ul>
* <p> Examples: <ul> <li>An annotation `number` with value `1` SHOULD be recorded as the
* `k8s.job.annotation.number` attribute with value `"1"`. <li>An annotation `data` with empty string value SHOULD
* be recorded as the `k8s.job.annotation.data` attribute with value `""`. </ul>
*/
@deprecated(
"use `org.typelevel.otel4s.semconv.attributes.K8sAttributes.K8sJobAnnotation` instead.",
Expand All @@ -311,7 +311,7 @@ object K8sExperimentalAttributes {
*
* @note
* <p> Examples: <ul> <li>A label `jobtype` with value `ci` SHOULD be recorded as the `k8s.job.label.jobtype`
* attribute with value `"ci"`. <li>A label `data` with empty string value SHOULD be recorded as the
* attribute with value `"ci"`. <li>A label `automated` with empty string value SHOULD be recorded as the
* `k8s.job.label.automated` attribute with value `""`. </ul>
*/
@deprecated(
Expand Down Expand Up @@ -343,9 +343,9 @@ object K8sExperimentalAttributes {
* value, even if the value is empty.
*
* @note
* <p> Examples: <ul> <li>A label `ttl` with value `0` SHOULD be recorded as the `k8s.namespace.annotation.ttl`
* attribute with value `"0"`. <li>A label `data` with empty string value SHOULD be recorded as the
* `k8s.namespace.annotation.data` attribute with value `""`. </ul>
* <p> Examples: <ul> <li>An annotation `ttl` with value `0` SHOULD be recorded as the
* `k8s.namespace.annotation.ttl` attribute with value `"0"`. <li>An annotation `data` with empty string value
* SHOULD be recorded as the `k8s.namespace.annotation.data` attribute with value `""`. </ul>
*/
@deprecated(
"use `org.typelevel.otel4s.semconv.attributes.K8sAttributes.K8sNamespaceAnnotation` instead.",
Expand Down Expand Up @@ -675,9 +675,9 @@ object K8sExperimentalAttributes {
* value, even if the value is empty.
*
* @note
* <p> Examples: <ul> <li>A label `replicas` with value `0` SHOULD be recorded as the
* `k8s.replicaset.annotation.replicas` attribute with value `"0"`. <li>A label `data` with empty string value
* SHOULD be recorded as the `k8s.replicaset.annotation.data` attribute with value `""`. </ul>
* <p> Examples: <ul> <li>An annotation `replicas` with value `0` SHOULD be recorded as the
* `k8s.replicaset.annotation.replicas` attribute with value `"0"`. <li>An annotation `data` with empty string
* value SHOULD be recorded as the `k8s.replicaset.annotation.data` attribute with value `""`. </ul>
*/
@deprecated(
"use `org.typelevel.otel4s.semconv.attributes.K8sAttributes.K8sReplicasetAnnotation` instead.",
Expand Down Expand Up @@ -871,9 +871,9 @@ object K8sExperimentalAttributes {
* value, even if the value is empty.
*
* @note
* <p> Examples: <ul> <li>A label `replicas` with value `1` SHOULD be recorded as the
* `k8s.statefulset.annotation.replicas` attribute with value `"1"`. <li>A label `data` with empty string value
* SHOULD be recorded as the `k8s.statefulset.annotation.data` attribute with value `""`. </ul>
* <p> Examples: <ul> <li>An annotation `replicas` with value `1` SHOULD be recorded as the
* `k8s.statefulset.annotation.replicas` attribute with value `"1"`. <li>An annotation `data` with empty string
* value SHOULD be recorded as the `k8s.statefulset.annotation.data` attribute with value `""`. </ul>
*/
@deprecated(
"use `org.typelevel.otel4s.semconv.attributes.K8sAttributes.K8sStatefulsetAnnotation` instead.",
Expand All @@ -886,9 +886,9 @@ object K8sExperimentalAttributes {
* the value is empty.
*
* @note
* <p> Examples: <ul> <li>A label `replicas` with value `0` SHOULD be recorded as the `k8s.statefulset.label.app`
* attribute with value `"guestbook"`. <li>A label `injected` with empty string value SHOULD be recorded as the
* `k8s.statefulset.label.injected` attribute with value `""`. </ul>
* <p> Examples: <ul> <li>A label `app` with value `guestbook` SHOULD be recorded as the
* `k8s.statefulset.label.app` attribute with value `"guestbook"`. <li>A label `injected` with empty string value
* SHOULD be recorded as the `k8s.statefulset.label.injected` attribute with value `""`. </ul>
*/
@deprecated(
"use `org.typelevel.otel4s.semconv.attributes.K8sAttributes.K8sStatefulsetLabel` instead.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ object NetworkExperimentalAttributes {
val NetworkInterfaceName: AttributeKey[String] =
AttributeKey("network.interface.name")

/** The network IO operation direction.
/** The direction of traffic from the perspective of the observing host's physical or virtual network interface. It
* should not be used to represent the logical direction of a stateful connection or network flow.
*/
val NetworkIoDirection: AttributeKey[String] =
AttributeKey("network.io.direction")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,10 @@ object TelemetryExperimentalAttributes {
*/
case object Java extends TelemetrySdkLanguageValue("java")

/** kotlin.
*/
case object Kotlin extends TelemetrySdkLanguageValue("kotlin")

/** nodejs.
*/
case object Nodejs extends TelemetrySdkLanguageValue("nodejs")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ object CicdExperimentalMetrics {
val name: String = "cicd.pipeline.run.active"
val description: String = "The number of pipeline runs currently active in the system by state."
val unit: String = "{run}"
val stability: Stability = Stability.development
val stability: Stability = Stability.releaseCandidate
val attributeSpecs: List[AttributeSpec[_]] = AttributeSpecs.specs

object AttributeSpecs {
Expand All @@ -59,7 +59,7 @@ object CicdExperimentalMetrics {
"deploy_to_environment",
),
Requirement.required,
Stability.development
Stability.releaseCandidate
)

/** The pipeline run goes through these states during its lifecycle.
Expand All @@ -73,7 +73,7 @@ object CicdExperimentalMetrics {
"finalizing",
),
Requirement.required,
Stability.development
Stability.releaseCandidate
)

val specs: List[AttributeSpec[_]] =
Expand Down Expand Up @@ -115,7 +115,7 @@ object CicdExperimentalMetrics {
val name: String = "cicd.pipeline.run.duration"
val description: String = "Duration of a pipeline run grouped by pipeline, state and result."
val unit: String = "s"
val stability: Stability = Stability.development
val stability: Stability = Stability.releaseCandidate
val attributeSpecs: List[AttributeSpec[_]] = AttributeSpecs.specs

object AttributeSpecs {
Expand All @@ -132,7 +132,7 @@ object CicdExperimentalMetrics {
"deploy_to_environment",
),
Requirement.required,
Stability.development
Stability.releaseCandidate
)

/** The result of a pipeline run.
Expand All @@ -144,10 +144,10 @@ object CicdExperimentalMetrics {
"success",
"failure",
"timeout",
"skipped",
"skip",
),
Requirement.conditionallyRequired("If and only if the pipeline run result has been set during that state."),
Stability.development
Stability.releaseCandidate
)

/** The pipeline run goes through these states during its lifecycle.
Expand All @@ -161,7 +161,7 @@ object CicdExperimentalMetrics {
"finalizing",
),
Requirement.required,
Stability.development
Stability.releaseCandidate
)

/** Describes a class of error the operation ended with.
Expand Down Expand Up @@ -225,7 +225,7 @@ object CicdExperimentalMetrics {
val name: String = "cicd.pipeline.run.errors"
val description: String = "The number of errors encountered in pipeline runs (eg. compile, test failures)."
val unit: String = "{error}"
val stability: Stability = Stability.development
val stability: Stability = Stability.releaseCandidate
val attributeSpecs: List[AttributeSpec[_]] = AttributeSpecs.specs

object AttributeSpecs {
Expand All @@ -242,7 +242,7 @@ object CicdExperimentalMetrics {
"deploy_to_environment",
),
Requirement.required,
Stability.development
Stability.releaseCandidate
)

/** Describes a class of error the operation ended with.
Expand Down Expand Up @@ -318,7 +318,7 @@ object CicdExperimentalMetrics {
val description: String =
"The number of errors in a component of the CI/CD system (eg. controller, scheduler, agent)."
val unit: String = "{error}"
val stability: Stability = Stability.development
val stability: Stability = Stability.releaseCandidate
val attributeSpecs: List[AttributeSpec[_]] = AttributeSpecs.specs

object AttributeSpecs {
Expand All @@ -334,7 +334,7 @@ object CicdExperimentalMetrics {
"agent",
),
Requirement.required,
Stability.development
Stability.releaseCandidate
)

/** Describes a class of error the operation ended with.
Expand Down Expand Up @@ -405,8 +405,8 @@ object CicdExperimentalMetrics {

val name: String = "cicd.worker.count"
val description: String = "The number of workers on the CI/CD system by state."
val unit: String = "{count}"
val stability: Stability = Stability.development
val unit: String = "{worker}"
val stability: Stability = Stability.releaseCandidate
val attributeSpecs: List[AttributeSpec[_]] = AttributeSpecs.specs

object AttributeSpecs {
Expand All @@ -417,12 +417,12 @@ object CicdExperimentalMetrics {
AttributeSpec(
CicdExperimentalAttributes.CicdWorkerState,
List(
"idle",
"available",
"busy",
"down",
"offline",
),
Requirement.required,
Stability.development
Stability.releaseCandidate
)

val specs: List[AttributeSpec[_]] =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ object ContainerExperimentalMetrics {
"read",
),
Requirement.recommended,
Stability.development
Stability.releaseCandidate
)

/** The device identifier
Expand Down Expand Up @@ -462,7 +462,7 @@ object ContainerExperimentalMetrics {
"minor",
),
Requirement.recommended,
Stability.development
Stability.releaseCandidate
)

val specs: List[AttributeSpec[_]] =
Expand Down Expand Up @@ -650,7 +650,8 @@ object ContainerExperimentalMetrics {
Stability.development
)

/** The network IO operation direction.
/** The direction of traffic from the perspective of the observing host's physical or virtual network interface.
* It should not be used to represent the logical direction of a stateful connection or network flow.
*/
val networkIoDirection: AttributeSpec[String] =
AttributeSpec(
Expand All @@ -659,7 +660,7 @@ object ContainerExperimentalMetrics {
"transmit",
),
Requirement.recommended,
Stability.development
Stability.releaseCandidate
)

val specs: List[AttributeSpec[_]] =
Expand Down
Loading
Loading