File tree Expand file tree Collapse file tree 2 files changed +13
-14
lines changed
src/databricks/sql/telemetry Expand file tree Collapse file tree 2 files changed +13
-14
lines changed Original file line number Diff line number Diff line change 11import json
22from dataclasses import dataclass , asdict
33from typing import List , Optional
4+ from databricks .sql .telemetry .utils import JsonSerializableMixin
45
56
67@dataclass
7- class TelemetryRequest :
8+ class TelemetryRequest ( JsonSerializableMixin ) :
89 """
910 Represents a request to send telemetry data to the server side.
1011 Contains the telemetry items to be uploaded and optional protocol buffer logs.
@@ -19,12 +20,9 @@ class TelemetryRequest:
1920 items : List [str ]
2021 protoLogs : Optional [List [str ]]
2122
22- def to_json (self ):
23- return json .dumps (asdict (self ))
24-
2523
2624@dataclass
27- class TelemetryResponse :
25+ class TelemetryResponse ( JsonSerializableMixin ) :
2826 """
2927 Represents the response from the telemetry backend after processing a request.
3028 Contains information about the success or failure of the telemetry upload.
@@ -38,6 +36,3 @@ class TelemetryResponse:
3836 errors : List [str ]
3937 numSuccess : int
4038 numProtoSuccess : int
41-
42- def to_json (self ):
43- return json .dumps (asdict (self ))
Original file line number Diff line number Diff line change 1717 FrontendLogEntry ,
1818)
1919from databricks .sql .telemetry .models .enums import AuthMech , AuthFlow
20+ from databricks .sql .telemetry .models .endpoint_models import (
21+ TelemetryRequest ,
22+ TelemetryResponse ,
23+ )
2024from databricks .sql .auth .authenticators import (
2125 AccessTokenAuthProvider ,
2226 DatabricksOAuthProvider ,
@@ -202,11 +206,11 @@ def _flush(self):
202206 def _send_telemetry (self , events ):
203207 """Send telemetry events to the server"""
204208
205- request = {
206- " uploadTime" : int (time .time () * 1000 ),
207- " items" : [],
208- " protoLogs" : [event .to_json () for event in events ],
209- }
209+ request = TelemetryRequest (
210+ uploadTime = int (time .time () * 1000 ),
211+ items = [],
212+ protoLogs = [event .to_json () for event in events ],
213+ )
210214
211215 path = (
212216 self .TELEMETRY_AUTHENTICATED_PATH
@@ -225,7 +229,7 @@ def _send_telemetry(self, events):
225229 future = self ._executor .submit (
226230 requests .post ,
227231 url ,
228- data = json . dumps ( request ),
232+ data = request . to_json ( ),
229233 headers = headers ,
230234 timeout = 10 ,
231235 )
You can’t perform that action at this time.
0 commit comments