- case MD_TYPE_STRING:
- {
- char *meta_value;
- if (meta_data_get_string (vl->meta, key, &meta_value))
- {
- ERROR ("Target `set': Unable to get string metadata value `%s'.",
- key);
- continue;
- }
- sstrncpy (value_str, meta_value, sizeof (value_str));
- }
- break;
- case MD_TYPE_SIGNED_INT:
- {
- int64_t meta_value;
- if (meta_data_get_signed_int (vl->meta, key, &meta_value))
- {
- ERROR ("Target `set': Unable to get signed int metadata value "
- "`%s'.", key);
- continue;
- }
- ssnprintf (value_str, sizeof (value_str), "%"PRIi64, meta_value);
- }
- break;
- case MD_TYPE_UNSIGNED_INT:
- {
- uint64_t meta_value;
- if (meta_data_get_unsigned_int (vl->meta, key, &meta_value))
- {
- ERROR ("Target `set': Unable to get unsigned int metadata value "
- "`%s'.", key);
- continue;
- }
- ssnprintf (value_str, sizeof (value_str), "%"PRIu64, meta_value);
- }
- break;
- case MD_TYPE_DOUBLE:
- {
- double meta_value;
- if (meta_data_get_double (vl->meta, key, &meta_value))
- {
- ERROR ("Target `set': Unable to get double metadata value `%s'.",
- key);
- continue;
- }
- ssnprintf (value_str, sizeof (value_str), GAUGE_FORMAT, meta_value);
- }
- break;
- case MD_TYPE_BOOLEAN:
- {
- _Bool meta_value;
- if (meta_data_get_boolean (vl->meta, key, &meta_value))
- {
- ERROR ("Target `set': Unable to get boolean metadata value `%s'.",
- key);
- continue;
- }
- sstrncpy (value_str, meta_value ? "true" : "false",
- sizeof (value_str));
- }
- break;
- default:
- ERROR ("Target `set': Unable to retrieve metadata type for `%s'.",
- key);
+ char meta_name[DATA_MAX_NAME_LEN];
+ char *value_str;
+ const char *key = meta_toc[i];
+
+ ssnprintf (meta_name, sizeof (meta_name), "%%{meta:%s}", key);
+ if (meta_data_as_string (vl->meta, key, &value_str) != 0)