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): ...@@ -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.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.DevInt or attr_info.data_type == ArgType.DevFloat or
attr_info.data_type == ArgType.DevDouble): 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): 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): 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): 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): 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: else:
pass pass
return 1 return 1
...@@ -67,20 +67,23 @@ class CustomCollector(object): ...@@ -67,20 +67,23 @@ class CustomCollector(object):
attr_value = dev.read_attribute(attr_info.name) attr_value = dev.read_attribute(attr_info.name)
for y in range(int(attr_value.dim_y)): for y in range(int(attr_value.dim_y)):
for x in range(int(attr_value.dim_x)): 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 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.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.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.DevInt or attr_info.data_type == ArgType.DevFloat or
attr_info.data_type == ArgType.DevDouble): 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): 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): 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): 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): 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: else:
pass pass
return 1 return 1
...@@ -179,12 +182,13 @@ class CustomCollector(object): ...@@ -179,12 +182,13 @@ class CustomCollector(object):
read_count += 1 read_count += 1
elif(attr_info.data_format == AttrDataFormat.IMAGE): elif(attr_info.data_format == AttrDataFormat.IMAGE):
# res = self.add_to_metric_image(dev, attr_info, attribute_metrics) res = self.add_to_metric_image(dev, attr_info, attribute_metrics)
# if(res <= 0): if(res <= 0):
not_managed_attribute_count += 1 not_managed_attribute_count += 1
#print("*******NOT MANAGED: "+attr_info.name) #print("*******NOT MANAGED: "+attr_info.name)
else:
image_count += 1 image_count += 1
# read_count += 1 read_count += 1
else: else:
# AttrDataFormat.FMT_UNKNOWN # AttrDataFormat.FMT_UNKNOWN
not_managed_attribute_count += 1 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