Skip to content

Commit

Permalink
[semconv] update template to remove deprecated semconv attributes (#1…
Browse files Browse the repository at this point in the history
…0829)

This PR is updating the jinja template to ignore deprecated attributes
as was done in
open-telemetry/opentelemetry-go#5476.
Additonally, generate v1.26.0 semconv package

This replaces
#10249

Fixes
#10813

NOTE: This leaves empty resource/trace/event files, but I'd rather not
remove the methods they expose in this change

---------

Signed-off-by: Alex Boten <[email protected]>
  • Loading branch information
codeboten authored Aug 7, 2024
1 parent 91d6525 commit b688e7a
Show file tree
Hide file tree
Showing 9 changed files with 5,415 additions and 4 deletions.
25 changes: 25 additions & 0 deletions .chloggen/codeboten_semconv-1.26.0.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Use this changelog template to create an entry for release notes.

# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: enhancement

# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
component: semconv

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Add v1.26.0 semantic conventions package

# One or more tracking issues or pull requests related to the change
issues: [10249,10829]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:

# Optional: The change log or logs in which this entry should be included.
# e.g. '[user]' or '[user, api]'
# Include 'user' if the change is relevant to end users.
# Include 'api' if there is a change to a library API.
# Default: '[user]'
change_logs: []
7 changes: 7 additions & 0 deletions semconv/semconv_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ func TestAllSemConvFilesAreCrated(t *testing.T) {
constraints, err := version.NewConstraint("> v1.16.0")
assert.NoError(t, err)

attrgroupconstraints, err := version.NewConstraint("> v1.22.0")
assert.NoError(t, err)

for _, f := range files {
if !f.IsDir() {
continue
Expand All @@ -37,6 +40,10 @@ func TestAllSemConvFilesAreCrated(t *testing.T) {
expected[len(expected)-1] = "generated_event.go"
}

if attrgroupconstraints.Check(ver) {
assert.FileExists(t, filepath.Join(".", f.Name(), "generated_attribute_group.go"))
}

for _, ef := range expected {
assert.FileExists(t, filepath.Join(".", f.Name(), ef))
}
Expand Down
8 changes: 4 additions & 4 deletions semconv/template.j2
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,15 @@ Note: {{ attr.note | render_markdown(paragraph="{0}", code="{0}", link="{1}", em
package semconv

{% for semconv in semconvs -%}
{%- if semconvs[semconv].attributes | rejectattr("ref") | selectattr("is_local") | sort(attribute=fqn) | length > 0 -%}
{%- if semconvs[semconv].attributes | rejectattr("ref") | rejectattr("deprecated") | selectattr("is_local") | sort(attribute=fqn) | length > 0 -%}
// {{ sentence_case(semconvs[semconv].brief | replace("This document defines ", "")) | wordwrap(76, break_long_words=false, break_on_hyphens=false, wrapstring="\n// ") }}
const (
{% for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref -%}
{% for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref and not attr.deprecated -%}
// {{ godoc(attr) | wordwrap | indent(3) | replace(" ", "\t// ") | replace("// //", "//") }}
Attribute{{to_go_name(attr.fqn)}} = "{{attr.fqn}}"
{% endfor %}
)
{%- for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref -%}
{%- for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref and not attr.deprecated -%}
{%- if attr.attr_type is not string %}

const (
Expand All @@ -73,7 +73,7 @@ const (
func Get{{ conventionType | title }}SemanticConventionAttributeNames() []string {
return []string{
{% for semconv in semconvs -%}
{%- for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref -%}
{%- for attr in semconvs[semconv].attributes if attr.is_local and not attr.ref and not attr.deprecated -%}
Attribute{{to_go_name(attr.fqn)}},
{% endfor %}
{%- endfor %}
Expand Down
9 changes: 9 additions & 0 deletions semconv/v1.26.0/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

// Package semconv implements OpenTelemetry semantic conventions.
//
// OpenTelemetry semantic conventions are agreed standardized naming
// patterns for OpenTelemetry things. This package represents the v1.26.0
// version of the OpenTelemetry semantic conventions.
package semconv // import "go.opentelemetry.io/collector/semconv/v1.26.0"
Loading

0 comments on commit b688e7a

Please sign in to comment.