欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

influxdb基础---http参考

程序员文章站 2022-07-13 15:38:00
...

基于influxdb1.6.2、centOS

influxdb HTTP API提供了与数据库交互的简单方法。它使用HTTP响应代码、HTTP认证、JWT令牌和基本身份验证,并以JSON形式返回响应。

InfluxDB HTTP地址参考

地址路径 描述
/debug/pprof /debug/pprof为故障诊断生成概要文件
/debug/requests /debug/requests/ 跟踪HTTP客户端对/write和/query地址的请求
/debug/vars /debug/vars收集统计信息
/ping /ping检查influxdb实例的状态和版本
/query /query查询数据和管理数据库、保留策略和用户
/write /write将数据写入已存在的数据库

 

假设influxdb没有修改端口、没有开启https

/debug/pprof

生成一个内置概要文件和超链接列表的HTML页面

概要 描述
block 堆栈跟踪同步阻塞
goroutine 堆栈跟踪堆叠所有当前goroutines
heap 堆栈跟踪堆分配的采样
mutex 堆栈跟踪争用互斥锁
threadcreate 堆栈跟踪创建新的OS线程
all 是一个自定义/debug/pprof,influxdb支持的主要的概要文件。生成profile.tar.gz包含文本文件,其中包含标准分析信息和其他调试数据,使用该cpu=true选项时会生成可选的CPU配置文件(默认值为false)

influxdb基础---http参考
influxdb基础---http参考

  • 浏览器访问
http://10.255.254.25:8086/debug/pprof/all
http://10.255.254.25:8086/debug/pprof/all?cpu=true
  • curl访问
curl -o profiles.tar.gz "http://10.255.254.25:8086/debug/pprof/all?cpu=true"

/debug/requests

使用此地址来跟踪客户端/write和/query的HTTP请求。该/debug/requests返回写入和查询的数量每用户名和IP地址InfluxDB

有一个参数:seconds 默认是10s

  • 浏览器访问
http://10.255.254.25:8086/debug/requests
http://10.255.254.25:8086/debug/requests?seconds=60
  • curl访问
curl http://10.255.254.25:8086/debug/requests
或
[root@test25 ~]# curl http://10.255.254.25:8086/debug/requests?seconds=120
{
"172.17.0.1": {"writes":1,"queries":0}
}
[root@test25 ~]#

/debug/vars

InfluxDB通过/debug/vars地址公开有关其运行时的统计信息和信息

  • 浏览器访问
http://10.255.254.25:8086/debug/vars
  • curl访问
curl http://10.255.254.25:8086/debug/vars

/ping

ping地址接受两个GET和HEAD HTTP请求。使用此地址检查InfluxDB实例的状态以及InfluxDB的版本

  • 浏览器访问
    需要配合控制台查看
http://10.255.254.25:8086/ping
  • curl访问
curl -I http://10.255.254.25:8086/ping

/query

/query地址接受GET和POST HTTP请求。使用此地址可以查询数据并管理数据库,保留策略和用户

定义

GET http://10.255.254.25:8086/query
POST http://10.255.254.25:8086/query
方法 类型
GET SELECT
SHOW
POST ALTER
CREATE
DELETE
DROP
GRANT
KILL
REVOKE

 

这里比较特殊的是:select 如果使用into关键字,select需要用post请求

  • 浏览器访问
http://10.255.254.25:8086/query?db=mydb&q=SELECT%20*%20FROM%20cpu_load_short

influxdb基础---http参考

http://10.255.254.25:8086/query?db=mydb&q=SELECT * INTO newmeasxx FROM cpu_load_short

influxdb基础---http参考

  • curl访问
[root@test25 ~]# curl -G 'http://10.255.254.25:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "cpu_load_short"'
{"results":[{"statement_id":0,"series":[{"name":"cpu_load_short","columns":["time","direction","host","region","value"],"values":[["2015-01-29T21:55:43.702900257Z","in","server01","us-west",2],["2015-01-29T21:55:43.702900257Z",null,"server02","us-west",0.55],["2015-06-11T20:46:02Z",null,"server01","us-west",0.64],["2018-09-10T11:34:31.011551389Z",null,"server02",null,0.67],["2018-09-12T09:28:02.958458452Z",null,"server01","us-west",0.65]]}]}]}
[root@test25 ~]# 
[aaa@qq.com ~]# curl -XPOST 'http://10.255.254.25:8086/query?db=mydb' --data-urlencode 'q=SELECT * INTO "newmeas" FROM "cpu_load_short"'
{"results":[{"statement_id":0,"series":[{"name":"result","columns":["time","written"],"values":[["1970-01-01T00:00:00Z",5]]}]}]}
[aaa@qq.com ~]# 
查询字符串参数 可选/必需 定义
chunked = [true| <NUMBER_OF_POINTS>] 可选的 批量返回流中的点而不是单个响应中的点。如果设置为true,InfluxDB会按系列或每10,000个点(以先发生者为准)分组响应。如果设置为特定值,InfluxDB按系列或按点数分组响应
db=<database_name> 数据库相关查询所必需的(大多数SELECT查询和SHOW查询都需要此参数) 设置查询的目标数据库
epoch=[ns,u,μ,ms,s,m,h] 可选的 返回具有指定精度的纪元时间戳。缺省情况下,InfluxDB以RFC339格式返回时间戳,精度为纳秒级。双方u并μ表示微秒。
p = <password> 可选的,如果没有启用身份验证。如果已启用身份验证,则必需 如果已启用身份验证,请设置身份验证的密码。与查询字符串参数一起使用u。
pretty=true 可选的 启用漂亮的JSON输出。虽然这对于调试很有用,但不建议用于生产,因为它会消耗不必要的网络带宽
q=<query> 需要 要执行的InfluxQL字符串
u=<username> 可选的,如果没有启用身份验证。如果启用了身份验证,则必需。 如果已启用身份验证,请设置身份验证的用户名。用户必须具有对数据库的读访问权限。与查询字符串参数一起使用p

pretty参数使用

  • 浏览器访问
http://10.255.254.25:8086/query?db=mydb&pretty=true&q=SELECT * FROM cpu_load_short

influxdb基础---http参考

  • curl访问
curl -G 'http://10.255.254.25:8086/query?db=mydb&pretty=true' --data-urlencode 'q=SELECT * FROM "cpu_load_short"'

epoch使用

  • 浏览器访问
http://10.255.254.25:8086/query?db=mydb&epoch=s&q=SELECT * FROM cpu_load_short

influxdb基础---http参考

  • curl访问
[root@test25 ~]# curl -G 'http://10.255.254.25:8086/query?db=mydb&epoch=s' --data-urlencode 'q=SELECT * FROM "cpu_load_short"'
{"results":[{"statement_id":0,"series":[{"name":"cpu_load_short","columns":["time","direction","host","region","value"],"values":[[1422568543,"in","server01","us-west",2],[1422568543,null,"server02","us-west",0.55],[1434055562,null,"server01","us-west",0.64],[1536579271,null,"server02",null,0.67],[1536744482,null,"server01","us-west",0.65]]}]}]}
[root@test25 ~]#

用户和密码使用

  • 浏览器访问
http://10.255.254.25:8086/query?db=mydb&u=yueling&p=123456&q=select * from cpu_load_short

influxdb基础---http参考

  • curl访问
[root@test25 ~]# curl -XPOST 'http://10.255.254.25:8086/query?db=mydb&u=yueling&p=123456' --data-urlencode 'q=select * from "cpu_load_short"'
{"results":[{"statement_id":0,"series":[{"name":"cpu_load_short","columns":["time","direction","host","region","value"],"values":[["2015-01-29T21:55:43.702900257Z","in","server01","us-west",2],["2015-01-29T21:55:43.702900257Z",null,"server02","us-west",0.55],["2015-06-11T20:46:02Z",null,"server01","us-west",0.64],["2018-09-10T11:34:31.011551389Z",null,"server02",null,0.67],["2018-09-12T09:28:02.958458452Z",null,"server01","us-west",0.65]]}]}]}
[root@test25 ~]#

/write

/write地址接受POST HTTP请求。使用此地址将数据写入预先存在的数据库

定义

POST http://localhost:8086/write
查询字符串参数 可选/必需 描述
consistency=[any,one,quorum,all] 可选,仅适用于InfluxDB Enterprise群集 设置该点的写入一致性。InfluxDB假定写入一致性是one未指定的consistency
db=<database> 需要 设置写入的目标数据库
P = <password> 可选的,如果你还没有启用身份验证。如果您已启用身份验证,则必需 如果已启用身份验证,请设置身份验证的密码。与查询字符串参数一起使用u
precision=[ns,u,ms,s,m,h] 可选的 设置提供的Unix时间值的精度。InfluxDB假设您没有指定时间戳以纳秒为单位precision
rp= 可选的 设置写入的目标保留策略。DEFAULT如果您未指定保留策略,InfluxDB会写入保留策略
u=<username> 可选的,如果你还没有启用身份验证。如果您启用了身份验证,则必需。 如果已启用身份验证,请设置身份验证的用户名。用户必须具有对数据库的读访问权限。与查询字符串参数一起使用p

precision精度的使用

[root@test25 ~]# curl -i -XPOST "http://localhost:8086/write?db=mydb&precision=s" --data-binary 'mymeans,mytag=1 myfield=90'
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: a99623a9-b714-11e8-8113-000000000000
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.6.1
X-Request-Id: a99623a9-b714-11e8-8113-000000000000
Date: Thu, 13 Sep 2018 05:20:00 GMT

You have new mail in /var/spool/mail/root
[root@test25 ~]# 

用户和密码使用

[root@test25 ~]# curl -i -XPOST "http://localhost:8086/write?db=mydb&u=yueling&p=123456" --data-binary 'mymeas,mytag=1 myfield=91'
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: d2d96ef9-b714-11e8-8114-000000000000
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.6.1
X-Request-Id: d2d96ef9-b714-11e8-8114-000000000000
Date: Thu, 13 Sep 2018 05:21:09 GMT

[root@test25 ~]# 

使用文件

[aaa@qq.com ~]# cat data.txt 
mymeas,mytag1=1 value=21
mymeas,mytag1=1 value=34
mymeas,mytag2=8 value=78
mymeas,mytag3=9 value=89
[aaa@qq.com ~]# curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary @data.txt
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: 109a7b74-b715-11e8-8115-000000000000
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.6.1
X-Request-Id: 109a7b74-b715-11e8-8115-000000000000
Date: Thu, 13 Sep 2018 05:22:53 GMT

[aaa@qq.com ~]#