如何使用REST的复数kairosdb

时间:2016-08-11 08:29:32

标签: opentsdb kairosdb

我正在检查是否可以将kairosdb用于我的项目。我正在检查REST api,我有一个用例,我需要保存我的设备状态和状态(状态告诉设备是打开还是关闭,状态告诉我的设备是否被占用或空)

kairosdb version: 1.1.1


I came across this link https://kairosdb.github.io/docs/build/html/restapi/AddDataPoints.html
but when I try to post data from REST client I am getting the error 400 BAD Request error. The error is 

{"errors":["Unregistered data point type 'complex-number'"]}

My request I am posting is ,
 {
      "name": "device_data",
      "type": "complex-number",
      "datapoints": [
          [
              1470897496,
              {
                  "state": 0,
                  "status": "empty"
              }
          ]
      ],
      "tags": {
          "device_id": "abc123"
      }
  }

In tried doing the same in Java as specified in  https://kairosdb.github.io/docs/build/html/kairosdevelopment/CustomData.html

我得到了同样的错误     请告诉我如何使用REST中的复数或自定义数据类型

1 个答案:

答案 0 :(得分:3)

最近,我想出了如何使用它。

使用KairosDB官方文档中的示例。

  1. 创建名为ComplexDataPoint.javaComplexDataPointFactory.java的2个文件,然后将教程提供的代码粘贴到文档:https://kairosdb.github.io/docs/build/html/kairosdevelopment/CustomData.html#example-for-creating-custom-types
  2. 下载KairosDB源代码,然后解压缩.zip文件。
  3. 将2个文件粘贴到/KAIROSDB_DOWNLOADED_SOURCE/src/main/java/org/kairosdb/core/datapoints/
  4. CoreModule.java配置/KAIROSDB_DOWNLOADED_SOURCE/src/main/java/org/kairosdb/core/,在函数protected void configure()中添加以下行:

    bind(ComplexDataPointFactory.class).in(Singleton.class);
    
  5. 打开终端,cd到KAIROSDB_DOWNLOADED_SOURCE/,然后按照 how_to_build.txt

  6. 文件中的说明操作
  7. 完成后,它将创建一个名为 build 的文件夹,已编译的kairosdb jar文件位于KAIROSDB_DOWNLOADED_SOURCE/build/jar

  8. 在您的kairosdb安装文件夹中
  9. ,备份 YOUR_KAIROSDB_INSTALLATION / lib

    中的kairosdb-X.X.X.jar文件
    mv kairosdb-X.X.X.jar kairosdb-X.X.X.jar.backup
    
  10. mv新编译的jar文件到 YOUR_KAIROSDB_INSTALLATION / lib

  11. 通过添加以下行来修改配置文件:

    kairosdb.datapoints.factory.complex=org.kairosdb.core.datapoints.ComplexDataPointFactory
    
  12. 重启你的kairosdb

  13. 对于您的查询,由于注册的名称为kairosdb.datapoints.factory.complex,请在查询字符串中将complex-number替换为complex

    希望这会对你有所帮助!我现在遇到绘制复杂数据的问题。我还在搞清楚......