问题标签 [influxdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
influxdb - 在 InfluxDB 中选择查询问题
当我int
在 where 条件下使用它给我结果但是当我使用string
它给我错误。
给出结果:select * from dbname where version = 4
给出错误:select * from dbname where name = abc
或者
select * from dbname where name = 'abc'
time-series - 使用即席查询的数据库选择和建模时间序列数据
我必须开发一个系统来跟踪/监控蜂窝网络中的性能。
该域包括一组分层元素,每个元素都有一组相关的计数器,这些计数器会定期(每 15 分钟)报告一次。系统应收集这些计数器值(以大型 XML 文件的形式提供)并定期在两个维度上聚合它们:时间(从 15 小时到每天)和层次结构(低级到高级元素)。聚合通常是一个简单的 SUM,但有时需要平均值/最小值/最大值等。当然,对于元素维度聚合,它需要按层次结构分组(将所有子项分组到一个父记录)。用户应该能够定义和查看 KPI(关键绩效指标)——即各种计数器上的一些计算。KPI 可能只需要一个元素、多个元素(为每个元素生成一个数据系列)或作为多个元素的聚合(导致聚合数据的一个数据系列)。
系统大约有 10-15 个用户,每小时可能有 20-30 个查询。查询响应时间应该是几秒钟(对于包含许多元素和较长时间段的非常大的报告,最多为 10-15)。
在高层次上,这是流程:
- 解析和输入计数器数据- 有一组 XML 文件,其中包含元素的计数器数据的定期更新。所有文件的大小约为 4GB / 15 分钟(因此大约 400GB/天)。
- 每小时聚合- 每小时一次所有收集的计数器,所有元素都应该聚合 - 与元素相关的每 4 条记录聚合成一个每小时记录,应该存储。
- 每日聚合- 每天一次,2 个所有收集的计数器,所有元素都应该聚合 - 每 24 条与一个元素相关的记录被聚合为一个每日记录。
- 元素聚合- 对于每个时间维度聚合,可能需要沿元素的层次结构聚合 - 子元素的所有记录都聚合到父元素的一个记录中。
- KPI 定义- 用户应该有某种方式来定义 KPI。KPI 是基于相同粒度(时间维度)的计数器的计算定义。计算可能(并且将)涉及多个元素级别(例如 p1.counter1 + sum(c1.counter1),其中 p1 是 c1 中一个或多个记录的父级)。
用户交互——用户可以选择一个或多个元素和一个或多个计数器/KPI、使用的粒度、查看的时间段以及是否聚合所选数据。
在聚合的情况下,结果是一个数据系列,其中包括每个相关时间点的所有选定元素的“加起来”值。在“SQL”中:
SELECT p1.time SUM(p1.counter1) / SUM(p1.counter2) * SUM(c1.counter1) FROM p1_hour p1, c1_hour c1 WHERE p1.time > :minTime and p1.time < :maxTime AND p1.id in : id_list 并加入 GROUP BY p1.time
如果不需要聚合,则需要保留 p1 中的标识符并为每个选定元素提供一个数据系列
SELECT p1.time, p1.id, SUM(p1.counter1) / SUM(p1.counter2) * SUM(c1.counter1) FROM p1_hour p1, c1_hour c1 WHERE p1.time > :minTime and p1.time < :maxTime AND p1.id in :id_list 并加入
系统必须为 15 分钟、小时和每日记录保留 10、100 和 1000 天的数据。以下是大小估计,仅考虑 4 字节的整数列用于存储,类型 P 的元素有 400 个计数器,类型 C 的元素有 50 个,类型 GP 的元素有 400 个:
当它加起来时,我假设基于 DDL(实际上,数据库优化存储)到 3.5-4 TB 的数据加上索引可能需要大约 20-30% 的额外数据。对于子“表”,每个表可以获得接近 20 亿条记录。
值得注意的是,随着网络的发展,我会不时添加计数器(可能每 2-3 个月)。
我曾经使用 Oracle 实现了一个非常相似的系统(尽管数据可能更少)。这一次我可能不会使用商业数据库,必须恢复到开源解决方案。此外,随着无 SQL 和专用时间序列数据库的日益普及,也许关系不是要走的路?
你会如何处理这样的发展?可以使用的产品有哪些?
经过几天的研究,我想出了以下几点
- 使用 MySQL / PostGres
- InfluxDB(或类似产品)
- 卡桑德拉 + 火花
- 其他的?
如何使用每种解决方案,每种方法的优点/缺点是什么?如果可以,请详细说明或建议支持这种开发的整体(硬件)架构。
欢迎提出意见和建议 - 最好来自有类似项目经验的人。
python - Python:字符串索引必须是整数
我从标准输入得到这个字符串。
{u'trades': [自定义(time=1418854520, sn=47998, timestamp=1418854517, price=322, amount=0.269664, tid=48106793, type=u'ask', start=1418847319, end=1418847320), 自定义(time=1418854520, sn=47997, timestamp=1418854517, price=322, amount=0.1, tid=48106794, type=u'ask', start=1418847319, end=1418847320), Custom(time=1418854520, sn=47996 , timestamp=1418854517, price=321.596, amount=0.011, tid=48106795, type=u'ask', start=1418847319, end=1418847320)]}
当我尝试访问时,我的程序失败了jsonload["trades"]
。如果我使用jsonload[0]
我只会收到一个字符:{
.
我检查了从 获取文本不是问题stdin
,但我不知道这是接收格式的问题(因为我使用了 Incursion 库)还是我的 python 代码中的问题。我已经尝试了很多关于json.load/s
但json.dump/s
没有成功的组合。
derivative - 如何使用 Grafana 和 InfluxDB 获得数据集导数的时间序列图
我有一个进程每 5 秒从 Linux 服务器的接口信息中加载 RXBYTES 和 TXBYTES ......我想在 Grafana 中创建一个图表,它将显示每个数据点之间的差异......
IE:(目标点-前一点)/时间间隔
看起来 InfluxDB 中的导数()函数应该完全做到这一点,但我无法让它工作。我在 Grafana 中构建的查询是这样的:
该查询的结果是来自 InfluxDB Web 控制台的空集?!?!当我将间隔从 10 秒更改为 30 秒时,我只得到时间戳和导数的空列作为结果???进一步增加间隔只会返回类似的时间戳列表,其值为空
任何帮助将不胜感激...
influxdb - InfluxDB & Grafana 跨域错误
当我尝试访问 InfluxDB 管理 UI 或通过 Graphana 时收到以下错误:
请注意,仅当我尝试通过 Internet 连接时,当我转到服务器本地网络并将上面提到的公共 IP 更改为本地 IP 时,我才会收到此错误,一切正常。
现在我了解了什么是跨域错误和 CORS,我还知道我需要启用 CORS,因为错误在 InfluxDB 服务器中说,关键是我不知道该怎么做。
InfluxDB 位于 AWS 上的 Ubuntu 服务器 14.something 上。
influxdb - 是否有 influxdb 时间序列数量限制?
您好,如果 influxdb 中的时间序列数量有限制,有人知道或有经验。我假装每天使用相同的模式进行一次时间序列,例如 timeserie_2014_12_19_wd5,因为我在 influxdb 中看到可以使用通配符进行查询。wd5 表示工作日 5。
可扩展性/管理/性能有什么问题吗?
我假装稍后用相同的模式构建一些连续查询。也许每年我都会有大约 1000 个时间序列。但我会压缩它们
谢谢。
elasticsearch - 如何模仿 grafana 后端?
我的应用程序生产者计数器。我想使用 grafana 来查看它们。它似乎grafana
取决于influxDB
or elasticsearch
。
有没有办法grafana
从我自己的应用程序中读取数据,所以我不需要将它们存储在另一个后端?
influxdb - 从 InfluxDB 导出数据
有没有办法(插件或工具)从数据库(或数据库本身)导出数据?我正在寻找此功能,因为我需要将数据库从当前主机迁移到另一个主机。
java - 如何将 Java 连接到 Grafana
我真的很喜欢 Grafana 的功能,可以随着时间的推移绘制指标并显示漂亮的仪表板。我想用它来跟踪整个部署环境中的 CPU、Mem 等。我还想用它来跟踪我的 Java 程序中的一些数字。如何将 Java 连接到 Grafana?
Grafana 支持三种不同的数据库解决方案(graphite、influxdb、OpenTSDB)。我目前没有使用任何这些。但是 influxdb 看起来很容易设置。我真的只是在寻找简单且面向未来的东西。它现在只会监控几台服务器,但它可能会随着时间的推移而增长。有没有一种简单的方法可以将带有标签和时间戳的单个 Java 整数推送到 Grafana。我认为指标必须有类似 log4j 的东西。但我还需要决定使用哪个数据库,但希望能从接口中抽象出来。有什么建议吗?
influxdb - 计算 InfluxDB 中开始和结束事件之间的持续时间
InfluxDB 有两个写点,一个是开始,一个是结束。我只需要确定这两个事件之间的持续时间,并围绕它进行查询。InfluxDB 有 difference() 聚合方法,但它不适用于时间元字段。
提供自定义时间戳值是实现此目的的唯一方法吗?