From ce57212b733a86543d46435a238dd16c66427498 Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Tue, 21 Mar 2023 19:08:29 +0100 Subject: [PATCH 01/11] Small fix for php blog (#2530) --- content/en/blog/2023/php-auto-instrumentation/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/blog/2023/php-auto-instrumentation/index.md b/content/en/blog/2023/php-auto-instrumentation/index.md index 22534d75dab2..4f493ef77de1 100644 --- a/content/en/blog/2023/php-auto-instrumentation/index.md +++ b/content/en/blog/2023/php-auto-instrumentation/index.md @@ -20,7 +20,7 @@ you'll need three things: - PHP 8.0 or higher. The PHP auto-instrumentation uses the Observability API introduced in PHP 8.0. -- [Composer]((https://getcomposer.org/download/) +- [Composer](https://getcomposer.org/download/) - A C Compiler must be available on your machine ### Background on the PHP 8.0 Observability API From 7e4fed302566f8c49240fa973321d9eab4692ff8 Mon Sep 17 00:00:00 2001 From: OpenTelemetry Bot <107717825+opentelemetrybot@users.noreply.github.com> Date: Wed, 22 Mar 2023 07:48:35 -0700 Subject: [PATCH 02/11] Update opentelemetry-collector-releases version to 0.74.0 (#2532) Co-authored-by: Severin Neumann --- 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 dddc9b639102..12c94a1c93e5 100644 --- a/content/en/docs/collector/_index.md +++ b/content/en/docs/collector/_index.md @@ -4,7 +4,7 @@ description: Vendor-agnostic way to receive, process and export telemetry data. spelling: cSpell:ignore Otel aliases: [/docs/collector/about] cascade: - collectorVersion: 0.73.0 + collectorVersion: 0.74.0 weight: 10 --- From 74bf240ec3e0b2bbe500e48c19a07e9f3e0319f9 Mon Sep 17 00:00:00 2001 From: Harry Kimpel Date: Thu, 23 Mar 2023 10:59:05 +0100 Subject: [PATCH 03/11] Fix minor issues in the .NET Getting Started guide (#2536) --- content/en/docs/instrumentation/net/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/instrumentation/net/getting-started.md b/content/en/docs/instrumentation/net/getting-started.md index ba79e267ae73..ab7816533d33 100644 --- a/content/en/docs/instrumentation/net/getting-started.md +++ b/content/en/docs/instrumentation/net/getting-started.md @@ -117,7 +117,7 @@ Paste the following code into your `HomeController`'s `Index` action: public IActionResult Index() { // Track work inside of the request - using var activity = DiagnosticsConfig.Source.StartActivity("SayHello"); + using var activity = DiagnosticsConfig.ActivitySource.StartActivity("SayHello"); activity?.SetTag("foo", 1); activity?.SetTag("bar", "Hello, World!"); activity?.SetTag("baz", new int[] { 1, 2, 3 }); @@ -126,7 +126,7 @@ public IActionResult Index() } ``` -When you run the app and navigate to the `/hello` route, you'll see output about +When you run the app and navigate to the `/` route, you'll see output about [spans](/docs/concepts/signals/traces/#spans-in-opentelemetry) similar to the following: From f4404c90fa2e3f335397f7ba82373da5dffee4f2 Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Thu, 23 Mar 2023 17:59:58 +0100 Subject: [PATCH 04/11] Fix erlang/elixir tabs (#2527) --- .../instrumentation/erlang/getting-started.md | 108 +++++++++--------- .../instrumentation/erlang/instrumentation.md | 96 ++++++++-------- .../en/docs/instrumentation/erlang/testing.md | 48 ++++---- 3 files changed, 126 insertions(+), 126 deletions(-) diff --git a/content/en/docs/instrumentation/erlang/getting-started.md b/content/en/docs/instrumentation/erlang/getting-started.md index 09383377d96c..5f7881afdafb 100644 --- a/content/en/docs/instrumentation/erlang/getting-started.md +++ b/content/en/docs/instrumentation/erlang/getting-started.md @@ -36,17 +36,17 @@ API. To get started with this guide, create a new project with `rebar3` or `mix`: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab lang="sh" >}} +{{< tab Erlang >}} rebar3 new release otel_getting_started -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab lang="sh" >}} +{{< tab Elixir >}} mix new --sup otel_getting_started -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} Then, in the project you just created, add both `opentelemetry_api` and @@ -54,23 +54,23 @@ Then, in the project you just created, add both `opentelemetry_api` and run as a Release and export spans from. -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} {deps, [{opentelemetry_api, "~> 1.0"}, {opentelemetry, "~> 1.0"}]}. -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} def deps do [ {:opentelemetry_api, "~> 1.0"}, {:opentelemetry, "~> 1.0"} ] end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} In the case of Erlang, the Applications will also need to be added to @@ -78,27 +78,27 @@ In the case of Erlang, the Applications will also need to be added to needs to be added to `mix.exs`: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} ... {applications, [kernel, stdlib, opentelemetry_api, opentelemetry]}, ... -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} releases: [ otel_getting_started: [ version: "0.0.1", applications: [otel_getting_started: :permanent] ] ] -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} ## Initialization and Configuration @@ -126,25 +126,25 @@ the `exporter` for the span processor `otel_batch_processor`, a type of span processor that batches up multiple spans over a period of time: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} %% config/sys.config.src [ {opentelemetry, [{span_processor, batch}, {traces_exporter, {otel_exporter_stdout, []}}]} ]. -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} # config/runtime.exs config :opentelemetry, span_processor: :batch, traces_exporter: {:otel_exporter_stdout, []} -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} ## Working with Spans @@ -153,9 +153,9 @@ Now that the dependencies and configuration are set up, we can create a module with a function `hello/0` that starts some spans: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} %% apps/otel_getting_started/src/otel_getting_started.erl -module(otel_getting_started). @@ -177,9 +177,9 @@ nice_operation(_SpanCtx) -> ?set_attributes([{lemons_key, <<"five">>}]), ?add_event(<<"Sub span event!">>, []) end). -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} # lib/otel_getting_started.ex defmodule OtelGettingStarted do require OpenTelemetry.Tracer, as: Tracer @@ -196,9 +196,9 @@ defmodule OtelGettingStarted do end end end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} In this example, we're using macros that use the process dictionary for context @@ -225,9 +225,9 @@ To test out this project and see the spans created, you can run with configuration for the release, resulting in the tracer and exporter to started. -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} $ rebar3 shell ===> Compiling otel_getting_started Erlang/OTP 23 [erts-11.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] @@ -249,9 +249,9 @@ true [{another_key,<<"yes">>}], [{event,-576460750077877345,<<"Nice operation!">>,[{<<"bogons">>,100}]}], [],undefined,1,false,undefined} -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} $ iex -S mix Erlang/OTP 23 [erts-11.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] @@ -273,9 +273,9 @@ iex(2)> [{another_key,<<"yes">>}], [{event,-576460741349446725,<<"Nice operation!">>,[{<<"bogons">>,100}]}], [],undefined,1,false,undefined} -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} ## Exporting to the OpenTelemetry Collector @@ -300,15 +300,15 @@ To export to the running Collector the `opentelemetry_exporter` package must be added to the project's dependencies: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} {deps, [{opentelemetry_api, "~> 1.0"}, {opentelemetry, "~> 1.0"}, {opentelemetry_exporter, "~> 1.0"}]}. -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} def deps do [ {:opentelemetry_api, "~> 1.0"}, @@ -316,9 +316,9 @@ def deps do {:opentelemetry_exporter, "~> 1.0"} ] end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} It should then be added to the configuration of the Release, it should be before @@ -329,9 +329,9 @@ Example of Release configuration in `rebar.config` and for [mix's Release task](https://hexdocs.pm/mix/Mix.Tasks.Release.html): -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} %% rebar.config {relx, [{release, {my_instrumented_release, "0.1.0"}, [opentelemetry_exporter, @@ -339,9 +339,9 @@ Example of Release configuration in `rebar.config` and for my_instrumented_app]}, ...]}. -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} # mix.exs def project do [ @@ -354,9 +354,9 @@ def project do ] ] end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} Finally, the runtime configuration of the `opentelemetry` and @@ -367,9 +367,9 @@ for the `otlp_protocol` the endpoint should be changed to `http://localhost:4317`. -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} %% config/sys.config.src [ {opentelemetry, @@ -380,9 +380,9 @@ for the `otlp_protocol` the endpoint should be changed to [{otlp_protocol, http_protobuf}, {otlp_endpoint, "http://localhost:4318"}]}]} ]. -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} # config/runtime.exs config :opentelemetry, span_processor: :batch, @@ -391,7 +391,7 @@ config :opentelemetry, config :opentelemetry_exporter, otlp_protocol: :http_protobuf, otlp_endpoint: "http://localhost:4318" -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} diff --git a/content/en/docs/instrumentation/erlang/instrumentation.md b/content/en/docs/instrumentation/erlang/instrumentation.md index 2ce5dd39f173..294c358637dc 100644 --- a/content/en/docs/instrumentation/erlang/instrumentation.md +++ b/content/en/docs/instrumentation/erlang/instrumentation.md @@ -26,23 +26,23 @@ name for a `Tracer` you can create a `Tracer` with a name and version and pass it manually to `otel_tracer` or `OpenTelemetry.Tracer`. Examples: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} Tracer = opentelemetry:get_tracer(test_tracer), SpanCtx = otel_tracer:start_span(Tracer, <<"hello-world">>, #{}), ... otel_tracer:end_span(SpanCtx). -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} tracer = OpenTelemetry.get_tracer(:test_tracer) span_ctx = OpenTelemetry.Tracer.start_span(tracer, "hello-world", %{}) ... OpenTelemetry.Tracer.end_span(span_ctx) -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} In most cases you will not need to manually create a `Tracer`. Simply use the @@ -82,9 +82,9 @@ parent is again the active span when the child's block or function body completes: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} parent_function() -> ?with_span(<<"parent">>, #{}, fun child_function/0). @@ -96,9 +96,9 @@ child_function() -> %% do work here. when this function returns, <<"child">> will complete. end). -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} require OpenTelemetry.Tracer def parent_function() do @@ -114,9 +114,9 @@ def child_function() do ## do work here. when this function returns, <<"child">> will complete. end end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} ### Cross Process Propagation @@ -141,9 +141,9 @@ process. The whole context should be attached in order to not lose other telemetry data like [baggage](/docs/reference/specification/baggage/api/). -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} SpanCtx = ?start_span(<<"child">>), Ctx = otel_ctx:get_current(), @@ -155,9 +155,9 @@ proc_lib:spawn_link(fun() -> ?end_span(SpanCtx) end), -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} span_ctx = OpenTelemetry.Tracer.start_span(<<"child">>) ctx = OpenTelemetry.Ctx.get_current() @@ -171,9 +171,9 @@ task = Task.async(fn -> end) _ = Task.await(task) -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} #### Linking the New Span @@ -186,9 +186,9 @@ for more on when that is appropriate -- then the `SpanCtx` returned by `with_span` or `start_span`: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} Parent = ?current_span_ctx, proc_lib:spawn_link(fun() -> %% a new process has a new context so the span created @@ -197,9 +197,9 @@ proc_lib:spawn_link(fun() -> ?with_span(<<"other-process">>, #{links => [Link]}, fun() -> ok end) end), -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} parent = OpenTelemetry.current_span_ctx() task = Task.async(fn -> # a new process has a new context so the span created @@ -209,9 +209,9 @@ task = Task.async(fn -> :hello end end) -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} ### Attributes @@ -231,24 +231,24 @@ setting an attribute in the start options and then again with `set_attributes` in the body of the span operation: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} ?with_span(<<"my-span">>, #{attributes => [{<<"start-opts-attr">>, <<"start-opts-value">>}]}, fun() -> ?set_attributes([{<<"my-attribute">>, <<"my-value">>}, {another_attribute, <<"value-of-attribute">>}]) end) -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} Tracer.with_span "span-1", %{attributes: [{<<"start-opts-attr">>, <<"start-opts-value">>}]} do Tracer.set_attributes([{"my-attributes", "my-value"}, {:another_attribute, "value-of-attributes"}]) end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} #### Semantic Attributes @@ -270,9 +270,9 @@ could be created at two points - once, when the connection is checked out from the pool, and another when it is checked in. -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} ?with_span(<<"my-span">>, #{}, fun() -> ?add_event(<<"checking out connection">>), @@ -281,9 +281,9 @@ the pool, and another when it is checked in. %% do some work with the connection and then return it to the pool ?add_event(<<"checking in connection">>) end) -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} Tracer.with_span "my-span" do Span.add_event("checking out connection") # acquire connection from connection pool @@ -291,9 +291,9 @@ Tracer.with_span "my-span" do # do some work with the connection and then return it to the pool Span.add_event("checking in connection") end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} A useful characteristic of events is that their timestamps are displayed as @@ -303,17 +303,17 @@ elapsed between them. Additionally, events can also have attributes of their own: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} ?add_event("Process exited with reason", [{pid, Pid)}, {reason, Reason}])) -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} Span.add_event("Process exited with reason", pid: pid, reason: Reason) -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} ## Cross Service Propagators @@ -329,24 +329,24 @@ registered with OpenTelemetry. This can be done through configuration of the `opentelemetry` application: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} %% sys.config ... {text_map_propagators, [baggage, trace_context]}, ... -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} ## runtime.exs ... text_map_propagators: [:baggage, :trace_context], ... -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} If you instead need to use the diff --git a/content/en/docs/instrumentation/erlang/testing.md b/content/en/docs/instrumentation/erlang/testing.md index 779a784c6e12..7dd3ebec3132 100644 --- a/content/en/docs/instrumentation/erlang/testing.md +++ b/content/en/docs/instrumentation/erlang/testing.md @@ -15,23 +15,23 @@ Only the `opentelemetry` and `opentelemetry_api` libraries are required for testing in Elixir/Erlang: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} {deps, [{opentelemetry_api, "~> 1.0"}, {opentelemetry, "~> 1.0"}]}. -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} def deps do [ {:opentelemetry_api, "~> 1.0"}, {:opentelemetry, "~> 1.0"} ] end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} Set your `exporter` to `:none` and the span processor to @@ -39,17 +39,17 @@ Set your `exporter` to `:none` and the span processor to to a destination, and that spans can be analyzed after they are processed. -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} %% config/sys.config.src {opentelemetry, [{traces_exporter, none}, {processors, [{otel_simple_processor, #{}}]}]} -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} # config/test.exs import Config @@ -59,9 +59,9 @@ config :opentelemetry, config :opentelemetry, :processors, [ {:otel_simple_processor, %{}} ] -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} A modified version of the `hello` function from the @@ -69,9 +69,9 @@ A modified version of the `hello` function from the serve as our test case: -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} %% apps/otel_getting_started/src/otel_getting_started.erl -module(otel_getting_started). @@ -86,9 +86,9 @@ hello() -> nice_operation(_SpanCtx) -> ?set_attributes([{a_key, <<"a value">>}]), world -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} # lib/otel_getting_started.ex defmodule OtelGettingStarted do require OpenTelemetry.Tracer, as: Tracer @@ -100,17 +100,17 @@ defmodule OtelGettingStarted do end end end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} ## Testing -{{< ot-tabs Erlang Elixir >}} +{{< tabpane langEqualsHeader=true >}} -{{< ot-tab >}} +{{< tab Erlang >}} -module(otel_getting_started_SUITE). -compile(export_all). @@ -162,9 +162,9 @@ greets_the_world(_Config) -> ?assertMatch(ReceivedAttributes, ExpectedAttributes), ok. -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab >}} +{{< tab Elixir >}} defmodule OtelGettingStartedTest do use ExUnit.Case @@ -194,7 +194,7 @@ defmodule OtelGettingStartedTest do )} end end -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} From afc548769f46a0652ee5474cafc827f4dba78b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= Date: Fri, 24 Mar 2023 19:07:09 +0200 Subject: [PATCH 05/11] Fixed path to config.yaml (#2539) --- 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 299e8ad46ce6..892d1d149a58 100644 --- a/content/en/docs/collector/getting-started.md +++ b/content/en/docs/collector/getting-started.md @@ -44,7 +44,7 @@ To load your custom configuration `config.yaml` from your current working direct {{< ot-tabs DockerHub ghcr.io >}} {{< ot-tab lang="sh" >}} -docker run -v $(pwd)/config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector:{{% param collectorVersion %}} +docker run -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector:{{% param collectorVersion %}} {{< /ot-tab >}} {{< ot-tab lang="sh" >}} From 2d1f7cfe73c79bd52300b0784108b3dec20fae53 Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Fri, 24 Mar 2023 18:15:45 +0100 Subject: [PATCH 06/11] Fix tabs for c++ getting started (#2529) Co-authored-by: Phillip Carter --- .../instrumentation/cpp/getting-started.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/content/en/docs/instrumentation/cpp/getting-started.md b/content/en/docs/instrumentation/cpp/getting-started.md index b4aae684cb36..dae89985d3a6 100644 --- a/content/en/docs/instrumentation/cpp/getting-started.md +++ b/content/en/docs/instrumentation/cpp/getting-started.md @@ -1,6 +1,9 @@ --- title: Getting Started weight: 2 +spelling: + cSpell:ignore Bazel libcurl openssl xcode DBUILD DWITH helloworld tracestate + traceparent devel --- Welcome to the OpenTelemetry C++ getting started guide! This guide will walk you @@ -19,32 +22,32 @@ You can build OpenTelemetry C++ on Windows, macOS or Linux. First you need to install some dependencies: -{{< ot-tabs "Linux (apt)" "Linux (yum)" "Linux (alpine)" "MacOS (homebrew)">}} +{{< tabpane lang=shell persistLang=false >}} -{{< ot-tab lang="shell">}} +{{< tab "Linux (apt)" >}} sudo apt-get install git cmake g++ libcurl4-openssl-dev -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab lang="shell">}} +{{< tab "Linux (yum)" >}} sudo yum install git cmake g++ libcurl-devel -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab lang="shell">}} +{{< tab "Linux (alpine)" >}} sudo apk add git cmake g++ make curl-dev -{{< /ot-tab >}} +{{< /tab >}} -{{< ot-tab lang="shell">}} +{{< tab "MacOS (homebrew)" >}} xcode-select —install /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install git cmake -{{< /ot-tab >}} +{{< /tab >}} -{{< /ot-tabs >}} +{{< /tabpane >}} ## Building -Get the `opentelementry-cpp` source: +Get the `opentelemetry-cpp` source: ```shell git clone --recursive https://github.com/open-telemetry/opentelemetry-cpp From 1b2ba93dbbd85db9386eb25608ebf89c72d46596 Mon Sep 17 00:00:00 2001 From: David Elkind Date: Fri, 24 Mar 2023 20:18:58 +0300 Subject: [PATCH 07/11] Add Oracle to vendor list (#2526) Co-authored-by: Phillip Carter --- content/en/ecosystem/vendors.md | 73 +++++++++++++++++---------------- static/refcache.json | 4 ++ 2 files changed, 41 insertions(+), 36 deletions(-) diff --git a/content/en/ecosystem/vendors.md b/content/en/ecosystem/vendors.md index 84f66c3255d9..6f170c48d95b 100644 --- a/content/en/ecosystem/vendors.md +++ b/content/en/ecosystem/vendors.md @@ -10,41 +10,42 @@ spelling: cSpell:ignore appdynamics aria aspecto bution coralogix daocloud datad [Distributions](/docs/concepts/distributions/) and vendors who natively support OpenTelemetry in their commercial products. -| Company\* | Distri­bution | Native OTLP | Learn more | -| -------------------------- | ----------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| AppDynamics (Cisco) | Yes | Yes | [docs.appdynamics.com/...](https://docs.appdynamics.com/latest/en/application-monitoring/appdynamics-for-opentelemetry) | -| Aria by VMware (Wavefront) | No | Yes | [docs.wavefront.com/...](https://docs.wavefront.com/opentelemetry_tracing.html) | -| Aspecto | Yes | Yes | [aspecto.io](https://www.aspecto.io) | -| AWS | Yes | No | [aws-otel.github.io](https://aws-otel.github.io) | -| Azure | Yes | No | [docs.microsoft.com/...](https://docs.microsoft.com/azure/azure-monitor/app/opentelemetry-overview) | -| Coralogix | Yes | Yes | [coralogix.com/...](https://coralogix.com/docs/opentelemetry/) | -| DaoCloud | Yes | Yes | [docs.daocloud.io/...](https://docs.daocloud.io/en/insight/06UserGuide/01quickstart/otel/otel/) | -| Datadog | Yes | Yes | [docs.datadoghq.com/...](https://docs.datadoghq.com/tracing/setup_overview/open_standards) | -| Dynatrace | Yes | Yes | [dynatrace.com/...](https://www.dynatrace.com/support/help/how-to-use-dynatrace/transactions-and-services/service-monitoring-settings/opentelemetry/) | -| Elastic | Yes | Yes | [elastic.co/...](https://www.elastic.co/guide/en/apm/get-started/current/open-telemetry-elastic.html) | -| F5 | No | Yes | [opentelemetry-collector-contrib/...](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/f5cloudexporter) | -| Google Cloud Platform | No | Yes | [opentelemetry-collector-contrib/...](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/googlecloudexporter) | -| Grafana Labs | No | Yes | [grafana.com/...](https://grafana.com/oss/opentelemetry/) | -| Helios | Yes | Yes | [gethelios.dev](https://gethelios.dev/) | -| Honeycomb | Yes | Yes | [docs.honeycomb.io/...](https://docs.honeycomb.io/getting-data-in/) | -| Instana | No | Yes | [ibm.com/docs/...](https://www.ibm.com/docs/en/obi/current?topic=apis-opentelemetry) | -| KloudFuse | No | Yes | [kloudfuse.com](https://kloudfuse.atlassian.net/wiki/spaces/EX/pages/753860609/APM#Sending-traces-to-Kloudfuse-data-plane%3A) | -| Lightstep | Yes | Yes | [github.com/lightstep](https://github.com/lightstep?q=launcher) | -| LogicMonitor | Yes | Yes | [logicmonitor.com/...](https://www.logicmonitor.com/support/tracing/getting-started-with-tracing) | -| Logz.io | Yes | No | [docs.logz.io/...](https://docs.logz.io/shipping/tracing-sources/opentelemetry.html#overview) | -| LogScale | No | Yes | [library.humio.com/...](https://library.humio.com/falcon-logscale/log-shippers-opentelemetry.html) | -| Lumigo | Yes | Yes | [lumigo.io](https://docs.lumigo.io/docs/opentelemetry) | -| New Relic | No | Yes | [newrelic.com/...](https://newrelic.com/solutions/opentelemetry) | -| observIQ | Yes | Yes | [observiq.com/...](https://docs.bindplane.observiq.com) | -| Promscale | No | Yes | [timescale.com/promscale](https://www.timescale.com/promscale) | -| Sentry Software | Yes | Yes | [sentrysoftware.com/...](https://www.sentrysoftware.com/products/hardware-sentry-opentelemetry-collector.html) | -| ServicePilot | No | Yes | [servicepilot.com/...](https://www.servicepilot.com/en/doc/apm#opentelemetry) | -| SigNoz | Yes | Yes | [signoz.io](https://signoz.io) | -| SolarWinds | Yes | Yes | [documentation.solarwinds.com/...](https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=third-otel-integration) | -| Splunk | Yes | Yes | [splunk.com/blog/...](https://www.splunk.com/en_us/blog/conf-splunklive/announcing-native-opentelemetry-support-in-splunk-apm.html) | -| Sumo Logic | Yes | Yes | [help.sumologic.com/](https://help.sumologic.com/docs/apm/traces/quickstart/) | -| TelemetryHub | No | Yes | [telemetryhub.com](https://app.telemetryhub.com/docs) | -| Traceloop | No | Yes | [traceloop.dev](https://docs.traceloop.dev) | -| Uptrace | Yes | Yes | [uptrace.dev](https://uptrace.dev) | +| Company\* | Distri­bution | Native OTLP | Learn more | +| -------------------------- | ----------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| AppDynamics (Cisco) | Yes | Yes | [docs.appdynamics.com/...](https://docs.appdynamics.com/latest/en/application-monitoring/appdynamics-for-opentelemetry) | +| Aria by VMware (Wavefront) | No | Yes | [docs.wavefront.com/...](https://docs.wavefront.com/opentelemetry_tracing.html) | +| Aspecto | Yes | Yes | [aspecto.io](https://www.aspecto.io) | +| AWS | Yes | No | [aws-otel.github.io](https://aws-otel.github.io) | +| Azure | Yes | No | [docs.microsoft.com/...](https://docs.microsoft.com/azure/azure-monitor/app/opentelemetry-overview) | +| Coralogix | Yes | Yes | [coralogix.com/...](https://coralogix.com/docs/opentelemetry/) | +| DaoCloud | Yes | Yes | [docs.daocloud.io/...](https://docs.daocloud.io/en/insight/06UserGuide/01quickstart/otel/otel/) | +| Datadog | Yes | Yes | [docs.datadoghq.com/...](https://docs.datadoghq.com/tracing/setup_overview/open_standards) | +| Dynatrace | Yes | Yes | [dynatrace.com/...](https://www.dynatrace.com/support/help/how-to-use-dynatrace/transactions-and-services/service-monitoring-settings/opentelemetry/) | +| Elastic | Yes | Yes | [elastic.co/...](https://www.elastic.co/guide/en/apm/get-started/current/open-telemetry-elastic.html) | +| F5 | No | Yes | [opentelemetry-collector-contrib/...](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/f5cloudexporter) | +| Google Cloud Platform | No | Yes | [opentelemetry-collector-contrib/...](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/googlecloudexporter) | +| Grafana Labs | No | Yes | [grafana.com/...](https://grafana.com/oss/opentelemetry/) | +| Helios | Yes | Yes | [gethelios.dev](https://gethelios.dev/) | +| Honeycomb | Yes | Yes | [docs.honeycomb.io/...](https://docs.honeycomb.io/getting-data-in/) | +| Instana | No | Yes | [ibm.com/docs/...](https://www.ibm.com/docs/en/obi/current?topic=apis-opentelemetry) | +| KloudFuse | No | Yes | [kloudfuse.com](https://kloudfuse.atlassian.net/wiki/spaces/EX/pages/753860609/APM#Sending-traces-to-Kloudfuse-data-plane%3A) | +| Lightstep | Yes | Yes | [github.com/lightstep](https://github.com/lightstep?q=launcher) | +| LogicMonitor | Yes | Yes | [logicmonitor.com/...](https://www.logicmonitor.com/support/tracing/getting-started-with-tracing) | +| Logz.io | Yes | No | [docs.logz.io/...](https://docs.logz.io/shipping/tracing-sources/opentelemetry.html#overview) | +| LogScale | No | Yes | [library.humio.com/...](https://library.humio.com/falcon-logscale/log-shippers-opentelemetry.html) | +| Lumigo | Yes | Yes | [lumigo.io](https://docs.lumigo.io/docs/opentelemetry) | +| New Relic | No | Yes | [newrelic.com/...](https://newrelic.com/solutions/opentelemetry) | +| observIQ | Yes | Yes | [observiq.com/...](https://docs.bindplane.observiq.com) | +| Oracle | No | Yes | [docs.oracle.com/...](https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/configure-open-source-tracing-systems.html#GUID-4D941163-F357-4839-8B06-688876D4C61F) | +| Promscale | No | Yes | [timescale.com/promscale](https://www.timescale.com/promscale) | +| Sentry Software | Yes | Yes | [sentrysoftware.com/...](https://www.sentrysoftware.com/products/hardware-sentry-opentelemetry-collector.html) | +| ServicePilot | No | Yes | [servicepilot.com/...](https://www.servicepilot.com/en/doc/apm#opentelemetry) | +| SigNoz | Yes | Yes | [signoz.io](https://signoz.io) | +| SolarWinds | Yes | Yes | [documentation.solarwinds.com/...](https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=third-otel-integration) | +| Splunk | Yes | Yes | [splunk.com/blog/...](https://www.splunk.com/en_us/blog/conf-splunklive/announcing-native-opentelemetry-support-in-splunk-apm.html) | +| Sumo Logic | Yes | Yes | [help.sumologic.com/](https://help.sumologic.com/docs/apm/traces/quickstart/) | +| TelemetryHub | No | Yes | [telemetryhub.com](https://app.telemetryhub.com/docs) | +| Traceloop | No | Yes | [traceloop.dev](https://docs.traceloop.dev) | +| Uptrace | Yes | Yes | [uptrace.dev](https://uptrace.dev) | \* _Vendors are listed alphabetically_. diff --git a/static/refcache.json b/static/refcache.json index e2912cfe03da..c9e38e07073d 100644 --- a/static/refcache.json +++ b/static/refcache.json @@ -819,6 +819,10 @@ "StatusCode": 200, "LastSeen": "2023-02-15T21:07:53.932768-05:00" }, + "https://docs.oracle.com/en-us/iaas/application-performance-monitoring/doc/configure-open-source-tracing-systems.html#GUID-4D941163-F357-4839-8B06-688876D4C61F": { + "StatusCode": 200, + "LastSeen": "2023-03-23T12:34:45.501997+02:00" + }, "https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html": { "StatusCode": 200, "LastSeen": "2023-02-15T21:10:17.969025-05:00" From 6d9426ebe1198bc30c201713d732d632dd8c2360 Mon Sep 17 00:00:00 2001 From: Jamie Danielson Date: Fri, 24 Mar 2023 13:21:27 -0400 Subject: [PATCH 08/11] Fix Operator typo on Python docs (#2540) Co-authored-by: Phillip Carter --- content/en/docs/instrumentation/python/automatic/operator.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/instrumentation/python/automatic/operator.md b/content/en/docs/instrumentation/python/automatic/operator.md index e00175a0c9c0..fede8b029483 100644 --- a/content/en/docs/instrumentation/python/automatic/operator.md +++ b/content/en/docs/instrumentation/python/automatic/operator.md @@ -1,5 +1,5 @@ --- -title: Using the OpenTelemetry Operatory to Inject Auto-Instrumentation +title: Using the OpenTelemetry Operator to Inject Auto-Instrumentation linkTitle: Operator weight: 45 spelling: cSpell:ignore distro mkdir uninstrumented virtualenv From 5f6637621666637cb00cbefd4da6c3f989341866 Mon Sep 17 00:00:00 2001 From: Severin Neumann Date: Fri, 24 Mar 2023 18:24:39 +0100 Subject: [PATCH 09/11] Cleanup content/en/docs/instrumentation/php/automatic.md (#2528) Co-authored-by: Phillip Carter --- .../en/docs/instrumentation/php/automatic.md | 73 ++++++++++--------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/content/en/docs/instrumentation/php/automatic.md b/content/en/docs/instrumentation/php/automatic.md index af48aec8958c..b6b416dec18c 100644 --- a/content/en/docs/instrumentation/php/automatic.md +++ b/content/en/docs/instrumentation/php/automatic.md @@ -2,10 +2,12 @@ title: Automatic Instrumentation linkTitle: Automatic weight: 2 +spelling: + cSpell:ignore userland phar AUTOLOAD tracecontext myapp configurator packagist --- Automatic instrumentation with PHP requires at least PHP 8.0, and -[the opentelemetry PHP extension](https://github.com/open-telemetry/opentelemetry-php-instrumentation). +[the OpenTelemetry PHP extension](https://github.com/open-telemetry/opentelemetry-php-instrumentation). The extension allows developers code to hook into classes and methods, and execute userland code before and after. @@ -45,53 +47,54 @@ function ends it. ## Setup -1. Install the extension via [pickle](https://github.com/FriendsOfPHP/pickle) - or - [php-extension-installer](https://github.com/mlocati/docker-php-extension-installer) - (docker specific): +1. Install the extension via [pickle](https://github.com/FriendsOfPHP/pickle) or + [php-extension-installer](https://github.com/mlocati/docker-php-extension-installer) + (docker specific): - - **pickle** can be used to install extensions that are available via - http://pecl.php.net, however that's not the case for - opentelemetry-php-instrumentation yet, so the only way for it is to - install directly from source code. The following command line shows you - how to do that using a specific version of the extension (1.0.0beta2 in - this case): + - **pickle** can be used to install extensions that are available via + , however that's not the case for + opentelemetry-php-instrumentation yet, so the only way for it is to install + directly from source code. The following command line shows you how to do + that using a specific version of the extension (1.0.0beta2 in this case): - Installing from source requires proper development environment and few - dependencies: + Installing from source requires proper development environment and few + dependencies: - {{< ot-tabs "Linux (apt)" "macOS (homebrew)">}} + - {{< ot-tab lang="shell">}} sudo apt-get install gcc make autoconf - {{< /ot-tab >}} + {{< tabpane lang=shell persistLang=false >}} - {{< ot-tab lang="shell">}} brew install gcc make autoconf {{< /ot-tab >}} + {{< tab "Linux (apt)" >}}sudo apt-get install gcc make autoconf{{< /tab >}} - {{< /ot-tabs >}} + {{< tab "MacOS (homebrew)" >}}brew install gcc make autoconf{{< /tab >}} - With your environment setup you can install the extension: + {{< /tabpane >}} + - ```sh - php pickle.phar install --source https://github.com/open-telemetry/opentelemetry-php-instrumentation.git#1.0.0beta2 - ``` + With your environment setup you can install the extension: - Add the extension to your `php.ini` file: + ```sh + php pickle.phar install --source https://github.com/open-telemetry/opentelemetry-php-instrumentation.git#1.0.0beta2 + ``` - ```ini - [Otel instrumentation] - extension=otel_instrumentation.so - ``` + Add the extension to your `php.ini` file: - - **php-extension-installer** - ```sh - install-php-extensions open-telemetry/opentelemetry-php-instrumentation@main - ``` + ```ini + [Otel instrumentation] + extension=otel_instrumentation.so + ``` -2. Verify that the extension is installed and enabled: + - **php-extension-installer** - ```sh - php -m | grep otel_instrumentation - ``` + ```sh + install-php-extensions open-telemetry/opentelemetry-php-instrumentation@main + ``` + +2. Verify that the extension is installed and enabled: + + ```sh + php -m | grep otel_instrumentation + ``` ## Zero-code configuration for automatic instrumentation From 2a00d4fb8b0a6c76cca20f473aa5ae18d8f45dc4 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Fri, 24 Mar 2023 18:29:08 +0100 Subject: [PATCH 10/11] Fix consistency (#2537) Co-authored-by: Phillip Carter --- content/en/docs/instrumentation/js/exporters.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/docs/instrumentation/js/exporters.md b/content/en/docs/instrumentation/js/exporters.md index deebf620b184..10ca3344b78b 100644 --- a/content/en/docs/instrumentation/js/exporters.md +++ b/content/en/docs/instrumentation/js/exporters.md @@ -181,7 +181,7 @@ server { # Take care of preflight requests if ($request_method = 'OPTIONS') { add_header 'Access-Control-Max-Age' 1728000; - add_header "Access-Control-Allow-Origin" "name.of.your.website.example.com" always; + add_header 'Access-Control-Allow-Origin' 'name.of.your.website.example.com' always; add_header 'Access-Control-Allow-Headers' 'Accept,Accept-Language,Content-Language,Content-Type' always; add_header 'Access-Control-Allow-Credentials' 'true' always; add_header 'Content-Type' 'text/plain charset=UTF-8'; @@ -189,7 +189,7 @@ server { return 204; } - add_header "Access-Control-Allow-Origin" "name.of.your.website.example.com" always; + add_header 'Access-Control-Allow-Origin' 'name.of.your.website.example.com' always; add_header 'Access-Control-Allow-Credentials' 'true' always; add_header 'Access-Control-Allow-Headers' 'Accept,Accept-Language,Content-Language,Content-Type' always; proxy_http_version 1.1; From cef971bb8ced9897e783634b03a942c155ad3691 Mon Sep 17 00:00:00 2001 From: copy rogers <40619032+rogerogers@users.noreply.github.com> Date: Sat, 25 Mar 2023 02:13:03 +0800 Subject: [PATCH 11/11] Scroll to the active item when the navbar is too long (#2340) Co-authored-by: chalin Co-authored-by: Phillip Carter --- assets/js/navScroll.js | 17 +++++++++++++++++ layouts/partials/hooks/body-end.html | 1 + 2 files changed, 18 insertions(+) create mode 100644 assets/js/navScroll.js diff --git a/assets/js/navScroll.js b/assets/js/navScroll.js new file mode 100644 index 000000000000..4fc710164b20 --- /dev/null +++ b/assets/js/navScroll.js @@ -0,0 +1,17 @@ +// Check If an Element is Visible in the Viewport +function isInViewport(element) { + const rect = element.getBoundingClientRect(); + return ( + rect.top >= 0 && + rect.left >= 0 && + rect.bottom <= + (window.innerHeight || document.documentElement.clientHeight) && + rect.right <= (window.innerWidth || document.documentElement.clientWidth) + ); +} + +let ele = document.querySelector('#td-section-nav .td-sidebar-nav-active-item'); + +if (ele && !isInViewport(ele)) { + ele.scrollIntoView({ behavior: 'smooth', block: 'end', inline: 'nearest' }); +} diff --git a/layouts/partials/hooks/body-end.html b/layouts/partials/hooks/body-end.html index 4496dbb9cec0..fe43acb45b60 100644 --- a/layouts/partials/hooks/body-end.html +++ b/layouts/partials/hooks/body-end.html @@ -1 +1,2 @@ {{ partial "script.html" (dict "src" "js/tracing.js") -}} +{{ partial "script.html" (dict "src" "js/navScroll.js") -}}