influxdb執行命令方式
1. 三種操作方法
InfluxDB提供三種操作方式:
1)客戶端命令行方式
2)HTTP API接口
3)各語言API庫
2. 客戶端命令行方式
查看influxdb占用端口情況

influx
或
InfluxDB HTTP API 8086默認在端口上運行。因此,influx將連接到端口8086和localhost默認。如果您需要更改這些默認值,請運行influx --help。
該-precision參數指定任何返回的時間戳的格式/精度。在上面的示例中,rfc3339告訴InfluxDB以RFC3339格式(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)返回時間戳。
$ influx -precision rfc3339
Connected to http://localhost:8086 version 1.4.x
InfluxDB shell 1.4.x
3. HTTP API接口
influxdb HTTP API提供了與數據庫交互的簡單方法。它使用HTTP響應代碼、HTTP認證、JWT令牌和基本身份驗證,並以JSON形式返回響應。
influxdb HTTP地址參考
| 地址類路徑 | 描述 |
| /debug/pprof | 故障診斷生成概要文件 |
| /debug/requests | 跟蹤HTTP客戶端對/write和/query地址的請求 |
| /debug/vars | 收集統計信息 |
| /ping | 檢查influxdb實例的狀態和版本 |
| /query | 查詢數據和管理數據庫、保留策略和用戶 |
| /write | 將數據吸入已存在的數據庫 |
3.1. /debug/pprof
生成一個內置概要文件和超鏈接列表的HTML頁面
| 概要 | 描述 |
| block | 堆棧跟蹤同步阻塞 |
| goroutine | 堆棧跟蹤堆疊所有當前goroutines |
| heap | 堆棧跟蹤堆分配的采樣 |
| mutex | 堆棧跟蹤爭用互斥鎖 |
| threadcreate | 堆棧跟蹤創建新的OS線程 |
| all | 是一個自定義/debug/pprof,influxdb支持的主要的概要文件。生成profile.tar.gz包含文本文件,其中包含標准分析信息和其他調試數據,使用該cpu=true選項時會生成可選的CPU配置文件(默認值為false) |
3.2. /debug/requests
使用此地址來跟蹤客戶端/write和/query的HTTP請求。該/debug/requests返回寫入和查詢的數量每用戶名和IP地址InfluxDB
http://192.168.17.101:8086/debug/requests
# 添加seconds參數,默認值為10s
http://192.168.17.101:8086/debug/requests?seconds=60
3.3. /debug/vars
influxDB通過/debug/vars地址公開有關其運行時的統計信息和信息
http://192.168.17.101:8086/debug/vars
3.4. /ping
ping地址接受兩個GET和HEAD HTTP請求。使用此地址檢查InfluxDB實例的狀態以及InfluxDB的版本
http://192.168.17.101:8086/ping
3.5. /query
/query地址接受GET和POST HTTP請求。使用此地址可以查詢數據並管理數據庫,保留策略和用戶
| 類型 | 方法 |
| GET | SELECT |
| SHOW | |
| POST | ALTER |
| CREATE | |
| DELETE | |
| DROP | |
| GRANT | |
| KILL | |
| REVOKE |

使用范例
# 瀏覽器
http://192.168.17.101:8086/query?db=mydb&q=SELECT * FROM meas01
# 返回具有指定精度的紀元時間戳
http://192.168.17.101:8086/query?db=mydb&epoch=s&q=SELECT * FROM meas01
# 返回json格式數據
http://192.168.17.101:8086/query?db=mydb&pretty=true&q=SELECT * FROM meas01
# 以json格式返回具有指定精度的紀元時間戳
http://192.168.17.101:8086/query?db=mydb&epoch=s&pretty=true&q=SELECT * FROM meas01
# 添加用戶、密碼參數
http://192.168.17.101:8086/query?db=mydb&u=admin&p=123456&q=select * from meas01
# curl
curl -G 'http://192.168.17.101:8086/query?db=mydb' --data-urlencode 'q=SELECT * FROM "meas01"'
# 返回json格式數據
curl -G 'http://192.168.17.101:8086/query?db=mydb&pretty=true' --data-urlencode 'q=SELECT * FROM "meas01"'
# 返回具有指定精度的紀元時間戳
curl -G 'http://192.168.17.101:8086/query?db=mydb&epoch=s' --data-urlencode 'q=SELECT * FROM "meas01"'
# 添加用戶、密碼參數
curl -G 'http://192.168.17.101:8086/query?db=mydb&u=admin&p=123456' --data-urlencode 'q=SELECT * FROM "meas01"'
3.6. /write
/write地址接受POST HTTP請求。使用此地址將數據寫入預先存在的數據庫
POST http://localhost:8086/write?參數

使用范例
# 插入單條數據
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
# 插入多條數據
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server02 value=0.67
cpu_load_short,host=server02,region=us-west value=0.55 1422568543702900257
cpu_load_short,direction=in,host=server01,region=us-west value=2.0 1422568543702900257'
# 通過文件插入多條數據
curl -i -XPOST "http://localhost:8086/write?db=mydb" --data-binary @data.txt
4. 各語言API庫
python操作influxdb
安裝influxdb模塊
pip install influxdb
使用范例
from influxdb import InfluxDBClient
json_body = [
{
"measurement": "meas01",
"tags": {
"name": "s1-2",
"addr": "10-2"
},
"fields": {
"id": 2
}
},
{
"measurement": "meas02",
"tags": {
"name": "s1-3",
"addr": "10-3"
},
"fields": {
"id": 3
}
}
]
print(json_body)
client = InfluxDBClient('192.168.17.101', 8086, 'root', '', 'mydb') # 初始化(指定要操作的數據庫)
client.write_points(json_body) # 寫入數據,同時創建表
