예제 #1
0
 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)
예제 #2
0
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')
예제 #5
0
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)