Skip to content

Conversation

@pellared
Copy link
Member

@pellared pellared commented Jun 11, 2021

Why

govet's fieldalignment analyzer helps to reduce the memory footprint

Slack thread

Here is what the analyzer detected for the production code:

golangci-lint in .
attribute/iterator.go:33:18: fieldalignment: struct with 88 pointer bytes could be 72 (govet)
type oneIterator struct {
                 ^
attribute/kv.go:24:15: fieldalignment: struct with 64 pointer bytes could be 56 (govet)
type KeyValue struct {
              ^
attribute/value.go:32:12: fieldalignment: struct with 48 pointer bytes could be 24 (govet)
type Value struct {
           ^
attribute/value.go:197:14: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
        var jsonVal struct {
                    ^
internal/global/propagator.go:27:24: fieldalignment: struct with 56 pointer bytes could be 32 (govet)
type textMapPropagator struct {
                       ^
internal/global/trace.go:48:21: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
type tracerProvider struct {
                    ^
internal/global/trace.go:120:13: fieldalignment: struct with 56 pointer bytes could be 40 (govet)
type tracer struct {
            ^
golangci-lint in ./bridge/opencensus
aggregation.go:150:23: fieldalignment: struct with 88 pointer bytes could be 56 (govet)
type ocDistAggregator struct {
                      ^
exporter.go:56:20: fieldalignment: struct with 32 pointer bytes could be 8 (govet)
type checkpointSet struct {
                   ^
golangci-lint in ./bridge/opentracing
bridge.go:82:17: fieldalignment: struct with 48 pointer bytes could be 40 (govet)
type bridgeSpan struct {
                ^
bridge.go:280:22: fieldalignment: struct of size 48 could be 40 (govet)
type bridgeSetTracer struct {
                     ^
bridge.go:304:19: fieldalignment: struct with 88 pointer bytes could be 56 (govet)
type BridgeTracer struct {
                  ^
golangci-lint in ./exporters/metric/prometheus
prometheus.go:41:15: fieldalignment: struct with 88 pointer bytes could be 64 (govet)
type Exporter struct {
              ^
golangci-lint in ./exporters/otlp
otlphttp/driver.go:66:13: fieldalignment: struct with 1088 pointer bytes could be 1040 (govet)
type driver struct {
            ^
otlphttp/driver.go:74:19: fieldalignment: struct with 400 pointer bytes could be 352 (govet)
type signalDriver struct {
                  ^
internal/transform/metric.go:62:13: fieldalignment: struct with 80 pointer bytes could be 72 (govet)
type result struct {
            ^
otlpgrpc/connection.go:40:17: fieldalignment: struct with 440 pointer bytes could be 384 (govet)
type connection struct {
                ^
otlpgrpc/driver.go:42:20: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
type metricsDriver struct {
                   ^
otlpgrpc/driver.go:49:19: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
type tracesDriver struct {
                  ^
internal/otlpconfig/options.go:58:15: fieldalignment: struct with 88 pointer bytes could be 56 (govet)
        SignalConfig struct {
                     ^
internal/otlpconfig/options.go:71:9: fieldalignment: struct with 232 pointer bytes could be 200 (govet)
        Config struct {
               ^
golangci-lint in ./exporters/otlp/otlptrace
internal/connection/connection.go:39:17: fieldalignment: struct with 344 pointer bytes could be 288 (govet)
type Connection struct {
                ^
internal/otlpconfig/options.go:53:15: fieldalignment: struct with 88 pointer bytes could be 56 (govet)
        SignalConfig struct {
                     ^
internal/otlpconfig/options.go:66:9: fieldalignment: struct with 136 pointer bytes could be 112 (govet)
        Config struct {
               ^
golangci-lint in ./exporters/otlp/otlptrace/otlptracegrpc
client.go:34:13: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
type client struct {
            ^
golangci-lint in ./exporters/otlp/otlptrace/otlptracehttp
client.go:61:13: fieldalignment: struct with 304 pointer bytes could be 256 (govet)
type client struct {
            ^
golangci-lint in ./exporters/stdout
config.go:34:13: fieldalignment: struct of size 48 could be 40 (govet)
type config struct {
            ^
exporter.go:22:15: fieldalignment: struct with 120 pointer bytes could be 88 (govet)
type Exporter struct {
              ^
metric.go:36:11: fieldalignment: struct with 104 pointer bytes could be 96 (govet)
type line struct {
          ^
golangci-lint in ./exporters/trace/jaeger
agent.go:36:21: fieldalignment: struct with 88 pointer bytes could be 80 (govet)
type agentClientUDP struct {
                    ^
agent.go:53:27: fieldalignment: struct with 48 pointer bytes could be 32 (govet)
type agentClientUDPParams struct {
                          ^
jaeger.go:72:15: fieldalignment: struct with 48 pointer bytes could be 32 (govet)
type Exporter struct {
              ^
reconnecting_udp_client.go:28:26: fieldalignment: struct with 96 pointer bytes could be 56 (govet)
type reconnectingUDPConn struct {
                         ^
uploader.go:176:30: fieldalignment: struct with 56 pointer bytes could be 48 (govet)
type collectorEndpointConfig struct {
                             ^
uploader.go:264:24: fieldalignment: struct with 56 pointer bytes could be 48 (govet)
type collectorUploader struct {
                       ^
golangci-lint in ./exporters/trace/zipkin
zipkin_test.go:78:26: fieldalignment: struct with 80 pointer bytes could be 48 (govet)
type mockZipkinCollector struct {
                         ^
golangci-lint in ./internal/metric
async.go:42:27: fieldalignment: struct with 64 pointer bytes could be 40 (govet)
type AsyncInstrumentState struct {
                          ^
global/meter.go:54:20: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
type meterProvider struct {
                   ^
global/meter.go:65:16: fieldalignment: struct with 48 pointer bytes could be 40 (govet)
type meterImpl struct {
               ^
global/meter.go:88:16: fieldalignment: struct with 112 pointer bytes could be 104 (govet)
type asyncImpl struct {
               ^
golangci-lint in ./metric
registry/registry.go:36:32: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
type uniqueInstrumentMeterImpl struct {
                               ^
metric.go:522:17: fieldalignment: struct with 80 pointer bytes could be 72 (govet)
type Descriptor struct {
                ^
metric_instrument.go:96:18: fieldalignment: struct with 24 pointer bytes could be 16 (govet)
type Observation struct {
                 ^
metric_instrument.go:280:20: fieldalignment: struct with 64 pointer bytes could be 56 (govet)
type BatchObserver struct {
                   ^
metric_instrument.go:390:18: fieldalignment: struct with 24 pointer bytes could be 16 (govet)
type Measurement struct {
                 ^
metrictest/meter.go:35:8: fieldalignment: struct with 72 pointer bytes could be 64 (govet)
        Batch struct {
              ^
metrictest/meter.go:44:12: fieldalignment: struct with 40 pointer bytes could be 16 (govet)
        MeterImpl struct {
                  ^
metrictest/meter.go:52:14: fieldalignment: struct with 24 pointer bytes could be 16 (govet)
        Measurement struct {
                    ^
metrictest/meter.go:63:8: fieldalignment: struct with 112 pointer bytes could be 104 (govet)
        Async struct {
              ^
metrictest/meter.go:198:15: fieldalignment: struct with 56 pointer bytes could be 48 (govet)
type Measured struct {
              ^
golangci-lint in ./oteltest
config.go:99:19: fieldalignment: struct with 80 pointer bytes could be 32 (govet)
type SpanRecorder struct {
                  ^
event.go:24:12: fieldalignment: struct with 48 pointer bytes could be 40 (govet)
type Event struct {
           ^
provider.go:27:21: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
type TracerProvider struct {
                    ^
span.go:32:11: fieldalignment: struct of size 264 could be 256 (govet)
type Span struct {
          ^
text_map_propagator.go:32:21: fieldalignment: struct with 64 pointer bytes could be 40 (govet)
type TextMapCarrier struct {
                    ^
tracer.go:28:13: fieldalignment: struct with 40 pointer bytes could be 32 (govet)
type Tracer struct {
            ^
golangci-lint in ./sdk
trace/batch_span_processor.go:68:25: fieldalignment: struct with 144 pointer bytes could be 48 (govet)
type batchSpanProcessor struct {
                        ^
trace/event.go:24:12: fieldalignment: struct with 72 pointer bytes could be 48 (govet)
type Event struct {
           ^
trace/id_generator.go:33:24: fieldalignment: struct with 16 pointer bytes could be 8 (govet)
type randomIDGenerator struct {
                       ^
trace/provider.go:35:27: fieldalignment: struct with 104 pointer bytes could be 48 (govet)
type tracerProviderConfig struct {
                          ^
trace/provider.go:56:21: fieldalignment: struct with 112 pointer bytes could be 64 (govet)
type TracerProvider struct {
                    ^
trace/sampling.go:33:25: fieldalignment: struct with 88 pointer bytes could be 64 (govet)
type SamplingParameters struct {
                        ^
trace/sampling.go:60:21: fieldalignment: struct with 40 pointer bytes could be 32 (govet)
type SamplingResult struct {
                    ^
trace/sampling.go:66:26: fieldalignment: struct with 16 pointer bytes could be 8 (govet)
type traceIDRatioSampler struct {
                         ^
trace/simple_span_processor.go:26:26: fieldalignment: struct with 40 pointer bytes could be 16 (govet)
type simpleSpanProcessor struct {
                         ^
trace/snapshot.go:28:15: fieldalignment: struct with 376 pointer bytes could be 320 (govet)
type snapshot struct {
              ^
trace/span.go:98:11: fieldalignment: struct with 336 pointer bytes could be 288 (govet)
type span struct {
          ^
trace/span.go:625:13: fieldalignment: struct with 16 pointer bytes could be 8 (govet)
type Status struct {
            ^
trace/trace_test.go:163:18: fieldalignment: struct with 32 pointer bytes could be 16 (govet)
type testSampler struct {
                 ^
trace/tracetest/span.go:57:15: fieldalignment: struct with 376 pointer bytes could be 320 (govet)
type SpanStub struct {
              ^
trace/tracetest/span.go:124:19: fieldalignment: struct with 392 pointer bytes could be 336 (govet)
type spanSnapshot struct {
                  ^
resource/builtin.go:43:17: fieldalignment: struct with 40 pointer bytes could be 32 (govet)
        stringDetector struct {
                       ^
resource/config.go:24:13: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
type config struct {
            ^
golangci-lint in ./sdk/export/metric
metrictest/test.go:39:20: fieldalignment: struct with 64 pointer bytes could be 24 (govet)
type CheckpointSet struct {
                   ^
aggregation/aggregation.go:78:8: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
        Point struct {
              ^
golangci-lint in ./sdk/metric
controller/basic/config.go:26:13: fieldalignment: struct with 40 pointer bytes could be 24 (govet)
type config struct {
            ^
controller/basic/controller.go:57:17: fieldalignment: struct with 160 pointer bytes could be 112 (govet)
type Controller struct {
                ^
sdk.go:44:14: fieldalignment: struct with 120 pointer bytes could be 80 (govet)
        Accumulator struct {
                    ^
sdk.go:87:9: fieldalignment: struct with 112 pointer bytes could be 72 (govet)
        record struct {
               ^
sdk.go:130:18: fieldalignment: struct with 104 pointer bytes could be 96 (govet)
        asyncInstrument struct {
                        ^
sdk.go:137:18: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
        labeledRecorder struct {
                        ^
processor/basic/basic.go:55:13: fieldalignment: struct with 80 pointer bytes could be 64 (govet)
        stateValue struct {
                   ^
processor/basic/basic.go:95:8: fieldalignment: struct with 112 pointer bytes could be 80 (govet)
        state struct {
              ^
aggregator/exact/exact.go:32:13: fieldalignment: struct with 16 pointer bytes could be 8 (govet)
        Aggregator struct {
                   ^
aggregator/lastvalue/lastvalue.go:40:16: fieldalignment: struct with 32 pointer bytes could be 24 (govet)
        lastValueData struct {
                      ^
aggregator/histogram/histogram.go:37:13: fieldalignment: struct with 48 pointer bytes could be 16 (govet)
        Aggregator struct {
                   ^
golangci-lint in ./trace
config.go:139:18: fieldalignment: struct with 48 pointer bytes could be 32 (govet)
type EventConfig struct {
                 ^
trace.go:184:24: fieldalignment: struct of size 64 could be 56 (govet)
type SpanContextConfig struct {
                       ^
trace.go:205:18: fieldalignment: struct of size 64 could be 56 (govet)
type SpanContext struct {
                 ^
trace.go:393:11: fieldalignment: struct with 72 pointer bytes could be 64 (govet)
type Link struct {
          ^

What

  • Add govet to golangci-lint configuration
  • Change the lint target to ALWAYS run golangci-lint for all modules (instead of fail-fast)
  • Fix or ignore issues reported in test code

TODO

  • Fix issues reported in production code

@pellared pellared force-pushed the govet-with-fieldalignment branch from 6588827 to 727996c Compare June 16, 2021 06:59
@pellared
Copy link
Member Author

The fieldalignment analyzer is very annoying.
Better explained here: atc0005/go-ci#302
I spend hours trying to satisfy the analyzer but I think it is not worth the effort...

@pellared pellared closed this Jun 16, 2021
@pellared pellared deleted the govet-with-fieldalignment branch November 17, 2023 08:58
MrAlias added a commit that referenced this pull request May 22, 2025
- Generate the new `semconv/v1.33.0` package and all sub-packages
- Fix the metric util package generation to support `int64` attribute
definitions

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

<div data-pjax="true" data-test-selector="body-content"
data-view-component="true" class="markdown-body my-3"><p>This release
marks the first where the core of database semantic conventions have
stabilized.</p>
<h3>🛑 Breaking changes 🛑</h3>
<ul>
<li><code>db</code>: Add <code>db.query.parameter</code>, replace
relevant usages of <code>db.operation.parameter</code> (<a
href="open-telemetry/semantic-conventions#2093"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2093/hovercard">#2093</a>)</li>
<li><code>db</code>: Make <code>db.response.returned_rows</code> opt-in
on <code>release_candidate</code> spans (<a
href="open-telemetry/semantic-conventions#2211"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2211/hovercard">#2211</a>)</li>
<li><code>db</code>: Use <code>|</code> as the separator when
<code>db.namespace</code> is a concatenation of multiple components. (<a
href="open-telemetry/semantic-conventions#2067"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2067/hovercard">#2067</a>)</li>
<li><code>feature_flag</code>: Rename
<code>feature_flag.provider_name</code> to
<code>feature_flag.provider.name</code> (<a
href="open-telemetry/semantic-conventions#1982"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1982/hovercard">#1982</a>)</li>
<li><code>feature_flag</code>: Use generic <code>error.message</code> in
feature flag evaluation event (<a
href="open-telemetry/semantic-conventions#1994"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1994/hovercard">#1994</a>)</li>
<li><code>gen-ai</code>: Refine the values for
<code>gen_ai.system</code> related to Google's AI endpoints. (<a
href="open-telemetry/semantic-conventions#1950"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1950/hovercard">#1950</a>)<br>
Enable sharing of attributes between Vertex AI and Gemini through a
common prefix.</li>
<li><code>k8s</code>: Make k8s Node and Pod labels optional (<a
href="open-telemetry/semantic-conventions#2079"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2079/hovercard">#2079</a>)</li>
<li><code>otel</code>: Rename span health metrics to remove the .count
suffixes (<a
href="open-telemetry/semantic-conventions#1979"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1979/hovercard">#1979</a>)</li>
</ul>
<h3>🚀 New components 🚀</h3>
<ul>
<li><code>db</code>: Adding semantic conventions for
<code>oracledb</code> instrumentations. (<a
href="https://github.com/open-telemetry/semantic-conventions/issues/2612">#2612</a>)<br>
Oracle Database semantic conventions.</li>
<li><code>browser</code>: Add browser web vitals event. (<a
href="open-telemetry/semantic-conventions#1940"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/1940/hovercard">#1940</a>)</li>
</ul>
<h3>💡 Enhancements 💡</h3>
<ul>
<li><code>cicd</code>: Add resource conventions for CICD systems and
define spans for CICD pipeline runs. (<a
href="open-telemetry/semantic-conventions#1713"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1713/hovercard">#1713</a>)<br>
Define spans <code>cicd.pipeline.run.server</code> and
<code>cicd.pipeline.task.internal</code>.<br>
Add <code>cicd.pipeline.action.name</code>, <code>cicd.worker.id</code>,
<code>cicd.worker.name</code>, <code>cicd.worker.url.full</code>
and<code>cicd.pipeline.task.run.result</code> to attribute registry.<br>
Define resources <code>cicd.pipeline</code>,
<code>cicd.pipeline.run</code> and <code>cicd.worker</code>.<br>
Add entity associations in cicd metrics for these new cicd
resources.</li>
<li><code>vcs</code>: Add resource conventions for VCS systems and VCS
references. (<a
href="open-telemetry/semantic-conventions#1713"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1713/hovercard">#1713</a>)<br>
Define resources <code>vcs.repo</code> and <code>vcs.ref</code>.<br>
Add entity associations in vcs metrics for these new vcs resources.</li>
<li><code>gen-ai</code>: Adding span for invoke agent (<a
href="open-telemetry/semantic-conventions#1842"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1842/hovercard">#1842</a>)</li>
<li><code>gen-ai</code>: Adding gen_ai.tool.description to the span
attributes (<a
href="open-telemetry/semantic-conventions#2087"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2087/hovercard">#2087</a>)</li>
<li><code>gen-ai</code>: Separate inference and embeddings span
definitions, remove irrelevant attributes from the create agent span.
(<a
href="open-telemetry/semantic-conventions#1924"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1924/hovercard">#1924</a>,
<a
href="open-telemetry/semantic-conventions#2122"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2122/hovercard">#2122</a>)</li>
<li><code>general</code>: Provide guidance on modeling lat/lon, x/y, etc
(<a
href="open-telemetry/semantic-conventions#2145"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2145/hovercard">#2145</a>)</li>
<li><code>db</code>: Move <code>db.query.parameter.&lt;key&gt;</code>
from release_candidate back to development. (<a
href="open-telemetry/semantic-conventions#2194"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2194/hovercard">#2194</a>)</li>
<li><code>db</code>: Mark database semantic conventions as stable for
MariaDB, Microsoft SQL Server, MySQL, and PostgreSQL. (<a
href="open-telemetry/semantic-conventions#2199"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2199/hovercard">#2199</a>)</li>
<li><code>db</code>: Make <code>db.operation.name</code> required where
it's available, add recommendation for instrumentation point. (<a
href="open-telemetry/semantic-conventions#2200"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2200/hovercard">#2200</a>,
<a
href="open-telemetry/semantic-conventions#2098"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2098/hovercard">#2098</a>)</li>
<li><code>db</code>: Add <code>db.stored_procedure.name</code> to the
general span conventions (<a
href="open-telemetry/semantic-conventions#2205"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2205/hovercard">#2205</a>)</li>
<li><code>db</code>: Add an option to generate
<code>db.query.summary</code> from operation name and target, remove it
from CosmosDB. (<a
href="open-telemetry/semantic-conventions#2206"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2206/hovercard">#2206</a>)</li>
<li><code>db</code>: Add <code>db.operation.name</code> and
<code>db.collection.name</code> to SQL for higher-level APIs (<a
href="open-telemetry/semantic-conventions#2207"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2207/hovercard">#2207</a>)</li>
<li><code>jvm</code>: Add <code>jvm.file_descriptor.count</code> as an
in-development metric to track the number of open file descriptors as
reported by the JVM. (<a
href="open-telemetry/semantic-conventions#1838"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1838/hovercard">#1838</a>)</li>
<li><code>jvm</code>: Add <code>jvm.gc.cause</code> to metric
<code>jvm.gc.duration</code> as an opt-in attribute to track gc cause.
(<a
href="open-telemetry/semantic-conventions#2065"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2065/hovercard">#2065</a>)</li>
<li><code>process</code>: Add process.environment_variable. (<a
href="open-telemetry/semantic-conventions#672"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/672/hovercard">#672</a>)</li>
<li><code>app</code>: Defines two new click events for the app domain
(<a
href="open-telemetry/semantic-conventions#2070"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2070/hovercard">#2070</a>)</li>
<li><code>code</code>: Mark <code>code.*</code> semantic conventions as
stable (<a
href="open-telemetry/semantic-conventions#1377"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1377/hovercard">#1377</a>)</li>
<li><code>k8s</code>: Introduce semantic conventions for k8s CronJob
labels and annotations (<a
href="open-telemetry/semantic-conventions#2138"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2138/hovercard">#2138</a>)</li>
<li><code>k8s</code>: Introduce semantic conventions for k8s DaemonSet
labels and annotations (<a
href="open-telemetry/semantic-conventions#2136"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2136/hovercard">#2136</a>)</li>
<li><code>k8s</code>: Introduce semantic conventions for k8s Deployment
labels and annotations (<a
href="open-telemetry/semantic-conventions#2134"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2134/hovercard">#2134</a>)</li>
<li><code>system</code>: Added entity association template rendering and
policies. (<a
href="open-telemetry/semantic-conventions#1276"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1276/hovercard">#1276</a>)</li>
<li><code>gen_ai</code>: Document <code>generate_content</code> as a
permissible value of <code>gen_ai.operation.name</code>. (<a
href="open-telemetry/semantic-conventions#2048"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2048/hovercard">#2048</a>)</li>
<li><code>k8s</code>: Introduce semantic conventions for k8s Job labels
and annotations (<a
href="open-telemetry/semantic-conventions#2137"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2137/hovercard">#2137</a>)</li>
<li><code>otel</code>: Adds SDK self-monitoring metrics for metric
processing (<a
href="open-telemetry/semantic-conventions#2016"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2016/hovercard">#2016</a>)</li>
<li><code>k8s</code>: Introduce semantic conventions for k8s Namespace
labels and annotations (<a
href="open-telemetry/semantic-conventions#2131"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2131/hovercard">#2131</a>)</li>
<li><code>k8s</code>: Introduce semantic conventions for k8s Node labels
and annotations (<a
href="open-telemetry/semantic-conventions#2079"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2079/hovercard">#2079</a>)</li>
<li><code>k8s</code>: Introduce semantic conventions for k8s ReplicaSet
labels and annotations (<a
href="open-telemetry/semantic-conventions#2132"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2132/hovercard">#2132</a>)</li>
<li><code>otel</code>: Adds SDK self-monitoring metric for exporter call
duration (<a
href="open-telemetry/semantic-conventions#1906"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1906/hovercard">#1906</a>)</li>
<li><code>k8s</code>: Introduce semantic conventions for k8s StatefulSet
labels and annotations (<a
href="open-telemetry/semantic-conventions#2135"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2135/hovercard">#2135</a>)</li>
</ul>
<h3>🧰 Bug fixes 🧰</h3>
<ul>
<li><code>gen-ai</code>: Removed irrelevant response attributes on GenAI
create agent span. (<a
href="open-telemetry/semantic-conventions#1924"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/1924/hovercard">#1924</a>,
<a
href="open-telemetry/semantic-conventions#2116"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2116/hovercard">#2116</a>)</li>
<li><code>vcs</code>: Fix typo in gitea name (<a
href="open-telemetry/semantic-conventions#2057"
data-hovercard-type="issue"
data-hovercard-url="/open-telemetry/semantic-conventions/issues/2057/hovercard">#2057</a>)</li>
<li><code>gen-ai</code>: Add invoke_agent as a member of
gen_ai.operation.name (<a
href="open-telemetry/semantic-conventions#2160"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2160/hovercard">#2160</a>)</li>
<li><code>db</code>: Clarify <code>db.query.summary</code> for stored
procedures (<a
href="open-telemetry/semantic-conventions#2218"
data-hovercard-type="pull_request"
data-hovercard-url="/open-telemetry/semantic-conventions/pull/2218/hovercard">#2218</a>)</li>
</ul>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant