1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2026-06-03 18:35:08 +02:00
Commit Graph

4 Commits

Author SHA1 Message Date
Tyler Yahn 2d4c9dc115 Add semconv/v1.32.0 (#6782)
- Add the new metric API package structure prototyped in
https://github.com/MrAlias/semconv-go

  Prototypes of new metric API use:
   - https://github.com/MrAlias/opentelemetry-go-contrib/pull/6136
   - https://github.com/MrAlias/opentelemetry-go-contrib/pull/6135
   - https://github.com/MrAlias/opentelemetry-go-contrib/pull/6134
- Generate `semconv/v1.32.0`
- Drop the `kestrel` metric namespace as this is a Java specific
technology

## [`v1.32.0` semantic convention release
notes](https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.32.0):

<div data-pjax="true" data-test-selector="body-content"
data-view-component="true" class="markdown-body my-3"><p>📣 This release
is the second release candidate for the Database Semantic Conventions,
with <strong>db conventions stability planned to be declared in the
subsequent release</strong>.</p>
<h3>🛑 Breaking changes 🛑</h3>
<ul>
<li><code>device</code>: Change the definition of <code>device.id</code>
and make it opt-in. (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1874"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1874/hovercard">#1874</a>,
<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1951"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1951/hovercard">#1951</a>)</li>
<li><code>feature_flag</code>: Rename <code>evaluation</code> to
<code>result</code> for feature flag evaluation result attributes (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1989"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1989/hovercard">#1989</a>)</li>
</ul>
<h3>🚀 New components 🚀</h3>
<ul>
<li><code>app</code>: Create <code>app.installation.id</code> attribute
(<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1874"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1874/hovercard">#1874</a>,
<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1897"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1897/hovercard">#1897</a>)</li>
<li><code>cpython</code>: Add CPython runtime garbage collector metrics
(<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1930"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1930/hovercard">#1930</a>)</li>
</ul>
<h3>💡 Enhancements 💡</h3>
<ul>
<li><code>vcs</code>: Add owner and provider name to VCS attribute
registry (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1452"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1452/hovercard">#1452</a>)</li>
<li><code>vcs</code>: Remove fallback value for VCS provider name
attribute (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/2020"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2020/hovercard">#2020</a>)</li>
<li><code>db</code>: Truncate <code>db.query.summary</code> to 255
characters if parsed from the query (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1978"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1978/hovercard">#1978</a>)</li>
<li><code>db</code>: Normalize spaces in <code>db.operation.name</code>
(if any) (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/2028"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2028/hovercard">#2028</a>)</li>
<li><code>db</code>: <code>db.operation.parameter.&lt;key&gt;</code>
should not be captured for batch operations (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/2026"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2026/hovercard">#2026</a>)</li>
<li><code>db</code>: Add <code>db.stored_procedure.name</code> (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1491"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1491/hovercard">#1491</a>)</li>
<li><code>gcp</code>: Adds GCP AppHub labels for resource. (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/2006"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2006/hovercard">#2006</a>)</li>
<li><code>error</code>: Add <code>error.message</code> property for
human-readable error message on events. (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1992"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1992/hovercard">#1992</a>)</li>
<li><code>profile</code>: Extend the list of known frame types with a
value for Go and Rust (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/2003"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2003/hovercard">#2003</a>)</li>
<li><code>otel</code>: Adds SDK self-monitoring metrics for log
processing (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1921"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1921/hovercard">#1921</a>)</li>
</ul>
2025-05-20 10:33:50 -07:00
Tyler Yahn 95e5bbab98 Generate v1.31.0 semconv (#6479)
- Generate `semconv/v1.31.0`
- Stop generating deprecated metric semconv similar to all other
generation
- Fix acronyms:
  - `ReplicationController`
  - `ResourceQuota`

## [`v1.31.0` semantic convention release
notes](https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.31.0):

<h3>🛑 Breaking changes 🛑</h3>
<ul>
<li>
<p><code>code</code>: <code>code.function.name</code> value should
contain the fully qualified function name, <code>code.namespace</code>
is now deprecated (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1677"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1677/hovercard">#1677</a>)</p>
</li>
<li>
<p><code>gen-ai</code>: Introduce <code>gen_ai.output.type</code>and
deprecate <code>gen_ai.openai.request.response_format</code> (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1757"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1757/hovercard">#1757</a>)</p>
</li>
<li>
<p><code>mobile</code>: Rework <code>device.app.lifecycle</code> mobile
event. (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1880"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1880/hovercard">#1880</a>)<br>
The <code>device.app.lifecycle</code> event has been reworked to use
attributes instead<br>
of event body fields. The <code>ios.app.state</code> and
<code>android.app.state</code> attributes<br>
have been reintroduced to the attribute registry.</p>
</li>
<li>
<p><code>system</code>: Move CPU-related system.cpu.* metrics to CPU
namespace (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1873"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1873/hovercard">#1873</a>)</p>
</li>
<li>
<p><code>k8s</code>: Change k8s.replication_controller metrics to
k8s.replicationcontroller (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1848"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1848/hovercard">#1848</a>)</p>
</li>
<li>
<p><code>db</code>: Rename <code>db.system</code> to
<code>db.system.name</code> in database metrics, and update the values
to be consistent with database spans. (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1581"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1581/hovercard">#1581</a>)</p>
</li>
<li>
<p><code>session</code>: Move <code>session.id</code> and
<code>session.previous_id</code> from body fields to event attributes,
and yamlize <code>session.start</code> and <code>session.end</code>
events. (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1845"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1845/hovercard">#1845</a>)<br>
As part of the ongoing migration of event fields from LogRecord body to
extended/complex attributes, the <code>session.start</code> and
<code>session.end</code> events have been redefined.</p>
</li>
</ul>
<h3>💡 Enhancements 💡</h3>
<ul>
<li>
<p><code>code</code>: Mark <code>code.*</code> semantic conventions as
release candidate (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1377"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1377/hovercard">#1377</a>)</p>
</li>
<li>
<p><code>gen-ai</code>: Added AI Agent Semantic Convention (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1732"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1732/hovercard">#1732</a>,
<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1739"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1739/hovercard">#1739</a>)</p>
</li>
<li>
<p><code>db</code>: Add database-specific notes on db.operation.name and
db.collection.name for Cassandra, Cosmos DB, HBase, MongoDB, and Redis,
covering their batch/bulk terms and lack of cross-table queries. (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1863"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1863/hovercard">#1863</a>,
<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1573"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1573/hovercard">#1573</a>)</p>
</li>
<li>
<p><code>gen-ai</code>: Adds <code>gen_ai.request.choice.count</code>
span attribute (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1888"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1888/hovercard">#1888</a>)<br>
Enables recording target number of completions to generate</p>
</li>
<li>
<p><code>enduser</code>: Undeprecate 'enduser.id' and introduce new
attribute <code>enduser.pseudo.id</code> (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1104"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1104/hovercard">#1104</a>)<br>
The new attribute <code>enduser.pseudo.id</code> is intended to provide
a unique identifier of a pseudonymous enduser.</p>
</li>
<li>
<p><code>k8s</code>: Add <code>k8s.hpa</code>,
<code>k8s.resourcequota</code> and
<code>k8s.replicationcontroller</code> attributes and resources (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1656"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1656/hovercard">#1656</a>)</p>
</li>
<li>
<p><code>k8s</code>: How to populate resource attributes based on
attributes, labels and transformation (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/236"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/236/hovercard">#236</a>)</p>
</li>
<li>
<p><code>process</code>: Adjust the semantic expectations for
<code>process.executable.name</code> (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1736"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1736/hovercard">#1736</a>)</p>
</li>
<li>
<p><code>otel</code>: Adds SDK self-monitoring metrics for span
processing (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1631"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1631/hovercard">#1631</a>)</p>
</li>
<li>
<p><code>cicd</code>: Adds a new attribute
<code>cicd.pipeline.run.url.full</code> and corrects the attribute
description of <code>cicd.pipeline.task.run.url.full</code> (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1796"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1796/hovercard">#1796</a>)</p>
</li>
<li>
<p><code>user-agent</code>: Add <code>user_agent.os.name</code> and
<code>user_agent.os.version</code> attributes (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1433"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1433/hovercard">#1433</a>)</p>
</li>
</ul>
<h3>🧰 Bug fixes 🧰</h3>
<ul>
<li><code>process</code>: Fix units of
process.open_file_descriptor.count and process.context_switches (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/1662"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1662/hovercard">#1662</a>)</li>
</ul>

---------

Co-authored-by: Robert Pająk <pellared@hotmail.com>
2025-03-26 08:05:18 +01:00
Tyler Yahn 27aaa7aacb Generate the semconv/v1.28.0 package (#6236)
Resolve #6226 

Generates the `v1.28.0` version of semantic conventions in the added
`go.opentelemetry.io/otel/semconv/v1.28.0` package.

## Key differences from `v1.27.0`

### Added to `v1.28.0`

- `AzNamespace`
- `AzNamespaceKey`
- `CloudfoundryAppID`
- `CloudfoundryAppIDKey`
- `CloudfoundryAppInstanceID`
- `CloudfoundryAppInstanceIDKey`
- `CloudfoundryAppName`
- `CloudfoundryAppNameKey`
- `CloudfoundryOrgID`
- `CloudfoundryOrgIDKey`
- `CloudfoundryOrgName`
- `CloudfoundryOrgNameKey`
- `CloudfoundryProcessID`
- `CloudfoundryProcessIDKey`
- `CloudfoundryProcessType`
- `CloudfoundryProcessTypeKey`
- `CloudfoundrySpaceID`
- `CloudfoundrySpaceIDKey`
- `CloudfoundrySpaceName`
- `CloudfoundrySpaceNameKey`
- `CloudfoundrySystemID`
- `CloudfoundrySystemIDKey`
- `CloudfoundrySystemInstanceID`
- `CloudfoundrySystemInstanceIDKey`
- `ContainerCPUUsageDescription`
- `ContainerCPUUsageName`
- `ContainerCPUUsageUnit`
- `ContainerCsiPluginName`
- `ContainerCsiPluginNameKey`
- `ContainerCsiVolumeID`
- `ContainerCsiVolumeIDKey`
- `DBResponseStatusCode`
- `DBResponseStatusCodeKey`
- `FileAccessed`
- `FileAccessedKey`
- `FileAttributes`
- `FileAttributesKey`
- `FileChanged`
- `FileChangedKey`
- `FileCreated`
- `FileCreatedKey`
- `FileForkName`
- `FileForkNameKey`
- `FileGroupID`
- `FileGroupIDKey`
- `FileGroupName`
- `FileGroupNameKey`
- `FileInode`
- `FileInodeKey`
- `FileMode`
- `FileModeKey`
- `FileModified`
- `FileModifiedKey`
- `FileOwnerID`
- `FileOwnerIDKey`
- `FileOwnerName`
- `FileOwnerNameKey`
- `FileSymbolicLinkTargetPath`
- `FileSymbolicLinkTargetPathKey`
- `GenAIOpenaiRequestResponseFormatJSONObject`
- `GenAIOpenaiRequestResponseFormatJSONSchema`
- `GenAIOpenaiRequestResponseFormatKey`
- `GenAIOpenaiRequestResponseFormatText`
- `GenAIOpenaiRequestSeed`
- `GenAIOpenaiRequestSeedKey`
- `GenAIOpenaiRequestServiceTierAuto`
- `GenAIOpenaiRequestServiceTierDefault`
- `GenAIOpenaiRequestServiceTierKey`
- `GenAIOpenaiResponseServiceTier`
- `GenAIOpenaiResponseServiceTierKey`
- `HwEnergyDescription`
- `HwEnergyName`
- `HwEnergyUnit`
- `HwErrorsDescription`
- `HwErrorsName`
- `HwErrorsUnit`
- `HwID`
- `HwIDKey`
- `HwName`
- `HwNameKey`
- `HwParent`
- `HwParentKey`
- `HwPowerDescription`
- `HwPowerName`
- `HwPowerUnit`
- `HwStateDegraded`
- `HwStateFailed`
- `HwStateKey`
- `HwStateOk`
- `HwStatusDescription`
- `HwStatusName`
- `HwStatusUnit`
- `HwTypeBattery`
- `HwTypeCPU`
- `HwTypeDiskController`
- `HwTypeEnclosure`
- `HwTypeFan`
- `HwTypeGpu`
- `HwTypeKey`
- `HwTypeLogicalDisk`
- `HwTypeMemory`
- `HwTypeNetwork`
- `HwTypePhysicalDisk`
- `HwTypePowerSupply`
- `HwTypeTapeDrive`
- `HwTypeTemperature`
- `HwTypeVoltage`
- `K8SNodeCPUTimeDescription`
- `K8SNodeCPUTimeName`
- `K8SNodeCPUTimeUnit`
- `K8SNodeCPUUsageDescription`
- `K8SNodeCPUUsageName`
- `K8SNodeCPUUsageUnit`
- `K8SNodeMemoryUsageDescription`
- `K8SNodeMemoryUsageName`
- `K8SNodeMemoryUsageUnit`
- `K8SPodCPUTimeDescription`
- `K8SPodCPUTimeName`
- `K8SPodCPUTimeUnit`
- `K8SPodCPUUsageDescription`
- `K8SPodCPUUsageName`
- `K8SPodCPUUsageUnit`
- `K8SPodMemoryUsageDescription`
- `K8SPodMemoryUsageName`
- `K8SPodMemoryUsageUnit`
- `K8SVolumeName`
- `K8SVolumeNameKey`
- `K8SVolumeTypeConfigMap`
- `K8SVolumeTypeDownwardAPI`
- `K8SVolumeTypeEmptyDir`
- `K8SVolumeTypeKey`
- `K8SVolumeTypeLocal`
- `K8SVolumeTypePersistentVolumeClaim`
- `K8SVolumeTypeSecret`
- `MessagingClientSentMessagesDescription`
- `MessagingClientSentMessagesName`
- `MessagingClientSentMessagesUnit`
- `MessagingOperationTypeSend`
- `ProcessArgsCount`
- `ProcessArgsCountKey`
- `ProcessExecutableBuildIDGnu`
- `ProcessExecutableBuildIDGnuKey`
- `ProcessExecutableBuildIDGo`
- `ProcessExecutableBuildIDGoKey`
- `ProcessExecutableBuildIDProfiling`
- `ProcessExecutableBuildIDProfilingKey`
- `ProcessTitle`
- `ProcessTitleKey`
- `ProcessUptimeDescription`
- `ProcessUptimeName`
- `ProcessUptimeUnit`
- `ProcessWorkingDirectory`
- `ProcessWorkingDirectoryKey`
- `ProfileFrameTypeCpython`
- `ProfileFrameTypeDotnet`
- `ProfileFrameTypeJVM`
- `ProfileFrameTypeKernel`
- `ProfileFrameTypeKey`
- `ProfileFrameTypeNative`
- `ProfileFrameTypePHP`
- `ProfileFrameTypePerl`
- `ProfileFrameTypeRuby`
- `ProfileFrameTypeV8JS`
- `SystemDiskLimitDescription`
- `SystemDiskLimitName`
- `SystemDiskLimitUnit`
- `SystemFilesystemLimitDescription`
- `SystemFilesystemLimitName`
- `SystemFilesystemLimitUnit`
- `SystemFilesystemUsageDescription`

### Dropped deprecations

- `AndroidStateBackground`
- `AndroidStateCreated`
- `AndroidStateForeground`
- `AndroidStateKey`
- `DBCosmosDBStatusCode`
- `DBCosmosDBStatusCodeKey`
- `GenAICompletion`
- `GenAICompletionKey`
- `GenAIPrompt`
- `GenAIPromptKey`

### Dropping the `aspnetcore` namespace

- `ASPNETCoreDiagnosticsExceptionResultAborted`
- `ASPNETCoreDiagnosticsExceptionResultHandled`
- `ASPNETCoreDiagnosticsExceptionResultKey`
- `ASPNETCoreDiagnosticsExceptionResultSkipped`
- `ASPNETCoreDiagnosticsExceptionResultUnhandled`
- `ASPNETCoreDiagnosticsHandlerType`
- `ASPNETCoreDiagnosticsHandlerTypeKey`
- `ASPNETCoreRateLimitingPolicy`
- `ASPNETCoreRateLimitingPolicyKey`
- `ASPNETCoreRateLimitingResultAcquired`
- `ASPNETCoreRateLimitingResultEndpointLimiter`
- `ASPNETCoreRateLimitingResultGlobalLimiter`
- `ASPNETCoreRateLimitingResultKey`
- `ASPNETCoreRateLimitingResultRequestCanceled`
- `ASPNETCoreRequestIsUnhandled`
- `ASPNETCoreRequestIsUnhandledKey`
- `ASPNETCoreRoutingIsFallback`
- `ASPNETCoreRoutingIsFallbackKey`
- `ASPNETCoreRoutingMatchStatusFailure`
- `ASPNETCoreRoutingMatchStatusKey`
- `ASPNETCoreRoutingMatchStatusSuccess`
- `AspnetcoreDiagnosticsExceptionsDescription`
- `AspnetcoreDiagnosticsExceptionsName`
- `AspnetcoreDiagnosticsExceptionsUnit`
- `AspnetcoreRateLimitingActiveRequestLeasesDescription`
- `AspnetcoreRateLimitingActiveRequestLeasesName`
- `AspnetcoreRateLimitingActiveRequestLeasesUnit`
- `AspnetcoreRateLimitingQueuedRequestsDescription`
- `AspnetcoreRateLimitingQueuedRequestsName`
- `AspnetcoreRateLimitingQueuedRequestsUnit`
- `AspnetcoreRateLimitingRequestLeaseDurationDescription`
- `AspnetcoreRateLimitingRequestLeaseDurationName`
- `AspnetcoreRateLimitingRequestLeaseDurationUnit`
- `AspnetcoreRateLimitingRequestTimeInQueueDescription`
- `AspnetcoreRateLimitingRequestTimeInQueueName`
- `AspnetcoreRateLimitingRequestTimeInQueueUnit`
- `AspnetcoreRateLimitingRequestsDescription`
- `AspnetcoreRateLimitingRequestsName`
- `AspnetcoreRateLimitingRequestsUnit`
- `AspnetcoreRoutingMatchAttemptsDescription`
- `AspnetcoreRoutingMatchAttemptsName`
- `AspnetcoreRoutingMatchAttemptsUnit`

### Dropping the `jvm` namespace

- `JVMBufferPoolName`
- `JVMBufferPoolNameKey`
- `JVMGCAction`
- `JVMGCActionKey`
- `JVMGCName`
- `JVMGCNameKey`
- `JVMMemoryPoolName`
- `JVMMemoryPoolNameKey`
- `JVMMemoryTypeHeap`
- `JVMMemoryTypeKey`
- `JVMMemoryTypeNonHeap`
- `JVMThreadDaemon`
- `JVMThreadDaemonKey`
- `JVMThreadStateBlocked`
- `JVMThreadStateKey`
- `JVMThreadStateNew`
- `JVMThreadStateRunnable`
- `JVMThreadStateTerminated`
- `JVMThreadStateTimedWaiting`
- `JVMThreadStateWaiting`
- `JvmBufferCountDescription`
- `JvmBufferCountName`
- `JvmBufferCountUnit`
- `JvmBufferMemoryLimitDescription`
- `JvmBufferMemoryLimitName`
- `JvmBufferMemoryLimitUnit`
- `JvmBufferMemoryUsageDescription`
- `JvmBufferMemoryUsageName`
- `JvmBufferMemoryUsageUnit`
- `JvmBufferMemoryUsedDescription`
- `JvmBufferMemoryUsedName`
- `JvmBufferMemoryUsedUnit`
- `JvmCPUCountDescription`
- `JvmCPUCountName`
- `JvmCPUCountUnit`
- `JvmCPURecentUtilizationDescription`
- `JvmCPURecentUtilizationName`
- `JvmCPURecentUtilizationUnit`
- `JvmCPUTimeDescription`
- `JvmCPUTimeName`
- `JvmCPUTimeUnit`
- `JvmClassCountDescription`
- `JvmClassCountName`
- `JvmClassCountUnit`
- `JvmClassLoadedDescription`
- `JvmClassLoadedName`
- `JvmClassLoadedUnit`
- `JvmClassUnloadedDescription`
- `JvmClassUnloadedName`
- `JvmClassUnloadedUnit`
- `JvmGcDurationDescription`
- `JvmGcDurationName`
- `JvmGcDurationUnit`
- `JvmMemoryCommittedDescription`
- `JvmMemoryCommittedName`
- `JvmMemoryCommittedUnit`
- `JvmMemoryInitDescription`
- `JvmMemoryInitName`
- `JvmMemoryInitUnit`
- `JvmMemoryLimitDescription`
- `JvmMemoryLimitName`
- `JvmMemoryLimitUnit`
- `JvmMemoryUsedAfterLastGcDescription`
- `JvmMemoryUsedAfterLastGcName`
- `JvmMemoryUsedAfterLastGcUnit`
- `JvmMemoryUsedDescription`
- `JvmMemoryUsedName`
- `JvmMemoryUsedUnit`
- `JvmSystemCPULoad1mDescription`
- `JvmSystemCPULoad1mName`
- `JvmSystemCPULoad1mUnit`
- `JvmSystemCPUUtilizationDescription`
- `JvmSystemCPUUtilizationName`
- `JvmSystemCPUUtilizationUnit`
- `JvmThreadCountDescription`
- `JvmThreadCountName`
- `JvmThreadCountUnit`


### Dropping the `nodejs` namespace

- `NodejsEventloopDelayMaxDescription`
- `NodejsEventloopDelayMaxName`
- `NodejsEventloopDelayMaxUnit`
- `NodejsEventloopDelayMeanDescription`
- `NodejsEventloopDelayMeanName`
- `NodejsEventloopDelayMeanUnit`
- `NodejsEventloopDelayMinDescription`
- `NodejsEventloopDelayMinName`
- `NodejsEventloopDelayMinUnit`
- `NodejsEventloopDelayP50Description`
- `NodejsEventloopDelayP50Name`
- `NodejsEventloopDelayP50Unit`
- `NodejsEventloopDelayP90Description`
- `NodejsEventloopDelayP90Name`
- `NodejsEventloopDelayP90Unit`
- `NodejsEventloopDelayP99Description`
- `NodejsEventloopDelayP99Name`
- `NodejsEventloopDelayP99Unit`
- `NodejsEventloopDelayStddevDescription`
- `NodejsEventloopDelayStddevName`
- `NodejsEventloopDelayStddevUnit`
- `NodejsEventloopUtilizationDescription`
- `NodejsEventloopUtilizationName`
- `NodejsEventloopUtilizationUnit`

### Dropping the `v8js` namespace

- `V8JSGCTypeIncremental`
- `V8JSGCTypeKey`
- `V8JSGCTypeMajor`
- `V8JSGCTypeMinor`
- `V8JSGCTypeWeakcb`
- `V8JSHeapSpaceNameCodeSpace`
- `V8JSHeapSpaceNameKey`
- `V8JSHeapSpaceNameLargeObjectSpace`
- `V8JSHeapSpaceNameMapSpace`
- `V8JSHeapSpaceNameNewSpace`
- `V8JSHeapSpaceNameOldSpace`
- `V8jsGcDurationDescription`
- `V8jsGcDurationName`
- `V8jsGcDurationUnit`
- `V8jsHeapSpaceAvailableSizeDescription`
- `V8jsHeapSpaceAvailableSizeName`
- `V8jsHeapSpaceAvailableSizeUnit`
- `V8jsHeapSpacePhysicalSizeDescription`
- `V8jsHeapSpacePhysicalSizeName`
- `V8jsHeapSpacePhysicalSizeUnit`
- `V8jsMemoryHeapLimitDescription`
- `V8jsMemoryHeapLimitName`
- `V8jsMemoryHeapLimitUnit`
- `V8jsMemoryHeapUsedDescription`
- `V8jsMemoryHeapUsedName`
- `V8jsMemoryHeapUsedUnit`

### Fixed Acronyms/Initialisms

- `DB2` -> `Db2` ([this is the industry usage](https://www.ibm.com/db2))
- `Ai` -> `AI`
- `Gc` -> `GC`

| `v1.28.0` | `v1.27.0` |
| --- | --- |
| DBSystemDb2 | DBSystemDB2|
| GenAIClientOperationDurationDescription |
GenAiClientOperationDurationDescription|
| GenAIClientOperationDurationName | GenAiClientOperationDurationName|
| GenAIClientOperationDurationUnit | GenAiClientOperationDurationUnit|
| GenAIClientTokenUsageDescription | GenAiClientTokenUsageDescription|
| GenAIClientTokenUsageName | GenAiClientTokenUsageName|
| GenAIClientTokenUsageUnit | GenAiClientTokenUsageUnit|
| GenAIServerRequestDurationDescription |
GenAiServerRequestDurationDescription|
| GenAIServerRequestDurationName | GenAiServerRequestDurationName|
| GenAIServerRequestDurationUnit | GenAiServerRequestDurationUnit|
| GenAIServerTimePerOutputTokenDescription |
GenAiServerTimePerOutputTokenDescription|
| GenAIServerTimePerOutputTokenName | GenAiServerTimePerOutputTokenName|
| GenAIServerTimePerOutputTokenUnit | GenAiServerTimePerOutputTokenUnit|
| GenAIServerTimeToFirstTokenDescription |
GenAiServerTimeToFirstTokenDescription|
| GenAIServerTimeToFirstTokenName | GenAiServerTimeToFirstTokenName|
| GenAIServerTimeToFirstTokenUnit | GenAiServerTimeToFirstTokenUnit|
| GoMemoryGCGoalDescription | GoMemoryGcGoalDescription|
| GoMemoryGCGoalName | GoMemoryGcGoalName|
| GoMemoryGCGoalUnit | GoMemoryGcGoalUnit|

## Build notes

### Skip the `dotnet` namespace

The [`dotnet` namespace is added in
`v1.28.0`](https://github.com/open-telemetry/semantic-conventions/tree/v1.28.0/model/dotnet).
None of the semantic conventions for this namespace are generated.

### Required semantic convention changes

Related to https://github.com/open-telemetry/weaver/issues/584, this was
not generated with a direct copy of the [semantic-conventions
repository](https://github.com/open-telemetry/semantic-conventions)
checked-out at `v1.28.0`.

The latest (v0.12.0) version of `weaver` does not work with that version
of semantic-conventions. The semantic-conventions repository was updated
using the following command first:

```
$ rm model/{telemetry/resources-experimental.yaml,service/resources-experimental.yaml,feature-flag/events.yaml}
```

This removes name conflicts. These name conflicts are for things we are
not generating, but the still block the generation tooling when it first
validates the semantic-conventions.
2025-02-03 07:27:30 -08:00
Tyler Yahn 8324155ac6 Weaver (#5898)
Builds off of
https://github.com/open-telemetry/opentelemetry-go/pull/5793
Resolve https://github.com/open-telemetry/opentelemetry-go/issues/5668

This migrates the generation of our semconv packages from using the
`semconvgen` tooling to the new
[`weaver`](https://github.com/open-telemetry/weaver) project.

The configuration and templating has been added in a way to generate as
close as we can to what the `semconvgen` tooling already generated.
There are notable differences:

### Acronym/Initialism Fixes

As metioned
[here](https://github.com/open-telemetry/opentelemetry-go/pull/5898#issuecomment-2622976636),
the evaluated exported output of regenerating the `semconv/v1.27.0`
package resulted in the following changes:

| `weaver` | `semconvgen` |
| --- | --- |
| ASPNETCoreDiagnosticsExceptionsDescription |
AspnetcoreDiagnosticsExceptionsDescription|
| ASPNETCoreDiagnosticsExceptionsName |
AspnetcoreDiagnosticsExceptionsName|
| ASPNETCoreDiagnosticsExceptionsUnit |
AspnetcoreDiagnosticsExceptionsUnit|
| ASPNETCoreRateLimitingActiveRequestLeasesDescription |
AspnetcoreRateLimitingActiveRequestLeasesDescription|
| ASPNETCoreRateLimitingActiveRequestLeasesName |
AspnetcoreRateLimitingActiveRequestLeasesName|
| ASPNETCoreRateLimitingActiveRequestLeasesUnit |
AspnetcoreRateLimitingActiveRequestLeasesUnit|
| ASPNETCoreRateLimitingQueuedRequestsDescription |
AspnetcoreRateLimitingQueuedRequestsDescription|
| ASPNETCoreRateLimitingQueuedRequestsName |
AspnetcoreRateLimitingQueuedRequestsName|
| ASPNETCoreRateLimitingQueuedRequestsUnit |
AspnetcoreRateLimitingQueuedRequestsUnit|
| ASPNETCoreRateLimitingRequestLeaseDurationDescription |
AspnetcoreRateLimitingRequestLeaseDurationDescription|
| ASPNETCoreRateLimitingRequestLeaseDurationName |
AspnetcoreRateLimitingRequestLeaseDurationName|
| ASPNETCoreRateLimitingRequestLeaseDurationUnit |
AspnetcoreRateLimitingRequestLeaseDurationUnit|
| ASPNETCoreRateLimitingRequestTimeInQueueDescription |
AspnetcoreRateLimitingRequestTimeInQueueDescription|
| ASPNETCoreRateLimitingRequestTimeInQueueName |
AspnetcoreRateLimitingRequestTimeInQueueName|
| ASPNETCoreRateLimitingRequestTimeInQueueUnit |
AspnetcoreRateLimitingRequestTimeInQueueUnit|
| ASPNETCoreRateLimitingRequestsDescription |
AspnetcoreRateLimitingRequestsDescription|
| ASPNETCoreRateLimitingRequestsName |
AspnetcoreRateLimitingRequestsName|
| ASPNETCoreRateLimitingRequestsUnit |
AspnetcoreRateLimitingRequestsUnit|
| ASPNETCoreRoutingMatchAttemptsDescription |
AspnetcoreRoutingMatchAttemptsDescription|
| ASPNETCoreRoutingMatchAttemptsName |
AspnetcoreRoutingMatchAttemptsName|
| ASPNETCoreRoutingMatchAttemptsUnit |
AspnetcoreRoutingMatchAttemptsUnit|
| DBSystemDb2 | DBSystemDB2|
| GenAIClientOperationDurationDescription |
GenAiClientOperationDurationDescription|
| GenAIClientOperationDurationName | GenAiClientOperationDurationName|
| GenAIClientOperationDurationUnit | GenAiClientOperationDurationUnit|
| GenAIClientTokenUsageDescription | GenAiClientTokenUsageDescription|
| GenAIClientTokenUsageName | GenAiClientTokenUsageName|
| GenAIClientTokenUsageUnit | GenAiClientTokenUsageUnit|
| GenAIServerRequestDurationDescription |
GenAiServerRequestDurationDescription|
| GenAIServerRequestDurationName | GenAiServerRequestDurationName|
| GenAIServerRequestDurationUnit | GenAiServerRequestDurationUnit|
| GenAIServerTimePerOutputTokenDescription |
GenAiServerTimePerOutputTokenDescription|
| GenAIServerTimePerOutputTokenName | GenAiServerTimePerOutputTokenName|
| GenAIServerTimePerOutputTokenUnit | GenAiServerTimePerOutputTokenUnit|
| GenAIServerTimeToFirstTokenDescription |
GenAiServerTimeToFirstTokenDescription|
| GenAIServerTimeToFirstTokenName | GenAiServerTimeToFirstTokenName|
| GenAIServerTimeToFirstTokenUnit | GenAiServerTimeToFirstTokenUnit|
| GoMemoryGCGoalDescription | GoMemoryGcGoalDescription|
| GoMemoryGCGoalName | GoMemoryGcGoalName|
| GoMemoryGCGoalUnit | GoMemoryGcGoalUnit|
| JVMBufferCountDescription | JvmBufferCountDescription|
| JVMBufferCountName | JvmBufferCountName|
| JVMBufferCountUnit | JvmBufferCountUnit|
| JVMBufferMemoryLimitDescription | JvmBufferMemoryLimitDescription|
| JVMBufferMemoryLimitName | JvmBufferMemoryLimitName|
| JVMBufferMemoryLimitUnit | JvmBufferMemoryLimitUnit|
| JVMBufferMemoryUsageDescription | JvmBufferMemoryUsageDescription|
| JVMBufferMemoryUsageName | JvmBufferMemoryUsageName|
| JVMBufferMemoryUsageUnit | JvmBufferMemoryUsageUnit|
| JVMBufferMemoryUsedDescription | JvmBufferMemoryUsedDescription|
| JVMBufferMemoryUsedName | JvmBufferMemoryUsedName|
| JVMBufferMemoryUsedUnit | JvmBufferMemoryUsedUnit|
| JVMCPUCountDescription | JvmCPUCountDescription|
| JVMCPUCountName | JvmCPUCountName|
| JVMCPUCountUnit | JvmCPUCountUnit|
| JVMCPURecentUtilizationDescription |
JvmCPURecentUtilizationDescription|
| JVMCPURecentUtilizationName | JvmCPURecentUtilizationName|
| JVMCPURecentUtilizationUnit | JvmCPURecentUtilizationUnit|
| JVMCPUTimeDescription | JvmCPUTimeDescription|
| JVMCPUTimeName | JvmCPUTimeName|
| JVMCPUTimeUnit | JvmCPUTimeUnit|
| JVMClassCountDescription | JvmClassCountDescription|
| JVMClassCountName | JvmClassCountName|
| JVMClassCountUnit | JvmClassCountUnit|
| JVMClassLoadedDescription | JvmClassLoadedDescription|
| JVMClassLoadedName | JvmClassLoadedName|
| JVMClassLoadedUnit | JvmClassLoadedUnit|
| JVMClassUnloadedDescription | JvmClassUnloadedDescription|
| JVMClassUnloadedName | JvmClassUnloadedName|
| JVMClassUnloadedUnit | JvmClassUnloadedUnit|
| JVMGCDurationDescription | JvmGcDurationDescription|
| JVMGCDurationName | JvmGcDurationName|
| JVMGCDurationUnit | JvmGcDurationUnit|
| JVMMemoryCommittedDescription | JvmMemoryCommittedDescription|
| JVMMemoryCommittedName | JvmMemoryCommittedName|
| JVMMemoryCommittedUnit | JvmMemoryCommittedUnit|
| JVMMemoryInitDescription | JvmMemoryInitDescription|
| JVMMemoryInitName | JvmMemoryInitName|
| JVMMemoryInitUnit | JvmMemoryInitUnit|
| JVMMemoryLimitDescription | JvmMemoryLimitDescription|
| JVMMemoryLimitName | JvmMemoryLimitName|
| JVMMemoryLimitUnit | JvmMemoryLimitUnit|
| JVMMemoryUsedAfterLastGCDescription |
JvmMemoryUsedAfterLastGcDescription|
| JVMMemoryUsedAfterLastGCName | JvmMemoryUsedAfterLastGcName|
| JVMMemoryUsedAfterLastGCUnit | JvmMemoryUsedAfterLastGcUnit|
| JVMMemoryUsedDescription | JvmMemoryUsedDescription|
| JVMMemoryUsedName | JvmMemoryUsedName|
| JVMMemoryUsedUnit | JvmMemoryUsedUnit|
| JVMSystemCPULoad1mDescription | JvmSystemCPULoad1mDescription|
| JVMSystemCPULoad1mName | JvmSystemCPULoad1mName|
| JVMSystemCPULoad1mUnit | JvmSystemCPULoad1mUnit|
| JVMSystemCPUUtilizationDescription |
JvmSystemCPUUtilizationDescription|
| JVMSystemCPUUtilizationName | JvmSystemCPUUtilizationName|
| JVMSystemCPUUtilizationUnit | JvmSystemCPUUtilizationUnit|
| JVMThreadCountDescription | JvmThreadCountDescription|
| JVMThreadCountName | JvmThreadCountName|
| JVMThreadCountUnit | JvmThreadCountUnit|
| V8JSGCDurationDescription | V8jsGcDurationDescription|
| V8JSGCDurationName | V8jsGcDurationName|
| V8JSGCDurationUnit | V8jsGcDurationUnit|
| V8JSHeapSpaceAvailableSizeDescription |
V8jsHeapSpaceAvailableSizeDescription|
| V8JSHeapSpaceAvailableSizeName | V8jsHeapSpaceAvailableSizeName|
| V8JSHeapSpaceAvailableSizeUnit | V8jsHeapSpaceAvailableSizeUnit|
| V8JSHeapSpacePhysicalSizeDescription |
V8jsHeapSpacePhysicalSizeDescription|
| V8JSHeapSpacePhysicalSizeName | V8jsHeapSpacePhysicalSizeName|
| V8JSHeapSpacePhysicalSizeUnit | V8jsHeapSpacePhysicalSizeUnit|
| V8JSMemoryHeapLimitDescription | V8jsMemoryHeapLimitDescription|
| V8JSMemoryHeapLimitName | V8jsMemoryHeapLimitName|
| V8JSMemoryHeapLimitUnit | V8jsMemoryHeapLimitUnit|
| V8JSMemoryHeapUsedDescription | V8jsMemoryHeapUsedDescription|
| V8JSMemoryHeapUsedName | V8jsMemoryHeapUsedName|
| V8JSMemoryHeapUsedUnit | V8jsMemoryHeapUsedUnit|

An audit of these changes leads to the conclusion that they are
appropriate fixes to things that were mis-named.


### Doc changes

Also mentioned
[here](https://github.com/open-telemetry/opentelemetry-go/pull/5898#issuecomment-2622976636),
there documentation changes that are included. Mostly this is
unavoidable based on the new format of the semconv models, and effort
has spent ensuring nothing substantive is lost.

See the reverted commit
https://github.com/open-telemetry/opentelemetry-go/pull/5898/commits/66523cb7f3fb2dd6566f4ccfe44b52d0bb2c0c0f
for the details of how the `semconv/v1.27.0` changes.

## Next Steps

This PR has been paired down to migrate tooling. The next steps are to
generate `semconv/v1.28.0` with desired changes (i.e. maybe we don't
generate `ASPCoreNet` attrs(?)). From there the missing semconv packages
will be generated.

- https://github.com/open-telemetry/opentelemetry-go/issues/6226
- https://github.com/open-telemetry/opentelemetry-go/issues/6227
2025-01-31 06:51:07 -08:00