标签: influxdb

仅从 InfluxDB 测量中选择值

有没有办法从 InfluxDB 测量中选择所有值字段(所有标签字段)?SELECT * FROM ...查询同时选择值标签。

influxdb

2
推荐指数
1
解决办法
5985
查看次数

InfluxDB 随时间变化的不同计数的平均值

使用 Influx DB v0.9,假设我有这个简单的查询:

select count(distinct("id")) FROM "main" WHERE time > now() - 30m and time < now() GROUP BY time(1m)
Run Code Online (Sandbox Code Playgroud)

给出的结果如下:

08:00 5
08:01 10
08:02 5
08:03 10
08:04 5
Run Code Online (Sandbox Code Playgroud)

现在我想要一个查询,该查询可以生成 5 分钟内这些值的平均值的点。因此,这些点现在相距 5 分钟,而不是 1 分钟,而是 1 分钟值的平均值。因此,上述 5 点为 1 点,其结果值为 (5+10+5+10+5)/5。

为了清楚起见,这不会产生我想要的结果,因为这只是一个计数,而我想要的是平均值。

select count(distinct("id")) FROM "main" WHERE time > now() - 30m and time < now() GROUP BY time(5m)
Run Code Online (Sandbox Code Playgroud)

这不起作用(给出错误):

select mean(distinct("id")) FROM "main" WHERE time > now() - 30m and time < now() GROUP …
Run Code Online (Sandbox Code Playgroud)

influxdb

2
推荐指数
1
解决办法
5762
查看次数

使用CURL在InfluxDB中插入行

我有以下POST请求,这是从C#完成的:

POST http://192.168.123.27:8086/write?db=HWDB HTTP/1.1
Content-Type: text/plain; charset=utf-8
Host: 192.168.123.27:8086
Content-Length: 97
Expect: 100-continue
Connection: Keep-Alive

HARDWARE,CPU=1 count=91i 1456298998307783936
HARDWARE,CPU=2 count=92i 1456298998307783936
Run Code Online (Sandbox Code Playgroud)

我想用CURL做同样的请求.我正在使用以下命令:

curl -i -XPOST http://192.168.123.27:8086/write?db=HWDB --data-binary "HARDWARE,CPU="1" value=91, CPU="2" value=92 1422568543702900257"
Run Code Online (Sandbox Code Playgroud)

这将返回错误:

{"error":"unable to parse 'HARDWARE,CPU=1 value=91i, CPU=2 value=92i 1422568543702900257': invalid field format"}
Run Code Online (Sandbox Code Playgroud)

我应该如何更改CURL命令?我正在从Windows运行CURL,如果我使用:

curl -i -XPOST http://192.168.123.27:8086/write?db=HWDB --data-binary "HARDWARE,CPU=1 value=91"
Run Code Online (Sandbox Code Playgroud)

数据正确插入数据库中.还尝试使用InfluxDB文档中的示例从文件插入:

curl -i -XPOST http://192.168.123.27:8086/write?db=HDWB --data-binary @data.txt
Run Code Online (Sandbox Code Playgroud)

这将返回:

{"error":"partial write:\nunable to parse 'cpu_load_short,host=server02 value=0.
67\r': invalid number\nunable to parse    'cpu_load_short,host=server02,region=us-w
est value=0.55 1422568543702900257\r': bad timestamp"}
Run Code Online (Sandbox Code Playgroud)

data.txt的内容:

cpu_load_short,host=server02 value=0.67 …
Run Code Online (Sandbox Code Playgroud)

curl influxdb

2
推荐指数
1
解决办法
1万
查看次数

InfluxDB 因大量数据而宕机

我正在使用 InfluxDB 构建仪表板。我有一个产生大约的来源。每分钟 2000 点。每个点有 5 个标签,6 个字段。只有一种测量。

一切正常大约 24 小时,但随着数据大小的增长,我无法对涌入运行任何查询。例如,现在我有大约 48 小时的数据,即使是基本的选择也会降低涌入数据库,

select count(field1) from measurementname
Run Code Online (Sandbox Code Playgroud)

它超时并出现错误:

ERR: Get http://localhost:8086/query?db=dbname&q=select+count%28field1%29+from+measuementname: EOF
Run Code Online (Sandbox Code Playgroud)


配置:

  • InfluxDB 版本:0.10.1 默认配置
  • 操作系统版本:Ubuntu 14.04.2 LTS
  • 配置:30GB内存,4个VCPU,150GB硬盘

一些背景:

我有一个仪表板和一个查询 influxdb 的网络应用程序。webapp 允许用户基于 tag1 或 tag2 查询数据库。

标签:

  • tag1 - 每条记录唯一。在 Web 应用程序的 where 子句中使用以获取基于此字段的记录。
  • tag2 - 每条记录唯一。在 Web 应用程序的 where 子句中使用以获取基于此字段的记录。
  • tag3 - 在 group by 中使用。把它想象成部门 ID 捆绑了一群员工。
  • tag4 - 在 group by 中使用。把它想象成部门 ID 捆绑了一群员工。
  • tag5 - 在 group by 中使用。值 0 或 1 或 …

influxdb

2
推荐指数
1
解决办法
2045
查看次数

使用带有 Line 协议的 Python 客户端将数据插入 Influxdb

我正在使用 InfluxDb 并具有简单的线路协议行,如下所示:

cpu,atag=test1 idle=100,usertime=10,system=1
Run Code Online (Sandbox Code Playgroud)

我有使用字典的 python 客户端,如下所示

client = InfluxDBClient(host, port, USER, PASSWORD, DBNAME)
client.create_database(DBNAME)

tagdic= {'Name': 'n1', 'data': 7}
fielddic= {'Name': 'field', 'f1': 70}
def main():
    var = 1
    while var == 1 :  
     client.write("cpu,atag=test1 idle=100,usertime=10,system=1")
     #client.write_points([{"measurement": "cpu", "tags": tagdic, "fields": fielddic}])   
Run Code Online (Sandbox Code Playgroud)

只要我使用 write_points 和字典来使用 write_points,上面的程序就可以正常工作,但是当我使用 client.write 时出现错误。

我如何 通过使用协议值 = 'line' 而不是默认协议 'json' 来使用这里提到的 client.write (行号 -255)?

python influxdb influxdb-python

2
推荐指数
1
解决办法
8578
查看次数

选择计数没有结果时返回0而不是n / a(null)

我想根据以下查询在 singlestat 面板中显示 KPI:

select count(foo) from bar where field = 'value' and time > now() - 1m
Run Code Online (Sandbox Code Playgroud)

有时没有结果(这是有效的),但 singlestat 面板显示 N/A 而不是 0

我可以/应该做什么?

influxdb grafana

2
推荐指数
1
解决办法
8055
查看次数

在grafana仪表板中如何设置警报邮件配置?

  • Grafana 4.0 版

  • 数据源流入数据库

请把我当作初学者。为此,如何在 Grafana 仪表板中设置警报?警报发送到电子邮件。

/etc/grafana/grafana.ini
Run Code Online (Sandbox Code Playgroud)

我写了这样的 SMTP 配置:

[smtp] 
enabled = True
host = localhost:25
user = 
If the password contains # or ; you have to wrap it with trippel 
quotes. Ex """#password;"""
[emails]
welcome_email_on_sign_up = True
Run Code Online (Sandbox Code Playgroud)

当我在 Grafana 仪表板中设置警报时,其显示错误:

template variables are not supported.
Run Code Online (Sandbox Code Playgroud)

influxdb grafana

2
推荐指数
1
解决办法
1万
查看次数

InfluxDB只有在auth关闭的情况下才能创建第一个用户

有没有办法在启用身份验证的 InfluxDB 中创建用户?免责声明:我是 InfluxDB 的新手。

我创建了一个运行 InfluxDB 的 Docker 容器,并通过auth-enabled = true在文件的http部分中进行设置来启用身份验证influxdb.conf

[http]
  ...
  # Determines whether user authentication is enabled over HTTP/HTTPS.
  auth-enabled = true
  ...
Run Code Online (Sandbox Code Playgroud)

由于没有用户,我尝试使用以下命令创建一个:

docker exec influxdb influx -execute "create user admin with password 'blabla' with all privileges"
Run Code Online (Sandbox Code Playgroud)

然而,这失败了

"stdout": "ERR: error authorizing query: no user provided
Run Code Online (Sandbox Code Playgroud)

所以这是一个先有鸡还是先有蛋的问题。您无法创建用户,因为这首先需要以用户身份登录。

它在禁用身份验证时工作。所以我可以执行以下操作:

  1. 创建禁用身份验证的配置。
  2. 启动 InfluxDB
  3. 创建用户
  4. 更改配置以便现在启用身份验证。
  5. 重启 InfluxDB

但在这种情况下,我必须将配置存储在特定的 Docker 卷中,并且当任何人都可以在没有身份验证的情况下登录时,它仍然会留下一个窗口。所以它可以自动化,但它不是一个优雅的解决方案。

这个问题有优雅的解决方案吗?

docker influxdb

2
推荐指数
1
解决办法
7207
查看次数

使用 k6 时如何对 influxdb 进行身份验证

我使用 k6 作为负载测试工具,我想将数据写入 influxdb。一切正常,除了我不知道如何为 influxdb 发送用户凭据。

例子:

./k6.exe run --out "influxdb=http://localhost:8086/stresstest" script.js --vus 10 --duration 3s
Run Code Online (Sandbox Code Playgroud)

我试图像这样传递 influxdb 用户名和密码,但它不起作用

./k6.exe run --out "influxdb=http://localhost:8086/stresstest?u=<USERNAME>&p=<PASSWORD>" script.js --vus 10 --duration 3s
Run Code Online (Sandbox Code Playgroud)

我不想禁用 influxdb auth!

influxdb k6

2
推荐指数
1
解决办法
1282
查看次数

为什么任何用户都可以登录influxdb?

我已经安装了 influxdb。但是在服务器中,每个用户都可以在输入 inlux 时登录。

为什么会这样?是不是安全问题。我该如何解决?

我想使用特定的管理员用户及其管理员密码登录。

influxdb

2
推荐指数
1
解决办法
4503
查看次数

标签 统计

influxdb ×10

grafana ×2

curl ×1

docker ×1

influxdb-python ×1

k6 ×1

python ×1