Rails 请问大家,influxdb-ruby 这个 GEM 报 invalid field format

ghn645568344 · 2016年11月21日 · 最后由 ghn645568344 回复于 2016年11月22日 · 2728 次阅读

RT,用 influxdb-ruby 这个 gem 往 influxdb 存数据,报

InfluxDB::Error: {"error":"unable to parse 'qianbao ': invalid field format"}

    from /usr/local/rvm/gems/ruby-2.3.1/gems/influxdb-0.3.12/lib/influxdb/client/http.rb:85:in `resolve_error'
    from /usr/local/rvm/gems/ruby-2.3.1/gems/influxdb-0.3.12/lib/influxdb/client/http.rb:35:in `block in post'
    from /usr/local/rvm/gems/ruby-2.3.1/gems/influxdb-0.3.12/lib/influxdb/client/http.rb:53:in `connect_with_retry'
    from /usr/local/rvm/gems/ruby-2.3.1/gems/influxdb-0.3.12/lib/influxdb/client/http.rb:26:in `post'
    from /usr/local/rvm/gems/ruby-2.3.1/gems/influxdb-0.3.12/lib/influxdb/query/core.rb:71:in `write'
    from /usr/local/rvm/gems/ruby-2.3.1/gems/influxdb-0.3.12/lib/influxdb/query/core.rb:57:in `write_points'
    from /usr/local/rvm/gems/ruby-2.3.1/gems/influxdb-0.3.12/lib/influxdb/query/core.rb:63:in `write_point'
    from (irb):49
    from /usr/local/rvm/rubies/ruby-2.3.1/bin/irb:11:in `<main>'

代码是这样的

require 'influxdb'
influxdb = InfluxDB::Client.new 
a = {"method"=>"GET", "path"=>"/api/lottery/awards", "format"=>"html", "controller"=>"Api::LotteryController", "action"=>"lottery_awards", "status"=>200, "duration"=>651.61, "view"=>2.16, "db"=>93.05}
influxdb.write_point("qianbao", a)

各种查过。。。。没找到有用的。。。。 请教各位大神了😭

官方代码如下:

username = 'foo'
password = 'bar'
database = 'site_development'
name     = 'foobar'

influxdb = InfluxDB::Client.new database, username: username, password: password

# Enumerator that emits a sine wave
Value = (0..360).to_a.map {|i| Math.send(:sin, i / 10.0) * 10 }.each

loop do
  data = {
    values: { value: Value.next },
    tags:   { wave: 'sine' } # tags are optional
  }

  influxdb.write_point(name, data)

  sleep 1
end

对比看到错误应该是在 new 的时候没有指定对应的 database 导致的。可以尝试下。

#1 楼 @hging 加上 database 也是同样的错误、、、、

ghn645568344 关闭了讨论。 11月23日 11:13
需要 登录 后方可回复, 如果你还没有账号请 注册新账号