diff --git a/build.gradle.kts b/build.gradle.kts index 5760449..9c207e0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,9 +11,11 @@ val snapshot = true // end // The release version of https://github.com/open-telemetry/semantic-conventions used to generate classes -var semanticConventionsVersion = "1.34.0" +var semanticConventionsVersion = "1.36.0" val schemaUrlVersions = listOf( semanticConventionsVersion, + "1.35.0", + "1.34.0", "1.33.0", "1.32.0", "1.31.0", diff --git a/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts index 3ae509d..784e945 100644 --- a/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/otel.java-conventions.gradle.kts @@ -76,9 +76,7 @@ tasks { breakIterator(true) addBooleanOption("html5", true) - // TODO (trask) remove "-html" after next semconv release - // (see https://github.com/open-telemetry/semantic-conventions/pull/2304) - addBooleanOption("Xdoclint:all,-missing,-html", true) + addBooleanOption("Xdoclint:all,-missing", true) // non-standard option to fail on warnings, see https://bugs.openjdk.java.net/browse/JDK-8200363 addStringOption("Xwerror", "-quiet") } diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzIncubatingAttributes.java index 1b6ca8e..1f16224 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzIncubatingAttributes.java @@ -14,16 +14,18 @@ @SuppressWarnings("unused") public final class AzIncubatingAttributes { /** - * Azure - * Resource Provider Namespace as recognized by the client. + * Deprecated, use {@code azure.resource_provider.namespace} instead. + * + * @deprecated Replaced by {@code azure.resource_provider.namespace}. */ - public static final AttributeKey AZ_NAMESPACE = stringKey("az.namespace"); + @Deprecated public static final AttributeKey AZ_NAMESPACE = stringKey("az.namespace"); /** - * The unique identifier of the service request. It's generated by the Azure service and returned - * with the response. + * Deprecated, use {@code azure.service.request.id} instead. + * + * @deprecated Replaced by {@code azure.service.request.id}. */ + @Deprecated public static final AttributeKey AZ_SERVICE_REQUEST_ID = stringKey("az.service_request_id"); diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java index d3ce8f8..7856fe7 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AzureIncubatingAttributes.java @@ -57,6 +57,21 @@ public final class AzureIncubatingAttributes { public static final AttributeKey AZURE_COSMOSDB_RESPONSE_SUB_STATUS_CODE = longKey("azure.cosmosdb.response.sub_status_code"); + /** + * Azure + * Resource Provider Namespace as recognized by the client. + */ + public static final AttributeKey AZURE_RESOURCE_PROVIDER_NAMESPACE = + stringKey("azure.resource_provider.namespace"); + + /** + * The unique identifier of the service request. It's generated by the Azure service and returned + * with the response. + */ + public static final AttributeKey AZURE_SERVICE_REQUEST_ID = + stringKey("azure.service.request.id"); + // Enum definitions /** Values for {@link #AZURE_COSMOSDB_CONNECTION_MODE}. */ diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java index 1eb0f8e..2ca29bd 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingAttributes.java @@ -81,7 +81,7 @@ public final class CloudIncubatingAttributes { *
  • GCP: The URI of the resource *
  • Azure: The Fully Qualified + * href="https://learn.microsoft.com/rest/api/resources/resources/get-by-id">Fully Qualified * Resource ID of the invoked function, not the function app, having the form * {@code * /subscriptions//resourceGroups//providers/Microsoft.Web/sites//functions/}. @@ -126,25 +126,25 @@ public static final class CloudPlatformIncubatingValues { public static final String AWS_OPENSHIFT = "aws_openshift"; /** Azure Virtual Machines */ - public static final String AZURE_VM = "azure_vm"; + public static final String AZURE_VM = "azure.vm"; /** Azure Container Apps */ - public static final String AZURE_CONTAINER_APPS = "azure_container_apps"; + public static final String AZURE_CONTAINER_APPS = "azure.container_apps"; /** Azure Container Instances */ - public static final String AZURE_CONTAINER_INSTANCES = "azure_container_instances"; + public static final String AZURE_CONTAINER_INSTANCES = "azure.container_instances"; /** Azure Kubernetes Service */ - public static final String AZURE_AKS = "azure_aks"; + public static final String AZURE_AKS = "azure.aks"; /** Azure Functions */ - public static final String AZURE_FUNCTIONS = "azure_functions"; + public static final String AZURE_FUNCTIONS = "azure.functions"; /** Azure App Service */ - public static final String AZURE_APP_SERVICE = "azure_app_service"; + public static final String AZURE_APP_SERVICE = "azure.app_service"; /** Azure Red Hat OpenShift */ - public static final String AZURE_OPENSHIFT = "azure_openshift"; + public static final String AZURE_OPENSHIFT = "azure.openshift"; /** Google Bare Metal Solution (BMS) */ public static final String GCP_BARE_METAL_SOLUTION = "gcp_bare_metal_solution"; diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DnsIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DnsIncubatingAttributes.java index 5b265de..8ae2f4a 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DnsIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DnsIncubatingAttributes.java @@ -5,14 +5,19 @@ package io.opentelemetry.semconv.incubating; +import static io.opentelemetry.api.common.AttributeKey.stringArrayKey; import static io.opentelemetry.api.common.AttributeKey.stringKey; import io.opentelemetry.api.common.AttributeKey; +import java.util.List; // DO NOT EDIT, this is an Auto-generated file from // buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 @SuppressWarnings("unused") public final class DnsIncubatingAttributes { + /** The list of IPv4 or IPv6 addresses resolved during DNS lookup. */ + public static final AttributeKey> DNS_ANSWERS = stringArrayKey("dns.answers"); + /** * The name being queried. * diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java index c20fd7a..5539c17 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java @@ -371,11 +371,17 @@ public static final class GenAiSystemIncubatingValues { /** Cohere */ public static final String COHERE = "cohere"; + /** Azure AI Inference */ + public static final String AZURE_AI_INFERENCE = "azure.ai.inference"; + + /** Azure OpenAI */ + public static final String AZURE_AI_OPENAI = "azure.ai.openai"; + /** Azure AI Inference */ public static final String AZ_AI_INFERENCE = "az.ai.inference"; /** Azure OpenAI */ - public static final String AZ_AI_OPENAI = "az.ai.openai"; + public static final String AZ_AI_OPENAI = "azure.ai.openai"; /** IBM Watsonx AI */ public static final String IBM_WATSONX_AI = "ibm.watsonx.ai"; diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HttpIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HttpIncubatingAttributes.java index 2bc6216..e339628 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HttpIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HttpIncubatingAttributes.java @@ -240,7 +240,7 @@ public final class HttpIncubatingAttributes { /** * Deprecated, use {@code http.response.header.content-length} instead. * - * @deprecated hp.response.header.content-length + * @deprecated Replaced by {@code http.response.header.content-length}. */ @Deprecated public static final AttributeKey HTTP_RESPONSE_CONTENT_LENGTH = diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java index c73527a..5d3ac28 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java @@ -65,6 +65,24 @@ public final class K8sIncubatingAttributes { public static final AttributeKey K8S_CONTAINER_STATUS_LAST_TERMINATED_REASON = stringKey("k8s.container.status.last_terminated_reason"); + /** + * The reason for the container state. Corresponds to the {@code reason} field of the: K8s + * ContainerStateWaiting or K8s + * ContainerStateTerminated + */ + public static final AttributeKey K8S_CONTAINER_STATUS_REASON = + stringKey("k8s.container.status.reason"); + + /** + * The state of the container. K8s + * ContainerState + */ + public static final AttributeKey K8S_CONTAINER_STATUS_STATE = + stringKey("k8s.container.status.state"); + /** * The cronjob annotation placed on the CronJob, the {@code } being the annotation name, the * value being the annotation value. @@ -108,23 +126,37 @@ public final class K8sIncubatingAttributes { public static final AttributeKey K8S_CRONJOB_UID = stringKey("k8s.cronjob.uid"); /** - * The annotation key-value pairs placed on the DaemonSet. + * The annotation placed on the DaemonSet, the {@code } being the annotation name, the value + * being the annotation value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the annotation name, the value being the annotation value, even if - * the value is empty. + *

    Examples: + * + *

      + *
    • A label {@code replicas} with value {@code 1} SHOULD be recorded as the {@code + * k8s.daemonset.annotation.replicas} attribute with value {@code "1"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.daemonset.annotation.data} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_DAEMONSET_ANNOTATION = stringKeyTemplate("k8s.daemonset.annotation"); /** - * The label key-value pairs placed on the DaemonSet. + * The label placed on the DaemonSet, the {@code } being the label name, the value being the + * label value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the label name, the value being the label value, even if the value - * is empty. + *

    Examples: + * + *

      + *
    • A label {@code app} with value {@code guestbook} SHOULD be recorded as the {@code + * k8s.daemonset.label.app} attribute with value {@code "guestbook"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.daemonset.label.injected} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_DAEMONSET_LABEL = stringKeyTemplate("k8s.daemonset.label"); @@ -136,23 +168,37 @@ public final class K8sIncubatingAttributes { public static final AttributeKey K8S_DAEMONSET_UID = stringKey("k8s.daemonset.uid"); /** - * The annotation key-value pairs placed on the Deployment. + * The annotation placed on the Deployment, the {@code } being the annotation name, the value + * being the annotation value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the annotation name, the value being the annotation value, even if - * the value is empty. + *

    Examples: + * + *

      + *
    • A label {@code replicas} with value {@code 1} SHOULD be recorded as the {@code + * k8s.deployment.annotation.replicas} attribute with value {@code "1"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.deployment.annotation.data} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_DEPLOYMENT_ANNOTATION = stringKeyTemplate("k8s.deployment.annotation"); /** - * The label key-value pairs placed on the Deployment. + * The label placed on the Deployment, the {@code } being the label name, the value being the + * label value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the label name, the value being the label value, even if the value - * is empty. + *

    Examples: + * + *

      + *
    • A label {@code replicas} with value {@code 0} SHOULD be recorded as the {@code + * k8s.deployment.label.app} attribute with value {@code "guestbook"}. + *
    • A label {@code injected} with empty string value SHOULD be recorded as the {@code + * k8s.deployment.label.injected} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_DEPLOYMENT_LABEL = stringKeyTemplate("k8s.deployment.label"); @@ -163,30 +209,86 @@ public final class K8sIncubatingAttributes { /** The UID of the Deployment. */ public static final AttributeKey K8S_DEPLOYMENT_UID = stringKey("k8s.deployment.uid"); + /** + * The type of metric source for the horizontal pod autoscaler. + * + *

    Notes: + * + *

    This attribute reflects the {@code type} field of spec.metrics[] in the HPA. + */ + public static final AttributeKey K8S_HPA_METRIC_TYPE = stringKey("k8s.hpa.metric.type"); + /** The name of the horizontal pod autoscaler. */ public static final AttributeKey K8S_HPA_NAME = stringKey("k8s.hpa.name"); + /** + * The API version of the target resource to scale for the HorizontalPodAutoscaler. + * + *

    Notes: + * + *

    This maps to the {@code apiVersion} field in the {@code scaleTargetRef} of the HPA spec. + */ + public static final AttributeKey K8S_HPA_SCALETARGETREF_API_VERSION = + stringKey("k8s.hpa.scaletargetref.api_version"); + + /** + * The kind of the target resource to scale for the HorizontalPodAutoscaler. + * + *

    Notes: + * + *

    This maps to the {@code kind} field in the {@code scaleTargetRef} of the HPA spec. + */ + public static final AttributeKey K8S_HPA_SCALETARGETREF_KIND = + stringKey("k8s.hpa.scaletargetref.kind"); + + /** + * The name of the target resource to scale for the HorizontalPodAutoscaler. + * + *

    Notes: + * + *

    This maps to the {@code name} field in the {@code scaleTargetRef} of the HPA spec. + */ + public static final AttributeKey K8S_HPA_SCALETARGETREF_NAME = + stringKey("k8s.hpa.scaletargetref.name"); + /** The UID of the horizontal pod autoscaler. */ public static final AttributeKey K8S_HPA_UID = stringKey("k8s.hpa.uid"); + /** The size (identifier) of the K8s huge page. */ + public static final AttributeKey K8S_HUGEPAGE_SIZE = stringKey("k8s.hugepage.size"); + /** - * The annotation key-value pairs placed on the Job. + * The annotation placed on the Job, the {@code } being the annotation name, the value being + * the annotation value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the annotation name, the value being the annotation value, even if - * the value is empty. + *

    Examples: + * + *

      + *
    • A label {@code number} with value {@code 1} SHOULD be recorded as the {@code + * k8s.job.annotation.number} attribute with value {@code "1"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.job.annotation.data} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_JOB_ANNOTATION = stringKeyTemplate("k8s.job.annotation"); /** - * The label key-value pairs placed on the Job. + * The label placed on the Job, the {@code } being the label name, the value being the label + * value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the label name, the value being the label value, even if the value - * is empty. + *

    Examples: + * + *

      + *
    • A label {@code jobtype} with value {@code ci} SHOULD be recorded as the {@code + * k8s.job.label.jobtype} attribute with value {@code "ci"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.job.label.automated} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_JOB_LABEL = stringKeyTemplate("k8s.job.label"); @@ -198,23 +300,38 @@ public final class K8sIncubatingAttributes { public static final AttributeKey K8S_JOB_UID = stringKey("k8s.job.uid"); /** - * The annotation key-value pairs placed on the Namespace. + * The annotation placed on the Namespace, the {@code } being the annotation name, the value + * being the annotation value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the annotation name, the value being the annotation value, even if - * the value is empty. + *

    Examples: + * + *

      + *
    • A label {@code ttl} with value {@code 0} SHOULD be recorded as the {@code + * k8s.namespace.annotation.ttl} attribute with value {@code "0"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.namespace.annotation.data} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_NAMESPACE_ANNOTATION = stringKeyTemplate("k8s.namespace.annotation"); /** - * The label key-value pairs placed on the Namespace. + * The label placed on the Namespace, the {@code } being the label name, the value being the + * label value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the label name, the value being the label value, even if the value - * is empty. + *

    Examples: + * + *

      + *
    • A label {@code kubernetes.io/metadata.name} with value {@code default} SHOULD be recorded + * as the {@code k8s.namespace.label.kubernetes.io/metadata.name} attribute with value + * {@code "default"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.namespace.label.data} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_NAMESPACE_LABEL = stringKeyTemplate("k8s.namespace.label"); @@ -252,6 +369,36 @@ public final class K8sIncubatingAttributes { public static final AttributeKeyTemplate K8S_NODE_ANNOTATION = stringKeyTemplate("k8s.node.annotation"); + /** + * The status of the condition, one of True, False, Unknown. + * + *

    Notes: + * + *

    This attribute aligns with the {@code status} field of the NodeCondition + */ + public static final AttributeKey K8S_NODE_CONDITION_STATUS = + stringKey("k8s.node.condition.status"); + + /** + * The condition type of a K8s Node. + * + *

    Notes: + * + *

    K8s Node conditions as described by K8s + * documentation. + * + *

    This attribute aligns with the {@code type} field of the NodeCondition + * + *

    The set of possible values is not limited to those listed here. Managed Kubernetes + * environments, or custom controllers MAY introduce additional node condition types. When this + * occurs, the exact value as reported by the Kubernetes API SHOULD be used. + */ + public static final AttributeKey K8S_NODE_CONDITION_TYPE = + stringKey("k8s.node.condition.type"); + /** * The label placed on the Node, the {@code } being the label name, the value being the label * value, even if the value is empty. @@ -334,23 +481,37 @@ public final class K8sIncubatingAttributes { public static final AttributeKey K8S_POD_UID = stringKey("k8s.pod.uid"); /** - * The annotation key-value pairs placed on the ReplicaSet. + * The annotation placed on the ReplicaSet, the {@code } being the annotation name, the value + * being the annotation value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the annotation name, the value being the annotation value, even if - * the value is empty. + *

    Examples: + * + *

      + *
    • A label {@code replicas} with value {@code 0} SHOULD be recorded as the {@code + * k8s.replicaset.annotation.replicas} attribute with value {@code "0"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.replicaset.annotation.data} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_REPLICASET_ANNOTATION = stringKeyTemplate("k8s.replicaset.annotation"); /** - * The label key-value pairs placed on the ReplicaSet. + * The label placed on the ReplicaSet, the {@code } being the label name, the value being the + * label value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the label name, the value being the label value, even if the value - * is empty. + *

    Examples: + * + *

      + *
    • A label {@code app} with value {@code guestbook} SHOULD be recorded as the {@code + * k8s.replicaset.label.app} attribute with value {@code "guestbook"}. + *
    • A label {@code injected} with empty string value SHOULD be recorded as the {@code + * k8s.replicaset.label.injected} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_REPLICASET_LABEL = stringKeyTemplate("k8s.replicaset.label"); @@ -373,28 +534,57 @@ public final class K8sIncubatingAttributes { public static final AttributeKey K8S_RESOURCEQUOTA_NAME = stringKey("k8s.resourcequota.name"); + /** + * The name of the K8s resource a resource quota defines. + * + *

    Notes: + * + *

    The value for this attribute can be either the full {@code count/[.]} + * string (e.g., count/deployments.apps, count/pods), or, for certain core Kubernetes resources, + * just the resource name (e.g., pods, services, configmaps). Both forms are supported by + * Kubernetes for object count quotas. See Kubernetes + * Resource Quotas documentation for more details. + */ + public static final AttributeKey K8S_RESOURCEQUOTA_RESOURCE_NAME = + stringKey("k8s.resourcequota.resource_name"); + /** The UID of the resource quota. */ public static final AttributeKey K8S_RESOURCEQUOTA_UID = stringKey("k8s.resourcequota.uid"); /** - * The annotation key-value pairs placed on the StatefulSet. + * The annotation placed on the StatefulSet, the {@code } being the annotation name, the + * value being the annotation value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the annotation name, the value being the annotation value, even if - * the value is empty. + *

    Examples: + * + *

      + *
    • A label {@code replicas} with value {@code 1} SHOULD be recorded as the {@code + * k8s.statefulset.annotation.replicas} attribute with value {@code "1"}. + *
    • A label {@code data} with empty string value SHOULD be recorded as the {@code + * k8s.statefulset.annotation.data} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_STATEFULSET_ANNOTATION = stringKeyTemplate("k8s.statefulset.annotation"); /** - * The label key-value pairs placed on the StatefulSet. + * The label placed on the StatefulSet, the {@code } being the label name, the value being + * the label value, even if the value is empty. * *

    Notes: * - *

    The {@code } being the label name, the value being the label value, even if the value - * is empty. + *

    Examples: + * + *

      + *
    • A label {@code replicas} with value {@code 0} SHOULD be recorded as the {@code + * k8s.statefulset.label.app} attribute with value {@code "guestbook"}. + *
    • A label {@code injected} with empty string value SHOULD be recorded as the {@code + * k8s.statefulset.label.injected} attribute with value {@code ""}. + *
    */ public static final AttributeKeyTemplate K8S_STATEFULSET_LABEL = stringKeyTemplate("k8s.statefulset.label"); @@ -405,6 +595,14 @@ public final class K8sIncubatingAttributes { /** The UID of the StatefulSet. */ public static final AttributeKey K8S_STATEFULSET_UID = stringKey("k8s.statefulset.uid"); + /** + * The name of K8s StorageClass + * object. + */ + public static final AttributeKey K8S_STORAGECLASS_NAME = + stringKey("k8s.storageclass.name"); + /** The name of the K8s volume. */ public static final AttributeKey K8S_VOLUME_NAME = stringKey("k8s.volume.name"); @@ -413,6 +611,52 @@ public final class K8sIncubatingAttributes { // Enum definitions + /** Values for {@link #K8S_CONTAINER_STATUS_REASON}. */ + public static final class K8sContainerStatusReasonIncubatingValues { + /** The container is being created. */ + public static final String CONTAINER_CREATING = "ContainerCreating"; + + /** The container is in a crash loop back off state. */ + public static final String CRASH_LOOP_BACK_OFF = "CrashLoopBackOff"; + + /** There was an error creating the container configuration. */ + public static final String CREATE_CONTAINER_CONFIG_ERROR = "CreateContainerConfigError"; + + /** There was an error pulling the container image. */ + public static final String ERR_IMAGE_PULL = "ErrImagePull"; + + /** The container image pull is in back off state. */ + public static final String IMAGE_PULL_BACK_OFF = "ImagePullBackOff"; + + /** The container was killed due to out of memory. */ + public static final String OOM_KILLED = "OOMKilled"; + + /** The container has completed execution. */ + public static final String COMPLETED = "Completed"; + + /** There was an error with the container. */ + public static final String ERROR = "Error"; + + /** The container cannot run. */ + public static final String CONTAINER_CANNOT_RUN = "ContainerCannotRun"; + + private K8sContainerStatusReasonIncubatingValues() {} + } + + /** Values for {@link #K8S_CONTAINER_STATUS_STATE}. */ + public static final class K8sContainerStatusStateIncubatingValues { + /** The container has terminated. */ + public static final String TERMINATED = "terminated"; + + /** The container is running. */ + public static final String RUNNING = "running"; + + /** The container is waiting. */ + public static final String WAITING = "waiting"; + + private K8sContainerStatusStateIncubatingValues() {} + } + /** Values for {@link #K8S_NAMESPACE_PHASE}. */ public static final class K8sNamespacePhaseIncubatingValues { /** @@ -430,6 +674,40 @@ public static final class K8sNamespacePhaseIncubatingValues { private K8sNamespacePhaseIncubatingValues() {} } + /** Values for {@link #K8S_NODE_CONDITION_STATUS}. */ + public static final class K8sNodeConditionStatusIncubatingValues { + /** condition_true. */ + public static final String CONDITION_TRUE = "true"; + + /** condition_false. */ + public static final String CONDITION_FALSE = "false"; + + /** condition_unknown. */ + public static final String CONDITION_UNKNOWN = "unknown"; + + private K8sNodeConditionStatusIncubatingValues() {} + } + + /** Values for {@link #K8S_NODE_CONDITION_TYPE}. */ + public static final class K8sNodeConditionTypeIncubatingValues { + /** The node is healthy and ready to accept pods */ + public static final String READY = "Ready"; + + /** Pressure exists on the disk size—that is, if the disk capacity is low */ + public static final String DISK_PRESSURE = "DiskPressure"; + + /** Pressure exists on the node memory—that is, if the node memory is low */ + public static final String MEMORY_PRESSURE = "MemoryPressure"; + + /** Pressure exists on the processes—that is, if there are too many processes on the node */ + public static final String PID_PRESSURE = "PIDPressure"; + + /** The network for the node is not correctly configured */ + public static final String NETWORK_UNAVAILABLE = "NetworkUnavailable"; + + private K8sNodeConditionTypeIncubatingValues() {} + } + /** Values for {@link #K8S_VOLUME_TYPE}. */ public static final class K8sVolumeTypeIncubatingValues { /** diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/MainframeIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/MainframeIncubatingAttributes.java new file mode 100644 index 0000000..43fbb47 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/MainframeIncubatingAttributes.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +import static io.opentelemetry.api.common.AttributeKey.stringKey; + +import io.opentelemetry.api.common.AttributeKey; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 +@SuppressWarnings("unused") +public final class MainframeIncubatingAttributes { + /** Name of the logical partition that hosts a systems with a mainframe operating system. */ + public static final AttributeKey MAINFRAME_LPAR_NAME = stringKey("mainframe.lpar.name"); + + // Enum definitions + + private MainframeIncubatingAttributes() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingAttributes.java index 0e2018a..25d4c2a 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingAttributes.java @@ -68,9 +68,12 @@ public static final class OsTypeIncubatingValues { /** SunOS, Oracle Solaris */ public static final String SOLARIS = "solaris"; - /** IBM z/OS */ + /** Deprecated. Use {@code zos} instead. */ public static final String Z_OS = "z_os"; + /** IBM z/OS */ + public static final String ZOS = "zos"; + private OsTypeIncubatingValues() {} } diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingAttributes.java index 016730e..e88a7de 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingAttributes.java @@ -84,6 +84,14 @@ public final class OtelIncubatingAttributes { @Deprecated public static final AttributeKey OTEL_SCOPE_VERSION = stringKey("otel.scope.version"); + /** + * Determines whether the span has a parent span, and if so, whether it is a remote + * parent + */ + public static final AttributeKey OTEL_SPAN_PARENT_ORIGIN = + stringKey("otel.span.parent.origin"); + /** The result value of the sampler for this span */ public static final AttributeKey OTEL_SPAN_SAMPLING_RESULT = stringKey("otel.span.sampling_result"); @@ -132,6 +140,9 @@ public static final class OtelComponentTypeIncubatingValues { /** OTLP span exporter over HTTP with JSON serialization */ public static final String OTLP_HTTP_JSON_SPAN_EXPORTER = "otlp_http_json_span_exporter"; + /** Zipkin span exporter over HTTP */ + public static final String ZIPKIN_HTTP_SPAN_EXPORTER = "zipkin_http_span_exporter"; + /** OTLP log record exporter over gRPC with protobuf serialization */ public static final String OTLP_GRPC_LOG_EXPORTER = "otlp_grpc_log_exporter"; @@ -153,9 +164,33 @@ public static final class OtelComponentTypeIncubatingValues { /** OTLP metric exporter over HTTP with JSON serialization */ public static final String OTLP_HTTP_JSON_METRIC_EXPORTER = "otlp_http_json_metric_exporter"; + /** Prometheus metric exporter over HTTP with the default text-based format */ + public static final String PROMETHEUS_HTTP_TEXT_METRIC_EXPORTER = + "prometheus_http_text_metric_exporter"; + private OtelComponentTypeIncubatingValues() {} } + /** Values for {@link #OTEL_SPAN_PARENT_ORIGIN}. */ + public static final class OtelSpanParentOriginIncubatingValues { + /** The span does not have a parent, it is a root span */ + public static final String NONE = "none"; + + /** + * The span has a parent and the parent's span context isRemote() is false + */ + public static final String LOCAL = "local"; + + /** + * The span has a parent and the parent's span context isRemote() is true + */ + public static final String REMOTE = "remote"; + + private OtelSpanParentOriginIncubatingValues() {} + } + /** Values for {@link #OTEL_SPAN_SAMPLING_RESULT}. */ public static final class OtelSpanSamplingResultIncubatingValues { /** The span is not sampled and not recording */ diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java index 7d4f45e..50bd9bd 100644 --- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java @@ -71,8 +71,8 @@ public final class ProcessIncubatingAttributes { stringKey("process.creation.time"); /** - * Process environment variables, being the environment variable name, the value being the - * environment variable value. + * Process environment variables, {@code } being the environment variable name, the value + * being the environment variable value. * *

    Notes: * diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ZosIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ZosIncubatingAttributes.java new file mode 100644 index 0000000..ebe0c52 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ZosIncubatingAttributes.java @@ -0,0 +1,28 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +import static io.opentelemetry.api.common.AttributeKey.stringKey; + +import io.opentelemetry.api.common.AttributeKey; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2 +@SuppressWarnings("unused") +public final class ZosIncubatingAttributes { + /** + * The System Management Facility (SMF) Identifier uniquely identified a z/OS system within a + * SYSPLEX or mainframe environment and is used for system and performance analysis. + */ + public static final AttributeKey ZOS_SMF_ID = stringKey("zos.smf.id"); + + /** The name of the SYSPLEX to which the z/OS system belongs too. */ + public static final AttributeKey ZOS_SYSPLEX_NAME = stringKey("zos.sysplex.name"); + + // Enum definitions + + private ZosIncubatingAttributes() {} +} diff --git a/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java b/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java index 3e9e114..335fc00 100644 --- a/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java +++ b/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java @@ -7,6 +7,8 @@ public final class SchemaUrls { + public static final String V1_36_0 = "https://opentelemetry.io/schemas/1.36.0"; + public static final String V1_35_0 = "https://opentelemetry.io/schemas/1.35.0"; public static final String V1_34_0 = "https://opentelemetry.io/schemas/1.34.0"; public static final String V1_33_0 = "https://opentelemetry.io/schemas/1.33.0"; public static final String V1_32_0 = "https://opentelemetry.io/schemas/1.32.0";