Skip to content

Commit

Permalink
Added service time metrics
Browse files Browse the repository at this point in the history
Signed-off-by: saimedhi <saimedhi@amazon.com>
  • Loading branch information
saimedhi committed Apr 14, 2024
1 parent 9e147b2 commit a625715
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 8 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
## [Unreleased]
### Added
- Added support for Python 3.12 ([#717](https://github.com/opensearch-project/opensearch-py/pull/717))
- Introduced `service time` metrics to opensearch-py client ([#716](https://github.com/opensearch-project/opensearch-py/pull/716))
- Added service time metrics ([#716](https://github.com/opensearch-project/opensearch-py/pull/716))
### Changed
### Deprecated
### Removed
Expand Down
4 changes: 2 additions & 2 deletions opensearchpy/connection/http_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
except ImportError:
REQUESTS_AVAILABLE = False

from opensearchpy.metrics.metrics_none import MetricsNone
from opensearchpy.metrics import Metrics, MetricsNone

from ..compat import reraise_exceptions, string_types, urlencode
from ..exceptions import (
Expand Down Expand Up @@ -91,7 +91,7 @@ def __init__(
http_compress: Any = None,
opaque_id: Any = None,
pool_maxsize: Any = None,
metrics: Any = MetricsNone(),
metrics: Metrics = MetricsNone(),
**kwargs: Any
) -> None:
self.metrics = metrics
Expand Down
4 changes: 2 additions & 2 deletions opensearchpy/connection/http_urllib3.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
from urllib3.exceptions import SSLError as UrllibSSLError
from urllib3.util.retry import Retry

from opensearchpy.metrics.metrics_none import MetricsNone
from opensearchpy.metrics import Metrics, MetricsNone

from ..compat import reraise_exceptions, urlencode
from ..exceptions import (
Expand Down Expand Up @@ -120,7 +120,7 @@ def __init__(
ssl_context: Any = None,
http_compress: Any = None,
opaque_id: Any = None,
metrics: Any = MetricsNone(),
metrics: Metrics = MetricsNone(),
**kwargs: Any
) -> None:
self.metrics = metrics
Expand Down
6 changes: 3 additions & 3 deletions opensearchpy/transport.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
from itertools import chain
from typing import Any, Callable, Collection, Dict, List, Mapping, Optional, Type, Union

from opensearchpy.metrics.metrics_none import MetricsNone
from opensearchpy.metrics import Metrics, MetricsNone

from .connection import Connection, Urllib3HttpConnection
from .connection_pool import ConnectionPool, DummyConnectionPool, EmptyConnectionPool
Expand Down Expand Up @@ -93,7 +93,7 @@ class Transport(object):
last_sniff: float
sniff_timeout: Optional[float]
host_info_callback: Any
metrics: Any
metrics: Metrics

def __init__(
self,
Expand All @@ -115,7 +115,7 @@ def __init__(
retry_on_status: Collection[int] = (502, 503, 504),
retry_on_timeout: bool = False,
send_get_body_as: str = "GET",
metrics: Any = MetricsNone(),
metrics: Metrics = MetricsNone(),
**kwargs: Any
) -> None:
"""
Expand Down
8 changes: 8 additions & 0 deletions test_opensearchpy/test_server/test_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

import time

import pytest

from opensearchpy import RequestsHttpConnection
from opensearchpy.metrics.metrics_events import MetricsEvents
from opensearchpy.metrics.metrics_none import MetricsNone
Expand All @@ -33,6 +35,12 @@ def test_metrics_default_behavior(self) -> None:
except Exception as e:
assert False, f"Error creating index: {e}"

def test_metrics_raises_error_when_value_is_none(self) -> None:
# Test behavior when metrics is given None.
metrics = None
with pytest.raises(AttributeError):
get_client(metrics=metrics)

def test_metrics_none_behavior(self) -> None:
# Test behavior when metrics is an instance of MetricsNone
metrics = MetricsNone()
Expand Down

0 comments on commit a625715

Please sign in to comment.