在Kairosdb中以json格式保存标记

时间:2015-02-20 13:55:42

标签: python json cassandra kairosdb

我正在使用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客户端。

THX

1 个答案:

答案 0 :(得分: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对象?