Add measurement valueMeta
Allow valueMeta to be added when creating measurements Display valueMeta for measurements Requires the whole set of changes to the API, Persister and Thresh Change-Id: I08027c814d09dc95f6d50913ec03d4fc2b615ef4 Implements: blueprint measurement-meta-data
This commit is contained in:
parent
3df8be47dc
commit
f11bbc52e6
29
README.rst
29
README.rst
@ -187,6 +187,7 @@ metric-create::
|
||||
monasca metric-create metric1 1234.56 --dimensions instance_id=123,service=ourservice
|
||||
monasca metric-create metric1 2222.22 --dimensions instance_id=123,service=ourservice
|
||||
monasca metric-create metric1 3333.33 --dimensions instance_id=222,service=ourservice
|
||||
monasca metric-create metric1 4444.44 --dimensions instance_id=222 --value-meta rc=404
|
||||
|
||||
metric-list::
|
||||
|
||||
@ -202,22 +203,22 @@ metric-list::
|
||||
measurement-list::
|
||||
|
||||
monasca measurement-list metric1 2014-01-01T00:00:00Z
|
||||
+---------+--------------------+----------------+----------------------+--------------+
|
||||
| name | dimensions | measurement_id | timestamp | value |
|
||||
+---------+--------------------+----------------+----------------------+--------------+
|
||||
| metric1 | instance_id:123 | 723885 | 2014-05-08T21:46:32Z | 1234.56 |
|
||||
| | service:ourservice | 725951 | 2014-05-08T21:48:50Z | 2222.22 |
|
||||
| metric1 | instance_id:222 | 726837 | 2014-05-08T21:49:47Z | 3333.33 |
|
||||
| | service:ourservice | | | |
|
||||
+---------+--------------------+----------------+----------------------+--------------+
|
||||
+---------+--------------------+----------------+----------------------+--------------+-------------+
|
||||
| name | dimensions | measurement_id | timestamp | value | value_meta |
|
||||
+---------+--------------------+----------------+----------------------+--------------+-------------+
|
||||
| metric1 | instance_id:123 | 723885 | 2014-05-08T21:46:32Z | 1234.56 | |
|
||||
| | service:ourservice | 725951 | 2014-05-08T21:48:50Z | 2222.22 | |
|
||||
| metric1 | instance_id:222 | 726837 | 2014-05-08T21:49:47Z | 3333.33 | |
|
||||
| | service:ourservice | 726983 | 2014-05-08T21:50:27Z | 4444.44 | rc: 404 |
|
||||
+---------+--------------------+----------------+----------------------+--------------+-------------+
|
||||
|
||||
monasca measurement-list metric1 2014-01-01T00:00:00Z --dimensions instance_id=123
|
||||
+---------+--------------------+----------------+----------------------+--------------+
|
||||
| name | dimensions | measurement_id | timestamp | value |
|
||||
+---------+--------------------+----------------+----------------------+--------------+
|
||||
| metric1 | instance_id:123 | 723885 | 2014-05-08T21:46:32Z | 1234.56 |
|
||||
| | service:ourservice | 725951 | 2014-05-08T21:48:50Z | 2222.22 |
|
||||
+---------+--------------------+----------------+----------------------+--------------+
|
||||
+---------+--------------------+----------------+----------------------+--------------+-------------+
|
||||
| name | dimensions | measurement_id | timestamp | value | value_meta |
|
||||
+---------+--------------------+----------------+----------------------+--------------+-------------+
|
||||
| metric1 | instance_id:123 | 723885 | 2014-05-08T21:46:32Z | 1234.56 | |
|
||||
| | service:ourservice | 725951 | 2014-05-08T21:48:50Z | 2222.22 | |
|
||||
+---------+--------------------+----------------+----------------------+--------------+-------------+
|
||||
|
||||
|
||||
Notifications Examples
|
||||
|
@ -40,6 +40,13 @@ notification_types = ['EMAIL', 'WEBHOOK', 'PAGERDUTY']
|
||||
'Dimensions need quoting when they contain special chars [&,(,),{,},>,<] '
|
||||
'that confuse the CLI parser.',
|
||||
action='append')
|
||||
@utils.arg('--value-meta', metavar='<KEY1=VALUE1,KEY2=VALUE2...>',
|
||||
help='key value pair for extra information about a value. '
|
||||
'This can be specified multiple times, or once with parameters '
|
||||
'separated by a comma. '
|
||||
'value_meta need quoting when they contain special chars [&,(,),{,},>,<] '
|
||||
'that confuse the CLI parser.',
|
||||
action='append')
|
||||
@utils.arg('--time', metavar='<UNIX_TIMESTAMP>',
|
||||
default=time.time(), type=int,
|
||||
help='Metric timestamp. Default: current timestamp.')
|
||||
@ -58,6 +65,8 @@ def do_metric_create(mc, args):
|
||||
fields['dimensions'] = utils.format_parameters(args.dimensions)
|
||||
fields['timestamp'] = args.time
|
||||
fields['value'] = args.value
|
||||
if args.value_meta:
|
||||
fields['value_meta'] = utils.format_parameters(args.value_meta)
|
||||
if args.project_id:
|
||||
fields['tenant_id'] = args.project_id
|
||||
try:
|
||||
@ -150,8 +159,27 @@ def format_measure_timestamp(measurements):
|
||||
return '\n'.join(meas_string_list)
|
||||
|
||||
|
||||
def format_value_meta(measurements):
|
||||
# returns newline separated values for the value column
|
||||
meas_string_list = list()
|
||||
for meas in measurements:
|
||||
if len(meas) < 4:
|
||||
meas_string = ""
|
||||
else:
|
||||
meta_string_list = []
|
||||
for k, v in meas[3].items():
|
||||
if isinstance(v, numbers.Number):
|
||||
m_str = k + ': ' + str(v)
|
||||
else:
|
||||
m_str = k + ': ' + v
|
||||
meta_string_list.append(m_str)
|
||||
meas_string = ','.join(meta_string_list)
|
||||
meas_string_list.append(meas_string)
|
||||
return '\n'.join(meas_string_list)
|
||||
|
||||
|
||||
def format_measure_value(measurements):
|
||||
# reutrns newline separated values for the value column
|
||||
# returns newline separated values for the value column
|
||||
meas_string_list = list()
|
||||
for meas in measurements:
|
||||
meas_string = '{:12.2f}'.format(meas[2])
|
||||
@ -245,13 +273,14 @@ def do_measurement_list(mc, args):
|
||||
if args.json:
|
||||
print(utils.json_formatter(metric))
|
||||
return
|
||||
cols = ['name', 'dimensions', 'measurement_id', 'timestamp', 'value']
|
||||
cols = ['name', 'dimensions', 'measurement_id', 'timestamp', 'value', 'value_meta']
|
||||
formatters = {
|
||||
'name': lambda x: x['name'],
|
||||
'dimensions': lambda x: utils.format_dict(x['dimensions']),
|
||||
'measurement_id': lambda x: format_measure_id(x['measurements']),
|
||||
'timestamp': lambda x: format_measure_timestamp(x['measurements']),
|
||||
'value': lambda x: format_measure_value(x['measurements']),
|
||||
'value_meta': lambda x: format_value_meta(x['measurements']),
|
||||
}
|
||||
if isinstance(metric, list):
|
||||
# print the list
|
||||
|
Loading…
Reference in New Issue
Block a user