From 04385456c85752acbe982c316e4fc6295bf32757 Mon Sep 17 00:00:00 2001 From: Jack Berg <34418638+jack-berg@users.noreply.github.com> Date: Fri, 9 Oct 2026 13:19:11 -0500 Subject: [PATCH] Add constant generation for entity types --- .../IncubatingSemanticEntities.java.j2 | 36 +++++++++ .../registry/incubating_java/weaver.yaml | 12 +++ .../incubating/AndroidIncubatingEntities.java | 16 ++++ .../incubating/AppIncubatingEntities.java | 16 ++++ .../incubating/AwsIncubatingEntities.java | 22 ++++++ .../incubating/BrowserIncubatingEntities.java | 23 ++++++ .../incubating/CicdIncubatingEntities.java | 30 +++++++ .../incubating/CloudIncubatingEntities.java | 16 ++++ .../CloudfoundryIncubatingEntities.java | 28 +++++++ .../ContainerIncubatingEntities.java | 22 ++++++ .../DeploymentIncubatingEntities.java | 16 ++++ .../incubating/DeviceIncubatingEntities.java | 16 ++++ .../incubating/FaasIncubatingEntities.java | 16 ++++ .../incubating/GcpIncubatingEntities.java | 40 ++++++++++ .../incubating/HerokuIncubatingEntities.java | 16 ++++ .../incubating/HostIncubatingEntities.java | 22 ++++++ .../incubating/K8sIncubatingEntities.java | 78 +++++++++++++++++++ .../OpenshiftIncubatingEntities.java | 20 +++++ .../incubating/OsIncubatingEntities.java | 23 ++++++ .../incubating/OtelIncubatingEntities.java | 20 +++++ .../incubating/ProcessIncubatingEntities.java | 29 +++++++ .../incubating/ServiceIncubatingEntities.java | 43 ++++++++++ .../TelemetryIncubatingEntities.java | 22 ++++++ .../incubating/VcsIncubatingEntities.java | 19 +++++ .../WebengineIncubatingEntities.java | 19 +++++ .../incubating/ZosIncubatingEntities.java | 16 ++++ .../IncubatingAvailabilityTest.java | 28 +++++++ .../incubating/IncubatingEntitiesTest.java | 35 +++++++++ 28 files changed, 699 insertions(+) create mode 100644 buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AndroidIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/BrowserIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeviceIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HerokuIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HostIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OpenshiftIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TelemetryIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/WebengineIncubatingEntities.java create mode 100644 semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ZosIncubatingEntities.java create mode 100644 semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingEntitiesTest.java diff --git a/buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 b/buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 new file mode 100644 index 00000000..ff17452e --- /dev/null +++ b/buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 @@ -0,0 +1,36 @@ +{%- set my_class_name = ctx.root_namespace | pascal_case ~ "IncubatingEntities" -%} + +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class {{ my_class_name }} { + {%- for entity in ctx.entities -%} + {%- if entity is experimental or entity is stable -%} + {%- if entity is deprecated -%} + {%- if entity.deprecated.note == "Uncategorized." -%} + {%- set deprecated_javadoc = "@deprecated" -%} + {%- else -%} + {%- set deprecated_javadoc = "@deprecated " ~ entity.deprecated.note -%} + {%- endif -%} + {%- else -%} + {%- set deprecated_javadoc = "" -%} + {%- endif -%} + {%- set brief = entity.brief | trim -%} + {%- if not brief.endswith(".") -%} + {%- set brief = brief ~ "." -%} + {%- endif -%} + {{ [brief, concat_if("\n\nNotes:\n\n", entity.note), deprecated_javadoc] | comment }} + {%- if entity is deprecated -%} + @Deprecated + {% endif %} + public static final String {{ entity.name | screaming_snake_case }}_TYPE = "{{ entity.name }}"; + {% endif %} + {% endfor %} + + private {{ my_class_name }}() {} +} diff --git a/buildscripts/templates/registry/incubating_java/weaver.yaml b/buildscripts/templates/registry/incubating_java/weaver.yaml index f6224dfa..6d2dcb92 100644 --- a/buildscripts/templates/registry/incubating_java/weaver.yaml +++ b/buildscripts/templates/registry/incubating_java/weaver.yaml @@ -27,6 +27,18 @@ templates: }) application_mode: each file_name: "{{ctx.root_namespace | pascal_case}}IncubatingAttributes.java" + - pattern: IncubatingSemanticEntities.java.j2 + filter: > + semconv_signal("entity"; { + "exclude_root_namespace": $excluded_namespaces + }) + | group_by(.root_namespace) + | map({ + root_namespace: .[0].root_namespace, + entities: sort_by(.name) + }) + application_mode: each + file_name: "{{ctx.root_namespace | pascal_case}}IncubatingEntities.java" - pattern: IncubatingSemanticEvents.java.j2 filter: > semconv_signal("event"; { diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AndroidIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AndroidIncubatingEntities.java new file mode 100644 index 00000000..ee7ebbde --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AndroidIncubatingEntities.java @@ -0,0 +1,16 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class AndroidIncubatingEntities { + /** The Android platform on which the Android application is running. */ + public static final String ANDROID_TYPE = "android"; + + private AndroidIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingEntities.java new file mode 100644 index 00000000..cb2b50bf --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingEntities.java @@ -0,0 +1,16 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class AppIncubatingEntities { + /** An app used directly by end users — like mobile, web, or desktop. */ + public static final String APP_TYPE = "app"; + + private AppIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingEntities.java new file mode 100644 index 00000000..2bf0b05c --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingEntities.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class AwsIncubatingEntities { + /** Entities used by AWS Elastic Container Service (ECS). */ + public static final String AWS_ECS_TYPE = "aws.ecs"; + + /** Entities used by AWS Elastic Kubernetes Service (EKS). */ + public static final String AWS_EKS_TYPE = "aws.eks"; + + /** Entities specific to Amazon Web Services. */ + public static final String AWS_LOG_TYPE = "aws.log"; + + private AwsIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/BrowserIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/BrowserIncubatingEntities.java new file mode 100644 index 00000000..53e5c551 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/BrowserIncubatingEntities.java @@ -0,0 +1,23 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class BrowserIncubatingEntities { + /** + * The web browser in which the application represented by the resource is running. The {@code + * browser.*} attributes MUST be used only for resources that represent applications running in a + * web browser (regardless of whether running on a mobile or desktop device). + */ + public static final String BROWSER_TYPE = "browser"; + + /** The web page document loaded in the browser. */ + public static final String BROWSER_DOCUMENT_TYPE = "browser.document"; + + private BrowserIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingEntities.java new file mode 100644 index 00000000..cdd62d07 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingEntities.java @@ -0,0 +1,30 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class CicdIncubatingEntities { + /** A pipeline is a series of automated steps that helps software teams deliver code. */ + public static final String CICD_PIPELINE_TYPE = "cicd.pipeline"; + + /** A pipeline run is a singular execution of a given pipeline's tasks. */ + public static final String CICD_PIPELINE_RUN_TYPE = "cicd.pipeline.run"; + + /** + * A CI/CD worker is a component of the CI/CD system that performs work (eg. running pipeline + * tasks or performing sync). A single pipeline run may be distributed across multiple workers. + * Any OpenTelemetry signal associated with a worker should be associated to the worker that + * performed the corresponding work. For example, when a pipeline run involves several workers, + * its task run spans may reference the different {@code cicd.worker} resources corresponding to + * the workers that executed each task run. The pipeline run's parent span may instead reference + * the CI/CD controller as the {@code cicd.worker} resource. + */ + public static final String CICD_WORKER_TYPE = "cicd.worker"; + + private CicdIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingEntities.java new file mode 100644 index 00000000..6af56aea --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingEntities.java @@ -0,0 +1,16 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class CloudIncubatingEntities { + /** A cloud environment (e.g. GCP, Azure, AWS). */ + public static final String CLOUD_TYPE = "cloud"; + + private CloudIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingEntities.java new file mode 100644 index 00000000..2c2cae84 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingEntities.java @@ -0,0 +1,28 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class CloudfoundryIncubatingEntities { + /** The application which is monitored. */ + public static final String CLOUDFOUNDRY_APP_TYPE = "cloudfoundry.app"; + + /** The organization of the application which is monitored. */ + public static final String CLOUDFOUNDRY_ORG_TYPE = "cloudfoundry.org"; + + /** The process of the application which is monitored. */ + public static final String CLOUDFOUNDRY_PROCESS_TYPE = "cloudfoundry.process"; + + /** The space of the application which is monitored. */ + public static final String CLOUDFOUNDRY_SPACE_TYPE = "cloudfoundry.space"; + + /** The system component which is monitored. */ + public static final String CLOUDFOUNDRY_SYSTEM_TYPE = "cloudfoundry.system"; + + private CloudfoundryIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingEntities.java new file mode 100644 index 00000000..b5241026 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingEntities.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class ContainerIncubatingEntities { + /** A container instance. */ + public static final String CONTAINER_TYPE = "container"; + + /** The image used for the container. */ + public static final String CONTAINER_IMAGE_TYPE = "container.image"; + + /** The runtime being used to run the container. */ + public static final String CONTAINER_RUNTIME_TYPE = "container.runtime"; + + private ContainerIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingEntities.java new file mode 100644 index 00000000..429c5a8a --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingEntities.java @@ -0,0 +1,16 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class DeploymentIncubatingEntities { + /** The software deployment. */ + public static final String DEPLOYMENT_TYPE = "deployment"; + + private DeploymentIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeviceIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeviceIncubatingEntities.java new file mode 100644 index 00000000..dad01f2b --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeviceIncubatingEntities.java @@ -0,0 +1,16 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class DeviceIncubatingEntities { + /** The device on which the process represented by this resource is running. */ + public static final String DEVICE_TYPE = "device"; + + private DeviceIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingEntities.java new file mode 100644 index 00000000..9bfface1 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingEntities.java @@ -0,0 +1,16 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class FaasIncubatingEntities { + /** A serverless instance. */ + public static final String FAAS_TYPE = "faas"; + + private FaasIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingEntities.java new file mode 100644 index 00000000..a8949fa5 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingEntities.java @@ -0,0 +1,40 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class GcpIncubatingEntities { + /** + * Attributes denoting data from an Application in AppHub. See AppHub overview. + */ + public static final String GCP_APPHUB_APPLICATION_TYPE = "gcp.apphub.application"; + + /** + * Attributes denoting data from a Service in AppHub. See AppHub overview. + */ + public static final String GCP_APPHUB_SERVICE_TYPE = "gcp.apphub.service"; + + /** + * Attributes denoting data from a Workload in AppHub. See AppHub overview. + */ + public static final String GCP_APPHUB_WORKLOAD_TYPE = "gcp.apphub.workload"; + + /** Resource used by Google Cloud Run. */ + public static final String GCP_CLOUD_RUN_TYPE = "gcp.cloud_run"; + + /** Resources used by Google Compute Engine (GCE). */ + public static final String GCP_GCE_TYPE = "gcp.gce"; + + /** A GCE instance group manager. */ + public static final String GCP_GCE_INSTANCE_GROUP_MANAGER_TYPE = "gcp.gce.instance_group_manager"; + + private GcpIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HerokuIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HerokuIncubatingEntities.java new file mode 100644 index 00000000..e2b0f622 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HerokuIncubatingEntities.java @@ -0,0 +1,16 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class HerokuIncubatingEntities { + /** Heroku dyno metadata. */ + public static final String HEROKU_TYPE = "heroku"; + + private HerokuIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HostIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HostIncubatingEntities.java new file mode 100644 index 00000000..b5457333 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HostIncubatingEntities.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class HostIncubatingEntities { + /** + * A host is defined as a computing instance. For example, physical servers, virtual machines, + * switches or disk array. + */ + public static final String HOST_TYPE = "host"; + + /** A host's CPU information. */ + public static final String HOST_CPU_TYPE = "host.cpu"; + + private HostIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingEntities.java new file mode 100644 index 00000000..7ae5f246 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingEntities.java @@ -0,0 +1,78 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class K8sIncubatingEntities { + /** A Kubernetes Cluster. */ + public static final String K8S_CLUSTER_TYPE = "k8s.cluster"; + + /** + * A container in a PodTemplate. + */ + public static final String K8S_CONTAINER_TYPE = "k8s.container"; + + /** A Kubernetes CronJob object. */ + public static final String K8S_CRONJOB_TYPE = "k8s.cronjob"; + + /** A Kubernetes DaemonSet object. */ + public static final String K8S_DAEMONSET_TYPE = "k8s.daemonset"; + + /** A Kubernetes Deployment object. */ + public static final String K8S_DEPLOYMENT_TYPE = "k8s.deployment"; + + /** A Kubernetes HorizontalPodAutoscaler object. */ + public static final String K8S_HPA_TYPE = "k8s.hpa"; + + /** A Kubernetes Job object. */ + public static final String K8S_JOB_TYPE = "k8s.job"; + + /** A Kubernetes Namespace. */ + public static final String K8S_NAMESPACE_TYPE = "k8s.namespace"; + + /** A Kubernetes Node object. */ + public static final String K8S_NODE_TYPE = "k8s.node"; + + /** A Kubernetes Node System Container. */ + public static final String K8S_NODE_SYSTEM_CONTAINER_TYPE = "k8s.node.system_container"; + + /** + * A Kubernetes PersistentVolume + * object. + */ + public static final String K8S_PERSISTENTVOLUME_TYPE = "k8s.persistentvolume"; + + /** + * A Kubernetes PersistentVolumeClaim + * object. + */ + public static final String K8S_PERSISTENTVOLUMECLAIM_TYPE = "k8s.persistentvolumeclaim"; + + /** A Kubernetes Pod object. */ + public static final String K8S_POD_TYPE = "k8s.pod"; + + /** A Kubernetes ReplicaSet object. */ + public static final String K8S_REPLICASET_TYPE = "k8s.replicaset"; + + /** A Kubernetes ReplicationController object. */ + public static final String K8S_REPLICATIONCONTROLLER_TYPE = "k8s.replicationcontroller"; + + /** A Kubernetes ResourceQuota object. */ + public static final String K8S_RESOURCEQUOTA_TYPE = "k8s.resourcequota"; + + /** A Kubernetes Service object. */ + public static final String K8S_SERVICE_TYPE = "k8s.service"; + + /** A Kubernetes StatefulSet object. */ + public static final String K8S_STATEFULSET_TYPE = "k8s.statefulset"; + + private K8sIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OpenshiftIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OpenshiftIncubatingEntities.java new file mode 100644 index 00000000..cd427f19 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OpenshiftIncubatingEntities.java @@ -0,0 +1,20 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class OpenshiftIncubatingEntities { + /** + * An OpenShift ClusterResourceQuota + * object. + */ + public static final String OPENSHIFT_CLUSTERQUOTA_TYPE = "openshift.clusterquota"; + + private OpenshiftIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingEntities.java new file mode 100644 index 00000000..a8b7293a --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingEntities.java @@ -0,0 +1,23 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class OsIncubatingEntities { + /** + * The operating system (OS) on which the process represented by this resource is running. + * + *
Notes: + * + *
In case of virtualized environments, this is the operating system as it is observed by the + * process, i.e., the virtualized guest rather than the underlying host. + */ + public static final String OS_TYPE = "os"; + + private OsIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingEntities.java new file mode 100644 index 00000000..6f7efe6e --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingEntities.java @@ -0,0 +1,20 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class OtelIncubatingEntities { + /** + * Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's concepts. + * + * @deprecated Obsoleted. + */ + @Deprecated public static final String OTEL_SCOPE_TYPE = "otel.scope"; + + private OtelIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingEntities.java new file mode 100644 index 00000000..73d7c8f2 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingEntities.java @@ -0,0 +1,29 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class ProcessIncubatingEntities { + /** An operating system process. */ + public static final String PROCESS_TYPE = "process"; + + /** + * The executable of a process. + * + *
Notes: + * + *
Represents the executable file associated with a process. A single executable may be run my + * multiple process instances. + */ + public static final String PROCESS_EXECUTABLE_TYPE = "process.executable"; + + /** The single (language) runtime instance which is monitored. */ + public static final String PROCESS_RUNTIME_TYPE = "process.runtime"; + + private ProcessIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingEntities.java new file mode 100644 index 00000000..e848bb2c --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingEntities.java @@ -0,0 +1,43 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class ServiceIncubatingEntities { + /** + * A logical unit of an application or system that performs a specific function. + * + *
Notes: + * + *
A service is a logical component used in a system, product or application. Examples include + * a microservice, a database, a Kubernetes deployment. + */ + public static final String SERVICE_TYPE = "service"; + + /** + * A unique instance of a logical service. + * + *
Notes: + * + *
A {@code service.instance} uniquely identifies an instance of a logical service. For + * example, a container that is part of a Kubernetes deployment that offers a service. + */ + public static final String SERVICE_INSTANCE_TYPE = "service.instance"; + + /** + * Groups related services that compose a system or application under a common namespace. + * + *
Notes: + * + *
A {@code service.namespace} can be used to logically organize and group related services + * under a common namespace. + */ + public static final String SERVICE_NAMESPACE_TYPE = "service.namespace"; + + private ServiceIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TelemetryIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TelemetryIncubatingEntities.java new file mode 100644 index 00000000..7237c575 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TelemetryIncubatingEntities.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class TelemetryIncubatingEntities { + /** + * The distribution of telemetry SDK used to capture data recorded by the instrumentation + * libraries. + */ + public static final String TELEMETRY_DISTRO_TYPE = "telemetry.distro"; + + /** The telemetry SDK used to capture data recorded by the instrumentation libraries. */ + public static final String TELEMETRY_SDK_TYPE = "telemetry.sdk"; + + private TelemetryIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingEntities.java new file mode 100644 index 00000000..a47d4a3e --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingEntities.java @@ -0,0 +1,19 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class VcsIncubatingEntities { + /** A reference to a specific version in the Version Control System. */ + public static final String VCS_REF_TYPE = "vcs.ref"; + + /** A repository in the Version Control System. */ + public static final String VCS_REPOSITORY_TYPE = "vcs.repository"; + + private VcsIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/WebengineIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/WebengineIncubatingEntities.java new file mode 100644 index 00000000..1056dad5 --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/WebengineIncubatingEntities.java @@ -0,0 +1,19 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class WebengineIncubatingEntities { + /** + * Resource describing the packaged software running the application code. Web engines are + * typically executed using process.runtime. + */ + public static final String WEBENGINE_TYPE = "webengine"; + + private WebengineIncubatingEntities() {} +} diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ZosIncubatingEntities.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ZosIncubatingEntities.java new file mode 100644 index 00000000..a5ed51dc --- /dev/null +++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ZosIncubatingEntities.java @@ -0,0 +1,16 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +// DO NOT EDIT, this is an Auto-generated file from +// buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 +@SuppressWarnings("unused") +public final class ZosIncubatingEntities { + /** A software resource running on a z/OS system. */ + public static final String ZOS_SOFTWARE_TYPE = "zos.software"; + + private ZosIncubatingEntities() {} +} diff --git a/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java b/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java index 3001e47d..f7fe384e 100644 --- a/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java +++ b/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java @@ -93,6 +93,34 @@ void available() { isValidClass("io.opentelemetry.semconv.SchemaUrls"); } + @Test + void availableEntities() { + isValidClass("io.opentelemetry.semconv.incubating.AndroidIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.AppIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.AwsIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.BrowserIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.CicdIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.CloudIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.CloudfoundryIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.ContainerIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.DeploymentIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.DeviceIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.FaasIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.GcpIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.HerokuIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.HostIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.K8sIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.OpenshiftIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.OsIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.OtelIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.ProcessIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.ServiceIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.TelemetryIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.VcsIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.WebengineIncubatingEntities"); + isValidClass("io.opentelemetry.semconv.incubating.ZosIncubatingEntities"); + } + @Test void availableEvents() { isValidClass("io.opentelemetry.semconv.incubating.AppIncubatingEvents"); diff --git a/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingEntitiesTest.java b/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingEntitiesTest.java new file mode 100644 index 00000000..b66bdbba --- /dev/null +++ b/semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingEntitiesTest.java @@ -0,0 +1,35 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.semconv.incubating; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.lang.reflect.Field; +import org.junit.jupiter.api.Test; + +class IncubatingEntitiesTest { + + @Test + void stableEntityTypes() { + assertThat(ServiceIncubatingEntities.SERVICE_TYPE).isEqualTo("service"); + assertThat(ServiceIncubatingEntities.SERVICE_INSTANCE_TYPE).isEqualTo("service.instance"); + assertThat(ServiceIncubatingEntities.SERVICE_NAMESPACE_TYPE).isEqualTo("service.namespace"); + } + + @Test + void experimentalEntityTypes() { + assertThat(K8sIncubatingEntities.K8S_POD_TYPE).isEqualTo("k8s.pod"); + assertThat(K8sIncubatingEntities.K8S_NODE_SYSTEM_CONTAINER_TYPE) + .isEqualTo("k8s.node.system_container"); + } + + @Test + void deprecatedEntityTypes() throws ReflectiveOperationException { + Field field = OtelIncubatingEntities.class.getField("OTEL_SCOPE_TYPE"); + assertThat(field.get(null)).isEqualTo("otel.scope"); + assertThat(field.isAnnotationPresent(Deprecated.class)).isTrue(); + } +}