From c8e72be34c5e3ef55f2bfe9c77dd83da0ad6a00b Mon Sep 17 00:00:00 2001 From: Jack Berg Date: Fri, 3 Mar 2023 10:05:30 -0600 Subject: [PATCH] Cleanup readmes --- README.md | 94 +++++++++--------- api/all/README.md | 21 +--- context/README.md | 6 -- exporters/common/README.md | 6 -- exporters/jaeger-proto/README.md | 7 +- exporters/jaeger-thrift/README.md | 29 ------ exporters/jaeger/README.md | 36 ------- exporters/logging-otlp/README.md | 9 -- exporters/logging/README.md | 6 -- exporters/otlp/all/README.md | 6 -- exporters/otlp/common/README.md | 8 -- exporters/prometheus/README.md | 8 -- exporters/zipkin/README.md | 26 ----- extensions/incubator/README.md | 6 -- extensions/kotlin/README.md | 6 -- extensions/trace-propagators/README.md | 23 ----- integration-tests/README.md | 4 - opencensus-shim/README.md | 27 ++--- opentracing-shim/README.md | 5 - sdk-extensions/autoconfigure-spi/README.md | 9 -- sdk-extensions/autoconfigure/README.md | 5 - sdk-extensions/incubator/README.md | 16 --- .../jaeger-remote-sampler/README.md | 5 - sdk/all/README.md | 13 --- sdk/common/README.md | 6 -- sdk/logs-testing/README.md | 6 -- sdk/logs/README.md | 11 -- sdk/metrics/README.md | 6 -- sdk/metrics/histograms.png | Bin 63779 -> 0 bytes sdk/testing/README.md | 6 -- sdk/trace/README.md | 6 -- semconv/README.md | 5 - 32 files changed, 59 insertions(+), 368 deletions(-) delete mode 100644 context/README.md delete mode 100644 exporters/common/README.md delete mode 100644 exporters/jaeger-thrift/README.md delete mode 100644 exporters/jaeger/README.md delete mode 100644 exporters/logging-otlp/README.md delete mode 100644 exporters/logging/README.md delete mode 100644 exporters/otlp/all/README.md delete mode 100644 exporters/otlp/common/README.md delete mode 100644 exporters/prometheus/README.md delete mode 100644 extensions/incubator/README.md delete mode 100644 extensions/kotlin/README.md delete mode 100644 extensions/trace-propagators/README.md delete mode 100644 integration-tests/README.md delete mode 100644 sdk-extensions/autoconfigure-spi/README.md delete mode 100644 sdk/all/README.md delete mode 100644 sdk/common/README.md delete mode 100644 sdk/logs-testing/README.md delete mode 100644 sdk/logs/README.md delete mode 100644 sdk/metrics/README.md delete mode 100644 sdk/metrics/histograms.png delete mode 100644 sdk/testing/README.md delete mode 100644 sdk/trace/README.md diff --git a/README.md b/README.md index 418ef73fbd2..97d8f58a19d 100644 --- a/README.md +++ b/README.md @@ -214,71 +214,71 @@ dependency as follows, replacing `{{artifact-id}}` with the value from the "Arti ### Bill of Material -| Component | Description | Artifact ID | Version | -|----------------------------------------------|----------------------------------------|---------------------------|-------------------------------------------------------------| -| [Bill of Materials (BOM)](./bom) | Bill of materials for stable artifacts | `opentelemetry-bom` | 1.23.1 | -| [Alpha Bill of Materials (BOM)](./bom-alpha) | Bill of materials for alpha artifacts | `opentelemetry-bom-alpha` | 1.23.1-alpha | +| Component | Description | Artifact ID | Version | Javadoc | +|----------------------------------------------|----------------------------------------|---------------------------|-------------------------------------------------------------|---------| +| [Bill of Materials (BOM)](./bom) | Bill of materials for stable artifacts | `opentelemetry-bom` | 1.23.1 | N/A | +| [Alpha Bill of Materials (BOM)](./bom-alpha) | Bill of materials for alpha artifacts | `opentelemetry-bom-alpha` | 1.23.1-alpha | N/A | ### API -| Component | Description | Artifact ID | Version | -|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------|----------------------------|-------------------------------------------------------------| -| [API](./api/all) | OpenTelemetry API, including metrics, traces, baggage, context | `opentelemetry-api` | 1.23.1 | -| [Events API](./api/logs) | OpenTelemetry Event API for emitting events. | `opentelemetry-api-events` | 1.23.1-alpha | -| [Logs API](./api/logs) | OpenTelemetry Log API for bridging log frameworks (NOT a replacement for application logging frameworks like SLF4J, JUL, etc.) | `opentelemetry-api-logs` | 1.23.1-alpha | -| [Context API](./context) | OpenTelemetry context API | `opentelemetry-context` | 1.23.1 | -| [Semantic Conventions](./semconv) | Generated code for OpenTelemetry semantic conventions | `opentelemetry-semconv` | 1.23.1-alpha | +| Component | Description | Artifact ID | Version | Javadoc | +|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------|----------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [API](./api/all) | OpenTelemetry API, including metrics, traces, baggage, context | `opentelemetry-api` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-api.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api) | +| [Events API](./api/logs) | OpenTelemetry Event API for emitting events. | `opentelemetry-api-events` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-api-events.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api-events) | +| [Logs API](./api/logs) | OpenTelemetry Log API for bridging log frameworks (NOT a replacement for application logging frameworks like SLF4J, JUL, etc.) | `opentelemetry-api-logs` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-api-logs.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api-logs) | +| [Context API](./context) | OpenTelemetry context API | `opentelemetry-context` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-context.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context) | +| [Semantic Conventions](./semconv) | Generated code for OpenTelemetry semantic conventions | `opentelemetry-semconv` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-semconv.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-semconv) | ### API Extensions -| Component | Description | Artifact ID | Version | -|---------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|-------------------------------------------------------------| -| [Kotlin Extension](./extensions/kotlin) | Context extension for coroutines | `opentelemetry-extension-kotlin` | 1.23.1 | -| [Trace Propagators Extension](./extensions/trace-propagators) | Trace propagators, including B3, Jaeger, OT Trace | `opentelemetry-extension-trace-propagators` | 1.23.1 | -| [Incubator Extension](./extensions/incubator) | API incubator, including pass through propagator, and extended tracer | `opentelemetry-extension-incubator` | 1.23.1-alpha | +| Component | Description | Artifact ID | Version | Javadoc | +|---------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------|-------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [Kotlin Extension](./extensions/kotlin) | Context extension for coroutines | `opentelemetry-extension-kotlin` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-extension-kotlin.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-kotlin) | +| [Trace Propagators Extension](./extensions/trace-propagators) | Trace propagators, including B3, Jaeger, OT Trace | `opentelemetry-extension-trace-propagators` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-extension-trace-propagators.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-trace-propagators) | +| [Incubator Extension](./extensions/incubator) | API incubator, including pass through propagator, and extended tracer | `opentelemetry-extension-incubator` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-extension-incubator.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-incubator) | ### SDK -| Component | Description | Artifact ID | Version | -|----------------------------------------|--------------------------------------------------------|----------------------------------|-------------------------------------------------------------| -| [SDK](./sdk/all) | OpenTelemetry SDK, including metrics, traces, and logs | `opentelemetry-sdk` | 1.23.1 | -| [Metrics SDK](./sdk/metrics) | OpenTelemetry metrics SDK | `opentelemetry-sdk-metrics` | 1.23.1 | -| [Trace SDK](./sdk/trace) | OpenTelemetry trace SDK | `opentelemetry-sdk-trace` | 1.23.1 | -| [Log SDK](./sdk/logs) | OpenTelemetry log SDK | `opentelemetry-sdk-logs` | 1.23.1-alpha | -| [SDK Common](./sdk/common) | Shared SDK components | `opentelemetry-sdk-common` | 1.23.1 | -| [SDK Testing](./sdk/testing) | Components for testing OpenTelemetry instrumentation | `opentelemetry-sdk-testing` | 1.23.1 | -| [SDK Logs Testing](./sdk/logs-testing) | Components for testing OpenTelemetry logs | `opentelemetry-sdk-logs-testing` | 1.23.1-alpha | +| Component | Description | Artifact ID | Version | Javadoc | +|----------------------------------------|--------------------------------------------------------|----------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [SDK](./sdk/all) | OpenTelemetry SDK, including metrics, traces, and logs | `opentelemetry-sdk` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk) | +| [Metrics SDK](./sdk/metrics) | OpenTelemetry metrics SDK | `opentelemetry-sdk-metrics` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-metrics.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-metrics) | +| [Trace SDK](./sdk/trace) | OpenTelemetry trace SDK | `opentelemetry-sdk-trace` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-trace.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-trace) | +| [Log SDK](./sdk/logs) | OpenTelemetry log SDK | `opentelemetry-sdk-logs` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-logs.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-logs) | +| [SDK Common](./sdk/common) | Shared SDK components | `opentelemetry-sdk-common` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-common.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-common) | +| [SDK Testing](./sdk/testing) | Components for testing OpenTelemetry instrumentation | `opentelemetry-sdk-testing` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-testing.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-testing) | +| [SDK Logs Testing](./sdk/logs-testing) | Components for testing OpenTelemetry logs | `opentelemetry-sdk-logs-testing` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-logs-testing.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-logs-testing) | ### SDK Exporters -| Component | Description | Artifact ID | Version | -|-----------------------------------------------------|-------------------------------------------------------------------------------------|---------------------------------------|-------------------------------------------------------------| -| [OTLP Exporters](./exporters/otlp/all) | OTLP gRPC & HTTP exporters, including metrics and trace | `opentelemetry-exporter-otlp` | 1.23.1 | -| [OTLP Log Exporters](./exporters/otlp/logs) | OTLP gRPC & HTTP log exporters | `opentelemetry-exporter-otlp-logs` | 1.23.1-alpha | -| [OTLP Common](./exporters/otlp/common) | Shared OTLP components (internal) | `opentelemetry-exporter-otlp-common` | 1.23.1 | -| [Jaeger gRPC Exporter](./exporters/jaeger) | Jaeger gRPC trace exporter | `opentelemetry-exporter-jaeger` | 1.23.1 | -| [Jaeger Thrift Exporter](./exporters/jaeger-thrift) | Jaeger thrift trace exporter | `opentelemetry-exporter-jaeger-thift` | 1.23.1 | -| [Logging Exporter](./exporters/logging) | Logging exporters, includings metrics, traces, and logs | `opentelemetry-exporter-logging` | 1.23.1 | -| [OTLP Logging Exporter](./exporters/logging-otlp) | Logging exporters in OTLP protobuf JSON format, including metrics, traces, and logs | `opentelemetry-exporter-logging-otlp` | 1.23.1 | -| [Zipkin Exporter](./exporters/zipkin) | Zipkin trace exporter | `opentelemetry-exporter-zipkin` | 1.23.1 | -| [Prometheus Exporter](./exporters/prometheus) | Prometheus metric exporter | `opentelemetry-exporter-prometheus` | 1.23.1-alpha | -| [Exporter Common](./exporters/common) | Shared exporter components (internal) | `opentelemetry-exporter-common` | 1.23.1 | +| Component | Description | Artifact ID | Version | Javadoc | +|-----------------------------------------------------|-------------------------------------------------------------------------------------|---------------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [OTLP Exporters](./exporters/otlp/all) | OTLP gRPC & HTTP exporters, including metrics and trace | `opentelemetry-exporter-otlp` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-otlp.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp) | +| [OTLP Log Exporters](./exporters/otlp/logs) | OTLP gRPC & HTTP log exporters | `opentelemetry-exporter-otlp-logs` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-otlp-logs.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp-logs) | +| [OTLP Common](./exporters/otlp/common) | Shared OTLP components (internal) | `opentelemetry-exporter-otlp-common` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-otlp-common.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp-common) | +| [Jaeger gRPC Exporter](./exporters/jaeger) | Jaeger gRPC trace exporter | `opentelemetry-exporter-jaeger` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-jaeger.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-jaeger) | +| [Jaeger Thrift Exporter](./exporters/jaeger-thrift) | Jaeger thrift trace exporter | `opentelemetry-exporter-jaeger-thift` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-jaeger-thrift.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-jaeger-thrift) | +| [Logging Exporter](./exporters/logging) | Logging exporters, includings metrics, traces, and logs | `opentelemetry-exporter-logging` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-logging.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-logging) | +| [OTLP Logging Exporter](./exporters/logging-otlp) | Logging exporters in OTLP protobuf JSON format, including metrics, traces, and logs | `opentelemetry-exporter-logging-otlp` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-logging-otlp.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-logging-otlp) | +| [Zipkin Exporter](./exporters/zipkin) | Zipkin trace exporter | `opentelemetry-exporter-zipkin` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-zipkin.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-zipkin) | +| [Prometheus Exporter](./exporters/prometheus) | Prometheus metric exporter | `opentelemetry-exporter-prometheus` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-prometheus.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-prometheus) | +| [Exporter Common](./exporters/common) | Shared exporter components (internal) | `opentelemetry-exporter-common` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-common.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-common) | ### SDK Extensions -| Component | Description | Artifact ID | Version | -|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------------| -| [SDK Autoconfigure Extension](./sdk-extensions/autoconfigure) | Autoconfigure OpenTelemetry SDK from env vars, system properties, and SPI | `opentelemetry-sdk-extension-autoconfigure` | 1.23.1-alpha | -| [SDK Autoconfigure SPI](./sdk-extensions/autoconfigure-spi) | Service Provider Interface (SPI) definitions for autoconfigure | `opentelemetry-sdk-extension-autoconfigure-spi` | 1.23.1 | -| [SDK Jaeger Remote Sampler Extension](./sdk-extensions/jaeger-remote-sampler) | Sampler which obtains sampling configuration from remote Jaeger server | `opentelemetry-sdk-extension-jaeger-remote-sampler` | 1.23.1 | -| [SDK Incubator](./sdk-extensions/incubator) | SDK incubator, including YAML based view configuration, LeakDetectingSpanProcessor, and zPages | `opentelemetry-sdk-extension-incubator` | 1.23.1-alpha | +| Component | Description | Artifact ID | Version | Javadoc | +|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|-----------------------------------------------------|-------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [SDK Autoconfigure Extension](./sdk-extensions/autoconfigure) | Autoconfigure OpenTelemetry SDK from env vars, system properties, and SPI | `opentelemetry-sdk-extension-autoconfigure` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure) | +| [SDK Autoconfigure SPI](./sdk-extensions/autoconfigure-spi) | Service Provider Interface (SPI) definitions for autoconfigure | `opentelemetry-sdk-extension-autoconfigure-spi` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi) | +| [SDK Jaeger Remote Sampler Extension](./sdk-extensions/jaeger-remote-sampler) | Sampler which obtains sampling configuration from remote Jaeger server | `opentelemetry-sdk-extension-jaeger-remote-sampler` | 1.23.1 | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-jaeger-remote-sampler.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-jaeger-remote-sampler) | +| [SDK Incubator](./sdk-extensions/incubator) | SDK incubator, including YAML based view configuration, LeakDetectingSpanProcessor, and zPages | `opentelemetry-sdk-extension-incubator` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-incubator.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-incubator) | ### Shims -| Component | Description | Artifact ID | Version | -|----------------------------------------|--------------------------------------------------------------|----------------------------------|-------------------------------------------------------------| -| [OpenCensus Shim](./opencensus-shim) | Bridge opencensus metrics into the OpenTelemetry metrics SDK | `opentelemetry-opencensus-shim` | 1.23.1-alpha | -| [OpenTracing Shim](./opentracing-shim) | Bridge opentracing spans into the OpenTelemetry trace API | `opentelemetry-opentracing-shim` | 1.23.1-alpha | +| Component | Description | Artifact ID | Version | Javadoc | +|----------------------------------------|--------------------------------------------------------------|----------------------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [OpenCensus Shim](./opencensus-shim) | Bridge opencensus metrics into the OpenTelemetry metrics SDK | `opentelemetry-opencensus-shim` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-opencensus-shim.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-opencensus-shim) | +| [OpenTracing Shim](./opentracing-shim) | Bridge opentracing spans into the OpenTelemetry trace API | `opentelemetry-opentracing-shim` | 1.23.1-alpha | [![Javadocs](https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-opentracing-shim.svg)](https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-opentracing-shim) | ## Contributing diff --git a/api/all/README.md b/api/all/README.md index a8093e10002..86c14664fdd 100644 --- a/api/all/README.md +++ b/api/all/README.md @@ -1,22 +1,7 @@ # OpenTelemetry API -[![Javadocs][javadoc-image]][javadoc-url] +#### API Misuse Logging -* The code in this module is the implementation of stable OpenTelemetry signals. -* Semantic Conventions for OpenTelemetry are in the `opentelemetry-semconv` module. -* The default implementation of the interfaces in this module is in the OpenTelemetry SDK module. -* The interfaces in this directory can be implemented to create alternative - implementations of the OpenTelemetry library. +API misuse information is logged under logger named `io.opentelemetry.ApiUsageLogging`. -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-api.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-api - ---- -#### Running micro-benchmarks -From the root of the repo run `./gradlew clean :api:jmh` to run all the benchmarks -or run `./gradlew clean :api:jmh -PjmhIncludeSingleClass=` -to run a specific benchmark class. - ---- -#### Logging API mis-use -Define `logging.level.io.opentelemetry.ApiUsageLogging=TRACE` to enable TRACE logging for invalid API calls. +To access, enable `FINEST` level logs. diff --git a/context/README.md b/context/README.md deleted file mode 100644 index f2ad11c09c1..00000000000 --- a/context/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry Context - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-context.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-context diff --git a/exporters/common/README.md b/exporters/common/README.md deleted file mode 100644 index 6f9184bab1d..00000000000 --- a/exporters/common/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry - Exporter Common - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-common.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-common diff --git a/exporters/jaeger-proto/README.md b/exporters/jaeger-proto/README.md index 7d5e7aaf23d..f7e8a0497d8 100644 --- a/exporters/jaeger-proto/README.md +++ b/exporters/jaeger-proto/README.md @@ -1,8 +1,3 @@ # OpenTelemetry - Jaeger Proto (DEPRECATED) -> **NOTICE**: External use of this artifact is deprecated. It will not have any changes in the future but will continue to be published as is until 2.0.0. - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-jaeger-proto.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-jaeger-proto +> **NOTICE**: External use of this artifact is deprecated. diff --git a/exporters/jaeger-thrift/README.md b/exporters/jaeger-thrift/README.md deleted file mode 100644 index cb770718b61..00000000000 --- a/exporters/jaeger-thrift/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# OpenTelemetry - Jaeger Exporter - Thrift - -[![Javadocs][javadoc-image]][javadoc-url] - -This is the OpenTelemetry exporter, sending span data to Jaeger via Thrift over HTTP. - -## Configuration - -The Jaeger Thrift span exporter can be configured programmatically. - -An example of simple Jaeger Thrift exporter initialization. In this case -spans will be sent to a Jaeger Thrift endpoint running on `localhost`: - -```java -JaegerThriftSpanExporter exporter = - JaegerThriftSpanExporter.builder() - .setEndpoint("http://localhost:14268/api/traces") - .build(); -``` - -If you need configuration via environment variables and/or system properties, you will want to use -the [autoconfigure](../../sdk-extensions/autoconfigure) module. - -## Compatibility - -As with the OpenTelemetry SDK itself, this exporter is compatible with Java 8+ and Android API level 24+. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-jaeger-thrift.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-jaeger-thrift diff --git a/exporters/jaeger/README.md b/exporters/jaeger/README.md deleted file mode 100644 index 7c4df73ef9b..00000000000 --- a/exporters/jaeger/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# OpenTelemetry - Jaeger Exporter - gRPC - -[![Javadocs][javadoc-image]][javadoc-url] - -This is the OpenTelemetry exporter, sending span data to Jaeger via gRPC. - -## Configuration - -The Jaeger gRPC span exporter can be configured programmatically. - -An example of simple Jaeger gRPC exporter initialization. In this case -spans will be sent to a Jaeger gRPC endpoint running on `localhost`: - -```java -JaegerGrpcSpanExporter exporter = - JaegerGrpcSpanExporter.builder() - .setEndpoint("http://localhost:14250") - .build(); -``` - -If you need configuration via environment variables and/or system properties, you will want to use -the [autoconfigure](../../sdk-extensions/autoconfigure) module. - -## Compatibility - -As with the OpenTelemetry SDK itself, this exporter is compatible with Java 8+ and Android API level 24+. - -## Proto files - -The proto files in this repository were copied over from the [Jaeger main repository][proto-origin]. -At this moment, they have to be manually synchronized, but a [discussion exists][proto-discussion] on how to properly consume them in a more appropriate manner. - -[proto-origin]: https://github.com/jaegertracing/jaeger/tree/5b8c1f40f932897b9322bf3f110d830536ae4c71/model/proto -[proto-discussion]: https://github.com/open-telemetry/opentelemetry-java/issues/235 -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-jaeger.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-jaeger diff --git a/exporters/logging-otlp/README.md b/exporters/logging-otlp/README.md deleted file mode 100644 index 82018d4cdd1..00000000000 --- a/exporters/logging-otlp/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# OpenTelemetry - OTLP JSON Logging Exporter - -[![Javadocs][javadoc-image]][javadoc-url] - -Exporters for writing data to logs using OTLP JSON format. They are appropriate for writing spans or -metrics to logs in a way that is both human-readable and structured for machine parsing. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-logging-otlp.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-logging-otlp diff --git a/exporters/logging/README.md b/exporters/logging/README.md deleted file mode 100644 index 1609476a396..00000000000 --- a/exporters/logging/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry - Logging Exporter - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-logging.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-logging diff --git a/exporters/otlp/all/README.md b/exporters/otlp/all/README.md deleted file mode 100644 index c02178ee94a..00000000000 --- a/exporters/otlp/all/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry - OTLP gRPC Exporters - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-otlp.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp diff --git a/exporters/otlp/common/README.md b/exporters/otlp/common/README.md deleted file mode 100644 index f0805343886..00000000000 --- a/exporters/otlp/common/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# OpenTelemetry - OTLP Common - -[![Javadocs][javadoc-image]][javadoc-url] - -This module contains common utility code used by other OpenTelemetry OTLP modules, including conversion between OpenTelemetry API or SDK objects and proto objects. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-otlp-common.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-otlp-common diff --git a/exporters/prometheus/README.md b/exporters/prometheus/README.md deleted file mode 100644 index af2e89660e5..00000000000 --- a/exporters/prometheus/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# OpenTelemetry - Prometheus Exporter - -[![Javadocs][javadoc-image]][javadoc-url] - -This is the OpenTelemetry's Prometheus exporter, allowing Prometheus to query metrics data. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-prometheus.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-prometheus diff --git a/exporters/zipkin/README.md b/exporters/zipkin/README.md index 21c27587ac0..9fb38662a12 100644 --- a/exporters/zipkin/README.md +++ b/exporters/zipkin/README.md @@ -1,33 +1,7 @@ # OpenTelemetry - Zipkin Span Exporter -[![Javadocs][javadoc-image]][javadoc-url] - -This is an OpenTelemetry exporter that sends span data using the [io.zipkin.reporter2:zipkin-reporter](https://github.com/openzipkin/zipkin-reporter-java) library. - -By default, this POSTs json in [Zipkin format](https://zipkin.io/zipkin-api/#/default/post_spans) to -a specified HTTP URL. This could be to a [Zipkin](https://zipkin.io) service, or anything that -consumes the same format. - -You can alternatively use other formats, such as protobuf, or override the `Sender` to use a non-HTTP transport, such as Kafka. - -## Configuration - -The Zipkin span exporter can be configured programmatically. - -An example of simple Zipkin exporter initialization. In this case -spans will be sent to a Zipkin endpoint running on `localhost`: - -```java -ZipkinSpanExporter exporter = - ZipkinSpanExporter.builder() - .setEndpoint("http://localhost/api/v2/spans") - .build(); -``` - ## Attribution The code in this module is based on the [OpenCensus Zipkin exporter][oc-origin] code. -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-exporter-zipkin.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-zipkin [oc-origin]: https://github.com/census-instrumentation/opencensus-java/ diff --git a/extensions/incubator/README.md b/extensions/incubator/README.md deleted file mode 100644 index aaeec552def..00000000000 --- a/extensions/incubator/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry Extension Incubator - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-extension-incubator.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-incubator diff --git a/extensions/kotlin/README.md b/extensions/kotlin/README.md deleted file mode 100644 index cf05ae83ac0..00000000000 --- a/extensions/kotlin/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry Extension Kotlin - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-extension-kotlin.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-kotlin diff --git a/extensions/trace-propagators/README.md b/extensions/trace-propagators/README.md deleted file mode 100644 index 57b33cab7ba..00000000000 --- a/extensions/trace-propagators/README.md +++ /dev/null @@ -1,23 +0,0 @@ -OpenTelemetry Extension Trace Propagators -====================================================== - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-extension-trace-propagators.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-extension-trace-propagators - -This repository provides several -[trace propagators](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/context/api-propagators.md), -used to propagate context across a distributed trace. - -OpenTelemetry Java provides first-party support for -[B3 (OpenZipkin)](https://github.com/openzipkin/b3-propagation) and -[Jaeger](https://github.com/jaegertracing/jaeger) propagators. Issues with those propagators -should be filed against this repo. - ---- -#### Running micro-benchmarks -From the root of the repo run `./gradlew clean :opentelemetry-extension-trace-propagators:jmh` -to run all the benchmarks -or run `./gradlew clean :opentelemetry-extension-trace-propagators:jmh -PjmhIncludeSingleClass=` -to run a specific benchmark class. diff --git a/integration-tests/README.md b/integration-tests/README.md deleted file mode 100644 index 0632073ccd5..00000000000 --- a/integration-tests/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# OpenTelemetry Integration Tests - - -* Integration Test code lives here diff --git a/opencensus-shim/README.md b/opencensus-shim/README.md index 9e54ba4adac..69c9f3319cd 100644 --- a/opencensus-shim/README.md +++ b/opencensus-shim/README.md @@ -1,7 +1,5 @@ # OpenTelemetry OpenCensus Shim -[![Javadocs][javadoc-image]][javadoc-url] - The OpenCensus shim allows applications and libraries that are instrumented with OpenTelemetry, but depend on other libraries instrumented with OpenCensus, to export trace spans from both OpenTelemetry and OpenCensus with the correct @@ -24,33 +22,24 @@ To allow the shim to work for metrics, add the shim as a dependency. Applications also need to attach OpenCensus metrics to their metric readers on registration. -``` +```java +PeriodicMetricReader reader = ... SdkMeterProvider.builder() - .registerMetricReader( - OpenCensusMetrics.attachTo(readerFactory) - ) - .buildAndRegisterGlobal(); + .registerMetricReader(OpenCensusMetrics.attachTo(reader)) + .buildAndRegisterGlobal(); ``` For example, if a logging exporter were configured, the following would be added: -``` -LoggingMetricExporter metricExporter = new LoggingMetricExporter(); +```java +LoggingMetricExporter metricExporter = LoggingMetricExporter.create(); SdkMeterProvider.builder() - .registerMetricReader( - OpenCensusMetrics.attachTo( - PeriodicMetricReader.builder(metricExporter) - .newMetricReaderFactory() - ) - ) - .buildAndRegisterGlobal(); + .registerMetricReader(OpenCensusMetrics.attachTo(PeriodicMetricReader.create(metricExporter))) + .build(); ``` ## Known Problems * OpenCensus links added after an OpenCensus span is created will not be exported, as OpenTelemetry only supports links added when a span is created. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-opencensus-shim.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-opencensus-shim diff --git a/opentracing-shim/README.md b/opentracing-shim/README.md index 9bb308663d6..55e01814828 100644 --- a/opentracing-shim/README.md +++ b/opentracing-shim/README.md @@ -1,7 +1,5 @@ # OpenTelemetry - OpenTracing Shim -[![Javadocs][javadoc-image]][javadoc-url] - The OpenTracing shim is a bridge layer from OpenTelemetry to the OpenTracing API. It takes OpenTelemetry Tracer and exposes it as an implementation of an OpenTracing Tracer. @@ -21,6 +19,3 @@ Optionally register the tracer as the OpenTracing GlobalTracer: ```java GlobalTracer.registerIfAbsent(tracer); ``` - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-opentracing-shim.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-opentracing-shim diff --git a/sdk-extensions/autoconfigure-spi/README.md b/sdk-extensions/autoconfigure-spi/README.md deleted file mode 100644 index 475f7efed35..00000000000 --- a/sdk-extensions/autoconfigure-spi/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# OpenTelemetry SDK Autoconfigure SPI - -[![Javadocs][javadoc-image]][javadoc-url] - -This artifact provides Java Service Provider Interfaces (SPI) for controlling [SDK autoconfiguration](../autoconfigure). -Visit the autoconfigure module for more information on how to use autoconfiguration. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi diff --git a/sdk-extensions/autoconfigure/README.md b/sdk-extensions/autoconfigure/README.md index 33aef2bccdd..a39000c16b9 100644 --- a/sdk-extensions/autoconfigure/README.md +++ b/sdk-extensions/autoconfigure/README.md @@ -1,7 +1,5 @@ # OpenTelemetry SDK Autoconfigure -[![Javadocs][javadoc-image]][javadoc-url] - This artifact implements environment-based autoconfiguration of the OpenTelemetry SDK. This can be an alternative to programmatic configuration using the normal SDK builders. @@ -314,6 +312,3 @@ These properties can be used to control the maximum size of spans by placing lim Autoconfiguration exposes SPI [hooks](../autoconfigure-spi/src/main/java/io/opentelemetry/sdk/autoconfigure/spi) for customizing behavior programmatically as needed. It's recommended to use the above configuration properties where possible, only implementing the SPI to add functionality not found in the SDK by default. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-autoconfigure diff --git a/sdk-extensions/incubator/README.md b/sdk-extensions/incubator/README.md index d01145e3d26..e035c839c29 100644 --- a/sdk-extensions/incubator/README.md +++ b/sdk-extensions/incubator/README.md @@ -1,7 +1,5 @@ # OpenTelemetry Incubator -[![Javadocs][javadoc-image]][javadoc-url] - This artifact contains experimental code related to the trace and metric SDKs. ## View File Configuration @@ -180,17 +178,3 @@ The /traceconfigz zPage displays information about the currently active tracing provides an interface for users to modify relevant parameters. Here is what the web page looks like: ![traceconfigz](img/traceconfigz.png) - -### Benchmark Testing - -This module contains two sets of benchmark tests: one for adding spans to an instance of -TracezSpanBuckets and another for retrieving counts and spans with TracezDataAggregator. You can run -the tests yourself with the following commands: - -``` -./gradlew -PjmhIncludeSingleClass=TracezSpanBucketsBenchmark clean :opentelemetry-sdk-extension-zpages:jmh -./gradlew -PjmhIncludeSingleClass=TracezDataAggregatorBenchmark clean :opentelemetry-sdk-extension-zpages:jmh -``` - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-tracing-incubator.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-tracing-incubator diff --git a/sdk-extensions/jaeger-remote-sampler/README.md b/sdk-extensions/jaeger-remote-sampler/README.md index e4c632116d5..0c4af5fa7b4 100644 --- a/sdk-extensions/jaeger-remote-sampler/README.md +++ b/sdk-extensions/jaeger-remote-sampler/README.md @@ -1,7 +1,5 @@ # Jaeger Remote Sampler -[![Javadocs][javadoc-image]][javadoc-url] - This module implements [Jaeger remote sampler](https://www.jaegertracing.io/docs/latest/sampling/#collector-sampling-configuration). The sampler configuration is received from collector's gRPC endpoint. @@ -18,6 +16,3 @@ return SdkTracerProvider.builder() .setSampler(sampler) .build(); ``` - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-jaeger-remote-sampler.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-jaeger-remote-sampler diff --git a/sdk/all/README.md b/sdk/all/README.md deleted file mode 100644 index 9ee9006a4b0..00000000000 --- a/sdk/all/README.md +++ /dev/null @@ -1,13 +0,0 @@ -OpenTelemetry SDK -====================================================== - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk - ---- -#### Running micro-benchmarks -From the root of the repo run `./gradlew clean :opentelemetry-sdk:jmh` to run all the benchmarks -or run `./gradlew clean :opentelemetry-sdk:jmh -PjmhIncludeSingleClass=` -to run a specific benchmark class. diff --git a/sdk/common/README.md b/sdk/common/README.md deleted file mode 100644 index ca0d8b5d9b8..00000000000 --- a/sdk/common/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry SDK Common - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-common.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-common diff --git a/sdk/logs-testing/README.md b/sdk/logs-testing/README.md deleted file mode 100644 index 8f6c8ec7c8c..00000000000 --- a/sdk/logs-testing/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry Logs SDK Testing - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-logs-testing.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-logs-testing diff --git a/sdk/logs/README.md b/sdk/logs/README.md deleted file mode 100644 index a939cdba53f..00000000000 --- a/sdk/logs/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# OpenTelemetry Experimental Logging Support - -[![Javadocs][javadoc-image]][javadoc-url] - -This project contains experimental support for transport of logs via OpenTelemetry. The API -presented is intended for the use of logging library adapters to enable resource and request -correlation with other observability signals and transport of logs through the OpenTelemetry -collector. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-extension-logging.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-extension-logging diff --git a/sdk/metrics/README.md b/sdk/metrics/README.md deleted file mode 100644 index 1b18aaca21e..00000000000 --- a/sdk/metrics/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry Metrics SDK - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-metrics.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-metrics diff --git a/sdk/metrics/histograms.png b/sdk/metrics/histograms.png deleted file mode 100644 index a8ca2de861520ab7954a48cd296ed402679871ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63779 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 diff --git a/sdk/testing/README.md b/sdk/testing/README.md deleted file mode 100644 index f57880691e8..00000000000 --- a/sdk/testing/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry SDK Testing - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-testing.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-testing diff --git a/sdk/trace/README.md b/sdk/trace/README.md deleted file mode 100644 index 7798d150306..00000000000 --- a/sdk/trace/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# OpenTelemetry Trace SDK - -[![Javadocs][javadoc-image]][javadoc-url] - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-sdk-trace.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-trace diff --git a/semconv/README.md b/semconv/README.md index cf626b4bae9..c70c47abe06 100644 --- a/semconv/README.md +++ b/semconv/README.md @@ -1,10 +1,5 @@ # OpenTelemetry Semantic Conventions -[![Javadocs][javadoc-image]][javadoc-url] - * This module contains generated code for the Semantic Conventions defined by the OpenTelemetry specification. * Scripts for generating the classes live in the `buildscripts/semantic-convention` directory at the top level of the project. - -[javadoc-image]: https://www.javadoc.io/badge/io.opentelemetry/opentelemetry-semconv.svg -[javadoc-url]: https://www.javadoc.io/doc/io.opentelemetry/opentelemetry-semconv