Skip to content

Commit 610f151

Browse files
Add sections for EDOT limitations (#400)
* Add EDOT limitations * test * Minor stylistic edits * Apply comment * Apply comments * change 'Otel-native' phrasing
1 parent 93354be commit 610f151

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

docs/reference/compatibility/features.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ The following table shows Elastic features and their level of support and compat
2222
| [Service Maps] | [Compatible] | [Supported] |
2323
| [Distributed Tracing] | [Compatible] | [Supported] |
2424
| [Head-based Sampling (HBS)] | [Compatible] | [Supported] |
25-
| *[Tail-based Sampling (TBS)]* | [Compatible] | [Not supported] |
26-
| [Self-managed, OTel Collector-based TBS] | [Compatible] | [Not supported] |
25+
| [Tail-based Sampling (TBS)] | [Compatible]^4^ | [Not supported] |
26+
| [Self-managed, OTel Collector-based TBS] | [Compatible]^4^ | [Not supported] |
2727
| TBS managed / hosted in {{ecloud}} | [Incompatible] | [Not supported] |
2828
| Runtime metrics | [See language-specific overview](/reference/edot-sdks/index.md) | - |
2929
| **Infrastructure Monitoring** | [Compatible] | [Supported] |
@@ -47,6 +47,8 @@ The following table shows Elastic features and their level of support and compat
4747

4848
^3^ Refer to [limitations on metrics ingestion](limitations.md#metrics-data-ingestion)
4949

50+
^4^ While ingesting traces that have been sampled using TBS is technically possible, there are important limitations to consider. Refer to [Tail-based sampling (TBS) limitations](../compatibility/limitations.md#tail-based-sampling-tbs) for more information.
51+
5052
[Incompatible]: nomenclature.md
5153
[Compatible]: nomenclature.md
5254
[Not supported]: nomenclature.md
@@ -57,4 +59,4 @@ The following table shows Elastic features and their level of support and compat
5759
[Head-based Sampling (HBS)]: docs-content://solutions/observability/apm/transaction-sampling.md#apm-head-based-sampling
5860
[Tail-based Sampling (TBS)]: docs-content://solutions/observability/apm/transaction-sampling.md#apm-tail-based-sampling
5961
[Self-managed, OTel Collector-based TBS]: https://opentelemetry.io/blog/2022/tail-sampling/
60-
[Time Series Data Streams]: docs-content://manage-data/data-store/data-streams/time-series-data-stream-tsds.md
62+
[Time Series Data Streams]: docs-content://manage-data/data-store/data-streams/time-series-data-stream-tsds.md

docs/reference/compatibility/limitations.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,18 @@ products:
1616

1717
The Elastic Distributions of OpenTelemetry (EDOT) come with a new way of ingesting data in OTel-native way and format. Elastic is continuously working on providing a great experience with OTel-native data within Elastic solutions, contributing popular Elastic features to the upstream OpenTelemetry projects and aligning concepts with OpenTelemetry.
1818

19-
While EDOT and OTel-native data collection already covers most of the core Observability use cases, the following limitations apply compared to data collection with classic Elastic data collection mechanisms.
19+
While EDOT and OTel-native data collection already covers most of the core Observability use cases, the following limitations apply compared to data collection with classic Elastic data ingestion components.
20+
21+
## When to use the classic Elastic Stack ingestion components instead of EDOT
22+
23+
EDOT already supports most core observability use cases, but in some scenarios, you may prefer to use classic Elastic ingestion components, such as Elastic Agent, Elastic APM Agent or APM Server:
24+
25+
* **Real user monitoring (RUM):** RUM ingestion and visualizations are not yet available for OTel-native data.
26+
* **Universal profiling:** This capability is currently only supported in the classic stack.
27+
* **Existing integrations and dashboards:** Many prebuilt Elastic integrations and dashboards are designed for ECS-formatted data and may not work as expected with the OpenTelemetry semantic conventions without customization.
28+
* **Ingest pipelines for structuring logs:** {{es}} ingest pipelines cannot directly parse OTel-native data with dotted field names without preprocessing. See [Centralized parsing and processing of data](#centralized-parsing-and-processing-of-data) for workarounds.
29+
* **Tail-based sampling (TBS):**
30+
If you need the full tail-based sampling capabilities of APM Server, use APM Server with an Elasticsearch output. EDOT does not provide managed TBS. You can run TBS in a self-managed EDOT Collector or any upstream OTel Collector and ingest the sampled traces into Elastic with some caveats - refer to [Tail-based sampling limitations](#tail-based-sampling-tbs) for more information.
2031

2132
Refer to [EDOT data streams compared to classic APM](../compatibility/data-streams.md) for an overview of how these ingestion paths differ.
2233

@@ -71,6 +82,17 @@ Currently, there are limitations with visualizing language-specific runtime metr
7182

7283
Runtime metrics can be ingested and used to create custom dashboards. As a temporary workaround users can create dashboards from the runtime metrics and attach them as custom dashboards to corresponding services.
7384

85+
## Tail-based sampling (TBS)
86+
87+
If you need the full tail-based sampling capabilities of APM Server, use APM Server with an Elasticsearch output. EDOT does not provide a managed TBS service.
88+
89+
You can run tail-based sampling in a self-managed EDOT Collector or any upstream OTel Collector and ingest the sampled traces into Elastic, with these caveats:
90+
91+
* **Metric accuracy:** Counts and rate metrics reflect sampled data, not total volumes. The Elastic APM backend cannot extrapolate totals because the `tailsamplingprocessor` does not send sampling probability metadata.
92+
* **Service map coverage:** Some edges between services may be missing.
93+
* **Impact on SLOs and alerts:** SLOs and alerts that depend on request volume can be biased by sampling.
94+
* **Operational complexity:** You are responsible for reliability, scaling, and tuning.
95+
7496
## Additional information
7597

7698
For backwards compatibility reasons, Kubernetes metrics and host metrics are ingested twice, once in OTel format and once in Elastic Common Schema (ECS) format.

0 commit comments

Comments
 (0)