From 3924d97eded6400b88e3db3d485d4abeb1b5ea23 Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Mon, 27 Nov 2023 22:20:58 +0100 Subject: [PATCH 01/17] Rework the java exporters page (#3558) --- .../en/docs/instrumentation/java/exporters.md | 303 +++++++++++++++++- static/refcache.json | 16 + 2 files changed, 310 insertions(+), 9 deletions(-) diff --git a/content/en/docs/instrumentation/java/exporters.md b/content/en/docs/instrumentation/java/exporters.md index e3e5da9baf29..30fc055302c0 100644 --- a/content/en/docs/instrumentation/java/exporters.md +++ b/content/en/docs/instrumentation/java/exporters.md @@ -17,13 +17,61 @@ how to setup exporters following the ## OTLP -To send trace data to a OTLP endpoint (like the [collector](/docs/collector) or -Jaeger) you'll want to use `opentelemetry-exporter-otlp`. +### Collector Setup -### OTLP Artifacts +{{% alert title="Note" color="info" %}} + +If you have a OTLP collector or backend already set up, you can skip this +section and [setup the OTLP exporter dependencies](#otlp-dependencies) for your +application. -There are multiple OTLP options available, each catering to different use cases. -For most users, the default artifact will suffice and be the most simple: +{{% /alert %}} + +To try out and verify your OTLP exporters, you can run the collector in a docker +container that writes telemetry directly to the console. + +In an empty directory, create a file called `collector-config.yaml` with the +following content: + +```yaml +receivers: + otlp: + protocols: + grpc: + http: +exporters: + debug: + verbosity: detailed +service: + pipelines: + traces: + receivers: [otlp] + exporters: [debug] + metrics: + receivers: [otlp] + exporters: [debug] + logs: + receivers: [otlp] + exporters: [debug] +``` + +Now run the collector in a docker container: + +```shell +docker run -p 4317:4317 -p 4318:4318 --rm -v $(pwd)/collector-config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector +``` + +This collector is now able to accept telemetry via OTLP. Later you may want to +[configure the collector](/docs/collector/configuration) to send your telemetry +to your observability backend. + +### Dependencies {#otlp-dependencies} + +If you want to send telemetry data to an OTLP endpoint (like the +[OpenTelemetry Collector](#collector-setup), [Jaeger](#jaeger) or +[Prometheus](#prometheus)), there are multiple OTLP options available, each +catering to different use cases. For most users, the default artifact will +suffice and be the most simple: {{< tabpane text=true >}} {{% tab Gradle %}} @@ -171,14 +219,251 @@ public class DiceApplication { } ``` -To see the traces exported quickly, you can run Jaeger with OTLP enabled in a -docker container: +## Console + +To debug your instrumentation or see the values locally in development, you can +use exporters writing telemetry data to the console (stdout). + +If you followed the +[Getting Started](/docs/instrumentation/java/getting-started/) or +[Manual Instrumentation](/docs/instrumentation/java/manual/) guides, you already +have the console exporter installed. + +The `LoggingSpanExporter`, the `LoggingMetricExporter` and the +`SystemOutLogRecordExporter` are included in the +`opentelemetry-exporter-logging` artifact. + +If you use +[SDK auto-configuration](/docs/instrumentation/java/manual/#automatic-configuration) +all you need to do is update your environment variables: + +```shell +env OTEL_TRACES_EXPORTER=logging OTEL_METRICS_EXPORTER=logging OTEL_LOGS_EXPORTER=logging java -jar ./build/libs/java-simple.jar +``` + +## Jaeger + +[Jaeger](https://www.jaegertracing.io/) natively supports OTLP to receive trace +data. You can run Jaeger in a docker container with the UI accessible on port +16686 and OTLP enabled on ports 4137 and 4138: ```shell -docker run -d --name jaeger \ - -e COLLECTOR_OTLP_ENABLED=true \ +docker run --rm \ + -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ -p 16686:16686 \ -p 4317:4317 \ -p 4318:4318 \ + -p 9411:9411 \ jaegertracing/all-in-one:latest ``` + +Now following the instruction to setup the [OTLP exporters](#otlp-dependencies). + +## Prometheus + +To send your metric data to [Prometheus](https://prometheus.io/), you can either +[enable Prometheus' OTLP Receiver](https://prometheus.io/docs/prometheus/latest/feature_flags/#otlp-receiver) +and use the [OTLP exporter](#otlp) or you can use the +[`PrometheusHttpServer`](https://javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-prometheus/latest/io/opentelemetry/exporter/prometheus/PrometheusHttpServer.html), +a `MetricReader`, that starts an HTTP server that will collect metrics and +serialize to Prometheus text format on request. + +### Backend Setup {#prometheus-setup} + +{{% alert title="Note" color="info" %}} + +If you have Prometheus or a Prometheus-compatible backend already set up, you +can skip this section and setup the [Prometheus](#prometheus-dependencies) or +[OTLP](#otlp-dependencies) exporter dependencies for your application. + +{{% /alert %}} + +You can run [Prometheus](https://prometheus.io) in a docker container, +accessible on port `9090` by following these instructions: + +Create a file called `prometheus.yml` with the following content: + +```yaml +scrape_configs: + - job_name: dice-service + scrape_interval: 5s + static_configs: + - targets: [host.docker.internal:9464] +``` + +Run Prometheus in a docker container with the UI accessible on port `9090`: + +```shell +docker run --rm -v ${PWD}/prometheus.yml:/prometheus/prometheus.yml -p 9090:9090 prom/prometheus --enable-feature=otlp-write-receive +``` + +{{% alert title="Note" color="info" %}} + +When using Prometheus' OTLP Receiver, make sure that you set the OTLP endpoint +for metrics in your application to `http://localhost:9090/api/v1/otlp`. + +Not all docker environments support `host.docker.internal`. In some cases you +may need to replace `host.docker.internal` with `localhost` or the IP address of +your machine. + +{{% /alert %}} + +### Dependencies {#prometheus-dependencies} + +Install the +[`opentelemetry-exporter-prometheus`](https://javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-prometheus/latest) +artifact as a dependency for your application: + +{{< tabpane text=true >}} {{% tab Gradle %}} + +```kotlin +dependencies { + implementation 'io.opentelemetry:opentelemetry-exporter-prometheus:{{% param vers.otel %}}-alpha' +} +``` + +{{% /tab %}} {{% tab Maven %}} + +```xml + + + + io.opentelemetry + opentelemetry-exporter-prometheus + + + +``` + +{{< /tab >}} {{< /tabpane>}} + +Update your OpenTelemetry configuration to use the exporter and to send data to +your Prometheus backend: + +```java +import io.opentelemetry.exporter.prometheus.PrometheusHttpServer; + +int prometheusPort = 9464; +SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder() + .registerMetricReader(PrometheusHttpServer.builder().setPort(prometheusPort).build()) + .setResource(resource) + .build(); +``` + +With the above you can access your metrics at . +Prometheus or an OpenTelemetry Collector with the Prometheus receiver can scrape +the metrics from this endpoint. + +## Zipkin + +### Backend Setup {#zipkin-setup} + +{{% alert title="Note" color="info" %}} + +If you have Zipkin or a Zipkin-compatible backend already set up, you can skip +this section and setup the [Zipkin exporter dependencies](#zipkin-dependencies) +for your application. + +{{% /alert %}} + +You can run [Zipkin](https://zipkin.io/) on ina Docker container by executing +the following command: + +```shell +docker run --rm -d -p 9411:9411 --name zipkin openzipkin/zipkin +``` + +### Dependencies {#zipkin-dependencies} + +To send your trace data to [Zipkin](https://zipkin.io/), you can use the +`ZipkinSpanExporter`. + +Install the +[`opentelemetry-exporter-zipkin`](https://javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-zipkin/latest) +artifact as a dependency for your application: + +{{< tabpane text=true >}} {{% tab Gradle %}} + +```kotlin +dependencies { + implementation 'io.opentelemetry:opentelemetry-exporter-zipkin:{{% param vers.otel %}}-alpha' +} +``` + +{{% /tab %}} {{% tab Maven %}} + +```xml + + + + io.opentelemetry + opentelemetry-exporter-zipkin + + + +``` + +{{< /tab >}} {{< /tabpane>}} + +Update your OpenTelemetry configuration to use the exporter and to send data to +your Zipkin backend: + +```java +import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter; + +SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder() + .addSpanProcessor(BatchSpanProcessor.builder(ZipkinSpanExporter.builder().setEndpoint("http://localhost:9411/api/v2/spans").build()).build()) + .setResource(resource) + .build(); +``` + +## Other available exporters + +There are many other exporters available. For a list of available exporters, see +the [registry](/ecosystem/registry/?component=exporter&language=java). + +Finally, you can also write your own exporter. For more information, see the +[SpanExporter Interface in the API documentation](https://javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-trace/latest/io/opentelemetry/sdk/trace/export/SpanExporter.html). + +## Batching spans and log records + +For traces the OpenTelemetry SDK provides a set of default span and log record +processors, that allow you to either emit them one-by-one ("simple") or batched: + +{{< tabpane text=true >}} {{% tab Batch %}} + +```java +import io.opentelemetry.sdk.trace.export.BatchSpanProcessor; +import io.opentelemetry.sdk.logs.export.BatchLogRecordProcessor; + +SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder() + .addSpanProcessor(BatchSpanProcessor.builder(...).build()) + .setResource(resource) + .build(); + +SdkLoggerProvider sdkLoggerProvider = SdkLoggerProvider.builder() + .addLogRecordProcessor( + BatchLogRecordProcessor.builder(...).build()) + .setResource(resource) + .build(); +``` + +{{% /tab %}} {{% tab Simple %}} + +```java +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; +import io.opentelemetry.sdk.logs.export.SimpleLogRecordProcessor; + +SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder() + .addSpanProcessor(SimpleSpanProcessor.builder(...).build()) + .setResource(resource) + .build(); + +SdkLoggerProvider sdkLoggerProvider = SdkLoggerProvider.builder() + .addLogRecordProcessor( + SimpleLogRecordProcessor.builder(...).build()) + .setResource(resource) + .build(); +``` + +{{< /tab >}} {{< /tabpane>}} diff --git a/static/refcache.json b/static/refcache.json index db69eba8aaff..bcb223d1a9fe 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -4163,6 +4163,22 @@ "StatusCode": 206, "LastSeen": "2023-06-29T16:06:31.115927-04:00" }, + "https://javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-prometheus/latest": { + "StatusCode": 200, + "LastSeen": "2023-11-17T12:19:45.412666+01:00" + }, + "https://javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-prometheus/latest/io/opentelemetry/exporter/prometheus/PrometheusHttpServer.html": { + "StatusCode": 200, + "LastSeen": "2023-11-27T22:03:28.673499+01:00" + }, + "https://javadoc.io/doc/io.opentelemetry/opentelemetry-exporter-zipkin/latest": { + "StatusCode": 200, + "LastSeen": "2023-11-17T12:19:46.0091+01:00" + }, + "https://javadoc.io/doc/io.opentelemetry/opentelemetry-sdk-trace/latest/io/opentelemetry/sdk/trace/export/SpanExporter.html": { + "StatusCode": 200, + "LastSeen": "2023-11-17T12:19:46.216357+01:00" + }, "https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/latest/org.apache.logging.log4j/org/apache/logging/log4j/Logger.html": { "StatusCode": 200, "LastSeen": "2023-08-10T19:39:55.351559+02:00" From 0f4e097af3908c73883a774f2204369aeb1c0ecb Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Tue, 28 Nov 2023 03:27:28 +0100 Subject: [PATCH 02/17] Fix pr actions, part 2 (#3593) Co-authored-by: Phillip Carter --- .github/workflows/pr-actions.yml | 38 ++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/.github/workflows/pr-actions.yml b/.github/workflows/pr-actions.yml index 7b45655010ee..1d70daba921f 100644 --- a/.github/workflows/pr-actions.yml +++ b/.github/workflows/pr-actions.yml @@ -20,6 +20,7 @@ jobs: contains(github.event.comment.body, '/fix:format') permissions: contents: write + pull-requests: write steps: - name: Context info @@ -27,11 +28,13 @@ jobs: echo $PR_NUM echo $COMMENT + - uses: actions/checkout@v4 + - name: Write start comment run: | gh pr comment $PR_NUM -b "You triggered fix:format action run at $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" - - - uses: actions/checkout@v4 + env: + GH_TOKEN: ${{ github.token }} - run: gh pr checkout $PR_NUM -b "pr-action-${RANDOM}" env: @@ -63,12 +66,12 @@ jobs: echo current_branch=$current_branch # gh pr checkout sets some git configs that we can use to make sure # we push to the right repo & to the right branch - push_remote=$(git config --get branch.${current_branch}.pushremote) - echo push_remote=$push_remote - push_remote_branch=$(git config --get branch.${current_branch}.merge) - echo push_remote_branch=$push_remote_branch + remote_repo=$(git config --get branch.${current_branch}.remote) + echo remote_repo=$remote_repo + remote_branch=$(git config --get branch.${current_branch}.merge) + echo remote_branch=$remote_branch git commit -m 'Results from /fix:format' - git push ${push_remote} HEAD:${push_remote_branch} + git push ${remote_repo} HEAD:${remote_branch} else echo "No changes to commit" fi @@ -79,6 +82,8 @@ jobs: if: ${{ failure() || cancelled() }} run: | gh pr comment $PR_NUM -b "fix:format run failed, please check $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID for details" + env: + GH_TOKEN: ${{ github.token }} fix-refcache: name: /fix:refcache @@ -99,11 +104,14 @@ jobs: echo $PR_NUM echo $COMMENT + - uses: actions/checkout@v4 + - name: Write start comment run: | gh pr comment $PR_NUM -b "You triggered fix:refcache action run at $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" + env: + GH_TOKEN: ${{ github.token }} - - uses: actions/checkout@v4 # By providing a branch name the checkout will not break if a branch with the # same name exists already upstream (e.g. patch-X) - run: gh pr checkout $PR_NUM -b "pr-action-${RANDOM}" @@ -137,12 +145,12 @@ jobs: echo current_branch=$current_branch # gh pr checkout sets some git configs that we can use to make sure # we push to the right repo & to the right branch - push_remote=$(git config --get branch.${current_branch}.pushremote) - echo push_remote=$push_remote - push_remote_branch=$(git config --get branch.${current_branch}.merge) - echo push_remote_branch=$push_remote_branch - git commit -m 'Results from /fix:recache' - git push ${push_remote} HEAD:${push_remote_branch} + remote_repo=$(git config --get branch.${current_branch}.remote) + echo remote_repo=$remote_repo + remote_branch=$(git config --get branch.${current_branch}.merge) + echo remote_branch=$remote_branch + git commit -m 'Results from /fix:refcache' + git push ${remote_repo} HEAD:${remote_branch} else echo "No changes to commit" fi @@ -153,3 +161,5 @@ jobs: if: ${{ failure() || cancelled() }} run: | gh pr comment $PR_NUM -b "fix:recache run failed, please check $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID for details" + env: + GH_TOKEN: ${{ github.token }} From 89f26eb156b38002e1e34f616b2c3e745285e1c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isi=20Ram=C3=ADrez?= Date: Tue, 28 Nov 2023 02:32:31 +0000 Subject: [PATCH 03/17] Update manual.md (#3606) Co-authored-by: Phillip Carter --- content/en/docs/instrumentation/php/manual.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/en/docs/instrumentation/php/manual.md b/content/en/docs/instrumentation/php/manual.md index 5cc5a7fde021..6f2ccc699705 100644 --- a/content/en/docs/instrumentation/php/manual.md +++ b/content/en/docs/instrumentation/php/manual.md @@ -61,7 +61,7 @@ use OpenTelemetry\Contrib\Otlp\SpanExporter; use OpenTelemetry\SDK\Common\Attribute\Attributes; use OpenTelemetry\SDK\Common\Export\Stream\StreamTransportFactory; use OpenTelemetry\SDK\Logs\LoggerProvider; -use OpenTelemetry\SDK\Logs\Processor\SimpleLogsProcessor; +use OpenTelemetry\SDK\Logs\Processor\SimpleLogRecordProcessor; use OpenTelemetry\SDK\Metrics\MeterProvider; use OpenTelemetry\SDK\Metrics\MetricReader\ExportingReader; use OpenTelemetry\SDK\Resource\ResourceInfo; @@ -111,7 +111,7 @@ $tracerProvider = TracerProvider::builder() $loggerProvider = LoggerProvider::builder() ->setResource($resource) ->addLogRecordProcessor( - new SimpleLogsProcessor($logExporter) + new SimpleLogRecordProcessor($logExporter) ) ->build(); @@ -566,7 +566,7 @@ use OpenTelemetry\API\Logs\LogRecord; use OpenTelemetry\Contrib\Otlp\LogsExporter; use OpenTelemetry\SDK\Common\Export\Stream\StreamTransportFactory; use OpenTelemetry\SDK\Logs\LoggerProvider; -use OpenTelemetry\SDK\Logs\Processor\SimpleLogsProcessor; +use OpenTelemetry\SDK\Logs\Processor\SimpleLogRecordProcessor; use OpenTelemetry\SDK\Resource\ResourceInfoFactory; require 'vendor/autoload.php'; @@ -576,7 +576,7 @@ $exporter = new LogsExporter( ); $loggerProvider = LoggerProvider::builder() - ->addLogRecordProcessor(new SimpleLogsProcessor($exporter)) + ->addLogRecordProcessor(new SimpleLogRecordProcessor($exporter)) ->setResource(ResourceInfoFactory::emptyResource()) ->build(); ``` From b9f56ff63b1a029de0a7fd9ab6a8a6334ca31c34 Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Tue, 28 Nov 2023 10:45:32 +0100 Subject: [PATCH 04/17] Update the Spring Boot documentation following OTel 1.32.0 release (#3580) --- .../java/automatic/spring-boot.md | 118 +++++++++++++++++- 1 file changed, 114 insertions(+), 4 deletions(-) diff --git a/content/en/docs/instrumentation/java/automatic/spring-boot.md b/content/en/docs/instrumentation/java/automatic/spring-boot.md index 9f42c102cd46..c97a0fc0f2d5 100644 --- a/content/en/docs/instrumentation/java/automatic/spring-boot.md +++ b/content/en/docs/instrumentation/java/automatic/spring-boot.md @@ -3,7 +3,7 @@ title: Spring Boot linkTitle: Spring Boot weight: 30 description: Spring instrumentation for OpenTelemetry Java -cSpell:ignore: autoconfigure springboot +cSpell:ignore: autoconfigure datasource logback springboot --- You can use the [OpenTelemetry Java agent](..) with byte code instrumentation to @@ -37,7 +37,7 @@ auto-configuration, see the configuration [README]. io.opentelemetry.instrumentation opentelemetry-spring-boot-starter - {{% param vers.instrumentation %}} + {{% param vers.instrumentation %}}-alpha ``` @@ -46,7 +46,7 @@ auto-configuration, see the configuration [README]. ```groovy dependencies { - implementation('io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter:{{% param vers.instrumentation %}}') + implementation('io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter:{{% param vers.instrumentation %}}-alpha') } ``` @@ -54,5 +54,115 @@ dependencies { ## Additional instrumentations -You can configure additional instrumentations with +### JDBC Instrumentation + +You have two ways to enable the JDBC instrumentation with the OpenTelemetry +starter. + +If your application does not declare `DataSource` bean, you can update your +`application.properties` file to have the data source URL starting with +`jdbc:otel:` and set the driver class to +`io.opentelemetry.instrumentation.jdbc.OpenTelemetryDriver`. + +```properties +spring.datasource.url=jdbc:otel:h2:mem:db +spring.datasource.driver-class-name=io.opentelemetry.instrumentation.jdbc.OpenTelemetryDriver +``` + +You can also wrap the `DataSource` bean in an +`io.opentelemetry.instrumentation.jdbc.datasource.OpenTelemetryDataSource`: + +```java +import io.opentelemetry.instrumentation.jdbc.datasource.JdbcTelemetry; + +@Configuration +public class DataSourceConfig { + + @Bean + public DataSource dataSource(OpenTelemetry openTelemetry) { + DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); + //Data source configurations + DataSource dataSource = dataSourceBuilder.build(); + return JdbcTelemetry.create(openTelemetry).wrap(dataSource); + } + +} +``` + +With the datasource configuration, you need to add the following dependency: + +{{< tabpane text=true >}} {{% tab header="Maven (`pom.xml`)" lang=Maven %}} + +```xml + + + io.opentelemetry.instrumentation + opentelemetry-jdbc + {{% param vers.instrumentation %}}-alpha + + +``` + +{{% /tab %}} {{% tab header="Gradle (`gradle.build`)" lang=Gradle %}} + +```groovy +dependencies { + implementation('io.opentelemetry.instrumentation:opentelemetry-jdbc:{{% param vers.instrumentation %}}-alpha') +} +``` + +{{% /tab %}} {{< /tabpane>}} + +### Logging Instrumentation + +To enable the logging instrumentation for Logback you have to add the +OpenTelemetry appender in your `logback.xml` or `logback-spring.xml` file: + +```xml + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + + +``` + +For Log4j 2, you have to add the OpenTelemetry appender to your `log4j2.xml` +file: + +```xml + + + + + + + + + + + +``` + +You can find more configuration options for the OpenTelemetry appender in the +documentation of the +[Logback](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/logback/logback-appender-1.0/library/README.md) +and +[Log4j](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/log4j/log4j-appender-2.17/library/README.md) +instrumentation libraries. + +### Other Instrumentation + +You can configure other instrumentations with [OpenTelemetry instrumentations libraries](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md#libraries--frameworks). From 0e9ec23b5fc819434f3e1e18042f3197b953bbfd Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Tue, 28 Nov 2023 11:38:41 -0500 Subject: [PATCH 05/17] CODEOWNERS: add docs-maintainers for content-modules (#3611) --- .github/CODEOWNERS | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2b4fbc08e997..2393c5b4a349 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -16,10 +16,11 @@ * @open-telemetry/docs-approvers # content owners -content-modules/opamp-spec @open-telemetry/docs-approvers @open-telemetry/opamp-spec-approvers -content-modules/opentelemetry-proto @open-telemetry/docs-approvers @open-telemetry/specs-approvers -content-modules/opentelemetry-specification @open-telemetry/docs-approvers @open-telemetry/specs-approvers -content-modules/semantic-conventions @open-telemetry/docs-approvers @open-telemetry/specs-semconv-approvers +content-modules/ @open-telemetry/docs-maintainers +content-modules/opamp-spec @open-telemetry/docs-maintainers @open-telemetry/opamp-spec-approvers +content-modules/opentelemetry-proto @open-telemetry/docs-maintainers @open-telemetry/specs-approvers +content-modules/opentelemetry-specification @open-telemetry/docs-maintainers @open-telemetry/specs-approvers +content-modules/semantic-conventions @open-telemetry/docs-maintainers @open-telemetry/specs-semconv-approvers content/en/blog/ @open-telemetry/docs-approvers @open-telemetry/blog-approvers content/en/community/end-user/ @open-telemetry/docs-approvers @open-telemetry/end-user-wg content/en/docs/collector @open-telemetry/docs-approvers @open-telemetry/collector-approvers From 8f5b512234ea0608fdc0a71ccb10136c6e6529e8 Mon Sep 17 00:00:00 2001 From: OpenTelemetry Bot <107717825+opentelemetrybot@users.noreply.github.com> Date: Wed, 29 Nov 2023 01:11:59 +0100 Subject: [PATCH 06/17] Update opentelemetry-collector-releases version to 0.90.0 (#3614) --- content/en/docs/collector/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/collector/_index.md b/content/en/docs/collector/_index.md index a3119a2e83fe..c66013671257 100644 --- a/content/en/docs/collector/_index.md +++ b/content/en/docs/collector/_index.md @@ -3,7 +3,7 @@ title: Collector description: Vendor-agnostic way to receive, process and export telemetry data. aliases: [collector/about] cascade: - vers: 0.89.0 + vers: 0.90.0 weight: 10 --- From e77c6def1f83783900079830e5f10d0ff30474ab Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Wed, 29 Nov 2023 05:18:58 +0100 Subject: [PATCH 07/17] Update community members in README (#3598) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Piotr Kiełkowicz Co-authored-by: Phillip Carter --- .github/CODEOWNERS | 2 +- README.md | 24 ++++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2393c5b4a349..31218c002afb 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -21,7 +21,7 @@ content-modules/opamp-spec @open-telemetry/docs-maintainers @open- content-modules/opentelemetry-proto @open-telemetry/docs-maintainers @open-telemetry/specs-approvers content-modules/opentelemetry-specification @open-telemetry/docs-maintainers @open-telemetry/specs-approvers content-modules/semantic-conventions @open-telemetry/docs-maintainers @open-telemetry/specs-semconv-approvers -content/en/blog/ @open-telemetry/docs-approvers @open-telemetry/blog-approvers +content/en/blog/ @open-telemetry/docs-maintainers content/en/community/end-user/ @open-telemetry/docs-approvers @open-telemetry/end-user-wg content/en/docs/collector @open-telemetry/docs-approvers @open-telemetry/collector-approvers content/en/docs/demo @open-telemetry/docs-approvers @open-telemetry/demo-approvers diff --git a/README.md b/README.md index 451b347436d4..ae4de4622615 100644 --- a/README.md +++ b/README.md @@ -74,11 +74,29 @@ schedule. Meeting notes are available as a public [Google doc][]. If you have trouble accessing the doc, please get in touch on [Slack][]. -Roles: +Here is a list of community roles with current and previous members: - Approvers: [@open-telemetry/docs-approvers][] + + - [Fabrizio Ferri-Benedetti](https://github.com/theletterf), Splunk + - [Michael Hausenblas](https://github.com/mhausenblas), Amazon + - Maintainers: [@open-telemetry/docs-maintainers][] -- Blog approvers: [@open-telemetry/blog-approvers][] + + - [Austin Parker](https://github.com/austinlparker), Honeycomb + - [Patrice Chalin](https://github.com/chalin), CNCF + - [Phillip Carter](https://github.com/cartermp), Honeycomb + - [Severin Neumann](https://github.com/svrnm), Cisco + +- Emeritus approvers: + + - [Paul Bruce](https://github.com/paulsbruce) + +- Emeritus maintainers: + + - [Steve Flanders](https://github.com/flands) + - [Morgan McLean](https://github.com/mtwo) + - [jparsana](https://github.com/jparsana) Learn more about roles in the [community repository][]. Thanks to [all who have already contributed][contributors]! @@ -91,8 +109,6 @@ already contributed][contributors]! [adding to the registry]: https://opentelemetry.io/ecosystem/registry/adding/ [let us know]: https://github.com/open-telemetry/opentelemetry.io/issues/new/choose -[@open-telemetry/blog-approvers]: - https://github.com/orgs/open-telemetry/teams/blog-approvers [@open-telemetry/docs-approvers]: https://github.com/orgs/open-telemetry/teams/docs-approvers [@open-telemetry/docs-maintainers]: From 87ff78f9ab40c9627a3e22e3ef487adc50fd7fa4 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Wed, 29 Nov 2023 04:09:33 -0500 Subject: [PATCH 08/17] Drop RSS (#3616) --- hugo.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hugo.yaml b/hugo.yaml index 6cfa3adac621..fd41558ffee5 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -43,7 +43,7 @@ outputFormats: notAlternative: true outputs: - home: [HTML, REDIRECTS, RSS] + home: [HTML, REDIRECTS] params: copyright: >- From aaaf12ce61854dfaea1648a8d0cfe366665233d0 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Wed, 29 Nov 2023 05:09:05 -0500 Subject: [PATCH 09/17] Drop RSS for real (#3617) --- hugo.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hugo.yaml b/hugo.yaml index fd41558ffee5..9ce69128e1ad 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -2,7 +2,7 @@ baseURL: https://opentelemetry.io title: &title OpenTelemetry description: &desc The OpenTelemetry Project Site -disableKinds: [taxonomy] +disableKinds: [rss, taxonomy] theme: [docsy] disableAliases: true # We do redirects via Netlify's _redirects file enableGitInfo: true From d3adfe7048f94135393cde36b52ae722d1515773 Mon Sep 17 00:00:00 2001 From: Jean Bisutti Date: Wed, 29 Nov 2023 12:23:44 +0100 Subject: [PATCH 10/17] Add link to Spring Boot native image application (#3618) --- content/en/docs/instrumentation/java/automatic/spring-boot.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/en/docs/instrumentation/java/automatic/spring-boot.md b/content/en/docs/instrumentation/java/automatic/spring-boot.md index c97a0fc0f2d5..f0ebbeedd90e 100644 --- a/content/en/docs/instrumentation/java/automatic/spring-boot.md +++ b/content/en/docs/instrumentation/java/automatic/spring-boot.md @@ -17,6 +17,10 @@ instrument your application. The OpenTelemetry starter is compatible with Spring Boot 2.0 and 3.0, and Spring native. +For an example Spring Boot Native image application that uses the OpenTelemetry +Spring Boot starter, see +[opentelemetry-java-examples/spring-native](https://github.com/open-telemetry/opentelemetry-java-examples/tree/main/spring-native). + ## Configuration Add the dependency given below to enable the OpenTelemetry starter. From f0b47b973bf39efda790c22af6ab2c13e60b369d Mon Sep 17 00:00:00 2001 From: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com> Date: Thu, 30 Nov 2023 00:39:36 -0700 Subject: [PATCH 11/17] [kubernetes] update autoGenerateCert syntax (#3619) --- content/en/docs/kubernetes/helm/operator.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/kubernetes/helm/operator.md b/content/en/docs/kubernetes/helm/operator.md index 1ec7e17e852a..b82816a4a293 100644 --- a/content/en/docs/kubernetes/helm/operator.md +++ b/content/en/docs/kubernetes/helm/operator.md @@ -23,7 +23,7 @@ following commands: helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts helm install my-opentelemetry-operator open-telemetry/opentelemetry-operator \ --set admissionWebhooks.certManager.enabled=false \ - --set admissionWebhooks.certManager.autoGenerateCert=true + --set admissionWebhooks.certManager.autoGenerateCert.enabled=true ``` This will install an OpenTelemetry Operator with a self-signed certificate and @@ -51,12 +51,12 @@ generate/configure the required TLS certificate. requires the installation of cert-manager. - You can use an automatically generated self-signed certificate by setting `admissionWebhooks.certManager.enabled` to `false` and - `admissionWebhooks.autoGenerateCert` to `true`. Helm will create a self-signed - cert and a secret for you. + `admissionWebhooks.autoGenerateCert.enabled` to `true`. Helm will create a + self-signed cert and a secret for you. - You can use your own generated self-signed certificate by setting both `admissionWebhooks.certManager.enabled` and - `admissionWebhooks.autoGenerateCert` to `false`. You should provide the - necessary values to `admissionWebhooks.cert_file`, + `admissionWebhooks.autoGenerateCert.enabled` to `false`. You should provide + the necessary values to `admissionWebhooks.cert_file`, `admissionWebhooks.key_file`, and `admissionWebhooks.ca_file`. - You can side-load custom webhooks and certificate by disabling `.Values.admissionWebhooks.create` and `admissionWebhooks.certManager.enabled` From 5690ec5e39ff6176ca2be181909e6d3cde6fc7b4 Mon Sep 17 00:00:00 2001 From: r0ck37 Date: Thu, 30 Nov 2023 00:16:19 -0800 Subject: [PATCH 12/17] Update getting-started.md (#3621) --- content/en/docs/collector/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/collector/getting-started.md b/content/en/docs/collector/getting-started.md index a9fdd35098af..b809bba59736 100644 --- a/content/en/docs/collector/getting-started.md +++ b/content/en/docs/collector/getting-started.md @@ -50,7 +50,7 @@ To follow this tutorial you need the following telemetrygen traces --otlp-insecure --duration 5s ``` - After five seconds, `telemetrygen` stops and shows the sended messages in the + After five seconds, `telemetrygen` stops and shows the sent messages in the console: ```text From 73a74bc9a794e055ebd14ab355b380eb92d08112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Let?= Date: Thu, 30 Nov 2023 11:06:06 +0100 Subject: [PATCH 13/17] Add Better Stack to vendors.yaml (#3592) --- data/ecosystem/vendors.yaml | 7 +++++++ static/refcache.json | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/data/ecosystem/vendors.yaml b/data/ecosystem/vendors.yaml index 9f9c29ab9ced..26796cebeb17 100644 --- a/data/ecosystem/vendors.yaml +++ b/data/ecosystem/vendors.yaml @@ -34,6 +34,13 @@ contact: '' oss: false commercial: true +- name: Better Stack + distribution: false + nativeOTLP: true + url: https://betterstack.com/docs/logs/open-telemetry/#2-setup + contact: 'hello@betterstack.com' + oss: false + commercial: true - name: Coralogix distribution: true nativeOTLP: true diff --git a/static/refcache.json b/static/refcache.json index bcb223d1a9fe..ccfd933a252b 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -191,6 +191,10 @@ "StatusCode": 200, "LastSeen": "2023-06-29T13:39:27.033525-04:00" }, + "https://betterstack.com/docs/logs/open-telemetry/#2-setup": { + "StatusCode": 200, + "LastSeen": "2023-11-30T09:17:13.941735+01:00" + }, "https://blog.logrocket.com/understanding-schema-stitching-graphql/": { "StatusCode": 200, "LastSeen": "2023-06-29T13:40:18.37311-04:00" From 43182882b28cebcffe9b28b7c84dcf5a671044df Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Thu, 30 Nov 2023 05:53:13 -0500 Subject: [PATCH 14/17] Update docsy and OpAMP to 0.8.0, clean up htmltest config (#3620) --- .htmltest.yml | 17 +++++++---------- content-modules/opamp-spec | 2 +- static/refcache.json | 8 ++++++++ themes/docsy | 2 +- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.htmltest.yml b/.htmltest.yml index e5badd9f18d4..e82fd4381d0a 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -4,6 +4,8 @@ IgnoreDirectoryMissingTrailingSlash: true IgnoreAltMissing: true IgnoreCanonicalBrokenLinks: false CheckMailto: false +IgnoreDirs: + - ^blog/(\d+/)?page/\d+ IgnoreInternalURLs: # list of paths IgnoreURLs: # list of regexs of paths or URLs to be ignored - ^/docs/instrumentation/\w+/(api|examples)/$ @@ -18,6 +20,9 @@ IgnoreURLs: # list of regexs of paths or URLs to be ignored - ^https?://127\.0\.0\.1\b - ^https?://(otel-demo|traefik)\.localhost + # OpAMP spec: + - ^https://pdf.sciencedirectassets.com/280203/1-s2.0-S1877050919X0006X/1-s2.0-S1877050919303576/main.pdf\? + # Sites that deny access, always yielding 403 Forbidden (unless mentioned otherwise) - ^https://(www\.)?linkedin\.com\b # 999 Request Denied - ^https://(www\.)?mvnrepository\.com @@ -41,13 +46,5 @@ IgnoreURLs: # list of regexs of paths or URLs to be ignored - ^https://crates\.io/crates # TODO: drop after fix to https://github.com/micrometer-metrics/micrometer-docs/issues/239 - ^https://micrometer\.io/docs - # TODO: drop after fix to https://github.com/google/docsy/issues/1337 - - ^https://opentelemetry\.io/. - # TODO: drop after fix to https://github.com/open-telemetry/opentelemetry.io/issues/2354 - - ^https://open-telemetry\.github\.io/opentelemetry-python/benchmarks/ - # TODO: remove after merge of https://github.com/open-telemetry/opentelemetry.io/pull/2594 - - ^https://elastic.co/blog/ecs-elastic-common-schema-otel-opentelemetry-announcement - # TODO: remove after OpAMP spec is fixed: https://github.com/open-telemetry/opamp-spec/issues/148 - - ^https://example.com:4318/v1/metrics - - ^https://pdf.sciencedirectassets.com/280203/1-s2.0-S1877050919X0006X - - ^https://research.fb.com/wp-content/uploads/2016/11/holistic-configuration-management-at-facebook.pdf + # TODO: ensure .json isn't set as an alternate in ecosystem/registry/index.html and then drop: + - ^https://opentelemetry.io/ecosystem/registry/index.json diff --git a/content-modules/opamp-spec b/content-modules/opamp-spec index 7718250cb5d3..36c8e0a2eba9 160000 --- a/content-modules/opamp-spec +++ b/content-modules/opamp-spec @@ -1 +1 @@ -Subproject commit 7718250cb5d3982a366c06fb151d67b57048c9c7 +Subproject commit 36c8e0a2eba98b939934632accb8e8253b4a0ea7 diff --git a/static/refcache.json b/static/refcache.json index ccfd933a252b..b745b0580dd4 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -1575,6 +1575,10 @@ "StatusCode": 206, "LastSeen": "2023-06-30T09:35:36.578946-04:00" }, + "https://elastic.co/blog/ecs-elastic-common-schema-otel-opentelemetry-announcement": { + "StatusCode": 200, + "LastSeen": "2023-11-29T05:19:30.624412-05:00" + }, "https://en.cppreference.com/w/cpp/container/set": { "StatusCode": 200, "LastSeen": "2023-06-29T16:10:28.50163-04:00" @@ -5263,6 +5267,10 @@ "StatusCode": 206, "LastSeen": "2023-06-30T09:40:22.564248-04:00" }, + "https://research.facebook.com/file/877841159827226/holistic-configuration-management-at-facebook.pdf": { + "StatusCode": 206, + "LastSeen": "2023-11-29T05:30:49.447684-05:00" + }, "https://roadrunner.dev/": { "StatusCode": 200, "LastSeen": "2023-07-31T14:07:56.022667827Z" diff --git a/themes/docsy b/themes/docsy index fd669b752b7f..6bb4f99d1eab 160000 --- a/themes/docsy +++ b/themes/docsy @@ -1 +1 @@ -Subproject commit fd669b752b7f83fb2eb57cacd2c8f334f86ca7d2 +Subproject commit 6bb4f99d1eab4976fb80d1488c81ba12b1715c05 From 59682738e7ba6298caa45e6781c5c0b82144f659 Mon Sep 17 00:00:00 2001 From: Matt Hensley <130569+matt-hensley@users.noreply.github.com> Date: Thu, 30 Nov 2023 08:24:29 -0500 Subject: [PATCH 15/17] Update .NET docs to reference process instrumentation (#3552) --- content/en/docs/demo/services/cart.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/en/docs/demo/services/cart.md b/content/en/docs/demo/services/cart.md index 10588b0a5631..862acbe704ae 100644 --- a/content/en/docs/demo/services/cart.md +++ b/content/en/docs/demo/services/cart.md @@ -85,6 +85,7 @@ Action appResourceBuilder = builder.Services.AddOpenTelemetry() .ConfigureResource(appResourceBuilder) .WithMetrics(meterBuilder => meterBuilder + .AddProcessInstrumentation() .AddRuntimeInstrumentation() .AddAspNetCoreInstrumentation() .AddOtlpExporter()); From 58c15c262d7037521469c503684be7af41062a81 Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Thu, 30 Nov 2023 14:34:58 +0100 Subject: [PATCH 16/17] fix permission issue with fix:refcache PR action (#3622) --- .github/workflows/pr-actions.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr-actions.yml b/.github/workflows/pr-actions.yml index 1d70daba921f..9e661cb55608 100644 --- a/.github/workflows/pr-actions.yml +++ b/.github/workflows/pr-actions.yml @@ -94,6 +94,7 @@ jobs: contains(github.event.comment.body, '/fix:refcache') permissions: contents: write + pull-requests: write env: DEPTH: --depth 100 # submodule clone depth From d95c4573e6af1af6c567910b0d8425e3c6d6c24b Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Thu, 30 Nov 2023 08:55:21 -0500 Subject: [PATCH 17/17] [CI] Speed up link checking by testing files concurrently (#3623) --- .htmltest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.htmltest.yml b/.htmltest.yml index e82fd4381d0a..77dd581dfb66 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -4,6 +4,7 @@ IgnoreDirectoryMissingTrailingSlash: true IgnoreAltMissing: true IgnoreCanonicalBrokenLinks: false CheckMailto: false +TestFilesConcurrently: true IgnoreDirs: - ^blog/(\d+/)?page/\d+ IgnoreInternalURLs: # list of paths