diff --git a/src/frontend/src/instance/otlp.rs b/src/frontend/src/instance/otlp.rs index 2a369944c3f..6f307b4d512 100644 --- a/src/frontend/src/instance/otlp.rs +++ b/src/frontend/src/instance/otlp.rs @@ -83,11 +83,6 @@ fn trace_permission_targets( PermissionTableTargets::resolved(targets) } -/// Whether the table under the descriptor's name is the one ingestion -/// created, so a user's same-named table never receives descriptor rows. -/// Not atomic: the insert path resolves the name again, so a concurrent DROP -/// plus CREATE can still slip a foreign table into that window. - #[async_trait] impl OpenTelemetryProtocolHandler for Instance { #[tracing::instrument(skip_all)] diff --git a/src/servers/src/otlp/metrics.rs b/src/servers/src/otlp/metrics.rs index 68bbe692d01..3715584a25b 100644 --- a/src/servers/src/otlp/metrics.rs +++ b/src/servers/src/otlp/metrics.rs @@ -154,7 +154,9 @@ pub fn to_grpc_insert_requests( // The metric and the descriptor would fight over the same table across // two engines. The user's metric wins. - let resource_info = if requests + let resource_info = if !metric_ctx.resource_info { + None + } else if requests .inserts .iter() .any(|r| r.table_name == OTEL_RESOURCE_INFO_TABLE_NAME) diff --git a/tests-integration/tests/http.rs b/tests-integration/tests/http.rs index 720ae6b8124..8ed87c92f20 100644 --- a/tests-integration/tests/http.rs +++ b/tests-integration/tests/http.rs @@ -2204,6 +2204,11 @@ default_merge_mode = "last_non_null" [jaeger] enable = true +[otlp] +enable = true +trace_ingest_chunk_size = 512 +experimental_enable_resource_info = true + [prom_store] enable = true with_metric_engine = true