@Override public void execute(Context context) { BStruct gaugeStruct = (BStruct) context.getRefArgument(0); String name = gaugeStruct.getStringField(0); String description = gaugeStruct.getStringField(1); BMap tagsMap = (BMap) gaugeStruct.getRefField(0); if (!tagsMap.isEmpty()) { List<Tag> tags = new ArrayList<>(); for (Object key : tagsMap.keySet()) { tags.add(new Tag(key.toString(), tagsMap.get(key).stringValue())); } context.setReturnValues(new BFloat(Gauge.builder(name).description(description).tags(tags).register() .get())); } else { context.setReturnValues(new BFloat(Gauge.builder(name).description(description).register().get())); } } }