有没有办法从 InfluxDB 测量中选择所有值字段(或所有标签字段)?SELECT * FROM ...查询同时选择值和标签。
使用 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) 我有以下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) 我正在使用 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 的网络应用程序。webapp 允许用户基于 tag1 或 tag2 查询数据库。
标签:
我正在使用 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)?
我想根据以下查询在 singlestat 面板中显示 KPI:
select count(foo) from bar where field = 'value' and time > now() - 1m
Run Code Online (Sandbox Code Playgroud)
有时没有结果(这是有效的),但 singlestat 面板显示 N/A 而不是 0
我可以/应该做什么?
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 中创建用户?免责声明:我是 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)
所以这是一个先有鸡还是先有蛋的问题。您无法创建用户,因为这首先需要以用户身份登录。
它在禁用身份验证时工作。所以我可以执行以下操作:
但在这种情况下,我必须将配置存储在特定的 Docker 卷中,并且当任何人都可以在没有身份验证的情况下登录时,它仍然会留下一个窗口。所以它可以自动化,但它不是一个优雅的解决方案。
这个问题有优雅的解决方案吗?
我使用 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。但是在服务器中,每个用户都可以在输入 inlux 时登录。
为什么会这样?是不是安全问题。我该如何解决?
我想使用特定的管理员用户及其管理员密码登录。