20
20
_construct_url ,
21
21
)
22
22
from sagemaker .serve .utils .exceptions import ModelBuilderException , LocalModelOutOfMemoryException
23
+ from sagemaker .serve .utils .types import ImageUriOption
23
24
from sagemaker .user_agent import SDK_VERSION
24
25
25
26
MOCK_SESSION = Mock ()
@@ -71,6 +72,7 @@ def test_capture_telemetry_decorator_djl_success(self, mock_send_telemetry):
71
72
mock_model_builder = ModelBuilderMock ()
72
73
mock_model_builder .serve_settings .telemetry_opt_out = False
73
74
mock_model_builder .image_uri = MOCK_DJL_CONTAINER
75
+ mock_model_builder ._is_custom_image_uri = False
74
76
mock_model_builder .model = MOCK_HUGGINGFACE_ID
75
77
mock_model_builder .mode = Mode .LOCAL_CONTAINER
76
78
mock_model_builder .model_server = ModelServer .DJL_SERVING
@@ -88,6 +90,37 @@ def test_capture_telemetry_decorator_djl_success(self, mock_send_telemetry):
88
90
f"&x-modelName={ MOCK_HUGGINGFACE_ID } "
89
91
f"&x-endpointArn={ MOCK_ENDPOINT_ARN } "
90
92
f"&x-latency={ latency } "
93
+ f"&x-defaultImageUsage={ ImageUriOption .DEFAULT_IMAGE .value } "
94
+ )
95
+
96
+ mock_send_telemetry .assert_called_once_with (
97
+ "1" , 2 , MOCK_SESSION , None , None , expected_extra_str
98
+ )
99
+
100
+ @patch ("sagemaker.serve.utils.telemetry_logger._send_telemetry" )
101
+ def test_capture_telemetry_decorator_djl_success_with_custom_image (self , mock_send_telemetry ):
102
+ mock_model_builder = ModelBuilderMock ()
103
+ mock_model_builder .serve_settings .telemetry_opt_out = False
104
+ mock_model_builder .image_uri = MOCK_DJL_CONTAINER
105
+ mock_model_builder ._is_custom_image_uri = True
106
+ mock_model_builder .model = MOCK_HUGGINGFACE_ID
107
+ mock_model_builder .mode = Mode .LOCAL_CONTAINER
108
+ mock_model_builder .model_server = ModelServer .DJL_SERVING
109
+ mock_model_builder .sagemaker_session .endpoint_arn = MOCK_ENDPOINT_ARN
110
+
111
+ mock_model_builder .mock_deploy ()
112
+
113
+ args = mock_send_telemetry .call_args .args
114
+ latency = str (args [5 ]).split ("latency=" )[1 ]
115
+ expected_extra_str = (
116
+ f"{ MOCK_FUNC_NAME } "
117
+ "&x-modelServer=4"
118
+ "&x-imageTag=djl-inference:0.25.0-deepspeed0.11.0-cu118"
119
+ f"&x-sdkVersion={ SDK_VERSION } "
120
+ f"&x-modelName={ MOCK_HUGGINGFACE_ID } "
121
+ f"&x-endpointArn={ MOCK_ENDPOINT_ARN } "
122
+ f"&x-latency={ latency } "
123
+ f"&x-defaultImageUsage={ ImageUriOption .CUSTOM_1P_IMAGE .value } "
91
124
)
92
125
93
126
mock_send_telemetry .assert_called_once_with (
@@ -99,6 +132,7 @@ def test_capture_telemetry_decorator_tgi_success(self, mock_send_telemetry):
99
132
mock_model_builder = ModelBuilderMock ()
100
133
mock_model_builder .serve_settings .telemetry_opt_out = False
101
134
mock_model_builder .image_uri = MOCK_TGI_CONTAINER
135
+ mock_model_builder ._is_custom_image_uri = False
102
136
mock_model_builder .model = MOCK_HUGGINGFACE_ID
103
137
mock_model_builder .mode = Mode .LOCAL_CONTAINER
104
138
mock_model_builder .model_server = ModelServer .TGI
@@ -116,6 +150,7 @@ def test_capture_telemetry_decorator_tgi_success(self, mock_send_telemetry):
116
150
f"&x-modelName={ MOCK_HUGGINGFACE_ID } "
117
151
f"&x-endpointArn={ MOCK_ENDPOINT_ARN } "
118
152
f"&x-latency={ latency } "
153
+ f"&x-defaultImageUsage={ ImageUriOption .DEFAULT_IMAGE .value } "
119
154
)
120
155
121
156
mock_send_telemetry .assert_called_once_with (
@@ -139,6 +174,7 @@ def test_capture_telemetry_decorator_handle_exception_success(self, mock_send_te
139
174
mock_model_builder = ModelBuilderMock ()
140
175
mock_model_builder .serve_settings .telemetry_opt_out = False
141
176
mock_model_builder .image_uri = MOCK_DJL_CONTAINER
177
+ mock_model_builder ._is_custom_image_uri = False
142
178
mock_model_builder .model = MOCK_HUGGINGFACE_ID
143
179
mock_model_builder .mode = Mode .LOCAL_CONTAINER
144
180
mock_model_builder .model_server = ModelServer .DJL_SERVING
@@ -161,6 +197,7 @@ def test_capture_telemetry_decorator_handle_exception_success(self, mock_send_te
161
197
f"&x-modelName={ MOCK_HUGGINGFACE_ID } "
162
198
f"&x-endpointArn={ MOCK_ENDPOINT_ARN } "
163
199
f"&x-latency={ latency } "
200
+ f"&x-defaultImageUsage={ ImageUriOption .DEFAULT_IMAGE .value } "
164
201
)
165
202
166
203
mock_send_telemetry .assert_called_once_with (
0 commit comments