更新时间:2024-08-03 GMT+08:00

OpenTSDB HTTP API接口介绍

OpenTSDB提供了基于HTTP或HTTPS的应用程序接口。请求方式是通过向资源对应的路径发送标准的HTTP请求,请求包含GET、POST方法。它的接口与开源OpenTSDB保持一致,请参见https://opentsdb.net/docs/build/html/api_http/index.html

请求以及响应实体的类型为:application/JSON

请求以及响应实体的编码为:ISO-8859-1

  • HTTP协议本身有安全风险,HTTPS是安全协议,建议使用HTTPS连接方式。
  • OpenTSDB基于HTTP提供了访问其的RESTful接口,而RESTful接口本身具有语言无关性的特点,凡是支持HTTP请求的语言都可以对接OpenTSDB。

使用Java API操作OpenTSDB

OpenTSDB提供了基于HTTP或HTTPS的应用程序接口,可以使用Java API调用相关接口操作其数据,详情请参考开发程序章节。

使用curl命令操作Opentsdb

  • 写入数据。例如,录入一个指标名称为testdata,时间戳为1524900185,值为true,标签为key,value的指标数据。
    curl -ki -X POST -d '{"metric":"testdata", "timestamp":1524900185, "value":"true", "tags":{"key":"value"}}' https://<tsd_ip>:4242/api/put?sync
    <tsd_ip>表示所需写入数据的Opentsdb服务的TSD实例的IP地址。
    HTTP/1.1 204 No Content
    Content-Type: application/json; charset=UTF-8
    Content-Length: 0
  • 查询数据。例如,可查询指标testdata在过去三年中的汇总信息。
    curl -ks https://<tsd_ip>:4242/api/query?start=3y-ago\&m=sum:testdata | python -m json.tool
    • <tsd_ip>:所需访问Opentsdb服务的TSD实例IP或主机名。
    • <start=3y-ago\&m=sum:testdata>:在请求中可能无法识别“&”符号,需对其进行转义。
    • <python -m json.tool>(可选): 把响应的请求转换为json格式。
    [
        {
            "aggregateTags": [],
            "dps": {
                "1524900185": 1
            },
            "metric": "testdata",
            "tags": {
                "key": "value"
            }
        }
    ]
  • 查询tsd状态信息。例如,可查询连接HBase的客户端信息。
    curl -ks https://<tsd_ip>:4242/api/stats/region_clients | python -m json.tool

    <tsd_ip>:所需访问Opentsdb服务的TSD实例IP地址。

    [
        {
            "dead": false,
            "endpoint": "/192.168.2.187:16020",
            "inflightBreached": 0,
            "pendingBatchedRPCs": 0,
            "pendingBreached": 0,
            "pendingRPCs": 0,
            "rpcResponsesTimedout": 0,
            "rpcResponsesUnknown": 0,
            "rpcid": 78,
            "rpcsInFlight": 0,
            "rpcsSent": 79,
            "rpcsTimedout": 0,
            "writesBlocked": 0
        }
    ]