Skip to content

Commit d1d08d9

Browse files
samikshya-dbclaude
andcommitted
Add SqlExecutionEvent fields to telemetry
- Add statement_type field from operationType - Add is_compressed field from compression tracking - Export both fields in sql_operation for statement metrics - Fields populated from CloudFetch chunk events Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent d60b514 commit d1d08d9

3 files changed

Lines changed: 21 additions & 10 deletions

File tree

lib/telemetry/DatabricksTelemetryExporter.ts

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ interface DatabricksTelemetryLog {
5555
driver_connection_params?: any;
5656
operation_latency_ms?: number;
5757
sql_operation?: {
58+
statement_type?: string;
59+
is_compressed?: boolean;
5860
execution_result?: string;
5961
chunk_details?: {
6062
total_chunks_present?: number;
@@ -300,17 +302,18 @@ export default class DatabricksTelemetryExporter {
300302
} else if (metric.metricType === 'statement') {
301303
log.entry.sql_driver_log.operation_latency_ms = metric.latencyMs;
302304

303-
if (metric.resultFormat || metric.chunkCount) {
304-
log.entry.sql_driver_log.sql_operation = {
305-
execution_result: metric.resultFormat,
306-
};
305+
// Always create sql_operation for statement events
306+
log.entry.sql_driver_log.sql_operation = {
307+
statement_type: metric.operationType,
308+
is_compressed: metric.compressed,
309+
execution_result: metric.resultFormat,
310+
};
307311

308-
if (metric.chunkCount && metric.chunkCount > 0) {
309-
log.entry.sql_driver_log.sql_operation.chunk_details = {
310-
total_chunks_present: metric.chunkCount,
311-
total_chunks_iterated: metric.chunkCount,
312-
};
313-
}
312+
if (metric.chunkCount && metric.chunkCount > 0) {
313+
log.entry.sql_driver_log.sql_operation.chunk_details = {
314+
total_chunks_present: metric.chunkCount,
315+
total_chunks_iterated: metric.chunkCount,
316+
};
314317
}
315318
} else if (metric.metricType === 'error') {
316319
log.entry.sql_driver_log.error_info = {

lib/telemetry/MetricsAggregator.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,11 +252,13 @@ export default class MetricsAggregator {
252252
sessionId: details.sessionId,
253253
statementId: details.statementId,
254254
workspaceId: details.workspaceId,
255+
operationType: details.operationType,
255256
latencyMs: details.executionLatencyMs,
256257
resultFormat: details.resultFormat,
257258
chunkCount: details.chunkCount,
258259
bytesDownloaded: details.bytesDownloaded,
259260
pollCount: details.pollCount,
261+
compressed: details.compressionEnabled,
260262
};
261263

262264
this.addPendingMetric(metric);

lib/telemetry/types.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ export interface TelemetryMetric {
157157
/** Execution latency in milliseconds */
158158
latencyMs?: number;
159159

160+
/** Type of operation (SELECT, INSERT, etc.) */
161+
operationType?: string;
162+
160163
/** Result format (inline, cloudfetch, arrow) */
161164
resultFormat?: string;
162165

@@ -169,6 +172,9 @@ export interface TelemetryMetric {
169172
/** Number of poll operations */
170173
pollCount?: number;
171174

175+
/** Whether compression was used */
176+
compressed?: boolean;
177+
172178
/** Error name/type */
173179
errorName?: string;
174180

0 commit comments

Comments
 (0)