0

我正在使用 Cassandra 后端学习 KairosDB。我遇到了以下问题:

我正在尝试以下列方式保存指标:

    available_methods = json.dumps(available_methods)

    data = []
    for definition in archive_policy.definition:
        data.append({'name': '%s-archives' % metric,
                     'timestamp': time.time(),
                     'value': archive_policy.back_window,
                     'tags': {'metric': self._to_hex(metric),
                              'timespan': float(definition.timespan),
                              'granularity_points': '%s_%s' % (
                                  float(definition.granularity),
                                  definition.points),
                              'aggregation_methods': available_methods}})

结果,该指标并未与所有进口一起发布,其中只有名称。我尝试使用等于字符串的“aggregation_methods”发布指标,并且有效。

所以,问题是:是否可以在标签中保存 dict 或 json 格式?

作为记录,我使用的是 pyKairosDB python 客户端。

谢谢

4

1 回答 1

0

实际上,并非所有字符都允许在指标名称和标签键/值中使用。

参看。http://kairosdb.github.io/kairosdocs/FAQ.html#why-can-tags-only-handle-ascii-characters-and

这将在未来的版本中演变为更加宽松,但某些特定字符应保持禁止是列 (:) 和等号 (=),因为它们被用作从标签和指标名称构造 Cassandra Row 键的字段分隔符。

参看。http://kairosdb.github.io/kairosdocs/CassandraSchema.html

请问您为什么需要将 JSON 对象放入标签中?

于 2015-03-11T21:38:37.500 回答