[semconv] update template to remove deprecated semconv attributes (#10829)

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

This replaces
https://github.com/open-telemetry/opentelemetry-collector/pull/10249

Fixes
https://github.com/open-telemetry/opentelemetry-collector/issues/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 <223565+codeboten@users.noreply.github.com>
This commit is contained in:
Alex Boten 2024-08-07 13:35:19 -07:00 committed by GitHub
parent 91d6525f52
commit b688e7a6fc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 5415 additions and 4 deletions

View File

@ -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: []

View File

@ -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
@ -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))
}

View File

@ -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 (
@ -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 %}

9
semconv/v1.26.0/doc.go Normal file
View File

@ -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"

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
// Code generated from semantic convention specification. DO NOT EDIT.
package semconv
func GetEventSemanticConventionAttributeNames() []string {
return []string{}
}

View File

@ -0,0 +1,10 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
// Code generated from semantic convention specification. DO NOT EDIT.
package semconv
func GetResourceSemanticConventionAttributeNames() []string {
return []string{}
}

View File

@ -0,0 +1,10 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
// Code generated from semantic convention specification. DO NOT EDIT.
package semconv
func GetTraceSemanticConventionAttributeNames() []string {
return []string{}
}

View File

@ -0,0 +1,9 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package semconv // import "go.opentelemetry.io/collector/semconv/v1.26.0"
// SchemaURL is the schema URL that matches the version of the semantic conventions
// that this package defines. Semconv packages starting from v1.4.0 must declare
// non-empty schema URL in the form https://opentelemetry.io/schemas/<version>
const SchemaURL = "https://opentelemetry.io/schemas/1.26.0"