Skip to content

Commit

Permalink
bump OpenTelemetry specification version including refinements (#60)
Browse files Browse the repository at this point in the history
* bump OpenTelemetry specification version to 1.13.0 including refinements
  • Loading branch information
JanWesterkamp-iJUG committed Oct 18, 2022
1 parent fd47994 commit 6f0a490
Show file tree
Hide file tree
Showing 16 changed files with 201 additions and 125 deletions.
18 changes: 18 additions & 0 deletions NOTICE
@@ -0,0 +1,18 @@
=========================================================================
== NOTICE file corresponding to section 4(d) of the Apache License, ==
== Version 2.0, in this case for MicroProfile Telemetry ==
=========================================================================

SPDXVersion: SPDX-2.1
PackageName: MicroProfile
PackageHomePage: http://www.eclipse.org/microprofile
PackageLicenseDeclared: Apache-2.0

PackageCopyrightText: <text>
Roberto Cortez,
Emily Jiang,
Bruno Baptista,
Jan Westerkamp,
Felix Wong,
Yasmin Aumeeruddy
</text>
41 changes: 34 additions & 7 deletions README.adoc
@@ -1,14 +1,41 @@
# microprofile-telemetry
//
// Copyright (c) 2022 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

image:https://badges.gitter.im/eclipse/microprofile-telemetry.svg[link="https://gitter.im/eclipse/microprofile-telemetry?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]

This specification is to adopt https://opentelemetry.io/[OpenTelemetry] from CNCF to allow MicroProfile Applications benefit from OpenTelemetry and enable Jakarta RESTful Web Services automatically being traced if configured.

== OpenTracing move to OpenTelemetry
With the merge of OpenTracing and OpenCensus, OpenTelemetry holds the future. OpenTelemetry consists of Tracing, Logging and Metrics support.
This `tracing` directory only focuses on the tracing aspect.
== OpenTracing moves to OpenTelemetry
With the merge of OpenTracing and OpenCensus, OpenTelemetry holds the future.
OpenTelemetry consists of Tracing, Logging, Metrics and Baggage support.

== Structure of this specification
Since OpenTelemetry has three parts: Tracing, Metrics and Logging. This specification potentially adopts all three parts when they are stable in OpenTelemetry. If this is the case, they will appear as submodules in this specification.
For instance, you can find details related to `tracing` from the directory of `tracing`. This top level project specifies a particular version of OpenTelemetry to pull in so that all submodules can work together.
== Structure of this Specification
Since OpenTelemetry has three main parts and an additional one:
Tracing, Metrics, Logging and Baggage for additional information, i.e. to link between them.
This specification potentially adopts all three main parts when they are stable in OpenTelemetry.
If this is the case, they will appear as submodules in this specification.
For instance, you can find details related to `tracing` from the directory of `tracing`.
This top level project specifies a particular version of OpenTelemetry to pull in so that all submodules can work together.

[NOTE]
====
Currently implementations of this specification are required to support Tracing and Baggage only.
====
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -32,7 +32,7 @@
<properties>
<inceptionYear>2022</inceptionYear>
<opentelemetry.spec.version>1.13.0</opentelemetry.spec.version>
<opentelemetry.java.version>1.18.0</opentelemetry.java.version>
<opentelemetry.java.version>1.19.0</opentelemetry.java.version>
<version.microprofile.tck.bom>3.0</version.microprofile.tck.bom>
</properties>

Expand Down
43 changes: 33 additions & 10 deletions tracing/README.adoc
@@ -1,13 +1,32 @@
= MicroProfile Telemetry
//
// Copyright (c) 2022 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.
//

This specification is to adopt https://opentelemetry.io/[OpenTelemetry] from CNCF to allow MicroProfile Applications benefit from OpenTelemetry and enable Jakarta RESTful Web Services automatically being traced if configured.
= MicroProfile Telemetry Tracing
This specification is to adopt https://opentelemetry.io/[OpenTelemetry] from CNCF to allow MicroProfile applications benefit from OpenTelemetry and enable Jakarta RESTful Web Services automatically being traced if configured.

== OpenTracing move to OpenTelemetry
With the merge of OpenTracing and OpenCensus, OpenTelemetry holds the future. OpenTelemetry consists of Tracing, Logging and Metrics support.
This `tracing` directory only focuses on the tracing aspect.
== OpenTracing moves to OpenTelemetry
With the merge of OpenTracing and OpenCensus, OpenTelemetry holds the future.
OpenTelemetry consists of Tracing, Logging, Metrics and Baggage support.

== Directly adopt the APIs from OpenTelemetry Tracing
This `tracing` directory only focuses on the Tracing aspect (including Baggage use in this context).

== Directly adopt the APIs from OpenTelemetry Tracing
This specification directly expose the Tracing APIs from OpenTelemetry and then provide CDI and Jakarta RESTful Web Services integration.
The https://github.com/open-telemetry/opentelemetry-java/tree/main/api/all/src/main/java/io/opentelemetry/api/trace Tracer APIs from OpenTelemetry will be exposed.
This specification does not plan to reinvent the wheels but rather exposes OpenTelemetry APIs due to the following reasons:
Expand All @@ -17,14 +36,16 @@ This specification does not plan to reinvent the wheels but rather exposes OpenT
* OpenTelemetry has Java API and annotations that are readily to be used
* OpenTelemetry is active and open for the collaboration with us
* OpenTelemetry is platform technology and we use the effort to make Java libraries to be used directly instead of reinventing our own APIs
* OpenTelemetry has broad vendor support. Many APMs are contributing to the spec, providing a guarantee that traces can be used out of the box, with minimal integrations.
* OpenTelemetry has broad vendor support.
Many observability vendors are contributing to the spec, providing a guarantee that traces can be used out of the box, with minimal integrations.
* OpenTelemetry is serious with backward incompatible changes and communicates openly

MicroProfile Telemetry pulls in a particular version of OpenTelemetry.
Whenever we upgrade, we evaluate the backward compatibility status ourselves as well.

== MicroProfile Telemetry Tracing
MicroProfile Telemetry pulls in OpenTelemetry Tracing and integrate with CDI and Jakarta Restful Services. It provides three types of instrumentations:
MicroProfile Telemetry pulls in OpenTelemetry Tracing and integrate with CDI and Jakarta RESTful Web Services.
It provides three types of instrumentation:

* Automatic Instrumentation

Expand All @@ -39,5 +60,7 @@ Explicit manual instrumentation can be added into a MicroProfile application usi
Implementations are free to support the OpenTelemetry Agent Instrumentation.

=== Configuration
By default, MicroProfile Telemetry tracing is off. In order to enable any of the tracing aspects, the configuration `otel.experimental.sdk.enabled=true` must be specified in any of the config sources available via MicroProfile Config.
This property is read once when the application is starting. Any changes afterwards will not take effect unless the application is restarted.
By default, MicroProfile Telemetry Tracing is off.
In order to enable any of the Tracing aspects, the configuration `otel.sdk.disabled=false` must be specified in any of the configuration sources available via MicroProfile Config.
This property is read once when the application is starting.
Any changes afterwards will not take effect unless the application is restarted.
1 change: 0 additions & 1 deletion tracing/pom.xml
Expand Up @@ -34,7 +34,6 @@
<properties>
<version.mp.rest.client>3.0.1</version.mp.rest.client>
<version.microprofile-config-api>3.0.2</version.microprofile-config-api>
<version.junit-jupiter>5.9.1</version.junit-jupiter>
<version.awaitility>4.2.0</version.awaitility>
</properties>

Expand Down

0 comments on commit 6f0a490

Please sign in to comment.