From 3405d70a509ee60c5d1b903ab045934e392652ce Mon Sep 17 00:00:00 2001 From: Quentin Pradet Date: Mon, 24 Jun 2024 17:22:50 +0400 Subject: [PATCH] Document and enable OpenTelemetry instrumentation --- docs/guide/images/otel-waterfall-retry.png | Bin 0 -> 50707 bytes .../guide/images/otel-waterfall-with-http.png | Bin 0 -> 44194 bytes .../images/otel-waterfall-without-http.png | Bin 0 -> 35709 bytes docs/guide/integrations.asciidoc | 10 +++ docs/guide/open-telemetry.asciidoc | 75 ++++++++++++++++++ elasticsearch_serverless/_otel.py | 2 +- test_elasticsearch_serverless/test_otel.py | 2 +- 7 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 docs/guide/images/otel-waterfall-retry.png create mode 100644 docs/guide/images/otel-waterfall-with-http.png create mode 100644 docs/guide/images/otel-waterfall-without-http.png create mode 100644 docs/guide/open-telemetry.asciidoc diff --git a/docs/guide/images/otel-waterfall-retry.png b/docs/guide/images/otel-waterfall-retry.png new file mode 100644 index 0000000000000000000000000000000000000000..c4eb79473e2acfe2a7210e5c22356c1b7f7ef4be GIT binary patch literal 50707 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

Iyd0u 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 HjD!CJ|3%M^ literal 0 HcmV?d00001 diff --git a/docs/guide/images/otel-waterfall-with-http.png b/docs/guide/images/otel-waterfall-with-http.png new file mode 100644 index 0000000000000000000000000000000000000000..2d11542a659b877962cde7b62488e9ef3697a6f2 GIT binary patch literal 44194 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 Y1#CGaW%<|$p{S&ACYHx5emZ;Q->{}h4FCWD literal 0 HcmV?d00001 diff --git a/docs/guide/images/otel-waterfall-without-http.png b/docs/guide/images/otel-waterfall-without-http.png new file mode 100644 index 0000000000000000000000000000000000000000..4a3b8de5bb9f4096740d69b10b83bb72ec5c5f73 GIT binary patch literal 35709 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 BF9-kt literal 0 HcmV?d00001 diff --git a/docs/guide/integrations.asciidoc b/docs/guide/integrations.asciidoc index 966fb57..6e8f52d 100644 --- a/docs/guide/integrations.asciidoc +++ b/docs/guide/integrations.asciidoc @@ -4,6 +4,13 @@ You can find integration options and information on this page. +[discrete] +[[opentelemetry-intro]] +=== OpenTelemetry instrumentation + +The Python Elasticsearch client supports native OpenTelemetry instrumentation following the https://opentelemetry.io/docs/specs/semconv/database/elasticsearch/[OpenTelemetry Semantic Conventions for Elasticsearch]. +Refer to the <> page for details. + [discrete] [[transport]] === Transport @@ -53,3 +60,6 @@ es.options( ------------------------------------ Type hints also allow tools like your IDE to check types and provide better auto-complete functionality. + + +include::open-telemetry.asciidoc[] \ No newline at end of file diff --git a/docs/guide/open-telemetry.asciidoc b/docs/guide/open-telemetry.asciidoc new file mode 100644 index 0000000..9bbc1da --- /dev/null +++ b/docs/guide/open-telemetry.asciidoc @@ -0,0 +1,75 @@ +[[opentelemetry]] +=== Using OpenTelemetry + +You can use https://opentelemetry.io/[OpenTelemetry] to monitor the performance and behavior of your {es} requests through the Elasticsearch Python client. +The Python client comes with built-in OpenTelemetry instrumentation that emits https://www.elastic.co/guide/en/apm/guide/current/apm-distributed-tracing.html[distributed tracing spans] by default. +With that, applications using https://www.elastic.co/blog/manual-instrumentation-of-python-applications-opentelemetry[manual OpenTelemetry instrumentation] or https://www.elastic.co/blog/auto-instrumentation-of-python-applications-opentelemetry[automatic OpenTelemetry instrumentation] are enriched with additional spans that contain insightful information about the execution of the {es} requests. + +The native instrumentation in the Python client follows the https://opentelemetry.io/docs/specs/semconv/database/elasticsearch/[OpenTelemetry Semantic Conventions for {es}]. In particular, the instrumentation in the client covers the logical layer of {es} requests. A single span per request is created that is processed by the service through the Python client. The following image shows a trace that records the handling of two different {es} requests: an `info` request and a `search` request. + +[role="screenshot"] +image::images/otel-waterfall-without-http.png[alt="Distributed trace with Elasticsearch spans",align="center"] + +Usually, OpenTelemetry auto-instrumentation modules come with instrumentation support for HTTP-level communication. In this case, in addition to the logical {es} client requests, spans will be captured for the physical HTTP requests emitted by the client. The following image shows a trace with both, {es} spans (in blue) and the corresponding HTTP-level spans (in red) after having installed the ``opentelemetry-instrumentation-urllib3`` package: + +[role="screenshot"] +image::images/otel-waterfall-with-http.png[alt="Distributed trace with Elasticsearch spans",align="center"] + +Advanced Python client behavior such as nodes round-robin and request retries are revealed through the combination of logical {es} spans and the physical HTTP spans. The following example shows a `search` request in a scenario with two nodes: + +[role="screenshot"] +image::images/otel-waterfall-retry.png[alt="Distributed trace with Elasticsearch spans",align="center"] + +The first node is unavailable and results in an HTTP error, while the retry to the second node succeeds. Both HTTP requests are subsumed by the logical {es} request span (in blue). + +[discrete] +==== Setup the OpenTelemetry instrumentation + +When using the https://opentelemetry.io/docs/languages/python/instrumentation/[manual Python OpenTelemetry instrumentation] or the https://opentelemetry.io/docs/languages/python/automatic/[OpenTelemetry Python agent], the Python client's OpenTelemetry instrumentation is enabled by default and uses the global OpenTelemetry SDK with the global tracer provider. +If you're getting started with OpenTelemetry instrumentation, the following blog posts have step-by-step instructions to ingest and explore tracing data with the Elastic stack: + +* https://www.elastic.co/blog/manual-instrumentation-of-python-applications-opentelemetry[Manual instrumentation with OpenTelemetry for Python applications] +* https://www.elastic.co/blog/auto-instrumentation-of-python-applications-opentelemetry[Automatic instrumentation with OpenTelemetry for Python applications] + +[discrete] +=== Comparison with community instrumentation + +The https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/elasticsearch/elasticsearch.html[commmunity OpenTelemetry Elasticsearch instrumentation] also instruments the client and sends OpenTelemetry traces, but was developed before the OpenTelemetry Semantic Conventions for {es}, so the traces attributes are inconsistent with other OpenTelemetry Elasticsearch client instrumentations. To avoid tracing the same requests twice, make sure to use only one instrumentation, either by uninstalling the opentelemetry-instrumentation-elasticsearch Python package or by <>. + +[discrete] +==== Configuring the OpenTelemetry instrumentation + +You can configure this OpenTelemetry instrumentation through environment variables. +The following configuration options are available. + +[discrete] +[[opentelemetry-config-enable]] +===== Enable / Disable the OpenTelemetry instrumentation + +With this configuration option you can enable (default) or disable the built-in OpenTelemetry instrumentation. + +**Default:** `true` + +|============ +| Environment Variable | `OTEL_PYTHON_INSTRUMENTATION_ELASTICSEARCH_ENABLED` +|============ + +[discrete] +===== Capture search request bodies + +Per default, the built-in OpenTelemetry instrumentation does not capture request bodies due to data privacy considerations. You can use this option to enable capturing of search queries from the request bodies of {es} search requests in case you wish to gather this information regardless. The options are to capture the raw search query or not capture it at all. + +**Default:** `omit` + +**Valid Options:** `omit`, `raw` + +|============ +| Environment Variable | `OTEL_PYTHON_INSTRUMENTATION_ELASTICSEARCH_CAPTURE_SEARCH_QUERY` +|============ + +[discrete] +==== Overhead + +The OpenTelemetry instrumentation (as any other monitoring approach) may come with a slight overhead on CPU, memory, and/or latency. The overhead may only occur when the instrumentation is enabled (default) and an OpenTelemetry SDK is active in the target application. When the instrumentation is disabled or no OpenTelemetry SDK is active within the target application, monitoring overhead is not expected when using the client. + +Even in cases where the instrumentation is enabled and is actively used (by an OpenTelemetry SDK), the overhead is minimal and negligible in the vast majority of cases. In edge cases where there is a noticeable overhead, the <> to eliminate any potential impact on performance. diff --git a/elasticsearch_serverless/_otel.py b/elasticsearch_serverless/_otel.py index 1f052b6..9264569 100644 --- a/elasticsearch_serverless/_otel.py +++ b/elasticsearch_serverless/_otel.py @@ -52,7 +52,7 @@ def __init__( body_strategy: 'Literal["omit", "raw"]' | None = None, ): if enabled is None: - enabled = os.environ.get(ENABLED_ENV_VAR, "false") != "false" + enabled = os.environ.get(ENABLED_ENV_VAR, "true") == "true" self.tracer = tracer or _tracer self.enabled = enabled and self.tracer is not None diff --git a/test_elasticsearch_serverless/test_otel.py b/test_elasticsearch_serverless/test_otel.py index 4f1abfb..1177f38 100644 --- a/test_elasticsearch_serverless/test_otel.py +++ b/test_elasticsearch_serverless/test_otel.py @@ -50,7 +50,7 @@ def setup_tracing(): def test_enabled(): otel = OpenTelemetry() - assert otel.enabled == (os.environ.get(ENABLED_ENV_VAR, "false") != "false") + assert otel.enabled == (os.environ.get(ENABLED_ENV_VAR, "true") == "true") def test_minimal_span():