• 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) # 写入数据,同时创建表

     

  • 相关阅读:
    产品管理:启示录 特约客户、产品验证、原型测试
    我对敏捷个人培训的“三不原则”
    《敏捷个人》周刊 第2期 (可下载)
    《敏捷个人》周刊 第7期 (可下载)
    敏捷个人2012.6月份线下活动报道:与北邮学子交流职业和成长
    《敏捷个人》周刊 第11期 (可下载)
    敏友的【敏捷个人】有感(15): 初探敏捷个人和敏捷开发的感想
    敏友的【敏捷个人】有感(14): 敏捷个人管理的历程
    从0开始在Android下开发生活方向盘应用(自绘雷达图)
    OpenExpressApp:OEA框架 2.9 PreAlpha 源码公布
  • 原文地址:https://www.cnblogs.com/gongniue/p/12496866.html
Copyright © 2020-2023  润新知