1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2025-08-13 19:53:11 +02:00

Update semantic conventions to v1.4.0, move to versioned package (#1987)

* Update semantic conventions to v1.4.0, move to versioned package

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* precommit wants explicit import path renaming for semconv/v1.4.0

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Fix semconv import path in stdout exporter example

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
This commit is contained in:
Anthony Mirabella
2021-06-10 13:03:43 -04:00
committed by GitHub
parent 4883cb119d
commit cdf67ddfa3
31 changed files with 140 additions and 33 deletions

View File

@@ -80,6 +80,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- Rename `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/trace/zipkin` package. (#1985) - Rename `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/trace/zipkin` package. (#1985)
- Rename `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/otlp` package. (#1985) - Rename `NewExporter` to `New` in the `go.opentelemetry.io/otel/exporters/otlp` package. (#1985)
- Rename `NewUnstartedExporter` to `NewUnstarted` in the `go.opentelemetry.io/otel/exporters/otlp` package. (#1985) - Rename `NewUnstartedExporter` to `NewUnstarted` in the `go.opentelemetry.io/otel/exporters/otlp` package. (#1985)
- The `go.opentelemetry.io/otel/semconv` package has been moved to `go.opentelemetry.io/otel/semconv/v1.4.0` to allow for multiple [telemetry schema](https://github.com/open-telemetry/oteps/blob/main/text/0152-telemetry-schemas.md) versions to be used concurrently. (#1987)
### Deprecated ### Deprecated

View File

@@ -20,6 +20,19 @@ go run generator.go -i /path/to/specification/repo/semantic_conventions/trace
Using default values for all options other than `input` will result in using the `template.j2` template to Using default values for all options other than `input` will result in using the `template.j2` template to
generate `resource.go` and `trace.go` in `/path/to/otelgo/repo/semconv/<version>`. generate `resource.go` and `trace.go` in `/path/to/otelgo/repo/semconv/<version>`.
There are several ancillary files that are not generated and should be copied into the new package from the
prior package, with updates made as appropriate to canonical import path statements and constant values.
These files include:
* doc.go
* exception.go
* http(_test)?.go
* schema.go
Uses of the previous schema version in this repository should be updated to use the newly generated version.
No tooling for this exists at present, so use find/replace in your editor of choice or craft a `grep | sed`
pipeline if you like living on the edge.
## Pre-Release ## Pre-Release
Update go.mod for submodules to depend on the new release which will happen in the next step. Update go.mod for submodules to depend on the new release which will happen in the next step.

View File

@@ -23,7 +23,7 @@ import (
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/bridge/opentracing/migration" "go.opentelemetry.io/otel/bridge/opentracing/migration"

View File

@@ -27,7 +27,7 @@ import (
"go.opentelemetry.io/otel/exporters/trace/jaeger" "go.opentelemetry.io/otel/exporters/trace/jaeger"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
tracesdk "go.opentelemetry.io/otel/sdk/trace" tracesdk "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
) )
const ( const (

View File

@@ -37,7 +37,7 @@ import (
"go.opentelemetry.io/otel/sdk/metric/selector/simple" "go.opentelemetry.io/otel/sdk/metric/selector/simple"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -27,7 +27,7 @@ import (
"go.opentelemetry.io/otel/exporters/trace/zipkin" "go.opentelemetry.io/otel/exporters/trace/zipkin"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -28,7 +28,7 @@ import (
"go.opentelemetry.io/otel/sdk/metric/selector/simple" "go.opentelemetry.io/otel/sdk/metric/selector/simple"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -26,7 +26,7 @@ import (
gen "go.opentelemetry.io/otel/exporters/trace/jaeger/internal/gen-go/jaeger" gen "go.opentelemetry.io/otel/exporters/trace/jaeger/internal/gen-go/jaeger"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -35,7 +35,7 @@ import (
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/sdk/trace/tracetest" "go.opentelemetry.io/otel/sdk/trace/tracetest"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -24,7 +24,7 @@ import (
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
zkmodel "github.com/openzipkin/zipkin-go/model" zkmodel "github.com/openzipkin/zipkin-go/model"

View File

@@ -32,7 +32,7 @@ import (
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
tracesdk "go.opentelemetry.io/otel/sdk/trace" tracesdk "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/sdk/trace/tracetest" "go.opentelemetry.io/otel/sdk/trace/tracetest"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -34,7 +34,7 @@ import (
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace" sdktrace "go.opentelemetry.io/otel/sdk/trace"
"go.opentelemetry.io/otel/sdk/trace/tracetest" "go.opentelemetry.io/otel/sdk/trace/tracetest"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -22,7 +22,7 @@ import (
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -27,7 +27,7 @@ import (
ottest "go.opentelemetry.io/otel/internal/internaltest" ottest "go.opentelemetry.io/otel/internal/internaltest"
"go.opentelemetry.io/otel/internal/matchers" "go.opentelemetry.io/otel/internal/matchers"
"go.opentelemetry.io/otel/oteltest" "go.opentelemetry.io/otel/oteltest"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
) )

View File

@@ -23,7 +23,7 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
) )
func TestDetect(t *testing.T) { func TestDetect(t *testing.T) {

View File

@@ -22,7 +22,7 @@ import (
"go.opentelemetry.io/otel" "go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
) )
type ( type (

View File

@@ -21,7 +21,7 @@ import (
"strings" "strings"
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
) )
const ( const (

View File

@@ -24,7 +24,7 @@ import (
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
ottest "go.opentelemetry.io/otel/internal/internaltest" ottest "go.opentelemetry.io/otel/internal/internaltest"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
) )
func TestDetectOnePair(t *testing.T) { func TestDetectOnePair(t *testing.T) {

View File

@@ -18,7 +18,7 @@ import (
"context" "context"
"strings" "strings"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
) )
type osTypeDetector struct{} type osTypeDetector struct{}

View File

@@ -22,7 +22,7 @@ import (
"path/filepath" "path/filepath"
"runtime" "runtime"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
) )
type pidProvider func() int type pidProvider func() int

View File

@@ -31,7 +31,7 @@ import (
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
ottest "go.opentelemetry.io/otel/internal/internaltest" ottest "go.opentelemetry.io/otel/internal/internaltest"
"go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/resource"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
) )
var ( var (

View File

@@ -23,7 +23,7 @@ import (
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/sdk/instrumentation" "go.opentelemetry.io/otel/sdk/instrumentation"

View File

@@ -30,7 +30,7 @@ import (
"go.opentelemetry.io/otel/attribute" "go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/oteltest" "go.opentelemetry.io/otel/oteltest"
"go.opentelemetry.io/otel/semconv" semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
"go.opentelemetry.io/otel/trace" "go.opentelemetry.io/otel/trace"
"github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp"

View File

@@ -19,6 +19,6 @@
// the evolving OpenTelemetry specification and user feedback. // the evolving OpenTelemetry specification and user feedback.
// //
// OpenTelemetry semantic conventions are agreed standardized naming // OpenTelemetry semantic conventions are agreed standardized naming
// patterns for OpenTelemetry things. This package aims to be the // patterns for OpenTelemetry things. This package represents the conventions
// centralized place to interact with these conventions. // as of the v1.4.0 version of the OpenTelemetry specification.
package semconv // import "go.opentelemetry.io/otel/semconv" package semconv // import "go.opentelemetry.io/otel/semconv/v1.4.0"

View File

@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
package semconv // import "go.opentelemetry.io/otel/semconv" package semconv // import "go.opentelemetry.io/otel/semconv/v1.4.0"
import ( import (
"fmt" "fmt"

View File

@@ -14,7 +14,7 @@
// Code generated from semantic convention specification. DO NOT EDIT. // Code generated from semantic convention specification. DO NOT EDIT.
package semconv // import "go.opentelemetry.io/otel/semconv" package semconv // import "go.opentelemetry.io/otel/semconv/v1.4.0"
import "go.opentelemetry.io/otel/attribute" import "go.opentelemetry.io/otel/attribute"
@@ -255,6 +255,44 @@ const (
DeploymentEnvironmentKey = attribute.Key("deployment.environment") DeploymentEnvironmentKey = attribute.Key("deployment.environment")
) )
// The device on which the process represented by this resource is running.
const (
// A unique identifier representing the device
//
// Type: string
// Required: No
// Examples: '2ab2916d-a51f-4ac8-80ee-45ac31a28092'
// Note: The device identifier MUST only be defined using the values outlined
// below. This value is not an advertising identifier and MUST NOT be used as
// such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor id
// entifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-iden
// tifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the
// Firebase Installation ID or a globally unique UUID which is persisted across
// sessions in your application. More information can be found
// [here](https://developer.android.com/training/articles/user-data-ids) on best
// practices and exact implementation details. Caution should be taken when
// storing personal data or anything which can identify a user. GDPR and data
// protection laws may apply, ensure you do your own due diligence.
DeviceIDKey = attribute.Key("device.id")
// The model identifier for the device
//
// Type: string
// Required: No
// Examples: 'iPhone3,4', 'SM-G920F'
// Note: It's recommended this value represents a machine readable version of the
// model identifier rather than the market or consumer-friendly name of the
// device.
DeviceModelIdentifierKey = attribute.Key("device.model.identifier")
// The marketing name for the device model
//
// Type: string
// Required: No
// Examples: 'iPhone 6s Plus', 'Samsung Galaxy S6'
// Note: It's recommended this value represents a human readable version of the
// device model rather than a machine readable alternative.
DeviceModelNameKey = attribute.Key("device.model.name")
)
// A serverless instance. // A serverless instance.
const ( const (
// The name of the function being executed. // The name of the function being executed.
@@ -537,6 +575,19 @@ const (
// Required: No // Required: No
// Examples: 'Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1 LTS' // Examples: 'Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1 LTS'
OSDescriptionKey = attribute.Key("os.description") OSDescriptionKey = attribute.Key("os.description")
// Human readable operating system name.
//
// Type: string
// Required: No
// Examples: 'iOS', 'Android', 'Ubuntu'
OSNameKey = attribute.Key("os.name")
// The version string of the operating system as defined in [Version
// Attributes](../../resource/semantic_conventions/README.md#version-attributes).
//
// Type: string
// Required: No
// Examples: '14.2.1', '18.04.1'
OSVersionKey = attribute.Key("os.version")
) )
var ( var (

View File

@@ -15,8 +15,6 @@
package semconv package semconv
// SchemaURL is the schema URL that matches the version of the semantic conventions // SchemaURL is the schema URL that matches the version of the semantic conventions
// that this package defines. This package defines semantic conventions for spec // that this package defines. Semconv packages starting from v1.4.0 must declare
// v1.3.0 which was released before the concept of schemas was introduce, thus the // non-empty schema URL in the form https://opentelemetry.io/schemas/<version>
// schema URL is empty. Semconv packages starting from v1.4.0 must declare non-empty const SchemaURL = "https://opentelemetry.io/schemas/v1.4.0"
// schema URL in the form https://opentelemetry.io/schemas/<version>
const SchemaURL = ""

View File

@@ -14,7 +14,7 @@
// Code generated from semantic convention specification. DO NOT EDIT. // Code generated from semantic convention specification. DO NOT EDIT.
package semconv // import "go.opentelemetry.io/otel/semconv" package semconv // import "go.opentelemetry.io/otel/semconv/v1.4.0"
import "go.opentelemetry.io/otel/attribute" import "go.opentelemetry.io/otel/attribute"
@@ -173,6 +173,10 @@ var (
DBSystemGeode = DBSystemKey.String("geode") DBSystemGeode = DBSystemKey.String("geode")
// Elasticsearch // Elasticsearch
DBSystemElasticsearch = DBSystemKey.String("elasticsearch") DBSystemElasticsearch = DBSystemKey.String("elasticsearch")
// Memcached
DBSystemMemcached = DBSystemKey.String("memcached")
// CockroachDB
DBSystemCockroachdb = DBSystemKey.String("cockroachdb")
) )
// Connection-level attributes for Microsoft SQL Server // Connection-level attributes for Microsoft SQL Server
@@ -1215,3 +1219,43 @@ var (
// UNAUTHENTICATED // UNAUTHENTICATED
RPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16) RPCGRPCStatusCodeUnauthenticated = RPCGRPCStatusCodeKey.Int(16)
) )
// Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/).
const (
// Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC
// 1.0 does not specify this, the value can be omitted.
//
// Type: string
// Required: If missing, it is assumed to be "1.0".
// Examples: '2.0', '1.0'
RPCJsonrpcVersionKey = attribute.Key("rpc.jsonrpc.version")
// `method` property from request. Unlike `rpc.method`, this may not relate to the
// actual method being called. Useful for client-side traces since client does not
// know what will be called on the server.
//
// Type: string
// Required: Always
// Examples: 'users.create', 'get_users'
RPCJsonrpcMethodKey = attribute.Key("rpc.jsonrpc.method")
// `id` property of request or response. Since protocol allows id to be int,
// string, `null` or missing (for notifications), value is expected to be cast to
// string for simplicity. Use empty string in case of `null` value. Omit entirely
// if this is a notification.
//
// Type: string
// Required: No
// Examples: '10', 'request-7', ''
RPCJsonrpcRequestIDKey = attribute.Key("rpc.jsonrpc.request_id")
// `error.code` property of response if it is an error response.
//
// Type: int
// Required: If missing, response is assumed to be successful.
// Examples: -32700, 100
RPCJsonrpcErrorCodeKey = attribute.Key("rpc.jsonrpc.error_code")
// `error.message` property of response if it is an error response.
//
// Type: string
// Required: No
// Examples: 'Parse error', 'User already exists'
RPCJsonrpcErrorMessageKey = attribute.Key("rpc.jsonrpc.error_message")
)

View File

@@ -60,7 +60,7 @@ span.SetAttributes(myKey.String("a value"))
### Semantic Attributes ### Semantic Attributes
Semantic Attributes are attributes that are defined by the OpenTelemetry Specification in order to provide a shared set of attribute keys across multiple languages, frameworks, and runtimes for common concepts like HTTP methods, status codes, user agents, and more. These attributes are available in the `go.opentelemetry.io/otel/semconv` package. Semantic Attributes are attributes that are defined by the OpenTelemetry Specification in order to provide a shared set of attribute keys across multiple languages, frameworks, and runtimes for common concepts like HTTP methods, status codes, user agents, and more. These attributes are available in the `go.opentelemetry.io/otel/semconv/v1.4.0` package.
Tracing semantic conventions can be found [in this document](https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/trace/semantic_conventions) Tracing semantic conventions can be found [in this document](https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/trace/semantic_conventions)