Generated from a modified version of the v1.5.0 release of the
specification using a modified version of the semconvgen tools. The
specification contained capitalized IDs that caused errors from the
semconvgen tool. These errors were manually resolved and the rest of the
Go formatting tools were used to provide consistent code.
Important to note, the Go semconvgen tooling includes new name
capitalization rules for ReplicaSet, StatefulSet, and DaemonSet that
mean code names are not backwards compatible. This is included in the
changelog to help users perform the upgrade.
Generated from the v1.6.1 release of the specification using the
semconvgen tool manually.
This skips the v1.6.0 release of the specification, with no plans to add
support in the future, due to a backwards in compatibility bug in
included.
* Add semconv/v1.7.0 package
Generated from the v1.7.0 release of the specification using the
semconvgen tool manually. This also updates the project to use this
version of the semconv package.
This does not include the prior, and missing, v1.5.0 and v1.6.0 versions
of the semconv package. They are planned to be added in a follow-on PR.
* Update CHANGELOG.md
* Fix IPv6 handling errors in semconv.NetAttributesFromHTTPRequest
fixes#2283
* Enter PR number in CHANGELOG
* Remove unnecessary creation and then assignment
Standardize order of checks for IP, Name, Port
* Assume happy path when parsing host and port
i.e. assume net.SplitHostPort(input) will succeed
* Get rid of uint64 for port
* Fix git merge of main by adding back strings import
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
* Fix: http.client_ip vs multiple addresses #2282
* Split only the necessary number of values.
As suggested by @pellared. Good suggestion, that.
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update versions file for 1.0.0 release
* Prepare stable-v1 for version v1.0.0
* Update trace signal status in documentation
* Update changelog
* Update CHANGELOG.md
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
This implements specification requirement:
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/sdk.md#resource-creation
- Changes `resource.NewWithAttributes` to require a schema URL. The old function
is still available as `resource.NewSchemaless`. This is a breaking change.
We want to encourage using schema URL and make it a conscious choice to have a
resource without schema.
- Merge schema URLs acccording to the spec in resource.Merge.
- Several builtin resource detectors now correctly populate the schema URL.
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add semantic convention generator
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update semantic conventions from generator
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Use existing internal/tools module
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix lint issues, more initialisms
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update changelog
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* semconvgen: Faas->FaaS
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix a few more key names with replacements
* Update replacements from PR feedback
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* rename commonInitialisms to capitalizations, move some capitalizations there
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Regenerate semantic conventions with updated capitalizations and replacements
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Generate semantic conventions from spec v1.3.0
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Cleanup semconv generator util a bit
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* No need to put internal tooling additions in the CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix HTTP semconv tests
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Add semconv generation notes to RELEASING.md
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* WIP: OS and Process resource detectors
* Completed documentation headers
* Added empty test files for OS and Process resource functions
* Split long line
* Added resource.WithOS function test
* Added resource.WithProcess* functions tests
* Renamed osDetector and WithOS function to better reflect they only add the os.type attribute
* Updated changelog
* WIP: possible use of wrappers for getting attribute values
* Refined implementation of wrapper functions providing os/runtime/user information
* Added PR number to new changelog entries
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Fix wrong function name in documentation header
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Fixed wording in WithProcessOwner documentation header
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Updated osTypeDetector
* Replaced ToUpper with ToLower to match the current convention.
* Used runtimeOS provider to get the OS name.
* Adapted WithOSType test to mock runtime providers
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Adds support for the opentelemetry exceptions semantic conventions. In
short, this has RecordError produce an exception event with exception
attributes instead of using the error event and error attributes.
While golang does not have exceptions, the spec itself does not
differentiate between errors and exceptions for recording purposes.
RecordError was kept as the method name, both for backwards
compatibility and to reduce confusion (the method signature takes in a
golang error object). The spec appears to allow this, as it suggests the
method is optional and signature may reflect whatever is most appropriate
for the language implementing it.
It may seem non-intuitive to log an exception event from a method called
RecordError, but it's beneficial to have consistent behavior across all
opentelemetry SDKs. Downstream projects like the opentelemetry-collector
can build off of the published API and not special case behaviors from
individual languages.
* Do not set status message if reason can be inferred
* Update CHANGELOG
* Add comment on validation func
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* add code attributes to semconv package
* update changelog
* update comment for code semconv attributes
Adds a full-stop at the end of the comment.
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update README
Move project status to top of project documentation and add explicit
warnings that this project may introduce breaking changes.
* Add disclaimer to public packages docs
* Use explicit warning in README
* Update codes to match specification
* Add changes to changelog
* go mod tidy
* Add unit tests for codes
* Update SetStatus methods to only filter Unset
* Update apitest code being tested
* Add otel/codes package to replace google.golang.org/grpc/codes
* Replace google.golang.org/grpc/codes with otel/codes
* Update opentracing bridge to use OTel codes
* Update semconv to use OTel codes
* Update SDK to convert from OTel codes to gRPC
* go mod tidy
* Add change to CHANGELOG
* Fix word from feedback
* Move content length out of basic attributes
semconv.httpBasicAttributesFromHTTPRequest() was including the request's content length,
which is a high-cardinality label. It ended up in metric labels through the use of that function
by semconv.HTTPServerMetricAttributesFromHTTPRequest().
* Add CHANGELOG entry
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>