Skip to content
Snippets Groups Projects
Commit 63019752 authored by Jan David Mol's avatar Jan David Mol
Browse files

L2SS-359: Expose 2D arrays as well, and prefix single-digit indices with 0 to...

L2SS-359: Expose 2D arrays as well, and prefix single-digit indices with 0 to allow alphabetical sorting.
parent 777d6e91
No related branches found
No related tags found
1 merge request!106Resolve L2SS-359 "Add grafana"
......@@ -50,15 +50,15 @@ class CustomCollector(object):
attr_info.data_type == ArgType.DevLong64 or attr_info.data_type == ArgType.DevULong64 or
attr_info.data_type == ArgType.DevInt or attr_info.data_type == ArgType.DevFloat or
attr_info.data_type == ArgType.DevDouble):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, '', 'float', str(attr_value.dim_x), str(attr_value.dim_y), str(x), '0'], float(attr_value.value[x]))
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, '', 'float', str(attr_value.dim_x), str(attr_value.dim_y), f"{x:02}", '0'], float(attr_value.value[x]))
elif(attr_info.data_type == ArgType.DevBoolean):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, '','bool', str(attr_value.dim_x), str(attr_value.dim_y), str(x), '0'], int(attr_value.value[x]))
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, '','bool', str(attr_value.dim_x), str(attr_value.dim_y), f"{x:02}", '0'], int(attr_value.value[x]))
elif(attr_info.data_type == ArgType.DevString):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[x]),'string', str(attr_value.dim_x), str(attr_value.dim_y), str(x), '0'], 1)
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[x]),'string', str(attr_value.dim_x), str(attr_value.dim_y), f"{x:02}", '0'], 1)
elif(attr_info.data_type == ArgType.DevEnum):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[x]),'enum', str(attr_value.dim_x), str(attr_value.dim_y), str(x), '0'], int(attr_value.value[x]))
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[x]),'enum', str(attr_value.dim_x), str(attr_value.dim_y), f"{x:02}", '0'], int(attr_value.value[x]))
elif(attr_info.data_type == ArgType.DevState):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[x]),'state', str(attr_value.dim_x), str(attr_value.dim_y), str(x), '0'], int(attr_value.value[x]))
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[x]),'state', str(attr_value.dim_x), str(attr_value.dim_y), f"{x:02}", '0'], int(attr_value.value[x]))
else:
pass
return 1
......@@ -67,20 +67,23 @@ class CustomCollector(object):
attr_value = dev.read_attribute(attr_info.name)
for y in range(int(attr_value.dim_y)):
for x in range(int(attr_value.dim_x)):
""" NOTE: We switch x and y in the annotation, to allow queries to combine 1D and 2D arrays in their first dimension using the same label (x). We effectively expose
the array as [x][y] instead of [y][x]. """
if(attr_info.data_type == ArgType.DevShort or attr_info.data_type == ArgType.DevLong or
attr_info.data_type == ArgType.DevUShort or attr_info.data_type == ArgType.DevULong or
attr_info.data_type == ArgType.DevLong64 or attr_info.data_type == ArgType.DevULong64 or
attr_info.data_type == ArgType.DevInt or attr_info.data_type == ArgType.DevFloat or
attr_info.data_type == ArgType.DevDouble):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, '', 'float', str(attr_value.dim_x), str(attr_value.dim_y), str(x), str(y)], float(attr_value.value[y][x]))
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, '', 'float', str(attr_value.dim_x), str(attr_value.dim_y), f"{y:02}", f"{x:02}"], float(attr_value.value[y][x]))
elif(attr_info.data_type == ArgType.DevBoolean):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, '','bool', str(attr_value.dim_x), str(attr_value.dim_y), str(x), str(y)], int(attr_value.value[y][x]))
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, '','bool', str(attr_value.dim_x), str(attr_value.dim_y), f"{y:02}", f"{x:02}"], int(attr_value.value[y][x]))
elif(attr_info.data_type == ArgType.DevString):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[y][x]),'string', str(attr_value.dim_x), str(attr_value.dim_y), str(x), str(y)], 1)
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[y][x]),'string', str(attr_value.dim_x), str(attr_value.dim_y), f"{y:02}", f"{x:02}"], 1)
elif(attr_info.data_type == ArgType.DevEnum):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[y][x]),'enum', str(attr_value.dim_x), str(attr_value.dim_y), str(x), str(y)], int(attr_value.value[y][x]))
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[y][x]),'enum', str(attr_value.dim_x), str(attr_value.dim_y), f"{y:02}", f"{x:02}"], int(attr_value.value[y][x]))
elif(attr_info.data_type == ArgType.DevState):
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[y][x]),'state', str(attr_value.dim_x), str(attr_value.dim_y), str(x), str(y)], int(attr_value.value[y][x]))
metric.add_metric([dev.dev_name(), attr_info.name, attr_info.label, str(attr_value.value[y][x]),'state', str(attr_value.dim_x), str(attr_value.dim_y), f"{y:02}", f"{x:02}"], int(attr_value.value[y][x]))
else:
pass
return 1
......@@ -179,12 +182,13 @@ class CustomCollector(object):
read_count += 1
elif(attr_info.data_format == AttrDataFormat.IMAGE):
# res = self.add_to_metric_image(dev, attr_info, attribute_metrics)
# if(res <= 0):
res = self.add_to_metric_image(dev, attr_info, attribute_metrics)
if(res <= 0):
not_managed_attribute_count += 1
#print("*******NOT MANAGED: "+attr_info.name)
else:
image_count += 1
# read_count += 1
read_count += 1
else:
# AttrDataFormat.FMT_UNKNOWN
not_managed_attribute_count += 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment