shell909090 / influx-proxy

Other
487 stars 271 forks source link

不支持Retention Policy #58

Open Brian-Yu-X opened 6 years ago

Brian-Yu-X commented 6 years ago

/write POST请求里的rp参数会被忽略掉,导致最终使用缺省的rp。无法满足使用多rp的场景。 demo: curl -i -XPOST 'http://localhost:6666/write?db=mydb&rp=one_week' --data-binary 'test,name=brian status=0 1543302627530000000'

shell909090 commented 6 years ago

这个从设计上就做不了。除非把每个请求参数加到写入数据的结构里去,然后再按照写入参数分类再写入。否则打散合并写入的过程一定会丢掉write的其他参数的。

Brian-Yu-X commented 6 years ago

rp是很常用的参数,并不需要支持其他自定义的参数写入。只需要支持固定的几个参数,比如db、rp。 可以认为rp和db是同等地位。可以写db,不存在设计上做不了这回事。

shell909090 commented 6 years ago

那我等您的PR。

kkdev163 commented 5 years ago

请问下,这个issue现在有进展吗?

Brian-Yu-X commented 5 years ago

请问下,这个issue现在有进展吗?

作者说从设计上做不了,估计要做大手术。因为还是能勉强满足需求,就没有做进一步的研究了。

kkdev163 commented 5 years ago

我试着加一下吧,业务上确实有需要。验证好后,如果可行 来提PR。到时候麻烦大大帮忙review下 @shell909090

kkdev163 commented 5 years ago

如果不支持设置RP,业务上只能绕过Proxy, 将部分的点直接打到DB了。。。趁着这个机会学下Go。。

kkdev163 commented 5 years ago

image 从数据流向来看,现在要解决的就是如何将HttpService中获取到的 query parmas 携带到 HttpBackend中。。

设计上的难点应该如何将点与参数关联起来,因为点可能已经在InfluxCluster中被打散,又在Backends中重新组合起来。 @shell909090 @pingliu

按照influx文档 -rp -precision 这两个参数应该是蛮重要的。需要优先支持

kkdev163 commented 5 years ago

我原本的思路是: 将参数组合成optionParams字符串 rp=xxx&precision=xxx,以字符串为键值,创建 map[string] *buffer 。多个buffer独立发送。。 但是这个思路中的键值需要一直传递,而且需要改造filebackend的存储格式。

现在我想到一个更好的思路:就是把optionParams直接拼接到line的前面,这样backends与filebackend都无需改造。。只需在HttpBackends中拆出optionParams,按optionParams发多个Post请求。 @shell909090 @pingliu

shell909090 commented 5 years ago

@kkdev163 多谢多谢哈。一阵没上来,连PR都有了。 方便私下沟通一下么?

kkdev163 commented 5 years ago

@kkdev163 多谢多谢哈。一阵没上来,连PR都有了。 方便私下沟通一下么?

得到大佬回复,很开心。。 以下是我联系方式: 邮件:kkdev163@163.com

shell909090 commented 5 years ago

@kkdev163 邮件就好了。后续其他消息应该通过邮件添加。你最好修改一下你的上一条回复,因为这个会增加你的PII暴露。