Skip to content

Commit 64c3306

Browse files
authored
telemetry latency models (#865)
telemetry latency models
1 parent bbaa069 commit 64c3306

5 files changed

Lines changed: 191 additions & 0 deletions

File tree

src/main/java/com/databricks/jdbc/model/telemetry/SqlExecutionEvent.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import com.databricks.jdbc.common.StatementType;
44
import com.databricks.jdbc.model.telemetry.enums.ExecutionResultFormat;
5+
import com.databricks.jdbc.model.telemetry.latency.ChunkDetails;
6+
import com.databricks.jdbc.model.telemetry.latency.OperationDetail;
7+
import com.databricks.jdbc.model.telemetry.latency.ResultLatency;
58
import com.databricks.sdk.support.ToStringer;
69
import com.fasterxml.jackson.annotation.JsonProperty;
710

@@ -21,6 +24,15 @@ public class SqlExecutionEvent {
2124
@JsonProperty("retry_count")
2225
Integer retryCount;
2326

27+
@JsonProperty("chunk_details")
28+
ChunkDetails chunkDetails;
29+
30+
@JsonProperty("result_latency")
31+
ResultLatency resultLatency;
32+
33+
@JsonProperty("operation_detail")
34+
OperationDetail operationDetail;
35+
2436
public SqlExecutionEvent setDriverStatementType(StatementType driverStatementType) {
2537
this.driverStatementType = driverStatementType;
2638
return this;
@@ -46,6 +58,21 @@ public SqlExecutionEvent setRetryCount(Integer retryCount) {
4658
return this;
4759
}
4860

61+
public SqlExecutionEvent setChunkDetails(ChunkDetails chunkDetails) {
62+
this.chunkDetails = chunkDetails;
63+
return this;
64+
}
65+
66+
public SqlExecutionEvent setResultLatency(ResultLatency resultLatency) {
67+
this.resultLatency = resultLatency;
68+
return this;
69+
}
70+
71+
public SqlExecutionEvent setOperationDetails(OperationDetail operationDetail) {
72+
this.operationDetail = operationDetail;
73+
return this;
74+
}
75+
4976
@Override
5077
public String toString() {
5178
return new ToStringer(SqlExecutionEvent.class)
@@ -54,6 +81,9 @@ public String toString() {
5481
.add("execution_result", executionResultFormat)
5582
.add("chunk_id", chunkId)
5683
.add("retry_count", retryCount)
84+
.add("chunk_details", chunkDetails)
85+
.add("result_latency", resultLatency)
86+
.add("operation_details", operationDetail)
5787
.toString();
5888
}
5989
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package com.databricks.jdbc.model.telemetry.latency;
2+
3+
import com.databricks.sdk.support.ToStringer;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
6+
public class ChunkDetails {
7+
8+
@JsonProperty("initial_chunk_latency_millis")
9+
private Long initialChunkLatencyMillis;
10+
11+
@JsonProperty("slowest_chunk_latency_millis")
12+
private Long slowestChunkLatencyMillis;
13+
14+
@JsonProperty("total_chunks_present")
15+
private Integer totalChunksPresent;
16+
17+
@JsonProperty("total_chunks_iterated")
18+
private Integer totalChunksIterated;
19+
20+
@JsonProperty("sum_chunks_download_time_millis")
21+
private Long sumChunksDownloadTimeMillis;
22+
23+
public ChunkDetails setInitialChunkLatencyMillis(Long initialChunkLatencyMillis) {
24+
this.initialChunkLatencyMillis = initialChunkLatencyMillis;
25+
return this;
26+
}
27+
28+
public ChunkDetails setSlowestChunkLatencyMillis(Long slowestChunkLatencyMillis) {
29+
this.slowestChunkLatencyMillis = slowestChunkLatencyMillis;
30+
return this;
31+
}
32+
33+
public ChunkDetails setTotalChunksPresent(Integer totalChunksPresent) {
34+
this.totalChunksPresent = totalChunksPresent;
35+
return this;
36+
}
37+
38+
public ChunkDetails setTotalChunksIterated(Integer totalChunksIterated) {
39+
this.totalChunksIterated = totalChunksIterated;
40+
return this;
41+
}
42+
43+
public ChunkDetails setSumChunksDownloadTimeMillis(Long sumChunksDownloadTimeMillis) {
44+
this.sumChunksDownloadTimeMillis = sumChunksDownloadTimeMillis;
45+
return this;
46+
}
47+
48+
@Override
49+
public String toString() {
50+
return new ToStringer(ChunkDetails.class)
51+
.add("initialChunkLatencyMillis", initialChunkLatencyMillis)
52+
.add("slowestChunkLatencyMillis", slowestChunkLatencyMillis)
53+
.add("totalChunksPresent", totalChunksPresent)
54+
.add("totalChunksIterated", totalChunksIterated)
55+
.add("sumChunksDownloadTimeMillis", sumChunksDownloadTimeMillis)
56+
.toString();
57+
}
58+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.databricks.jdbc.model.telemetry.latency;
2+
3+
import com.databricks.sdk.support.ToStringer;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
6+
public class OperationDetail {
7+
8+
@JsonProperty("n_operation_status_calls")
9+
private Integer nOperationStatusCalls;
10+
11+
@JsonProperty("operation_status_latency_millis")
12+
private Long operationStatusLatencyMillis;
13+
14+
@JsonProperty("operation_type")
15+
private OperationType operationType;
16+
17+
@JsonProperty("is_internal_call")
18+
private Boolean isInternalCall;
19+
20+
public OperationDetail setNOperationStatusCalls(Integer nOperationStatusCalls) {
21+
this.nOperationStatusCalls = nOperationStatusCalls;
22+
return this;
23+
}
24+
25+
public OperationDetail setOperationStatusLatencyMillis(Long operationStatusLatencyMillis) {
26+
this.operationStatusLatencyMillis = operationStatusLatencyMillis;
27+
return this;
28+
}
29+
30+
public OperationDetail setOperationType(OperationType operationType) {
31+
this.operationType = operationType;
32+
return this;
33+
}
34+
35+
public OperationDetail setInternalCall(Boolean isInternalCall) {
36+
this.isInternalCall = isInternalCall;
37+
return this;
38+
}
39+
40+
@Override
41+
public String toString() {
42+
return new ToStringer(OperationDetail.class)
43+
.add("nOperationStatusCalls", nOperationStatusCalls)
44+
.add("operationLatencyMillis", operationStatusLatencyMillis)
45+
.add("operationName", operationType)
46+
.add("isInternalCall", isInternalCall)
47+
.toString();
48+
}
49+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.databricks.jdbc.model.telemetry.latency;
2+
3+
public enum OperationType {
4+
TYPE_UNSPECIFIED,
5+
CREATE_SESSION,
6+
DELETE_SESSION,
7+
EXECUTE_STATEMENT,
8+
EXECUTE_STATEMENT_ASYNC,
9+
CLOSE_STATEMENT,
10+
CANCEL_STATEMENT,
11+
LIST_TYPE_INFO,
12+
LIST_CATALOGS,
13+
LIST_SCHEMAS,
14+
LIST_TABLES,
15+
LIST_TABLE_TYPES,
16+
LIST_COLUMNS,
17+
LIST_FUNCTIONS,
18+
LIST_PRIMARY_KEYS,
19+
LIST_IMPORTED_KEYS,
20+
LIST_EXPORTED_KEYS,
21+
LIST_CROSS_REFERENCES
22+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.databricks.jdbc.model.telemetry.latency;
2+
3+
import com.databricks.sdk.support.ToStringer;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
6+
public class ResultLatency {
7+
8+
@JsonProperty("result_set_ready_latency_millis")
9+
private Long resultSetReadyLatencyMillis;
10+
11+
@JsonProperty("result_set_consumption_latency_millis")
12+
private Long resultSetConsumptionLatencyMillis;
13+
14+
public ResultLatency setResultSetReadyLatencyMillis(Long resultSetReadyLatencyMillis) {
15+
this.resultSetReadyLatencyMillis = resultSetReadyLatencyMillis;
16+
return this;
17+
}
18+
19+
public ResultLatency setResultSetConsumptionLatencyMillis(
20+
Long resultSetConsumptionLatencyMillis) {
21+
this.resultSetConsumptionLatencyMillis = resultSetConsumptionLatencyMillis;
22+
return this;
23+
}
24+
25+
@Override
26+
public String toString() {
27+
return new ToStringer(ResultLatency.class)
28+
.add("resultSetReadyLatencyMillis", resultSetReadyLatencyMillis)
29+
.add("resultSetConsumptionLatencyMillis", resultSetConsumptionLatencyMillis)
30+
.toString();
31+
}
32+
}

0 commit comments

Comments
 (0)