Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion linode_api4/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# isort: skip_file
from linode_api4.objects import *
from linode_api4.errors import ApiError, UnexpectedResponseError
from linode_api4.linode_client import LinodeClient
from linode_api4.linode_client import LinodeClient, MonitorClient
from linode_api4.login_client import LinodeLoginClient, OAuthScopes
from linode_api4.paginated_list import PaginatedList
from linode_api4.polling import EventPoller
1 change: 1 addition & 0 deletions linode_api4/groups/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from .lke_tier import *
from .longview import *
from .monitor import *
from .monitor_api import *
Comment thread Fixed
from .networking import *
from .nodebalancer import *
from .object_storage import *
Expand Down
47 changes: 47 additions & 0 deletions linode_api4/groups/monitor_api.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
from typing import Optional

from linode_api4.groups import Group
from linode_api4.objects.monitor_api import EntityMetrics


class MetricsGroup(Group):
"""
Encapsulates Monitor-related methods of the :any:`MonitorClient`.

This group contains all features related to metrics in the API monitor-api.
"""
def fetch_metrics(
self,
service_type: str,
entity_ids: list,
**kwargs,
) -> Optional[EntityMetrics]:
"""
Returns metrics information for the individual entities within a specific service type.

API documentation: https://techdocs.akamai.com/linode-api/reference/post-read-metric

:param service_type: The service being monitored.
Currently, only the Managed Databases (dbaas) service type is supported.
:type service_type: str

:param entity_ids: The id for each individual entity from a service_type.
:type entity_ids: list

:param kwargs: Any other arguments accepted by the api. Please refer to the API documentation for full info.

:returns: Service metrics requested.
:rtype: EntityMetrics or None
"""

params = {
"entity_ids": entity_ids
}

params.update(kwargs)

result = self.client.post(
f"/monitor/services/{service_type}/metrics", data=params
)

return EntityMetrics.from_json(result)
Loading
Loading