使用Springboot和Influxdb查询正则表达式中的字段键

时间:2016-12-31 04:20:21

标签: spring-boot metrics influxdb

Spring-Boot的度量标准看起来像

metrics_counter.status.200.hello                        20
metrics_counter.status.200.jolokia.star-star            1
metrics_counter.status.200.metrics                      2
metrics_counter.status.200.star-star.favicon.ico        4
metrics_counter.status.304.star-star                    3
metrics_counter.status.404.star-star                    1

它是动态的url;对于这个例子/ hello有20次http状态200。

在Influxdb中,字段看起来像这样

> show field keys
name: jolokia
fieldKey                                                fieldType
--------                                                ---------
metrics_counter.status.200.jolokia.star-star            float
metrics_counter.status.200.metrics                      float
metrics_counter.status.200.persons                      float
metrics_counter.status.200.star-star                    float
metrics_counter.status.200.star-star.favicon.ico        float
metrics_counter.status.304.star-star                    float
metrics_counter.status.404.star-star                    float

如果我通过正则表达式查询,结果是

> SELECT mean(/status.200.*/) FROM jolokia
name: jolokia
time    mean_metrics_counter.status.200.hello   mean_metrics_counter.status.200.jolokia.star-star       mean_metrics_counter.status.200.metrics mean_metrics_counter.status.200.persons mean_metrics_counter.status.200.star-star       mean_metrics_counter.status.200.star-star.favicon.ico
----    -------------------------------------   -------------------------------------------------       --------------------------------------- --------------------------------------- -----------------------------------------       -----------------------------------------------------
0       3.8686440677966103                      112.582995951417                                        8.935643564356436                       651.429718875502                        1                                               7.7923728813559325

如何将所有http状态汇总为

200 27
304 3
404 1

通过动态字段键查询?

1 个答案:

答案 0 :(得分:0)

您必须稍微修改您的架构,但它应该是可能的。

而不是插入看起来像石墨格式的数据

jolokia metrics_counter.status.200.jolokia.star-star=100 <timestamp>

使用标签

jolokia,type=metrics_counter,status=200 star-star=100 <timestamp>

事实上,我实际上建议您像这样构建数据

metrics_counter,status=200,app=jolokia star-star=100
metrics_counter,status=200,app=jolokia star-star.favicon=100
metrics_counter,status=304,app=jolokia star-star=100
metrics_counter,status=400,app=jolokia star-star.favicon=100

然后您可以发出类似

的查询
SELECT mean(*) FROM metrics_counter GROUP BY status