def setUp(self): """ Insert series. """ series = Series(ENTITY, METRIC) series.add_samples(Sample(VALUE, datetime.now())) self._series_service = SeriesService(self.connection) self._series_service.insert(series) time.sleep(self.wait_time)
def main(filename, atsd_url, username, password, stat_as_tag, entity_name=None, timestamp=None): if timestamp is None: timestamp = datetime.now() conn = connect_url(atsd_url, username, password) series_service = SeriesService(conn) with open(filename) as f: entries = json.load(f) for entry in entries: benchmark_name_split = entry['benchmark'].split('.') entity = benchmark_name_split[ -2] if entity_name is None else entity_name metric_prefix = 'jmh.' + entry['mode'] + '.' + entry[ 'primaryMetric']['scoreUnit'] tags = {'method': benchmark_name_split[-1]} if not stat_as_tag: metric = metric_prefix + '.avg' else: metric = metric_prefix tags['stat'] = 'avg' series_service.insert( Series(entity, metric, [Sample(entry['primaryMetric']['score'], timestamp)], tags)) for key, value in entry['primaryMetric']['scorePercentiles'].items( ): if key == '0.0': stat = 'min' elif key == '100.0': stat = 'max' else: stat = key if not stat_as_tag: metric = metric_prefix + '.' + stat else: metric = metric_prefix tags['stat'] = stat series_service.insert( Series(entity, metric, [Sample(value, timestamp)], tags))
from atsd_client.models import SeriesDeleteQuery ''' Delete series for all metrics for the specified entity with names starting with the specified prefix. ''' # Connect to ATSD server # connection = connect('/path/to/connection.properties') connection = connect_url('https://atsd_hostname:8443', 'username', 'password') # Set query entity = "entity" metric_expr = "name LIKE 'me*'" # Initialize services entities_service = EntitiesService(connection) series_service = SeriesService(connection) # Query all metrics for entity metrics = entities_service.metrics(entity=entity, expression=metric_expr) if not metrics: print("No metrics are found for entity " + entity) else: # Delete series for each metric for metric in metrics: query = SeriesDeleteQuery(entity=entity, metric=metric.name, exact_match=False) print("deleting ", entity, metric.name) # Uncomment next line to delete series # response = series_service.delete(query)
''' Load all series values that are non-positive for the specified metric. Optionally, if deleteValues parameter is set replace these values with NaN. ''' # Connect to ATSD server #connection = connect('/path/to/connection.properties') connection = connect_url('https://atsd_hostname:8443', 'username', 'password') # disable deleting inappropriate values deleteValues = False # specify metric name metric_name = "ca.daily.reservoir_storage_af" svc = SeriesService(connection) metrics_service = MetricsService(connection) # query series with current metric and all entities sf = SeriesFilter(metric=metric_name) ef = EntityFilter(entity='*') df = DateFilter(start_date="1970-01-01T00:00:00Z", end_date=datetime.now()) query = SeriesQuery(series_filter=sf, entity_filter=ef, date_filter=df) series = svc.query(query) if deleteValues: print('Inappropriate values to be deleted.\n') else: print('Leave as is inappropriate values.\n') print('metric,entity,tags,data')
from atsd_client import connect_url from atsd_client.services import EntitiesService, SeriesService from atsd_client.models import SeriesDeleteQuery ''' Delete series for all metrics for the specified entity with names starting with the specified prefix. ''' # Connect to an ATSD server conn = connect_url('https://atsd_hostname:8443', 'user', 'password') # Set query entity = "entity" metric_expr = "name LIKE 'me*'" entities_service = EntitiesService(conn) series_service = SeriesService(conn) # Query all metrics for entity metrics = entities_service.metrics(entity=entity, expression=metric_expr) if not metrics: print("No metrics are found for entity " + entity) else: # Delete series for each metric for metric in metrics: query = SeriesDeleteQuery(entity=entity, metric=metric.name, exact_match=False) # Uncomment next line to delete series #response = series_service.delete(query) #print(response)