Skip to content

Commit 26f1ac3

Browse files
committed
propagateTraceContext extraction
1 parent e90e693 commit 26f1ac3

File tree

2 files changed

+35
-17
lines changed

2 files changed

+35
-17
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License
4+
* 2.0; you may not use this file except in compliance with the Elastic License
5+
* 2.0.
6+
*/
7+
8+
package org.elasticsearch.xpack.inference.external.request;
9+
10+
import org.apache.http.client.methods.HttpPost;
11+
import org.elasticsearch.tasks.Task;
12+
import org.elasticsearch.xpack.inference.telemetry.TraceContext;
13+
14+
public final class TraceContextPropagator {
15+
private TraceContextPropagator() {} // Utility class
16+
17+
public static void propagateTraceContext(HttpPost httpPost, TraceContext traceContext) {
18+
if (traceContext == null) {
19+
return;
20+
}
21+
22+
var traceParent = traceContext.traceParent();
23+
var traceState = traceContext.traceState();
24+
25+
if (traceParent != null) {
26+
httpPost.setHeader(Task.TRACE_PARENT_HTTP_HEADER, traceParent);
27+
}
28+
29+
if (traceState != null) {
30+
httpPost.setHeader(Task.TRACE_STATE, traceState);
31+
}
32+
}
33+
}

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/external/request/elastic/ElasticInferenceServiceSparseEmbeddingsRequest.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
import org.apache.http.entity.ByteArrayEntity;
1313
import org.apache.http.message.BasicHeader;
1414
import org.elasticsearch.common.Strings;
15-
import org.elasticsearch.tasks.Task;
1615
import org.elasticsearch.xcontent.XContentType;
1716
import org.elasticsearch.xpack.inference.common.Truncator;
1817
import org.elasticsearch.xpack.inference.external.request.HttpRequest;
1918
import org.elasticsearch.xpack.inference.external.request.Request;
2019
import org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceSparseEmbeddingsModel;
2120
import org.elasticsearch.xpack.inference.telemetry.TraceContext;
21+
import org.elasticsearch.xpack.inference.external.request.TraceContextPropagator;
2222

2323
import java.net.URI;
2424
import java.nio.charset.StandardCharsets;
@@ -56,9 +56,7 @@ public HttpRequest createHttpRequest() {
5656
ByteArrayEntity byteEntity = new ByteArrayEntity(requestEntity.getBytes(StandardCharsets.UTF_8));
5757
httpPost.setEntity(byteEntity);
5858

59-
if (traceContext != null) {
60-
propagateTraceContext(httpPost);
61-
}
59+
TraceContextPropagator.propagateTraceContext(httpPost, traceContext);
6260

6361
httpPost.setHeader(new BasicHeader(HttpHeaders.CONTENT_TYPE, XContentType.JSON.mediaType()));
6462

@@ -90,17 +88,4 @@ public Request truncate() {
9088
public boolean[] getTruncationInfo() {
9189
return truncationResult.truncated().clone();
9290
}
93-
94-
private void propagateTraceContext(HttpPost httpPost) {
95-
var traceParent = traceContext.traceParent();
96-
var traceState = traceContext.traceState();
97-
98-
if (traceParent != null) {
99-
httpPost.setHeader(Task.TRACE_PARENT_HTTP_HEADER, traceParent);
100-
}
101-
102-
if (traceState != null) {
103-
httpPost.setHeader(Task.TRACE_STATE, traceState);
104-
}
105-
}
10691
}

0 commit comments

Comments
 (0)