Skip to content

Commit 7233eda

Browse files
committed
Add esql telemetry to stats output
1 parent 095f342 commit 7233eda

File tree

5 files changed

+35
-3
lines changed

5 files changed

+35
-3
lines changed

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ static TransportVersion def(int id) {
206206
public static final TransportVersion INGEST_PIPELINE_CONFIGURATION_AS_MAP = def(8_797_00_0);
207207
public static final TransportVersion INDEXING_PRESSURE_THROTTLING_STATS = def(8_798_00_0);
208208
public static final TransportVersion REINDEX_DATA_STREAMS = def(8_799_00_0);
209+
public static final TransportVersion ESQL_TELEMETRY_STATS = def(8_800_00_0);
209210

210211
/*
211212
* STOP! READ THIS FIRST! No, really,

server/src/main/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsNodeResponse.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public class ClusterStatsNodeResponse extends BaseNodeResponse {
3232
private final SearchUsageStats searchUsageStats;
3333
private final RepositoryUsageStats repositoryUsageStats;
3434
private final CCSTelemetrySnapshot ccsMetrics;
35+
private final CCSTelemetrySnapshot esqlMetrics;
3536

3637
public ClusterStatsNodeResponse(StreamInput in) throws IOException {
3738
super(in);
@@ -54,6 +55,11 @@ public ClusterStatsNodeResponse(StreamInput in) throws IOException {
5455
} else {
5556
ccsMetrics = new CCSTelemetrySnapshot();
5657
}
58+
if (in.getTransportVersion().onOrAfter(TransportVersions.ESQL_TELEMETRY_STATS)) {
59+
esqlMetrics = new CCSTelemetrySnapshot(in);
60+
} else {
61+
esqlMetrics = new CCSTelemetrySnapshot();
62+
}
5763
}
5864

5965
public ClusterStatsNodeResponse(
@@ -64,7 +70,8 @@ public ClusterStatsNodeResponse(
6470
ShardStats[] shardsStats,
6571
SearchUsageStats searchUsageStats,
6672
RepositoryUsageStats repositoryUsageStats,
67-
CCSTelemetrySnapshot ccsTelemetrySnapshot
73+
CCSTelemetrySnapshot ccsTelemetrySnapshot,
74+
CCSTelemetrySnapshot esqlTelemetrySnapshot
6875
) {
6976
super(node);
7077
this.nodeInfo = nodeInfo;
@@ -74,6 +81,7 @@ public ClusterStatsNodeResponse(
7481
this.searchUsageStats = Objects.requireNonNull(searchUsageStats);
7582
this.repositoryUsageStats = Objects.requireNonNull(repositoryUsageStats);
7683
this.ccsMetrics = ccsTelemetrySnapshot;
84+
this.esqlMetrics = esqlTelemetrySnapshot;
7785
}
7886

7987
public NodeInfo nodeInfo() {
@@ -107,6 +115,9 @@ public RepositoryUsageStats repositoryUsageStats() {
107115
public CCSTelemetrySnapshot getCcsMetrics() {
108116
return ccsMetrics;
109117
}
118+
public CCSTelemetrySnapshot getEsqlMetrics() {
119+
return esqlMetrics;
120+
}
110121

111122
@Override
112123
public void writeTo(StreamOutput out) throws IOException {
@@ -124,6 +135,9 @@ public void writeTo(StreamOutput out) throws IOException {
124135
if (out.getTransportVersion().onOrAfter(TransportVersions.CCS_TELEMETRY_STATS)) {
125136
ccsMetrics.writeTo(out);
126137
}
138+
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_TELEMETRY_STATS)) {
139+
esqlMetrics.writeTo(out);
140+
}
127141
}
128142

129143
}

server/src/main/java/org/elasticsearch/action/admin/cluster/stats/ClusterStatsResponse.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ public class ClusterStatsResponse extends BaseNodesResponse<ClusterStatsNodeResp
3636
final ClusterSnapshotStats clusterSnapshotStats;
3737
final RepositoryUsageStats repositoryUsageStats;
3838
final CCSTelemetrySnapshot ccsMetrics;
39+
final CCSTelemetrySnapshot esqlMetrics;
3940
final long timestamp;
4041
final String clusterUUID;
4142
private final Map<String, RemoteClusterStats> remoteClustersStats;
4243

4344
public static final String CCS_TELEMETRY_FIELD_NAME = "_search";
45+
public static final String ESQL_TELEMETRY_FIELD_NAME = "_esql";
4446

4547
public ClusterStatsResponse(
4648
long timestamp,
@@ -60,6 +62,7 @@ public ClusterStatsResponse(
6062
nodesStats = new ClusterStatsNodes(nodes);
6163
indicesStats = new ClusterStatsIndices(nodes, mappingStats, analysisStats, versionStats);
6264
ccsMetrics = new CCSTelemetrySnapshot();
65+
esqlMetrics = new CCSTelemetrySnapshot();
6366
ClusterHealthStatus status = null;
6467
for (ClusterStatsNodeResponse response : nodes) {
6568
// only the master node populates the status
@@ -68,7 +71,10 @@ public ClusterStatsResponse(
6871
break;
6972
}
7073
}
71-
nodes.forEach(node -> ccsMetrics.add(node.getCcsMetrics()));
74+
nodes.forEach(node -> {
75+
ccsMetrics.add(node.getCcsMetrics());
76+
esqlMetrics.add(node.getEsqlMetrics());
77+
});
7278
this.status = status;
7379
this.clusterSnapshotStats = clusterSnapshotStats;
7480

@@ -153,6 +159,12 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
153159
ccsMetrics.toXContent(builder, params);
154160
builder.endObject();
155161

162+
if (esqlMetrics.getTotalCount() > 0) {
163+
builder.startObject(ESQL_TELEMETRY_FIELD_NAME);
164+
esqlMetrics.toXContent(builder, params);
165+
builder.endObject();
166+
}
167+
156168
builder.endObject();
157169

158170
return builder;

server/src/main/java/org/elasticsearch/action/admin/cluster/stats/TransportClusterStatsAction.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ public class TransportClusterStatsAction extends TransportNodesAction<
104104
private final RepositoriesService repositoriesService;
105105
private final SearchUsageHolder searchUsageHolder;
106106
private final CCSUsageTelemetry ccsUsageHolder;
107+
private final CCSUsageTelemetry esqlUsageHolder;
107108

108109
private final Executor clusterStateStatsExecutor;
109110
private final MetadataStatsCache<MappingStats> mappingStatsCache;
@@ -136,6 +137,7 @@ public TransportClusterStatsAction(
136137
this.repositoriesService = repositoriesService;
137138
this.searchUsageHolder = usageService.getSearchUsageHolder();
138139
this.ccsUsageHolder = usageService.getCcsUsageHolder();
140+
this.esqlUsageHolder = usageService.getEsqlUsageHolder();
139141
this.clusterStateStatsExecutor = threadPool.executor(ThreadPool.Names.MANAGEMENT);
140142
this.mappingStatsCache = new MetadataStatsCache<>(threadPool.getThreadContext(), MappingStats::of);
141143
this.analysisStatsCache = new MetadataStatsCache<>(threadPool.getThreadContext(), AnalysisStats::of);
@@ -294,6 +296,7 @@ protected ClusterStatsNodeResponse nodeOperation(ClusterStatsNodeRequest nodeReq
294296

295297
final RepositoryUsageStats repositoryUsageStats = repositoriesService.getUsageStats();
296298
final CCSTelemetrySnapshot ccsTelemetry = ccsUsageHolder.getCCSTelemetrySnapshot();
299+
final CCSTelemetrySnapshot esqlTelemetry = esqlUsageHolder.getCCSTelemetrySnapshot();
297300

298301
return new ClusterStatsNodeResponse(
299302
nodeInfo.getNode(),
@@ -303,7 +306,8 @@ protected ClusterStatsNodeResponse nodeOperation(ClusterStatsNodeRequest nodeReq
303306
shardsStats.toArray(new ShardStats[shardsStats.size()]),
304307
searchUsageStats,
305308
repositoryUsageStats,
306-
ccsTelemetry
309+
ccsTelemetry,
310+
esqlTelemetry
307311
);
308312
}
309313

server/src/test/java/org/elasticsearch/action/admin/cluster/stats/VersionStatsTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ public void testCreation() {
130130
new ShardStats[] { shardStats },
131131
new SearchUsageStats(),
132132
RepositoryUsageStats.EMPTY,
133+
null,
133134
null
134135
);
135136

0 commit comments

Comments
 (0)