02-influxdb執行命令方式


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) # 寫入數據,同時創建表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM