Repository navigation
Add constant generation for entity types - #593
Conversation
There was a problem hiding this comment.
🟢 Approval recommended
Generation and coverage are consistent, with only a non-blocking upstream Javadoc typo remaining.
1 open finding
What changed in this PR
Adds incubating Java constants for OpenTelemetry entity types using Weaver generation.
Changes:
- Adds entity-generation configuration and template.
- Generates 24 namespace-specific entity classes.
- Tests class availability, values, stability, and deprecation.
| File | Description |
|---|---|
buildscripts/templates/registry/incubating_java/weaver.yaml |
Wires entity generation. |
buildscripts/templates/registry/incubating_java/IncubatingSemanticEntities.java.j2 |
Defines entity constant generation. |
semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingEntitiesTest.java |
Tests representative constants. |
semconv-incubating/src/test/java/io/opentelemetry/semconv/incubating/IncubatingAvailabilityTest.java |
Verifies generated classes. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AndroidIncubatingEntities.java |
Adds Android entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AppIncubatingEntities.java |
Adds application entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/AwsIncubatingEntities.java |
Adds AWS entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/BrowserIncubatingEntities.java |
Adds browser entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CicdIncubatingEntities.java |
Adds CI/CD entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudIncubatingEntities.java |
Adds cloud entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingEntities.java |
Adds Cloud Foundry entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ContainerIncubatingEntities.java |
Adds container entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingEntities.java |
Adds deployment entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeviceIncubatingEntities.java |
Adds device entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingEntities.java |
Adds FaaS entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GcpIncubatingEntities.java |
Adds GCP entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HerokuIncubatingEntities.java |
Adds Heroku entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/HostIncubatingEntities.java |
Adds host entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingEntities.java |
Adds Kubernetes entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OpenshiftIncubatingEntities.java |
Adds OpenShift entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OsIncubatingEntities.java |
Adds operating-system entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/OtelIncubatingEntities.java |
Adds deprecated OTel entity constant. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingEntities.java |
Adds process entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingEntities.java |
Adds service entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TelemetryIncubatingEntities.java |
Adds telemetry entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingEntities.java |
Adds VCS entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/WebengineIncubatingEntities.java |
Adds web-engine entity constants. |
semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ZosIncubatingEntities.java |
Adds z/OS entity constants. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
breedx-splk
left a comment
There was a problem hiding this comment.
A great start, thanks!
| public static final String AWS_EKS_TYPE = "aws.eks"; | ||
|
|
||
| /** Entities specific to Amazon Web Services. */ | ||
| public static final String AWS_LOG_TYPE = "aws.log"; |
There was a problem hiding this comment.
Some schema-v2 migration PRs are in flight which (under a one-time exception) remove or rename entities without retaining deprecated definitions:
- v2: Remove device entity in favor of a public attribute group semantic-conventions#4166
- v2: Remove Android entity in favor of a public attribute group semantic-conventions#4168
- v2: Remove aws.eks, cloud, faas, and heroku entities in favor of narrower entities with identifying attributes semantic-conventions#4169
- v2: Remove the AWS ECS entity in favor of task, cluster, and container entities semantic-conventions#4170
- v2: Remove the AWS log entity semantic-conventions#4171
- v2: Remove browser entity in favor of a public attribute group semantic-conventions#4172
- v2: Remove gcp.gce and gcp.cloud_run entities in favor of narrower entities, define identifying attributes for GCP entities semantic-conventions#4173
I think ok to merge this as-is but wanted to mention in case you'd prefer to hold for those changes.
There was a problem hiding this comment.
I think those changes would likely be included in the next semantic convention release yeah? If so, then we won't actually publish these new entity constants until updating to the latest semconv release with those changes. So no harm done.

Follows the pattern of #483, #489. Starting with incubating only.
cc @trask, @lmolkova