-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Restructure to include metrics and merge specs together
- Loading branch information
1 parent
9bd06a0
commit 87a820c
Showing
63 changed files
with
553 additions
and
262 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
// | ||
// Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation | ||
// | ||
// See the NOTICE file(s) distributed with this work for additional | ||
// information regarding copyright ownership. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// | ||
|
||
[[introduction]] | ||
== Introduction | ||
In cloud-native technology stacks, distributed and polyglot architectures are the norm. | ||
Distributed architectures introduce a variety of operational challenges including how to solve availability and performance issues quickly. | ||
These challenges have led to the rise of observability. | ||
|
||
Telemetry data is needed to power observability products. | ||
Traditionally, telemetry data has been provided by either open-source projects or commercial vendors. | ||
With a lack of standardization, the net result is the lack of data portability and the burden on the user to maintain the instrumentation. | ||
|
||
The https://opentelemetry.io[OpenTelemetry] project solves these problems by providing a single, vendor-agnostic solution. | ||
|
||
== Architecture | ||
https://opentelemetry.io[OpenTelemetry] is a set of APIs, SDKs, tooling and integrations that are designed for the creation and management of telemetry data such as traces, metrics, and logs. | ||
|
||
This specification defines the behaviors that allow MicroProfile applications to easily participate in an environment where distributed tracing is enabled via https://opentelemetry.io[OpenTelemetry] (a merger between https://opentracing.io[OpenTracing] and https://opencensus.io[OpenCensus]). | ||
|
||
The OpenTelemetry specification describes the cross-language requirements and expectations for all OpenTelemetry implementations. | ||
This specification is based on the https://github.com/open-telemetry/opentelemetry-java/tree/v{otel-java-version}[Java implementation v{otel-java-version}] of OpenTelemetry. An implementation of this MicroProfile Telemetry MAY consume a later patch release of the Java implementation as long as the required TCKs pass successfully. | ||
|
||
Refer to the OpenTelemetry specification repo to understand some essential terms. | ||
|
||
* https://opentelemetry.io/docs/specs/otel/overview/[OpenTelemetry Overview] | ||
* https://opentelemetry.io/docs/specs/otel/trace/api/[Tracing API] | ||
* https://opentelemetry.io/docs/specs/otel/baggage/api/[Baggage API] | ||
* https://opentelemetry.io/docs/specs/otel/context/[Context API] | ||
* https://opentelemetry.io/docs/specs/otel/resource/sdk/[Resource SDK] | ||
|
||
[IMPORTANT] | ||
==== | ||
The Logging integrations of https://opentelemetry.io[OpenTelemetry] are out of scope of this specification. | ||
Implementations are free to provide support for Logging if desired. | ||
==== |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
[subs="normal"] | ||
.... | ||
Specification: {doctitle} | ||
Version: {revnumber} | ||
Status: {revremark} | ||
Release: {revdate} | ||
.... | ||
|
||
== Copyright | ||
|
||
Copyright (c) {inceptionYear} , {currentYear} Eclipse Foundation. | ||
|
||
=== Eclipse Foundation Specification License - v1.1 | ||
|
||
By using and/or copying this document, or the Eclipse Foundation document from which this statement is linked or incorporated by reference, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions: | ||
|
||
Permission to copy, and distribute the contents of this document, or the Eclipse Foundation document from which this statement is linked, in any medium for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the document, or portions thereof, that you use: | ||
|
||
* link or URL to the original Eclipse Foundation document. | ||
* All existing copyright notices, or if one does not exist, a notice (hypertext is preferred, but a textual representation is permitted) of the form: "Copyright (c) [$date-of-document] Eclipse Foundation AISBL <<url to this license>> " | ||
|
||
Inclusion of the full text of this NOTICE must be provided. We request that authorship attribution be provided in any software, documents, or other items or products that you create pursuant to the implementation of the contents of this document, or any portion thereof. | ||
|
||
No right to create modifications or derivatives of Eclipse Foundation documents is granted pursuant to this license, except anyone may prepare and distribute derivative works and portions of this document in software that implements the specification, in supporting materials accompanying such software, and in documentation of such software, PROVIDED that all such works include the notice below. HOWEVER, the publication of derivative works of this document for use as a technical specification is expressly prohibited. | ||
|
||
The notice is: | ||
|
||
"Copyright (c) [$date-of-document] Eclipse Foundation AISBL. This software or document includes material copied from or derived from [title and URI of the Eclipse Foundation specification document]." | ||
|
||
==== Disclaimers | ||
|
||
THIS DOCUMENT IS PROVIDED "AS IS," AND TO THE EXTENT PERMITTED BY APPLICABLE LAW THE COPYRIGHT HOLDERS AND THE ECLIPSE FOUNDATION AISBL MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. | ||
|
||
TO THE EXTENT PERMITTED BY APPLICABLE LAW THE COPYRIGHT HOLDERS AND THE ECLIPSE FOUNDATION AISBL WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF. | ||
|
||
The name and trademarks of the copyright holders or the Eclipse Foundation AISBL may NOT be used in advertising or publicity pertaining to this document or its contents without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
// | ||
// Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation | ||
// | ||
// See the NOTICE file(s) distributed with this work for additional | ||
// information regarding copyright ownership. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// | ||
|
||
[[metrics]] | ||
== Metrics | ||
|
||
|
||
|
||
=== Access to the OpenTelemetry Metrics API | ||
An implementation of MicroProfile Telemetry Metrics MUST provide the following CDI beans for supporting contextual instance injection: | ||
|
||
|
||
=== Supported OpenTelemetry API Classes | ||
Classes from the following API packages MUST be supported by implementations of this specification, though this specification does not prevent additional API classes from being supported. | ||
Implementations are allowed to pull in a more recent patch version of the API classes. | ||
|
||
==== Metrics APIs | ||
|
||
|
||
* https://www.javadoc.io/static/io.opentelemetry/opentelemetry-api/{otel-java-version}/io/opentelemetry/api/metrics/package-summary.html[io.opentelemetry.api.metrics] | ||
|
||
|
||
|
||
==== Autoconfigure SPI | ||
This is the programmatic interface that allows users to register extensions when using the SDK Autoconfigure Extension (which we use for configuration). | ||
|
||
|
||
==== Semantic Conventions | ||
|
||
[NOTE] | ||
==== | ||
These packages are not stable and MAY be subject to breaking changes in future releases. | ||
==== | ||
|
||
|
||
|
||
=== Configuration | ||
OpenTelemetry MUST be configured by MicroProfile Config following the semantics of configuration properties detailed in https://github.com/open-telemetry/opentelemetry-java/tree/v{otel-java-version}/sdk-extensions/autoconfigure[OpenTelemetry SDK Autoconfigure {otel-java-version}]. | ||
|
||
At minimum the following MicroProfile Config properties MUST be supported: |
47 changes: 47 additions & 0 deletions
47
spec/src/main/asciidoc/microprofile-telemetry-spec.asciidoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
// | ||
// Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation | ||
// | ||
// See the NOTICE file(s) distributed with this work for additional | ||
// information regarding copyright ownership. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// | ||
|
||
= MicroProfile Telemetry | ||
:authors: MicroProfile Telemetry Team (Roberto Cortez, Emily Jiang, Bruno Baptista, Jan Westerkamp, Felix Wong, Yasmin Aumeeruddy, Patrik Duditš) | ||
:email: | ||
:version-label!: | ||
:sectanchors: | ||
:doctype: book | ||
:license: Eclipse Foundation Specification License v1.1 | ||
:source-highlighter: coderay | ||
:toc: left | ||
:toclevels: 4 | ||
:sectnumlevels: 4 | ||
ifdef::backend-pdf[] | ||
:pagenums: | ||
endif::[] | ||
// Attributes defined in the microprofile-telemetry (parent) maven POM: | ||
//:otel-java-version: | ||
|
||
|
||
// == License | ||
:sectnums!: | ||
include::license-efsl.adoc[] | ||
:sectnums: | ||
|
||
include::introduction.adoc[] | ||
include::tracing.adoc[] | ||
include::metrics.adoc[] | ||
include::release-notes.adoc[] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
// | ||
// Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation | ||
// | ||
// See the NOTICE file(s) distributed with this work for additional | ||
// information regarding copyright ownership. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
// | ||
|
||
[[release-notes]] | ||
== Release Notes | ||
This section documents the changes introduced by individual releases. | ||
|
||
[[release_notes_11]] | ||
=== Release Notes for MicroProfile Telemetry 1.1 | ||
A full list of changes delivered in the 1.1 release can be found at link:https://github.com/eclipse/microprofile-telemetry/milestone/1?closed=1[MicroProfile Telemetry 1.1 Milestone]. | ||
|
||
==== Incompatible Changes | ||
None. | ||
|
||
==== API/SPI Changes | ||
Consume the OpenTelemetry Java release link:https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.29.0[v1.29.0]. The full comparison with the link:https://github.com/open-telemetry/opentelemetry-java/releases/tag/v1.19.0[v1.19.0] supported by MicroProfile Telemetry 1.0 can be found link:https://github.com/open-telemetry/opentelemetry-java/compare/v1.19.0...v1.29.0[here]. | ||
|
||
==== Other Changes | ||
|
||
* Consume the latest OpenTelemetry Tracing (https://github.com/eclipse/microprofile-telemetry/issues/88[88]) | ||
* Clarify which API classes MUST be available to users (https://github.com/eclipse/microprofile-telemetry/issues/91[91]) | ||
* Clarify the behaviour of Span and Baggage beans when the current span or baggage changes (lhttps://github.com/eclipse/microprofile-telemetry/issues/90[90]) | ||
* TCK: Implement tests in a way that is not timestamp dependent (https://github.com/eclipse/microprofile-telemetry/issues/44[44]) | ||
* TCK: TCK RestClientSpanTest Span Name Doesn't Follow Semantic Conv (https://github.com/eclipse/microprofile-telemetry/issues/86[86]) | ||
* TCK: Adding missing TCKs (https://github.com/eclipse/microprofile-telemetry/issues/89[89]) | ||
* TCK: TCK cannot be run using the Arquillian REST protocol (https://github.com/eclipse/microprofile-telemetry/issues/72[72]) | ||
* Typos in spec document (https://github.com/eclipse/microprofile-telemetry/issues/80[80]) |
Oops, something went wrong.