error_class=NoMethodError error="未定义方法`bytesize' Fluentd
error_class=NoMethodError error="undefined method `bytesize' Fluentd
我有以下 Fluentd 插件代码:
require 'avro'
module Fluent
module TextFormatter
class Sample
end
class AvroFormatter < Formatter
Fluent::Plugin.register_formatter('avro', self)
config_param :schema_file, :string, :default => nil
config_param :schema_json, :string, :default => nil
def configure(conf)
super
if not (@schema_json.nil? ^ @schema_file.nil?) then
raise Fluent::ConfigError, 'schema_json or schema_file (but not both) is required'
end
if @schema_json.nil? then
@schema_json = File.read(@schema_file)
end
@schema = Avro::Schema.parse(@schema_json)
end
def format(tag, time, record)
handler = Sample.new()
end
end
end
end
我需要在 def "Format" 中实例化 class "Sample"。问题是,当我尝试对 Fluentd 执行 http POST 时,出现以下错误:
failed: error_class=NoMethodError error="undefined method `bytesize'
此错误仅在实例化 class "Sample" 时出现。我是 ruby 的新手,我不知道问题出在哪里。我应该在另一个文件中创建 class "Sample" 吗?
我认为您收到此错误是因为调用 format
的代码需要字符串结果,但它却获得了 Sample
class 的实例。尝试 return 一些字符串。
您也可以在此处使用此示例:http://docs.fluentd.org/articles/plugin-development#text-formatter-plugins。
我有以下 Fluentd 插件代码:
require 'avro'
module Fluent
module TextFormatter
class Sample
end
class AvroFormatter < Formatter
Fluent::Plugin.register_formatter('avro', self)
config_param :schema_file, :string, :default => nil
config_param :schema_json, :string, :default => nil
def configure(conf)
super
if not (@schema_json.nil? ^ @schema_file.nil?) then
raise Fluent::ConfigError, 'schema_json or schema_file (but not both) is required'
end
if @schema_json.nil? then
@schema_json = File.read(@schema_file)
end
@schema = Avro::Schema.parse(@schema_json)
end
def format(tag, time, record)
handler = Sample.new()
end
end
end
end
我需要在 def "Format" 中实例化 class "Sample"。问题是,当我尝试对 Fluentd 执行 http POST 时,出现以下错误:
failed: error_class=NoMethodError error="undefined method `bytesize'
此错误仅在实例化 class "Sample" 时出现。我是 ruby 的新手,我不知道问题出在哪里。我应该在另一个文件中创建 class "Sample" 吗?
我认为您收到此错误是因为调用 format
的代码需要字符串结果,但它却获得了 Sample
class 的实例。尝试 return 一些字符串。
您也可以在此处使用此示例:http://docs.fluentd.org/articles/plugin-development#text-formatter-plugins。