@@ -41,6 +41,9 @@ class TransportMixin(object):
4141 def _check_stats_collection (self ):
4242 return not os .environ .get ("APPLICATIONINSIGHTS_STATSBEAT_DISABLED_ALL" ) and (not hasattr (self , '_is_stats' ) or not self ._is_stats ) # noqa: E501
4343
44+ def _is_stats_exporter (self ):
45+ return hasattr (self , '_is_stats' ) and self ._is_stats
46+
4447 def _transmit_from_storage (self ):
4548 if self .storage :
4649 for blob in self .storage .gets ():
@@ -88,23 +91,28 @@ def _transmit(self, envelopes):
8891 allow_redirects = False ,
8992 )
9093 except requests .Timeout :
91- logger .warning (
92- 'Request time out. Ingestion may be backed up. Retrying.' )
94+ if not self ._is_stats_exporter ():
95+ logger .warning (
96+ 'Request time out. Ingestion may be backed up. Retrying.' )
9397 exception = self .options .minimum_retry_interval
9498 except requests .RequestException as ex :
95- logger .warning (
96- 'Retrying due to transient client side error %s.' , ex )
99+ if not self ._is_stats_exporter ():
100+ logger .warning (
101+ 'Retrying due to transient client side error %s.' , ex )
97102 # client side error (retryable)
98103 exception = self .options .minimum_retry_interval
99104 except CredentialUnavailableError as ex :
100- logger .warning ('Credential error. %s. Dropping telemetry.' , ex )
105+ if not self ._is_stats_exporter ():
106+ logger .warning ('Credential error. %s. Dropping telemetry.' , ex )
101107 exception = - 1
102108 except ClientAuthenticationError as ex :
103- logger .warning ('Authentication error %s' , ex )
109+ if not self ._is_stats_exporter ():
110+ logger .warning ('Authentication error %s' , ex )
104111 exception = self .options .minimum_retry_interval
105112 except Exception as ex :
106- logger .warning (
107- 'Error when sending request %s. Dropping telemetry.' , ex )
113+ if not self ._is_stats_exporter ():
114+ logger .warning (
115+ 'Error when sending request %s. Dropping telemetry.' , ex )
108116 # Extraneous error (non-retryable)
109117 exception = - 1
110118 finally :
@@ -128,7 +136,8 @@ def _transmit(self, envelopes):
128136 try :
129137 text = response .text
130138 except Exception as ex :
131- logger .warning ('Error while reading response body %s.' , ex )
139+ if not self ._is_stats_exporter ():
140+ logger .warning ('Error while reading response body %s.' , ex )
132141 else :
133142 try :
134143 data = json .loads (text )
@@ -169,12 +178,13 @@ def _transmit(self, envelopes):
169178 _requests_map ['retry' ] = _requests_map .get ('retry' , 0 ) + 1 # noqa: E501
170179 self .storage .put (resend_envelopes )
171180 except Exception as ex :
172- logger .error (
173- 'Error while processing %s: %s %s.' ,
174- response .status_code ,
175- text ,
176- ex ,
177- )
181+ if not self ._is_stats_exporter ():
182+ logger .error (
183+ 'Error while processing %s: %s %s.' ,
184+ response .status_code ,
185+ text ,
186+ ex ,
187+ )
178188 return - response .status_code
179189 # cannot parse response body, fallback to retry
180190 if response .status_code in (
@@ -183,23 +193,25 @@ def _transmit(self, envelopes):
183193 500 , # Internal Server Error
184194 503 , # Service Unavailable
185195 ):
186- logger .warning (
187- 'Transient server side error %s: %s.' ,
188- response .status_code ,
189- text ,
190- )
196+ if not self ._is_stats_exporter ():
197+ logger .warning (
198+ 'Transient server side error %s: %s.' ,
199+ response .status_code ,
200+ text ,
201+ )
191202 # server side error (retryable)
192203 if self ._check_stats_collection ():
193204 with _requests_lock :
194205 _requests_map ['retry' ] = _requests_map .get ('retry' , 0 ) + 1 # noqa: E501
195206 return self .options .minimum_retry_interval
196207 # Authentication error
197208 if response .status_code == 401 :
198- logger .warning (
199- 'Authentication error %s: %s.' ,
200- response .status_code ,
201- text ,
202- )
209+ if not self ._is_stats_exporter ():
210+ logger .warning (
211+ 'Authentication error %s: %s.' ,
212+ response .status_code ,
213+ text ,
214+ )
203215 if self ._check_stats_collection ():
204216 with _requests_lock :
205217 _requests_map ['retry' ] = _requests_map .get ('retry' , 0 ) + 1 # noqa: E501
@@ -208,11 +220,12 @@ def _transmit(self, envelopes):
208220 # Can occur when v2 endpoint is used while AI resource is configured
209221 # with disableLocalAuth
210222 if response .status_code == 403 :
211- logger .warning (
212- 'Forbidden error %s: %s.' ,
213- response .status_code ,
214- text ,
215- )
223+ if not self ._is_stats_exporter ():
224+ logger .warning (
225+ 'Forbidden error %s: %s.' ,
226+ response .status_code ,
227+ text ,
228+ )
216229 if self ._check_stats_collection ():
217230 with _requests_lock :
218231 _requests_map ['retry' ] = _requests_map .get ('retry' , 0 ) + 1 # noqa: E501
@@ -230,24 +243,27 @@ def _transmit(self, envelopes):
230243 self .options .endpoint = "{}://{}" .format (url .scheme , url .netloc ) # noqa: E501
231244 # Attempt to export again
232245 return self ._transmit (envelopes )
233- logger .error (
234- "Error parsing redirect information."
235- )
246+ if not self ._is_stats_exporter ():
247+ logger .error (
248+ "Error parsing redirect information."
249+ )
236250 else :
237- logger .error (
238- "Error sending telemetry because of circular redirects."
239- " Please check the integrity of your connection string."
240- )
251+ if not self ._is_stats_exporter ():
252+ logger .error (
253+ "Error sending telemetry because of circular redirects." # noqa: E501
254+ " Please check the integrity of your connection string." # noqa: E501
255+ )
241256 # If redirect but did not return, exception occured
242257 if self ._check_stats_collection ():
243258 with _requests_lock :
244259 _requests_map ['exception' ] = _requests_map .get ('exception' , 0 ) + 1 # noqa: E501
245260 # Other, server side error (non-retryable)
246- logger .error (
247- 'Non-retryable server side error %s: %s.' ,
248- response .status_code ,
249- text ,
250- )
261+ if not self ._is_stats_exporter ():
262+ logger .error (
263+ 'Non-retryable server side error %s: %s.' ,
264+ response .status_code ,
265+ text ,
266+ )
251267 if self ._check_stats_collection ():
252268 if response .status_code == 402 or response .status_code == 439 :
253269 # 402: Monthly Quota Exceeded (new SDK)
0 commit comments