Metrics module¶
Metrics collected from devices.
Client Module¶
-
class
Client
(auth_token, project=None)¶ Client class provides access to device, package, volume and deployment classes.
-
__init__
(auth_token, project=None)¶ Get new client object
- Parameters
auth_token (string) – Authentication token
project (string) – project_guid of the user
-
list_metrics
(list_metrics_request)¶ List metrics for a particular entity
- Parameters
list_metrics_request (
ListMetricsRequest
) – ListMetricsRequest instance- Return type
list(
Metric
)
Following example demonstrates how to list metrics
>>> from rapyuta_io import Client >>> from rapyuta_io.clients.metrics import ListMetricsRequest, Entity >>> from datetime import datetime, timedelta >>> project_guid = 'project_guid' >>> client = Client(auth_token='auth_token', project=project_guid) >>> now = datetime.utcnow() >>> request = ListMetricsRequest(Entity.PROJECT, project_guid, ... start_date=now-timedelta(days=30), end_date=now) >>> for metric in client.list_metrics(request): ... print(metric.metric_group, metric.metric_names)
-
list_tag_keys
(list_tag_keys_request)¶ List Tag Keys for a particular entity
- Parameters
list_tag_keys_request (
ListTagKeysRequest
) – ListTagKeysRequest- Return type
list(
Tags
)
Following example demonstrates how to list tag keys
>>> from rapyuta_io import Client >>> from rapyuta_io.clients.metrics import ListTagKeysRequest, Entity >>> from datetime import datetime, timedelta >>> project_guid = 'project_guid' >>> client = Client(auth_token='auth_token', project=project_guid) >>> now = datetime.utcnow() >>> request = ListTagKeysRequest(Entity.PROJECT, project_guid, ... start_date=now-timedelta(days=30), end_date=now) >>> for tag in client.list_tag_keys(request): ... print(tag.metric_group, tag.tags)
-
list_tag_values
(list_tag_values_request)¶ List Tag Values for a particular entity
- Parameters
list_tag_values_request (
ListTagValuesRequest
) – ListTagValuesRequest- Return type
list(str)
Following example demonstrates how to list tag values
>>> from rapyuta_io import Client >>> from rapyuta_io.clients.metrics import ListTagValuesRequest, Entity >>> from datetime import datetime, timedelta >>> project_guid = 'project_guid' >>> client = Client(auth_token='auth_token', project=project_guid) >>> now = datetime.utcnow() >>> request = ListTagValuesRequest(Entity.PROJECT, project_guid, 'cpu', ... start_date=now-timedelta(days=30), end_date=now) >>> for tag_value in client.list_tag_values(request): ... print(tag_value)
-
query_metrics
(query_metrics_request)¶ Query and fetch metrics
- Parameters
query_metrics_request (
QueryMetricsRequest
) – QueryMetricsRequest instance- Return type
Following example demonstrates how to query metrics
>>> from rapyuta_io import Client >>> from rapyuta_io.clients.metrics import QueryMetricsRequest, StepInterval, SortOrder, >>> MetricOperation, MetricFunction >>> from datetime import datetime, timedelta >>> client = Client(auth_token='auth_token', project='project_guid') >>> now = datetime.utcnow() >>> metrics = [MetricOperation(MetricFunction.AVG, 'mem.total'), >>> MetricOperation(MetricFunction.AVG, 'mem.used')] >>> request = QueryMetricsRequest(from_datetime=now-timedelta(days=10), to_datetime=now, >>> step_interval=StepInterval.FIFTEEN_MINUTES, metrics=metrics) >>> response = client.query_metrics(request) >>> print([str(col) for col in response.columns]) >>> >>> import pandas as pd # pip install pandas >>> rows, columns = response.to_row_column_format() >>> df = pd.DataFrame(data=rows, columns=columns) >>> df['timestamp'] = pd.to_datetime(df['timestamp']) >>> print(df.head())
-
Metrics Module¶
-
class
Column
¶ Column class
- Variables
name (str) – name of metric
function (
MetricFunction
) – applied metric functionmetric_group (str) – metric group
tag_names (str) – list of tag names
tag_values (str) – list of tag values
-
class
Entity
(value)¶ Entity may be one of:
Entity.DEVICE (device)
Entity.DEPLOYMENT (deployment)
Entity.PROJECT (project)
Entity.ORGANIZATION (organization)
-
class
ListMetricsRequest
(entity, entity_id, start_date, end_date)¶ List Metrics Request
- Variables
- Parameters
-
class
ListTagKeysRequest
(entity, entity_id, start_date, end_date)¶ List Tag Keys Request
- Variables
- Parameters
-
class
ListTagValuesRequest
(entity, entity_id, tag, start_date, end_date)¶ List Tag Values Request
- Variables
- Parameters
-
class
Metric
¶ Metric class, has metric_group and list of metric names
-
class
MetricFunction
(value)¶ MetricFunction may be one of:
MetricFunction.COUNT (count)
MetricFunction.DISTINCT (distinct)
MetricFunction.MEAN (mean)
MetricFunction.MEDIAN (median)
MetricFunction.MODE (mode)
MetricFunction.AVG (avg)
MetricFunction.STDDEV (stddev)
MetricFunction.DERIVATIVE (derivative)
MetricFunction.MAX (max)
MetricFunction.MIN (min)
MetricFunction.FIRST (first)
MetricFunction.LAST (last)
MetricFunction.PERCENTILE_95 (percentile_95)
MetricFunction.PERCENTILE_99 (percentile_99)
-
class
MetricOperation
(function, metric_name)¶ MetricsOperation class that defines a function over a metric
- Variables
function (
MetricFunction
) – function to applied on metricmetric_name (str) – name of the metric
- Parameters
function (
MetricFunction
) – function to applied on metricmetric_name (str) – name of the metric
-
class
QueryMetricsRequest
(from_datetime, to_datetime, step_interval, metrics, tags=None, sort=None, groupby=None)¶ QueryMetricsRequest class
- Variables
from_datetime (
datetime
) – start time of querying metricsto_datetime (
datetime
) – end time of querying metricsstep_interval (
StepInterval
) – time interval to group datametrics (list(
MetricOperation
)) – list of metricstags (dict) – key pair of tags (must include project_id and organization_id)
sort (
SortOrder
) – ordering to sort the metricsgroupby (list(str)) – list of tags to group data
- Parameters
from_datetime (
datetime
) – start time of querying metricsto_datetime (
datetime
) – end time of querying metricsstep_interval (
StepInterval
) – time interval to group datametrics (list(
MetricOperation
)) – list of metricstags (dict) – key pair of tags (must include project_id and organization_id)
sort (
SortOrder
) – ordering to sort the metricsgroupby (list(str)) – list of tags to group data
-
class
QueryMetricsResponse
¶ QueryMetricsResponse class
- Variables
columns (
Column
) – list of columns objectrows (
list(list(float))
) – list of metrics values
-
to_row_column_format
()¶ Returns rows and columns in a format that can be passed to pandas.DataFrame().
- Return type
tuple(generator, list)
-
class
SortOrder
(value)¶ SortOrder may be one of:
SortOrder.ASC (asc)
SortOrder.DESC (desc)
-
class
StepInterval
(value)¶ StepInterval may be one of:
StepInterval.ONE_SECOND (1s)
StepInterval.TEN_SECONDS (10s)
StepInterval.THIRTY_SECONDS (30s)
StepInterval.ONE_MINUTE (1m)
StepInterval.FIVE_MINUTES (5m)
StepInterval.FIFTEEN_MINUTES (15m)