Skip to content

Commit 865a31d

Browse files
toumorokoshithisthatmtwo
authored
normalize term for instrumentations (open-telemetry#539)
* normalize term for instrumentations Fixes open-telemetry#476 A single term for instrumentation libraries would be beneficial, as it reduces ambiguation. Removing synonyms "integration" and "adapter". Integration doesn't imply some form of instrumentation, while adapter could easily overlap with middleware or other concepts in existing frameworks that will be instrumented. * Addressing feedback Using the full "instrumentation libraries" form where possible. Fixing capitalization of OpenTelemetry. Adding reference to "Instrumenting Libraries". Adding link to definition in overview * finishing cleaning up merge errors. * fixing for lint. * re-removing milestones * Update specification/glossary.md fixing typo Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com> * Addressing feedback Re-adding a section clarifying the goal of opentelemetry to enable native instrumentation. Fixing links. * rewriting first paragraph on instrumentation libraries Clarifying several aspects about instrumentation libraries. * Update specification/error-handling.md Co-authored-by: Morgan McLean <morgan_mclean@hotmail.com> Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com> Co-authored-by: Morgan McLean <morgan_mclean@hotmail.com>
1 parent 6b08194 commit 865a31d

4 files changed

Lines changed: 26 additions & 20 deletions

File tree

specification/error-handling.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ And make a reasonable trade off of the SDK performance and fullness of type chec
4444

4545
## Self-diagnostics
4646

47-
All OpenTelemetry libraries -- the API, SDK, exporters, instrumentation adapters, etc. -- are encouraged to expose self-troubleshooting metrics, spans, and other telemetry that can be easily enabled and filtered out by default.
47+
All OpenTelemetry libraries -- the API, SDK, exporters, instrumentations, etc. -- are encouraged to expose self-troubleshooting metrics, spans, and other telemetry that can be easily enabled and filtered out by default.
4848

4949
One good example of such telemetry is a `Span` exporter that indicates how much time exporters spend uploading telemetry.
5050
Another example may be a metric exposed by a `SpanProcessor` that describes the current queue size of telemetry data to be uploaded.

specification/glossary.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ Example: `org.mongodb.client`.
2525

2626
<a name="instrumenting_library"></a>
2727

28-
### Instrumenting Library
28+
### Instrumentation Library
2929

3030
Denotes the library that provides the instrumentation for a given [Instrumented Library](#instrumented_library).
31-
*Instrumented Library* and *Instrumenting Library* may be the same library
31+
*Instrumented Library* and *Instrumentation Library* may be the same library
3232
if it has built-in OpenTelemetry instrumentation.
3333

3434
Example: `io.opentelemetry.contrib.mongodb`.
3535

36-
Synonyms: *Instrumentation Library*, *Integration*.
36+
Synonyms: *Instrumentation Library*
3737

3838
<a name="name"></a>
3939

specification/overview.md

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -261,22 +261,29 @@ service).
261261
Read more at OpenTelemetry Service [Long-term
262262
Vision](https://github.com/open-telemetry/opentelemetry-collector/blob/master/docs/vision.md).
263263

264-
## Instrumentation adapters
264+
## Instrumentation Libraries
265+
266+
See [Instrumentation Library](glossary.md#instrumentation_library)
265267

266268
The inspiration of the project is to make every library and application
267-
manageable out of the box by instrumenting it with OpenTelemetry. However on the
268-
way to this goal there will be a need to enable instrumentation by plugging
269-
instrumentation adapters into the library of choice. These adapters can be
270-
wrapping library APIs, subscribing to the library-specific callbacks or
271-
translating telemetry exposed in other formats into OpenTelemetry model.
272-
273-
Instrumentation adapters may be called different names. It is often referred as
274-
plugin, collector or auto-collector, telemetry module, bridge, etc. It is always
275-
recommended to follow the library and language standards. For instance, if
276-
instrumentation adapter is implemented as "log appender" - it will probably be
277-
called an `appender`, not an instrumentation adapter. However if there is no
278-
established name - the recommendation is to call packages "Instrumentation
279-
Adapter" or simply "Adapter".
269+
observable out of the box by having them call OpenTelemetry API directly. However,
270+
many libraries will not have such integration, and as such there is a need for
271+
a separate library which would inject such calls, using mechanisms such as
272+
wrapping interfaces, subscribing to library-specific callbacks, or translating
273+
existing telemetry into the OpenTelemetry model.
274+
275+
A library that enables OpenTelemetry observability for another library is called
276+
an [Instrumentation Library](glossary.md#instrumentation_library).
277+
278+
An instrumentation library should be named to follow any naming conventions of
279+
the instrumented library (e.g. 'middleware' for a web framework).
280+
281+
If there is no established name, the recommendation is to prefix packages
282+
with "opentelemetry-instrumentation", followed by the instrumented library
283+
name itself. Examples include:
284+
285+
* opentelemetry-instrumentation-flask (Python)
286+
* @opentelemetry/instrumentation-grpc (Javascript)
280287

281288
## Code injecting adapters
282289

specification/trace/api.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ Some applications may use multiple `TracerProvider` instances, e.g. to provide
8888
different settings (e.g. `SpanProcessor`s) to each of those instances and -
8989
in further consequence - to the `Tracer` instances created by them.
9090

91-
- `name` (required): This name must identify the instrumentation library (also
92-
referred to as integration, e.g. `io.opentelemetry.contrib.mongodb`) and *not*
91+
- `name` (required): This name must identify the instrumentation library (e.g. `io.opentelemetry.contrib.mongodb`) and *not*
9392
the instrumented library.
9493
In case an invalid name (null or empty string) is specified, a working
9594
default Tracer implementation as a fallback is returned rather than returning

0 commit comments

Comments
 (0)