fluent-plugin-array-splitter 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 0bf5d03998979b55a12ce89992692bbda3b010bfbccb2b1cf9dbd670a3c63cec
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 311c9c506b8e7e3b1a48fa77df5e500ac630b7df3797066756beafe985e4468b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 789c595e0ae1f9c8cc14d8668e25dba1984e72f1df6c8c51eb29ecb5299ee2fa3482936e78d9ba28427cf7f25c38dc45a336b26080960934af54b6e0f7ec93e2
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 00e5532d24f9eb2e2e0ecc7829356daca338f5a26f79deaaccae09ec1414aba3c74fabe65e7f83dfe2daffa8ab0d5645e3bfdae673bab0879106210c56c5a13b
         
     | 
| 
         @@ -7,24 +7,28 @@ module Fluent 
     | 
|
| 
       7 
7 
     | 
    
         
             
                class ArraySplitterFilter < Fluent::Plugin::Filter
         
     | 
| 
       8 
8 
     | 
    
         
             
                  Fluent::Plugin.register_filter("array_splitter", self)
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
      
 10 
     | 
    
         
            +
                  desc 'The field name to split and expand array values'
         
     | 
| 
      
 11 
     | 
    
         
            +
                  config_param :array_key, :string, default: 'message'
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
       10 
13 
     | 
    
         
             
                  def configure(conf)
         
     | 
| 
       11 
14 
     | 
    
         
             
                    super
         
     | 
| 
      
 15 
     | 
    
         
            +
                    raise Fluent::ConfigError, "'array_key' parameter is required" unless conf.has_key?('array_key')
         
     | 
| 
       12 
16 
     | 
    
         
             
                    log.info "Configuring Array Splitter Filter"
         
     | 
| 
       13 
17 
     | 
    
         
             
                  end
         
     | 
| 
       14 
18 
     | 
    
         | 
| 
       15 
19 
     | 
    
         
             
                  def filter_stream(tag, es)
         
     | 
| 
       16 
20 
     | 
    
         
             
                    new_es = Fluent::MultiEventStream.new
         
     | 
| 
       17 
21 
     | 
    
         
             
                    es.each do |time, record|
         
     | 
| 
       18 
     | 
    
         
            -
                      if record[ 
     | 
| 
       19 
     | 
    
         
            -
                        record[ 
     | 
| 
      
 22 
     | 
    
         
            +
                      if record[@array_key].is_a?(Array)
         
     | 
| 
      
 23 
     | 
    
         
            +
                        record[@array_key].each do |value|
         
     | 
| 
       20 
24 
     | 
    
         
             
                          new_record = record.dup
         
     | 
| 
       21 
     | 
    
         
            -
                          new_record.delete( 
     | 
| 
      
 25 
     | 
    
         
            +
                          new_record.delete(@array_key)
         
     | 
| 
       22 
26 
     | 
    
         
             
                          if value.is_a?(Hash)
         
     | 
| 
       23 
27 
     | 
    
         
             
                            value.each do |k, v|
         
     | 
| 
       24 
     | 
    
         
            -
                              new_record[k] = v 
     | 
| 
      
 28 
     | 
    
         
            +
                              new_record[k] = v
         
     | 
| 
       25 
29 
     | 
    
         
             
                            end
         
     | 
| 
       26 
30 
     | 
    
         
             
                          else
         
     | 
| 
       27 
     | 
    
         
            -
                            new_record[ 
     | 
| 
      
 31 
     | 
    
         
            +
                            new_record[@array_key] = value
         
     | 
| 
       28 
32 
     | 
    
         
             
                          end
         
     | 
| 
       29 
33 
     | 
    
         
             
                          new_es.add(time, new_record)
         
     | 
| 
       30 
34 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -4,7 +4,9 @@ require "fluent/plugin/filter_array_splitter.rb" 
     | 
|
| 
       4 
4 
     | 
    
         
             
            class ArraySplitterFilterTest < Test::Unit::TestCase
         
     | 
| 
       5 
5 
     | 
    
         
             
              setup do
         
     | 
| 
       6 
6 
     | 
    
         
             
                Fluent::Test.setup
         
     | 
| 
       7 
     | 
    
         
            -
                @driver = create_driver
         
     | 
| 
      
 7 
     | 
    
         
            +
                @driver = create_driver(%[
         
     | 
| 
      
 8 
     | 
    
         
            +
                  array_key message
         
     | 
| 
      
 9 
     | 
    
         
            +
                ])
         
     | 
| 
       8 
10 
     | 
    
         
             
              end
         
     | 
| 
       9 
11 
     | 
    
         | 
| 
       10 
12 
     | 
    
         
             
              def create_driver(conf = "")
         
     | 
| 
         @@ -28,7 +30,7 @@ class ArraySplitterFilterTest < Test::Unit::TestCase 
     | 
|
| 
       28 
30 
     | 
    
         
             
                  assert_equal("v2", filtered_records[1]["message"])
         
     | 
| 
       29 
31 
     | 
    
         
             
                  assert_equal("v3", filtered_records[2]["message"])
         
     | 
| 
       30 
32 
     | 
    
         
             
                end
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       32 
34 
     | 
    
         
             
                test "expand array with hashes in message field" do
         
     | 
| 
       33 
35 
     | 
    
         
             
                  record = {
         
     | 
| 
       34 
36 
     | 
    
         
             
                    "key1" => "foo",
         
     | 
| 
         @@ -49,6 +51,25 @@ class ArraySplitterFilterTest < Test::Unit::TestCase 
     | 
|
| 
       49 
51 
     | 
    
         
             
                  assert_equal("foobar", filtered_records[1]["k2"])
         
     | 
| 
       50 
52 
     | 
    
         
             
                  assert_nil(filtered_records[1]["message"])
         
     | 
| 
       51 
53 
     | 
    
         
             
                end
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                test "expand array with custom key" do
         
     | 
| 
      
 56 
     | 
    
         
            +
                  driver = create_driver(%[
         
     | 
| 
      
 57 
     | 
    
         
            +
                    array_key record
         
     | 
| 
      
 58 
     | 
    
         
            +
                  ])
         
     | 
| 
      
 59 
     | 
    
         
            +
                  record = {
         
     | 
| 
      
 60 
     | 
    
         
            +
                    "key1" => "foo",
         
     | 
| 
      
 61 
     | 
    
         
            +
                    "key2" => "bar",
         
     | 
| 
      
 62 
     | 
    
         
            +
                    "record" => ["v1", "v2", "v3"]
         
     | 
| 
      
 63 
     | 
    
         
            +
                  }
         
     | 
| 
      
 64 
     | 
    
         
            +
                  driver.run(default_tag: "test") do
         
     | 
| 
      
 65 
     | 
    
         
            +
                    driver.feed(record)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  end
         
     | 
| 
      
 67 
     | 
    
         
            +
                  filtered_records = driver.filtered_records
         
     | 
| 
      
 68 
     | 
    
         
            +
                  assert_equal(3, filtered_records.size)
         
     | 
| 
      
 69 
     | 
    
         
            +
                  assert_equal("v1", filtered_records[0]["record"])
         
     | 
| 
      
 70 
     | 
    
         
            +
                  assert_equal("v2", filtered_records[1]["record"])
         
     | 
| 
      
 71 
     | 
    
         
            +
                  assert_equal("v3", filtered_records[2]["record"])
         
     | 
| 
      
 72 
     | 
    
         
            +
                end
         
     | 
| 
       52 
73 
     | 
    
         
             
              end
         
     | 
| 
       53 
74 
     | 
    
         
             
            end
         
     | 
| 
       54 
75 
     | 
    
         |