Skip to content

Commit 73c6944

Browse files
Sai Medhini Reddy MaryadaSai Medhini Reddy Maryada
Sai Medhini Reddy Maryada
authored and
Sai Medhini Reddy Maryada
committed
Updated
Signed-off-by: Sai Medhini Reddy Maryada <saimedhinireddymaryada@Sais-MacBook-Pro.local>
1 parent 96e8716 commit 73c6944

File tree

5 files changed

+62
-12
lines changed

5 files changed

+62
-12
lines changed

opensearchpy/client/client.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
from opensearchpy.client.utils import _normalize_hosts
1313
from opensearchpy.metrics.metrics import Metrics
14+
from opensearchpy.metrics.metrics_none import MetricsNone
1415
from opensearchpy.transport import Transport
1516

1617

@@ -23,7 +24,7 @@ def __init__(
2324
self,
2425
hosts: Optional[str] = None,
2526
transport_class: Type[Transport] = Transport,
26-
metrics: Optional[Metrics] = None,
27+
metrics: Optional[Metrics] = MetricsNone(),
2728
**kwargs: Any
2829
) -> None:
2930
"""

opensearchpy/connection/http_requests.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import warnings
3030
from typing import Any, Collection, Mapping, Optional, Union
3131

32+
from opensearchpy.metrics.metrics_none import MetricsNone
33+
3234
try:
3335
import requests
3436

@@ -88,7 +90,7 @@ def __init__(
8890
http_compress: Any = None,
8991
opaque_id: Any = None,
9092
pool_maxsize: Any = None,
91-
metrics: Optional[Metrics] = None,
93+
metrics: Optional[Metrics] = MetricsNone(),
9294
**kwargs: Any
9395
) -> None:
9496
self.metrics = metrics
@@ -192,8 +194,7 @@ def perform_request( # type: ignore
192194
}
193195
send_kwargs.update(settings)
194196
try:
195-
if self.metrics is not None:
196-
self.metrics.request_start()
197+
self.metrics.request_start()
197198
response = self.session.send(prepared_request, **send_kwargs)
198199
duration = time.time() - start
199200
raw_data = response.content.decode("utf-8", "surrogatepass")
@@ -214,8 +215,7 @@ def perform_request( # type: ignore
214215
raise ConnectionTimeout("TIMEOUT", str(e), e)
215216
raise ConnectionError("N/A", str(e), e)
216217
finally:
217-
if self.metrics is not None:
218-
self.metrics.request_end()
218+
self.metrics.request_end()
219219

220220
# raise warnings if any from the 'Warnings' header.
221221
warnings_headers = (

opensearchpy/connection/http_urllib3.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
from urllib3.util.retry import Retry
3636

3737
from opensearchpy.metrics.metrics import Metrics
38+
from opensearchpy.metrics.metrics_none import MetricsNone
3839

3940
from ..compat import reraise_exceptions, urlencode
4041
from ..exceptions import (
@@ -117,7 +118,7 @@ def __init__(
117118
ssl_context: Any = None,
118119
http_compress: Any = None,
119120
opaque_id: Any = None,
120-
metrics: Optional[Metrics] = None,
121+
metrics: Optional[Metrics] = MetricsNone(),
121122
**kwargs: Any
122123
) -> None:
123124
self.metrics = metrics
@@ -272,8 +273,7 @@ def perform_request(
272273
if isinstance(self.http_auth, Callable): # type: ignore
273274
request_headers.update(self.http_auth(method, full_url, body))
274275

275-
if self.metrics is not None:
276-
self.metrics.request_start()
276+
self.metrics.request_start()
277277

278278
response = self.pool.urlopen(
279279
method, url, body, retries=Retry(False), headers=request_headers, **kw
@@ -292,8 +292,7 @@ def perform_request(
292292
raise ConnectionTimeout("TIMEOUT", str(e), e)
293293
raise ConnectionError("N/A", str(e), e)
294294
finally:
295-
if self.metrics is not None:
296-
self.metrics.request_end()
295+
self.metrics.request_end()
297296

298297
# raise warnings if any from the 'Warnings' header.
299298
warning_headers = response.headers.get_all("warning", ())

opensearchpy/metrics/metrics_none.py

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
#
3+
# The OpenSearch Contributors require contributions made to
4+
# this file be licensed under the Apache-2.0 license or a
5+
# compatible open source license.
6+
#
7+
# Modifications Copyright OpenSearch Contributors. See
8+
# GitHub history for details.
9+
10+
import time
11+
from typing import Optional
12+
13+
14+
from opensearchpy.metrics.metrics import Metrics
15+
16+
17+
class MetricsNone(Metrics):
18+
"""
19+
The MetricsEvents class implements the Metrics abstract base class
20+
and tracks metrics such as start time, end time, and service time
21+
during request processing.
22+
"""
23+
24+
@property
25+
def start_time(self) -> Optional[float]:
26+
return self._start_time
27+
28+
@property
29+
def end_time(self) -> Optional[float]:
30+
return self._end_time
31+
32+
@property
33+
def service_time(self) -> Optional[float]:
34+
return self._service_time
35+
36+
def __init__(self) -> None:
37+
self._start_time: Optional[float] = None
38+
self._end_time: Optional[float] = None
39+
self._service_time: Optional[float] = None
40+
41+
def request_start(self) -> None:
42+
self._start_time = None
43+
self._end_time = None
44+
self._service_time = None
45+
46+
47+
def request_end(self) -> None:
48+
self._end_time = None
49+
self._service_time = None

opensearchpy/transport.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from typing import Any, Callable, Collection, Dict, List, Mapping, Optional, Type, Union
3131

3232
from opensearchpy.metrics.metrics import Metrics
33+
from opensearchpy.metrics.metrics_none import MetricsNone
3334

3435
from .connection import Connection, Urllib3HttpConnection
3536
from .connection_pool import ConnectionPool, DummyConnectionPool, EmptyConnectionPool
@@ -115,7 +116,7 @@ def __init__(
115116
retry_on_status: Collection[int] = (502, 503, 504),
116117
retry_on_timeout: bool = False,
117118
send_get_body_as: str = "GET",
118-
metrics: Optional[Metrics] = None,
119+
metrics: Optional[Metrics] = MetricsNone(),
119120
**kwargs: Any
120121
) -> None:
121122
"""

0 commit comments

Comments
 (0)