Influxdb 格拉法纳和碎片?

Influxdb 格拉法纳和碎片?,influxdb,grafana,Influxdb,Grafana,我一直在研究使用XDB来存储我们的指标。 鉴于influxDB不提供集群(免费)版本,我看到了使用influxDB中继的“替代方案”,它可以处理复制和“写分片” 但是中继不处理读取查询 在Grafana中,您可以定义多个数据源,每个数据源都指向特定的碎片,但从我所知,它无法将碎片的结果组合成一个数据系列。(我知道graphite有“web master”,就是这样,它会查询多个graphite web实例,并在渲染之前合并结果)…grafana/XDB有这样的野兽吗 如果不是的话,那么要更新到X

我一直在研究使用XDB来存储我们的指标。 鉴于influxDB不提供集群(免费)版本,我看到了使用influxDB中继的“替代方案”,它可以处理复制和“写分片”

但是中继不处理读取查询

在Grafana中,您可以定义多个数据源,每个数据源都指向特定的碎片,但从我所知,它无法将碎片的结果组合成一个数据系列。(我知道graphite有“web master”,就是这样,它会查询多个graphite web实例,并在渲染之前合并结果)…grafana/XDB有这样的野兽吗

如果不是的话,那么要更新到XDB中继以接受查询,并查询与查询匹配的所有碎片/合并结果等,会有多困难。是的,我知道根据查询,合并操作可能需要查询解释,这就是困难所在


想法?

我不确定问题出在哪里。如果使用流入中继将数据分片到多个流入的XDB,则每个碎片将具有不同的数据。但是由于读取查询是针对lb发出的,因此读取查询只会命中1个分片,因此它将丢失其他分片中的数据。在graphite web master(或其任何名称)中,它实际上会对所有其他从属graphite web实例(每个实例都位于其他whisper DB前面)发出多个读取查询,即它会查询所有“碎片”,然后将数据合并在一起以进行表示,确保results.InfluxDB中继中包含所有数据将拆分对所有InfluxDB实例的写入。因此,每个实例都应该具有完全相同的数据副本,因此您应该能够查询其中任何一个实例以获得完整的数据集。我不明白为什么合并是必要的。您可以将所有实例放在负载平衡器后面,然后将其作为数据源添加到grafana中。中继可以进行切分,因此并非所有数据都在所有节点上(至少我是这么理解的),即我们希望运行10个XDB,但只需要2份数据。我的理解是,您可以将其切分出来,以便实现这一点,这意味着并非所有实例都具有相同的数据。(因此..使用XDB cluster的原因是,它允许用户在定义db模式时提供复制计数)。但是由于查询只命中1个节点,它不会看到所有的数据。从中继上的文档来看:可以在这种设置的基础上为碎片数据添加另一层。根据您的需要,您可以对度量名称或特定标记(如customer_id)进行分片。分片层必须同时为查询和写入提供服务。由于该中继不处理查询,因此它不会实现任何分片逻辑。任何分片都必须在中继外部进行。我不确定问题出在哪里。如果使用influx中继将数据分片到多个influxdb,则每个分片将具有不同的数据。但是由于读取查询是针对lb发出的,因此读取查询只会命中1个分片,因此它将丢失其他分片中的数据。在graphite web master(或其任何名称)中,它实际上会对所有其他从属graphite web实例(每个实例都位于其他whisper DB前面)发出多个读取查询,即它会查询所有“碎片”,然后将数据合并在一起以进行表示,确保results.InfluxDB中继中包含所有数据将拆分对所有InfluxDB实例的写入。因此,每个实例都应该具有完全相同的数据副本,因此您应该能够查询其中任何一个实例以获得完整的数据集。我不明白为什么合并是必要的。您可以将所有实例放在负载平衡器后面,然后将其作为数据源添加到grafana中。中继可以进行切分,因此并非所有数据都在所有节点上(至少我是这么理解的),即我们希望运行10个XDB,但只需要2份数据。我的理解是,您可以将其切分出来,以便实现这一点,这意味着并非所有实例都具有相同的数据。(因此..使用XDB cluster的原因是,它允许用户在定义db模式时提供复制计数)。但是由于查询只命中1个节点,它不会看到所有的数据。从中继上的文档来看:可以在这种设置的基础上为碎片数据添加另一层。根据您的需要,您可以对度量名称或特定标记(如customer_id)进行分片。分片层必须同时为查询和写入提供服务。由于该中继不处理查询,因此它不会实现任何分片逻辑。任何切分都必须在继电器外部进行。