logstash-core 2.1.3-java → 2.2.0-java
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.
Potentially problematic release.
This version of logstash-core might be problematic. Click here for more details.
- checksums.yaml +4 -4
 - data/lib/logstash-core.rb +1 -3
 - data/lib/logstash-core/logstash-core.rb +3 -0
 - data/lib/logstash-core/version.rb +8 -0
 - data/lib/logstash/agent.rb +48 -20
 - data/lib/logstash/codecs/base.rb +2 -2
 - data/lib/logstash/config/config_ast.rb +8 -3
 - data/lib/logstash/environment.rb +0 -16
 - data/lib/logstash/filters/base.rb +9 -5
 - data/lib/logstash/inputs/base.rb +1 -1
 - data/lib/logstash/output_delegator.rb +150 -0
 - data/lib/logstash/outputs/base.rb +37 -40
 - data/lib/logstash/pipeline.rb +259 -178
 - data/lib/logstash/pipeline_reporter.rb +114 -0
 - data/lib/logstash/plugin.rb +1 -1
 - data/lib/logstash/{shutdown_controller.rb → shutdown_watcher.rb} +10 -37
 - data/lib/logstash/util.rb +17 -0
 - data/lib/logstash/util/decorators.rb +14 -7
 - data/lib/logstash/util/worker_threads_default_printer.rb +4 -4
 - data/lib/logstash/util/wrapped_synchronous_queue.rb +41 -0
 - data/lib/logstash/version.rb +10 -2
 - data/locales/en.yml +8 -3
 - data/logstash-core.gemspec +5 -3
 - data/spec/{core/conditionals_spec.rb → conditionals_spec.rb} +0 -0
 - data/spec/{core/config_spec.rb → logstash/config/config_ast_spec.rb} +0 -0
 - data/spec/{core/config_cpu_core_strategy_spec.rb → logstash/config/cpu_core_strategy_spec.rb} +0 -0
 - data/spec/{core/config_defaults_spec.rb → logstash/config/defaults_spec.rb} +0 -0
 - data/spec/{core/config_mixin_spec.rb → logstash/config/mixin_spec.rb} +0 -0
 - data/spec/{core → logstash}/environment_spec.rb +0 -0
 - data/spec/{filters → logstash/filters}/base_spec.rb +0 -0
 - data/spec/{inputs → logstash/inputs}/base_spec.rb +0 -0
 - data/spec/{lib/logstash → logstash}/java_integration_spec.rb +0 -0
 - data/spec/{util → logstash}/json_spec.rb +0 -0
 - data/spec/logstash/output_delegator_spec.rb +126 -0
 - data/spec/logstash/outputs/base_spec.rb +40 -0
 - data/spec/logstash/pipeline_reporter_spec.rb +85 -0
 - data/spec/{core → logstash}/pipeline_spec.rb +128 -16
 - data/spec/{core → logstash}/plugin_spec.rb +47 -1
 - data/spec/logstash/runner_spec.rb +68 -0
 - data/spec/{core/shutdown_controller_spec.rb → logstash/shutdown_watcher_spec.rb} +17 -11
 - data/spec/{util → logstash/util}/buftok_spec.rb +0 -0
 - data/spec/{util → logstash/util}/charset_spec.rb +0 -0
 - data/spec/{util → logstash/util}/defaults_printer_spec.rb +4 -4
 - data/spec/{util → logstash/util}/java_version_spec.rb +0 -0
 - data/spec/{util → logstash/util}/plugin_version_spec.rb +0 -0
 - data/spec/{util → logstash/util}/unicode_trimmer_spec.rb +0 -0
 - data/spec/{util → logstash/util}/worker_threads_default_printer_spec.rb +8 -8
 - data/spec/logstash/util/wrapped_synchronous_queue_spec.rb +28 -0
 - data/spec/{util_spec.rb → logstash/util_spec.rb} +0 -0
 - metadata +74 -81
 - data/lib/logstash/event.rb +0 -275
 - data/lib/logstash/patches/bundler.rb +0 -36
 - data/lib/logstash/sized_queue.rb +0 -8
 - data/lib/logstash/string_interpolation.rb +0 -140
 - data/lib/logstash/timestamp.rb +0 -97
 - data/lib/logstash/util/accessors.rb +0 -123
 - data/spec/core/event_spec.rb +0 -518
 - data/spec/core/runner_spec.rb +0 -40
 - data/spec/core/timestamp_spec.rb +0 -84
 - data/spec/coverage_helper.rb +0 -24
 - data/spec/lib/logstash/bundler_spec.rb +0 -121
 - data/spec/license_spec.rb +0 -67
 - data/spec/outputs/base_spec.rb +0 -26
 - data/spec/plugin_manager/install_spec.rb +0 -28
 - data/spec/plugin_manager/update_spec.rb +0 -39
 - data/spec/plugin_manager/util_spec.rb +0 -71
 - data/spec/spec_helper.rb +0 -11
 - data/spec/util/accessors_spec.rb +0 -170
 - data/spec/util/compress_spec.rb +0 -121
 - data/spec/util/gemfile_spec.rb +0 -212
 - data/spec/util/retryable_spec.rb +0 -139
 
| 
         @@ -1,17 +1,23 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
       2 
2 
     | 
    
         
             
            require "spec_helper"
         
     | 
| 
       3 
     | 
    
         
            -
            require "logstash/ 
     | 
| 
      
 3 
     | 
    
         
            +
            require "logstash/shutdown_watcher"
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            describe LogStash:: 
     | 
| 
      
 5 
     | 
    
         
            +
            describe LogStash::ShutdownWatcher do
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              let(:check_every) { 0.01 }
         
     | 
| 
       8 
8 
     | 
    
         
             
              let(:check_threshold) { 100 }
         
     | 
| 
       9 
     | 
    
         
            -
              subject { LogStash:: 
     | 
| 
      
 9 
     | 
    
         
            +
              subject { LogStash::ShutdownWatcher.new(pipeline, check_every) }
         
     | 
| 
       10 
10 
     | 
    
         
             
              let(:pipeline) { double("pipeline") }
         
     | 
| 
      
 11 
     | 
    
         
            +
              let(:reporter) { double("reporter") }
         
     | 
| 
      
 12 
     | 
    
         
            +
              let(:reporter_snapshot) { double("reporter snapshot") }
         
     | 
| 
       11 
13 
     | 
    
         
             
              report_count = 0
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
       13 
15 
     | 
    
         
             
              before :each do
         
     | 
| 
       14 
     | 
    
         
            -
                allow( 
     | 
| 
      
 16 
     | 
    
         
            +
                allow(pipeline).to receive(:reporter).and_return(reporter)
         
     | 
| 
      
 17 
     | 
    
         
            +
                allow(reporter).to receive(:snapshot).and_return(reporter_snapshot)
         
     | 
| 
      
 18 
     | 
    
         
            +
                allow(reporter_snapshot).to receive(:o_simple_hash).and_return({})
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                allow(subject).to receive(:pipeline_report_snapshot).and_wrap_original do |m, *args|
         
     | 
| 
       15 
21 
     | 
    
         
             
                  report_count += 1
         
     | 
| 
       16 
22 
     | 
    
         
             
                  m.call(*args)
         
     | 
| 
       17 
23 
     | 
    
         
             
                end
         
     | 
| 
         @@ -22,10 +28,10 @@ describe LogStash::ShutdownController do 
     | 
|
| 
       22 
28 
     | 
    
         
             
              end
         
     | 
| 
       23 
29 
     | 
    
         | 
| 
       24 
30 
     | 
    
         
             
              context "when pipeline is stalled" do
         
     | 
| 
       25 
     | 
    
         
            -
                let(:increasing_count) { (1..5000).to_a 
     | 
| 
      
 31 
     | 
    
         
            +
                let(:increasing_count) { (1..5000).to_a }
         
     | 
| 
       26 
32 
     | 
    
         
             
                before :each do
         
     | 
| 
       27 
     | 
    
         
            -
                  allow( 
     | 
| 
       28 
     | 
    
         
            -
                  allow( 
     | 
| 
      
 33 
     | 
    
         
            +
                  allow(reporter_snapshot).to receive(:inflight_count).and_return(*increasing_count)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  allow(reporter_snapshot).to receive(:stalling_threads) { { } }
         
     | 
| 
       29 
35 
     | 
    
         
             
                end
         
     | 
| 
       30 
36 
     | 
    
         | 
| 
       31 
37 
     | 
    
         
             
                describe ".unsafe_shutdown = true" do
         
     | 
| 
         @@ -49,7 +55,7 @@ describe LogStash::ShutdownController do 
     | 
|
| 
       49 
55 
     | 
    
         | 
| 
       50 
56 
     | 
    
         
             
                  it "should do exactly \"abort_threshold\"*\"report_every\" stall checks" do
         
     | 
| 
       51 
57 
     | 
    
         
             
                    allow(subject).to receive(:force_exit)
         
     | 
| 
       52 
     | 
    
         
            -
                    expect( 
     | 
| 
      
 58 
     | 
    
         
            +
                    expect(subject).to receive(:pipeline_report_snapshot).exactly(abort_threshold*report_every).times.and_call_original
         
     | 
| 
       53 
59 
     | 
    
         
             
                    subject.start
         
     | 
| 
       54 
60 
     | 
    
         
             
                  end
         
     | 
| 
       55 
61 
     | 
    
         
             
                end
         
     | 
| 
         @@ -70,10 +76,10 @@ describe LogStash::ShutdownController do 
     | 
|
| 
       70 
76 
     | 
    
         
             
              end
         
     | 
| 
       71 
77 
     | 
    
         | 
| 
       72 
78 
     | 
    
         
             
              context "when pipeline is not stalled" do
         
     | 
| 
       73 
     | 
    
         
            -
                let(:decreasing_count) { (1..5000).to_a.reverse 
     | 
| 
      
 79 
     | 
    
         
            +
                let(:decreasing_count) { (1..5000).to_a.reverse }
         
     | 
| 
       74 
80 
     | 
    
         
             
                before :each do
         
     | 
| 
       75 
     | 
    
         
            -
                  allow( 
     | 
| 
       76 
     | 
    
         
            -
                  allow( 
     | 
| 
      
 81 
     | 
    
         
            +
                  allow(reporter_snapshot).to receive(:inflight_count).and_return(*decreasing_count)
         
     | 
| 
      
 82 
     | 
    
         
            +
                  allow(reporter_snapshot).to receive(:stalling_threads) { { } }
         
     | 
| 
       77 
83 
     | 
    
         
             
                end
         
     | 
| 
       78 
84 
     | 
    
         | 
| 
       79 
85 
     | 
    
         
             
                describe ".unsafe_shutdown = true" do
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -10,7 +10,7 @@ describe LogStash::Util::DefaultsPrinter do 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
              let(:workers)  { 1 }
         
     | 
| 
       13 
     | 
    
         
            -
              let(:expected) { "Settings: User set  
     | 
| 
      
 13 
     | 
    
         
            +
              let(:expected) { "Settings: User set pipeline workers: #{workers}" }
         
     | 
| 
       14 
14 
     | 
    
         
             
              let(:settings) { {} }
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
16 
     | 
    
         
             
              describe 'class methods API' do
         
     | 
| 
         @@ -24,8 +24,8 @@ describe LogStash::Util::DefaultsPrinter do 
     | 
|
| 
       24 
24 
     | 
    
         
             
                end
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
26 
     | 
    
         
             
                context 'when the settings hash has content' do
         
     | 
| 
       27 
     | 
    
         
            -
                  let(: 
     | 
| 
       28 
     | 
    
         
            -
                  let(:settings) { { 
     | 
| 
      
 27 
     | 
    
         
            +
                  let(:worker_queue) { 42 }
         
     | 
| 
      
 28 
     | 
    
         
            +
                  let(:settings) { {:pipeline_workers => workers} }
         
     | 
| 
       29 
29 
     | 
    
         
             
                  it_behaves_like "a defaults printer"
         
     | 
| 
       30 
30 
     | 
    
         
             
                end
         
     | 
| 
       31 
31 
     | 
    
         
             
              end
         
     | 
| 
         @@ -42,7 +42,7 @@ describe LogStash::Util::DefaultsPrinter do 
     | 
|
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                context 'when the settings hash has content' do
         
     | 
| 
       44 
44 
     | 
    
         
             
                  let(:workers) { 13 }
         
     | 
| 
       45 
     | 
    
         
            -
                  let(:settings) { { 
     | 
| 
      
 45 
     | 
    
         
            +
                  let(:settings) { {:pipeline_workers => workers} }
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
                  it_behaves_like "a defaults printer"
         
     | 
| 
       48 
48 
     | 
    
         
             
                end
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         
            File without changes
         
     | 
| 
         @@ -19,26 +19,26 @@ describe LogStash::Util::WorkerThreadsDefaultPrinter do 
     | 
|
| 
       19 
19 
     | 
    
         
             
                end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                context 'when the settings hash has both user and default content' do
         
     | 
| 
       22 
     | 
    
         
            -
                  let(:settings) { { 
     | 
| 
      
 22 
     | 
    
         
            +
                  let(:settings) { {:pipeline_workers => 42, :default_pipeline_workers => 5} }
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                  it 'adds two strings' do
         
     | 
| 
       25 
     | 
    
         
            -
                    expect(collector).to eq(["User set  
     | 
| 
      
 25 
     | 
    
         
            +
                    expect(collector).to eq(["User set pipeline workers: 42", "Default pipeline workers: 5"])
         
     | 
| 
       26 
26 
     | 
    
         
             
                  end
         
     | 
| 
       27 
27 
     | 
    
         
             
                end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
                context 'when the settings hash has only user content' do
         
     | 
| 
       30 
     | 
    
         
            -
                  let(:settings) { { 
     | 
| 
      
 30 
     | 
    
         
            +
                  let(:settings) { {:pipeline_workers => 42} }
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                  it 'adds a string with user set  
     | 
| 
       33 
     | 
    
         
            -
                    expect(collector.first).to eq("User set  
     | 
| 
      
 32 
     | 
    
         
            +
                  it 'adds a string with user set pipeline workers' do
         
     | 
| 
      
 33 
     | 
    
         
            +
                    expect(collector.first).to eq("User set pipeline workers: 42")
         
     | 
| 
       34 
34 
     | 
    
         
             
                  end
         
     | 
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
                context 'when the settings hash has only default content' do
         
     | 
| 
       38 
     | 
    
         
            -
                  let(:settings) { { 
     | 
| 
      
 38 
     | 
    
         
            +
                  let(:settings) { {:default_pipeline_workers => 5} }
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
                  it 'adds a string with default  
     | 
| 
       41 
     | 
    
         
            -
                    expect(collector.first).to eq("Default  
     | 
| 
      
 40 
     | 
    
         
            +
                  it 'adds a string with default pipeline workers' do
         
     | 
| 
      
 41 
     | 
    
         
            +
                    expect(collector.first).to eq("Default pipeline workers: 5")
         
     | 
| 
       42 
42 
     | 
    
         
             
                  end
         
     | 
| 
       43 
43 
     | 
    
         
             
                end
         
     | 
| 
       44 
44 
     | 
    
         
             
              end
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "spec_helper"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "logstash/util/wrapped_synchronous_queue"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe LogStash::Util::WrappedSynchronousQueue do
         
     | 
| 
      
 6 
     | 
    
         
            +
             context "#offer" do
         
     | 
| 
      
 7 
     | 
    
         
            +
               context "queue is blocked" do
         
     | 
| 
      
 8 
     | 
    
         
            +
                 it "fails and give feedback" do
         
     | 
| 
      
 9 
     | 
    
         
            +
                   expect(subject.offer("Bonjour", 2)).to be_falsey
         
     | 
| 
      
 10 
     | 
    
         
            +
                 end
         
     | 
| 
      
 11 
     | 
    
         
            +
               end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
               context "queue is not blocked" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                 before do
         
     | 
| 
      
 15 
     | 
    
         
            +
                   @consumer = Thread.new { loop { subject.take } }
         
     | 
| 
      
 16 
     | 
    
         
            +
                   sleep(0.1)
         
     | 
| 
      
 17 
     | 
    
         
            +
                 end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                 after do
         
     | 
| 
      
 20 
     | 
    
         
            +
                   @consumer.kill
         
     | 
| 
      
 21 
     | 
    
         
            +
                 end
         
     | 
| 
      
 22 
     | 
    
         
            +
                 
         
     | 
| 
      
 23 
     | 
    
         
            +
                 it "inserts successfully" do
         
     | 
| 
      
 24 
     | 
    
         
            +
                   expect(subject.offer("Bonjour", 20)).to be_truthy
         
     | 
| 
      
 25 
     | 
    
         
            +
                 end
         
     | 
| 
      
 26 
     | 
    
         
            +
               end
         
     | 
| 
      
 27 
     | 
    
         
            +
             end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
         
            File without changes
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: logstash-core
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.2.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: java
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Jordan Sissel
         
     | 
| 
         @@ -10,8 +10,22 @@ authors: 
     | 
|
| 
       10 
10 
     | 
    
         
             
            autorequire:
         
     | 
| 
       11 
11 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       12 
12 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       13 
     | 
    
         
            -
            date: 2016-02- 
     | 
| 
      
 13 
     | 
    
         
            +
            date: 2016-02-01 00:00:00.000000000 Z
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies:
         
     | 
| 
      
 15 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 18 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 19 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 20 
     | 
    
         
            +
                    version: 2.2.0
         
     | 
| 
      
 21 
     | 
    
         
            +
              name: logstash-core-event
         
     | 
| 
      
 22 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 23 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 25 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 26 
     | 
    
         
            +
                - - ~>
         
     | 
| 
      
 27 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 28 
     | 
    
         
            +
                    version: 2.2.0
         
     | 
| 
       15 
29 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       16 
30 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       17 
31 
     | 
    
         
             
                requirements:
         
     | 
| 
         @@ -218,6 +232,8 @@ extensions: [] 
     | 
|
| 
       218 
232 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       219 
233 
     | 
    
         
             
            files:
         
     | 
| 
       220 
234 
     | 
    
         
             
            - lib/logstash-core.rb
         
     | 
| 
      
 235 
     | 
    
         
            +
            - lib/logstash-core/logstash-core.rb
         
     | 
| 
      
 236 
     | 
    
         
            +
            - lib/logstash-core/version.rb
         
     | 
| 
       221 
237 
     | 
    
         
             
            - lib/logstash/agent.rb
         
     | 
| 
       222 
238 
     | 
    
         
             
            - lib/logstash/codecs/base.rb
         
     | 
| 
       223 
239 
     | 
    
         
             
            - lib/logstash/config/config_ast.rb
         
     | 
| 
         @@ -229,7 +245,6 @@ files: 
     | 
|
| 
       229 
245 
     | 
    
         
             
            - lib/logstash/config/registry.rb
         
     | 
| 
       230 
246 
     | 
    
         
             
            - lib/logstash/environment.rb
         
     | 
| 
       231 
247 
     | 
    
         
             
            - lib/logstash/errors.rb
         
     | 
| 
       232 
     | 
    
         
            -
            - lib/logstash/event.rb
         
     | 
| 
       233 
248 
     | 
    
         
             
            - lib/logstash/filters/base.rb
         
     | 
| 
       234 
249 
     | 
    
         
             
            - lib/logstash/inputs/base.rb
         
     | 
| 
       235 
250 
     | 
    
         
             
            - lib/logstash/inputs/threadable.rb
         
     | 
| 
         @@ -237,24 +252,21 @@ files: 
     | 
|
| 
       237 
252 
     | 
    
         
             
            - lib/logstash/json.rb
         
     | 
| 
       238 
253 
     | 
    
         
             
            - lib/logstash/logging.rb
         
     | 
| 
       239 
254 
     | 
    
         
             
            - lib/logstash/namespace.rb
         
     | 
| 
      
 255 
     | 
    
         
            +
            - lib/logstash/output_delegator.rb
         
     | 
| 
       240 
256 
     | 
    
         
             
            - lib/logstash/outputs/base.rb
         
     | 
| 
       241 
257 
     | 
    
         
             
            - lib/logstash/patches.rb
         
     | 
| 
       242 
258 
     | 
    
         
             
            - lib/logstash/patches/bugfix_jruby_2558.rb
         
     | 
| 
       243 
     | 
    
         
            -
            - lib/logstash/patches/bundler.rb
         
     | 
| 
       244 
259 
     | 
    
         
             
            - lib/logstash/patches/cabin.rb
         
     | 
| 
       245 
260 
     | 
    
         
             
            - lib/logstash/patches/profile_require_calls.rb
         
     | 
| 
       246 
261 
     | 
    
         
             
            - lib/logstash/patches/rubygems.rb
         
     | 
| 
       247 
262 
     | 
    
         
             
            - lib/logstash/patches/stronger_openssl_defaults.rb
         
     | 
| 
       248 
263 
     | 
    
         
             
            - lib/logstash/pipeline.rb
         
     | 
| 
      
 264 
     | 
    
         
            +
            - lib/logstash/pipeline_reporter.rb
         
     | 
| 
       249 
265 
     | 
    
         
             
            - lib/logstash/plugin.rb
         
     | 
| 
       250 
266 
     | 
    
         
             
            - lib/logstash/program.rb
         
     | 
| 
       251 
267 
     | 
    
         
             
            - lib/logstash/runner.rb
         
     | 
| 
       252 
     | 
    
         
            -
            - lib/logstash/ 
     | 
| 
       253 
     | 
    
         
            -
            - lib/logstash/sized_queue.rb
         
     | 
| 
       254 
     | 
    
         
            -
            - lib/logstash/string_interpolation.rb
         
     | 
| 
       255 
     | 
    
         
            -
            - lib/logstash/timestamp.rb
         
     | 
| 
      
 268 
     | 
    
         
            +
            - lib/logstash/shutdown_watcher.rb
         
     | 
| 
       256 
269 
     | 
    
         
             
            - lib/logstash/util.rb
         
     | 
| 
       257 
     | 
    
         
            -
            - lib/logstash/util/accessors.rb
         
     | 
| 
       258 
270 
     | 
    
         
             
            - lib/logstash/util/buftok.rb
         
     | 
| 
       259 
271 
     | 
    
         
             
            - lib/logstash/util/charset.rb
         
     | 
| 
       260 
272 
     | 
    
         
             
            - lib/logstash/util/decorators.rb
         
     | 
| 
         @@ -268,47 +280,38 @@ files: 
     | 
|
| 
       268 
280 
     | 
    
         
             
            - lib/logstash/util/socket_peer.rb
         
     | 
| 
       269 
281 
     | 
    
         
             
            - lib/logstash/util/unicode_trimmer.rb
         
     | 
| 
       270 
282 
     | 
    
         
             
            - lib/logstash/util/worker_threads_default_printer.rb
         
     | 
| 
      
 283 
     | 
    
         
            +
            - lib/logstash/util/wrapped_synchronous_queue.rb
         
     | 
| 
       271 
284 
     | 
    
         
             
            - lib/logstash/version.rb
         
     | 
| 
       272 
285 
     | 
    
         
             
            - locales/en.yml
         
     | 
| 
       273 
286 
     | 
    
         
             
            - logstash-core.gemspec
         
     | 
| 
       274 
     | 
    
         
            -
            - spec/ 
     | 
| 
       275 
     | 
    
         
            -
            - spec/core/config_cpu_core_strategy_spec.rb
         
     | 
| 
       276 
     | 
    
         
            -
            - spec/core/config_defaults_spec.rb
         
     | 
| 
       277 
     | 
    
         
            -
            - spec/core/config_mixin_spec.rb
         
     | 
| 
       278 
     | 
    
         
            -
            - spec/core/config_spec.rb
         
     | 
| 
       279 
     | 
    
         
            -
            - spec/core/environment_spec.rb
         
     | 
| 
       280 
     | 
    
         
            -
            - spec/core/event_spec.rb
         
     | 
| 
       281 
     | 
    
         
            -
            - spec/core/pipeline_spec.rb
         
     | 
| 
       282 
     | 
    
         
            -
            - spec/core/plugin_spec.rb
         
     | 
| 
       283 
     | 
    
         
            -
            - spec/core/runner_spec.rb
         
     | 
| 
       284 
     | 
    
         
            -
            - spec/core/shutdown_controller_spec.rb
         
     | 
| 
       285 
     | 
    
         
            -
            - spec/core/timestamp_spec.rb
         
     | 
| 
       286 
     | 
    
         
            -
            - spec/coverage_helper.rb
         
     | 
| 
       287 
     | 
    
         
            -
            - spec/filters/base_spec.rb
         
     | 
| 
       288 
     | 
    
         
            -
            - spec/inputs/base_spec.rb
         
     | 
| 
       289 
     | 
    
         
            -
            - spec/lib/logstash/bundler_spec.rb
         
     | 
| 
       290 
     | 
    
         
            -
            - spec/lib/logstash/java_integration_spec.rb
         
     | 
| 
       291 
     | 
    
         
            -
            - spec/license_spec.rb
         
     | 
| 
      
 287 
     | 
    
         
            +
            - spec/conditionals_spec.rb
         
     | 
| 
       292 
288 
     | 
    
         
             
            - spec/logstash/agent_spec.rb
         
     | 
| 
      
 289 
     | 
    
         
            +
            - spec/logstash/config/config_ast_spec.rb
         
     | 
| 
      
 290 
     | 
    
         
            +
            - spec/logstash/config/cpu_core_strategy_spec.rb
         
     | 
| 
      
 291 
     | 
    
         
            +
            - spec/logstash/config/defaults_spec.rb
         
     | 
| 
      
 292 
     | 
    
         
            +
            - spec/logstash/config/mixin_spec.rb
         
     | 
| 
      
 293 
     | 
    
         
            +
            - spec/logstash/environment_spec.rb
         
     | 
| 
      
 294 
     | 
    
         
            +
            - spec/logstash/filters/base_spec.rb
         
     | 
| 
      
 295 
     | 
    
         
            +
            - spec/logstash/inputs/base_spec.rb
         
     | 
| 
      
 296 
     | 
    
         
            +
            - spec/logstash/java_integration_spec.rb
         
     | 
| 
      
 297 
     | 
    
         
            +
            - spec/logstash/json_spec.rb
         
     | 
| 
      
 298 
     | 
    
         
            +
            - spec/logstash/output_delegator_spec.rb
         
     | 
| 
      
 299 
     | 
    
         
            +
            - spec/logstash/outputs/base_spec.rb
         
     | 
| 
       293 
300 
     | 
    
         
             
            - spec/logstash/patches_spec.rb
         
     | 
| 
       294 
     | 
    
         
            -
            - spec/ 
     | 
| 
       295 
     | 
    
         
            -
            - spec/ 
     | 
| 
       296 
     | 
    
         
            -
            - spec/ 
     | 
| 
       297 
     | 
    
         
            -
            - spec/ 
     | 
| 
       298 
     | 
    
         
            -
            - spec/ 
     | 
| 
       299 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       300 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       301 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       302 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       303 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       304 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       305 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       306 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       307 
     | 
    
         
            -
            - spec/ 
     | 
| 
       308 
     | 
    
         
            -
            - spec/util/retryable_spec.rb
         
     | 
| 
       309 
     | 
    
         
            -
            - spec/util/unicode_trimmer_spec.rb
         
     | 
| 
       310 
     | 
    
         
            -
            - spec/util/worker_threads_default_printer_spec.rb
         
     | 
| 
       311 
     | 
    
         
            -
            - spec/util_spec.rb
         
     | 
| 
      
 301 
     | 
    
         
            +
            - spec/logstash/pipeline_reporter_spec.rb
         
     | 
| 
      
 302 
     | 
    
         
            +
            - spec/logstash/pipeline_spec.rb
         
     | 
| 
      
 303 
     | 
    
         
            +
            - spec/logstash/plugin_spec.rb
         
     | 
| 
      
 304 
     | 
    
         
            +
            - spec/logstash/runner_spec.rb
         
     | 
| 
      
 305 
     | 
    
         
            +
            - spec/logstash/shutdown_watcher_spec.rb
         
     | 
| 
      
 306 
     | 
    
         
            +
            - spec/logstash/util/buftok_spec.rb
         
     | 
| 
      
 307 
     | 
    
         
            +
            - spec/logstash/util/charset_spec.rb
         
     | 
| 
      
 308 
     | 
    
         
            +
            - spec/logstash/util/defaults_printer_spec.rb
         
     | 
| 
      
 309 
     | 
    
         
            +
            - spec/logstash/util/java_version_spec.rb
         
     | 
| 
      
 310 
     | 
    
         
            +
            - spec/logstash/util/plugin_version_spec.rb
         
     | 
| 
      
 311 
     | 
    
         
            +
            - spec/logstash/util/unicode_trimmer_spec.rb
         
     | 
| 
      
 312 
     | 
    
         
            +
            - spec/logstash/util/worker_threads_default_printer_spec.rb
         
     | 
| 
      
 313 
     | 
    
         
            +
            - spec/logstash/util/wrapped_synchronous_queue_spec.rb
         
     | 
| 
      
 314 
     | 
    
         
            +
            - spec/logstash/util_spec.rb
         
     | 
| 
       312 
315 
     | 
    
         
             
            homepage: http://www.elastic.co/guide/en/logstash/current/index.html
         
     | 
| 
       313 
316 
     | 
    
         
             
            licenses:
         
     | 
| 
       314 
317 
     | 
    
         
             
            - Apache License (2.0)
         
     | 
| 
         @@ -334,41 +337,31 @@ signing_key: 
     | 
|
| 
       334 
337 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       335 
338 
     | 
    
         
             
            summary: logstash-core - The core components of logstash
         
     | 
| 
       336 
339 
     | 
    
         
             
            test_files:
         
     | 
| 
       337 
     | 
    
         
            -
            - spec/ 
     | 
| 
       338 
     | 
    
         
            -
            - spec/core/config_cpu_core_strategy_spec.rb
         
     | 
| 
       339 
     | 
    
         
            -
            - spec/core/config_defaults_spec.rb
         
     | 
| 
       340 
     | 
    
         
            -
            - spec/core/config_mixin_spec.rb
         
     | 
| 
       341 
     | 
    
         
            -
            - spec/core/config_spec.rb
         
     | 
| 
       342 
     | 
    
         
            -
            - spec/core/environment_spec.rb
         
     | 
| 
       343 
     | 
    
         
            -
            - spec/core/event_spec.rb
         
     | 
| 
       344 
     | 
    
         
            -
            - spec/core/pipeline_spec.rb
         
     | 
| 
       345 
     | 
    
         
            -
            - spec/core/plugin_spec.rb
         
     | 
| 
       346 
     | 
    
         
            -
            - spec/core/runner_spec.rb
         
     | 
| 
       347 
     | 
    
         
            -
            - spec/core/shutdown_controller_spec.rb
         
     | 
| 
       348 
     | 
    
         
            -
            - spec/core/timestamp_spec.rb
         
     | 
| 
       349 
     | 
    
         
            -
            - spec/coverage_helper.rb
         
     | 
| 
       350 
     | 
    
         
            -
            - spec/filters/base_spec.rb
         
     | 
| 
       351 
     | 
    
         
            -
            - spec/inputs/base_spec.rb
         
     | 
| 
       352 
     | 
    
         
            -
            - spec/lib/logstash/bundler_spec.rb
         
     | 
| 
       353 
     | 
    
         
            -
            - spec/lib/logstash/java_integration_spec.rb
         
     | 
| 
       354 
     | 
    
         
            -
            - spec/license_spec.rb
         
     | 
| 
      
 340 
     | 
    
         
            +
            - spec/conditionals_spec.rb
         
     | 
| 
       355 
341 
     | 
    
         
             
            - spec/logstash/agent_spec.rb
         
     | 
| 
      
 342 
     | 
    
         
            +
            - spec/logstash/config/config_ast_spec.rb
         
     | 
| 
      
 343 
     | 
    
         
            +
            - spec/logstash/config/cpu_core_strategy_spec.rb
         
     | 
| 
      
 344 
     | 
    
         
            +
            - spec/logstash/config/defaults_spec.rb
         
     | 
| 
      
 345 
     | 
    
         
            +
            - spec/logstash/config/mixin_spec.rb
         
     | 
| 
      
 346 
     | 
    
         
            +
            - spec/logstash/environment_spec.rb
         
     | 
| 
      
 347 
     | 
    
         
            +
            - spec/logstash/filters/base_spec.rb
         
     | 
| 
      
 348 
     | 
    
         
            +
            - spec/logstash/inputs/base_spec.rb
         
     | 
| 
      
 349 
     | 
    
         
            +
            - spec/logstash/java_integration_spec.rb
         
     | 
| 
      
 350 
     | 
    
         
            +
            - spec/logstash/json_spec.rb
         
     | 
| 
      
 351 
     | 
    
         
            +
            - spec/logstash/output_delegator_spec.rb
         
     | 
| 
      
 352 
     | 
    
         
            +
            - spec/logstash/outputs/base_spec.rb
         
     | 
| 
       356 
353 
     | 
    
         
             
            - spec/logstash/patches_spec.rb
         
     | 
| 
       357 
     | 
    
         
            -
            - spec/ 
     | 
| 
       358 
     | 
    
         
            -
            - spec/ 
     | 
| 
       359 
     | 
    
         
            -
            - spec/ 
     | 
| 
       360 
     | 
    
         
            -
            - spec/ 
     | 
| 
       361 
     | 
    
         
            -
            - spec/ 
     | 
| 
       362 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       363 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       364 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       365 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       366 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       367 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       368 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       369 
     | 
    
         
            -
            - spec/util/ 
     | 
| 
       370 
     | 
    
         
            -
            - spec/ 
     | 
| 
       371 
     | 
    
         
            -
            - spec/util/retryable_spec.rb
         
     | 
| 
       372 
     | 
    
         
            -
            - spec/util/unicode_trimmer_spec.rb
         
     | 
| 
       373 
     | 
    
         
            -
            - spec/util/worker_threads_default_printer_spec.rb
         
     | 
| 
       374 
     | 
    
         
            -
            - spec/util_spec.rb
         
     | 
| 
      
 354 
     | 
    
         
            +
            - spec/logstash/pipeline_reporter_spec.rb
         
     | 
| 
      
 355 
     | 
    
         
            +
            - spec/logstash/pipeline_spec.rb
         
     | 
| 
      
 356 
     | 
    
         
            +
            - spec/logstash/plugin_spec.rb
         
     | 
| 
      
 357 
     | 
    
         
            +
            - spec/logstash/runner_spec.rb
         
     | 
| 
      
 358 
     | 
    
         
            +
            - spec/logstash/shutdown_watcher_spec.rb
         
     | 
| 
      
 359 
     | 
    
         
            +
            - spec/logstash/util/buftok_spec.rb
         
     | 
| 
      
 360 
     | 
    
         
            +
            - spec/logstash/util/charset_spec.rb
         
     | 
| 
      
 361 
     | 
    
         
            +
            - spec/logstash/util/defaults_printer_spec.rb
         
     | 
| 
      
 362 
     | 
    
         
            +
            - spec/logstash/util/java_version_spec.rb
         
     | 
| 
      
 363 
     | 
    
         
            +
            - spec/logstash/util/plugin_version_spec.rb
         
     | 
| 
      
 364 
     | 
    
         
            +
            - spec/logstash/util/unicode_trimmer_spec.rb
         
     | 
| 
      
 365 
     | 
    
         
            +
            - spec/logstash/util/worker_threads_default_printer_spec.rb
         
     | 
| 
      
 366 
     | 
    
         
            +
            - spec/logstash/util/wrapped_synchronous_queue_spec.rb
         
     | 
| 
      
 367 
     | 
    
         
            +
            - spec/logstash/util_spec.rb
         
     | 
    
        data/lib/logstash/event.rb
    DELETED
    
    | 
         @@ -1,275 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # encoding: utf-8
         
     | 
| 
       2 
     | 
    
         
            -
            require "time"
         
     | 
| 
       3 
     | 
    
         
            -
            require "date"
         
     | 
| 
       4 
     | 
    
         
            -
            require "cabin"
         
     | 
| 
       5 
     | 
    
         
            -
            require "logstash/namespace"
         
     | 
| 
       6 
     | 
    
         
            -
            require "logstash/util/accessors"
         
     | 
| 
       7 
     | 
    
         
            -
            require "logstash/timestamp"
         
     | 
| 
       8 
     | 
    
         
            -
            require "logstash/json"
         
     | 
| 
       9 
     | 
    
         
            -
            require "logstash/string_interpolation"
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            # transcient pipeline events for normal in-flow signaling as opposed to
         
     | 
| 
       12 
     | 
    
         
            -
            # flow altering exceptions. for now having base classes is adequate and
         
     | 
| 
       13 
     | 
    
         
            -
            # in the future it might be necessary to refactor using like a BaseEvent
         
     | 
| 
       14 
     | 
    
         
            -
            # class to have a common interface for all pileline events to support
         
     | 
| 
       15 
     | 
    
         
            -
            # eventual queueing persistence for example, TBD.
         
     | 
| 
       16 
     | 
    
         
            -
            class LogStash::ShutdownEvent; end
         
     | 
| 
       17 
     | 
    
         
            -
            class LogStash::FlushEvent; end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            module LogStash
         
     | 
| 
       20 
     | 
    
         
            -
              FLUSH = LogStash::FlushEvent.new
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
              # LogStash::SHUTDOWN is used by plugins
         
     | 
| 
       23 
     | 
    
         
            -
              SHUTDOWN = LogStash::ShutdownEvent.new
         
     | 
| 
       24 
     | 
    
         
            -
            end
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
            # the logstash event object.
         
     | 
| 
       27 
     | 
    
         
            -
            #
         
     | 
| 
       28 
     | 
    
         
            -
            # An event is simply a tuple of (timestamp, data).
         
     | 
| 
       29 
     | 
    
         
            -
            # The 'timestamp' is an ISO8601 timestamp. Data is anything - any message,
         
     | 
| 
       30 
     | 
    
         
            -
            # context, references, etc that are relevant to this event.
         
     | 
| 
       31 
     | 
    
         
            -
            #
         
     | 
| 
       32 
     | 
    
         
            -
            # Internally, this is represented as a hash with only two guaranteed fields.
         
     | 
| 
       33 
     | 
    
         
            -
            #
         
     | 
| 
       34 
     | 
    
         
            -
            # * "@timestamp" - an ISO8601 timestamp representing the time the event
         
     | 
| 
       35 
     | 
    
         
            -
            #   occurred at.
         
     | 
| 
       36 
     | 
    
         
            -
            # * "@version" - the version of the schema. Currently "1"
         
     | 
| 
       37 
     | 
    
         
            -
            #
         
     | 
| 
       38 
     | 
    
         
            -
            # They are prefixed with an "@" symbol to avoid clashing with your
         
     | 
| 
       39 
     | 
    
         
            -
            # own custom fields.
         
     | 
| 
       40 
     | 
    
         
            -
            #
         
     | 
| 
       41 
     | 
    
         
            -
            # When serialized, this is represented in JSON. For example:
         
     | 
| 
       42 
     | 
    
         
            -
            #
         
     | 
| 
       43 
     | 
    
         
            -
            #     {
         
     | 
| 
       44 
     | 
    
         
            -
            #       "@timestamp": "2013-02-09T20:39:26.234Z",
         
     | 
| 
       45 
     | 
    
         
            -
            #       "@version": "1",
         
     | 
| 
       46 
     | 
    
         
            -
            #       message: "hello world"
         
     | 
| 
       47 
     | 
    
         
            -
            #     }
         
     | 
| 
       48 
     | 
    
         
            -
            class LogStash::Event
         
     | 
| 
       49 
     | 
    
         
            -
              class DeprecatedMethod < StandardError; end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
              CHAR_PLUS = "+"
         
     | 
| 
       52 
     | 
    
         
            -
              TIMESTAMP = "@timestamp"
         
     | 
| 
       53 
     | 
    
         
            -
              VERSION = "@version"
         
     | 
| 
       54 
     | 
    
         
            -
              VERSION_ONE = "1"
         
     | 
| 
       55 
     | 
    
         
            -
              TIMESTAMP_FAILURE_TAG = "_timestampparsefailure"
         
     | 
| 
       56 
     | 
    
         
            -
              TIMESTAMP_FAILURE_FIELD = "_@timestamp"
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
              METADATA = "@metadata".freeze
         
     | 
| 
       59 
     | 
    
         
            -
              METADATA_BRACKETS = "[#{METADATA}]".freeze
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
              # Floats outside of these upper and lower bounds are forcibly converted
         
     | 
| 
       62 
     | 
    
         
            -
              # to scientific notation by Float#to_s
         
     | 
| 
       63 
     | 
    
         
            -
              MIN_FLOAT_BEFORE_SCI_NOT = 0.0001
         
     | 
| 
       64 
     | 
    
         
            -
              MAX_FLOAT_BEFORE_SCI_NOT = 1000000000000000.0
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
       66 
     | 
    
         
            -
              LOGGER = Cabin::Channel.get(LogStash)
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
              public
         
     | 
| 
       69 
     | 
    
         
            -
              def initialize(data = {})
         
     | 
| 
       70 
     | 
    
         
            -
                @cancelled = false
         
     | 
| 
       71 
     | 
    
         
            -
                @data = data
         
     | 
| 
       72 
     | 
    
         
            -
                @accessors = LogStash::Util::Accessors.new(data)
         
     | 
| 
       73 
     | 
    
         
            -
                @data[VERSION] ||= VERSION_ONE
         
     | 
| 
       74 
     | 
    
         
            -
                ts = @data[TIMESTAMP]
         
     | 
| 
       75 
     | 
    
         
            -
                @data[TIMESTAMP] = ts ? init_timestamp(ts) : LogStash::Timestamp.now
         
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
                @metadata = @data.delete(METADATA) || {}
         
     | 
| 
       78 
     | 
    
         
            -
                @metadata_accessors = LogStash::Util::Accessors.new(@metadata)
         
     | 
| 
       79 
     | 
    
         
            -
              end # def initialize
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
              public
         
     | 
| 
       82 
     | 
    
         
            -
              def cancel
         
     | 
| 
       83 
     | 
    
         
            -
                @cancelled = true
         
     | 
| 
       84 
     | 
    
         
            -
              end # def cancel
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
              public
         
     | 
| 
       87 
     | 
    
         
            -
              def uncancel
         
     | 
| 
       88 
     | 
    
         
            -
                @cancelled = false
         
     | 
| 
       89 
     | 
    
         
            -
              end # def uncancel
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
              public
         
     | 
| 
       92 
     | 
    
         
            -
              def cancelled?
         
     | 
| 
       93 
     | 
    
         
            -
                return @cancelled
         
     | 
| 
       94 
     | 
    
         
            -
              end # def cancelled?
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
     | 
    
         
            -
              # Create a deep-ish copy of this event.
         
     | 
| 
       97 
     | 
    
         
            -
              public
         
     | 
| 
       98 
     | 
    
         
            -
              def clone
         
     | 
| 
       99 
     | 
    
         
            -
                copy = {}
         
     | 
| 
       100 
     | 
    
         
            -
                @data.each do |k,v|
         
     | 
| 
       101 
     | 
    
         
            -
                  # TODO(sissel): Recurse if this is a hash/array?
         
     | 
| 
       102 
     | 
    
         
            -
                  copy[k] = begin v.clone rescue v end
         
     | 
| 
       103 
     | 
    
         
            -
                end
         
     | 
| 
       104 
     | 
    
         
            -
                return self.class.new(copy)
         
     | 
| 
       105 
     | 
    
         
            -
              end # def clone
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
              public
         
     | 
| 
       108 
     | 
    
         
            -
              def to_s
         
     | 
| 
       109 
     | 
    
         
            -
                "#{timestamp.to_iso8601} #{self.sprintf("%{host} %{message}")}"
         
     | 
| 
       110 
     | 
    
         
            -
              end # def to_s
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
              public
         
     | 
| 
       113 
     | 
    
         
            -
              def timestamp; return @data[TIMESTAMP]; end # def timestamp
         
     | 
| 
       114 
     | 
    
         
            -
              def timestamp=(val); return @data[TIMESTAMP] = val; end # def timestamp=
         
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
              def unix_timestamp
         
     | 
| 
       117 
     | 
    
         
            -
                raise DeprecatedMethod
         
     | 
| 
       118 
     | 
    
         
            -
              end # def unix_timestamp
         
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
              def ruby_timestamp
         
     | 
| 
       121 
     | 
    
         
            -
                raise DeprecatedMethod
         
     | 
| 
       122 
     | 
    
         
            -
              end # def unix_timestamp
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
              public
         
     | 
| 
       125 
     | 
    
         
            -
              def [](fieldref)
         
     | 
| 
       126 
     | 
    
         
            -
                if fieldref.start_with?(METADATA_BRACKETS)
         
     | 
| 
       127 
     | 
    
         
            -
                  @metadata_accessors.get(fieldref[METADATA_BRACKETS.length .. -1])
         
     | 
| 
       128 
     | 
    
         
            -
                elsif fieldref == METADATA
         
     | 
| 
       129 
     | 
    
         
            -
                  @metadata
         
     | 
| 
       130 
     | 
    
         
            -
                else
         
     | 
| 
       131 
     | 
    
         
            -
                  @accessors.get(fieldref)
         
     | 
| 
       132 
     | 
    
         
            -
                end
         
     | 
| 
       133 
     | 
    
         
            -
              end # def []
         
     | 
| 
       134 
     | 
    
         
            -
             
     | 
| 
       135 
     | 
    
         
            -
              public
         
     | 
| 
       136 
     | 
    
         
            -
              def []=(fieldref, value)
         
     | 
| 
       137 
     | 
    
         
            -
                if fieldref == TIMESTAMP && !value.is_a?(LogStash::Timestamp)
         
     | 
| 
       138 
     | 
    
         
            -
                  raise TypeError, "The field '@timestamp' must be a (LogStash::Timestamp, not a #{value.class} (#{value})"
         
     | 
| 
       139 
     | 
    
         
            -
                end
         
     | 
| 
       140 
     | 
    
         
            -
                if fieldref.start_with?(METADATA_BRACKETS)
         
     | 
| 
       141 
     | 
    
         
            -
                  @metadata_accessors.set(fieldref[METADATA_BRACKETS.length .. -1], value)
         
     | 
| 
       142 
     | 
    
         
            -
                elsif fieldref == METADATA
         
     | 
| 
       143 
     | 
    
         
            -
                  @metadata = value
         
     | 
| 
       144 
     | 
    
         
            -
                  @metadata_accessors = LogStash::Util::Accessors.new(@metadata)
         
     | 
| 
       145 
     | 
    
         
            -
                else
         
     | 
| 
       146 
     | 
    
         
            -
                  @accessors.set(fieldref, value)
         
     | 
| 
       147 
     | 
    
         
            -
                end
         
     | 
| 
       148 
     | 
    
         
            -
              end # def []=
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
              public
         
     | 
| 
       151 
     | 
    
         
            -
              def fields
         
     | 
| 
       152 
     | 
    
         
            -
                raise DeprecatedMethod
         
     | 
| 
       153 
     | 
    
         
            -
              end
         
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
              public
         
     | 
| 
       156 
     | 
    
         
            -
              def to_json(*args)
         
     | 
| 
       157 
     | 
    
         
            -
                # ignore arguments to respect accepted to_json method signature
         
     | 
| 
       158 
     | 
    
         
            -
                LogStash::Json.dump(@data)
         
     | 
| 
       159 
     | 
    
         
            -
              end # def to_json
         
     | 
| 
       160 
     | 
    
         
            -
             
     | 
| 
       161 
     | 
    
         
            -
              public
         
     | 
| 
       162 
     | 
    
         
            -
              def to_hash
         
     | 
| 
       163 
     | 
    
         
            -
                @data
         
     | 
| 
       164 
     | 
    
         
            -
              end # def to_hash
         
     | 
| 
       165 
     | 
    
         
            -
             
     | 
| 
       166 
     | 
    
         
            -
              public
         
     | 
| 
       167 
     | 
    
         
            -
              def overwrite(event)
         
     | 
| 
       168 
     | 
    
         
            -
                # pickup new event @data and also pickup @accessors
         
     | 
| 
       169 
     | 
    
         
            -
                # otherwise it will be pointing on previous data
         
     | 
| 
       170 
     | 
    
         
            -
                @data = event.instance_variable_get(:@data)
         
     | 
| 
       171 
     | 
    
         
            -
                @accessors = event.instance_variable_get(:@accessors)
         
     | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
       173 
     | 
    
         
            -
                #convert timestamp if it is a String
         
     | 
| 
       174 
     | 
    
         
            -
                if @data[TIMESTAMP].is_a?(String)
         
     | 
| 
       175 
     | 
    
         
            -
                  @data[TIMESTAMP] = LogStash::Timestamp.parse_iso8601(@data[TIMESTAMP])
         
     | 
| 
       176 
     | 
    
         
            -
                end
         
     | 
| 
       177 
     | 
    
         
            -
              end
         
     | 
| 
       178 
     | 
    
         
            -
             
     | 
| 
       179 
     | 
    
         
            -
              public
         
     | 
| 
       180 
     | 
    
         
            -
              def include?(fieldref)
         
     | 
| 
       181 
     | 
    
         
            -
                if fieldref.start_with?(METADATA_BRACKETS)
         
     | 
| 
       182 
     | 
    
         
            -
                  @metadata_accessors.include?(fieldref[METADATA_BRACKETS.length .. -1])
         
     | 
| 
       183 
     | 
    
         
            -
                elsif fieldref == METADATA
         
     | 
| 
       184 
     | 
    
         
            -
                  true
         
     | 
| 
       185 
     | 
    
         
            -
                else
         
     | 
| 
       186 
     | 
    
         
            -
                  @accessors.include?(fieldref)
         
     | 
| 
       187 
     | 
    
         
            -
                end
         
     | 
| 
       188 
     | 
    
         
            -
              end # def include?
         
     | 
| 
       189 
     | 
    
         
            -
             
     | 
| 
       190 
     | 
    
         
            -
              # Append an event to this one.
         
     | 
| 
       191 
     | 
    
         
            -
              public
         
     | 
| 
       192 
     | 
    
         
            -
              def append(event)
         
     | 
| 
       193 
     | 
    
         
            -
                # non-destructively merge that event with ourselves.
         
     | 
| 
       194 
     | 
    
         
            -
             
     | 
| 
       195 
     | 
    
         
            -
                # no need to reset @accessors here because merging will not disrupt any existing field paths
         
     | 
| 
       196 
     | 
    
         
            -
                # and if new ones are created they will be picked up.
         
     | 
| 
       197 
     | 
    
         
            -
                LogStash::Util.hash_merge(@data, event.to_hash)
         
     | 
| 
       198 
     | 
    
         
            -
              end # append
         
     | 
| 
       199 
     | 
    
         
            -
             
     | 
| 
       200 
     | 
    
         
            -
              # Remove a field or field reference. Returns the value of that field when
         
     | 
| 
       201 
     | 
    
         
            -
              # deleted
         
     | 
| 
       202 
     | 
    
         
            -
              public
         
     | 
| 
       203 
     | 
    
         
            -
              def remove(fieldref)
         
     | 
| 
       204 
     | 
    
         
            -
                @accessors.del(fieldref)
         
     | 
| 
       205 
     | 
    
         
            -
              end # def remove
         
     | 
| 
       206 
     | 
    
         
            -
             
     | 
| 
       207 
     | 
    
         
            -
              # sprintf. This could use a better method name.
         
     | 
| 
       208 
     | 
    
         
            -
              # The idea is to take an event and convert it to a string based on
         
     | 
| 
       209 
     | 
    
         
            -
              # any format values, delimited by %{foo} where 'foo' is a field or
         
     | 
| 
       210 
     | 
    
         
            -
              # metadata member.
         
     | 
| 
       211 
     | 
    
         
            -
              #
         
     | 
| 
       212 
     | 
    
         
            -
              # For example, if the event has type == "foo" and host == "bar"
         
     | 
| 
       213 
     | 
    
         
            -
              # then this string:
         
     | 
| 
       214 
     | 
    
         
            -
              #   "type is %{type} and source is %{host}"
         
     | 
| 
       215 
     | 
    
         
            -
              # will return
         
     | 
| 
       216 
     | 
    
         
            -
              #   "type is foo and source is bar"
         
     | 
| 
       217 
     | 
    
         
            -
              #
         
     | 
| 
       218 
     | 
    
         
            -
              # If a %{name} value is an array, then we will join by ','
         
     | 
| 
       219 
     | 
    
         
            -
              # If a %{name} value does not exist, then no substitution occurs.
         
     | 
| 
       220 
     | 
    
         
            -
              public
         
     | 
| 
       221 
     | 
    
         
            -
              def sprintf(format)
         
     | 
| 
       222 
     | 
    
         
            -
                LogStash::StringInterpolation.evaluate(self, format)
         
     | 
| 
       223 
     | 
    
         
            -
              end
         
     | 
| 
       224 
     | 
    
         
            -
             
     | 
| 
       225 
     | 
    
         
            -
              def tag(value)
         
     | 
| 
       226 
     | 
    
         
            -
                # Generalize this method for more usability
         
     | 
| 
       227 
     | 
    
         
            -
                self["tags"] ||= []
         
     | 
| 
       228 
     | 
    
         
            -
                self["tags"] << value unless self["tags"].include?(value)
         
     | 
| 
       229 
     | 
    
         
            -
              end
         
     | 
| 
       230 
     | 
    
         
            -
             
     | 
| 
       231 
     | 
    
         
            -
              private
         
     | 
| 
       232 
     | 
    
         
            -
             
     | 
| 
       233 
     | 
    
         
            -
              def init_timestamp(o)
         
     | 
| 
       234 
     | 
    
         
            -
                begin
         
     | 
| 
       235 
     | 
    
         
            -
                  timestamp = LogStash::Timestamp.coerce(o)
         
     | 
| 
       236 
     | 
    
         
            -
                  return timestamp if timestamp
         
     | 
| 
       237 
     | 
    
         
            -
             
     | 
| 
       238 
     | 
    
         
            -
                  LOGGER.warn("Unrecognized #{TIMESTAMP} value, setting current time to #{TIMESTAMP}, original in #{TIMESTAMP_FAILURE_FIELD}field", :value => o.inspect)
         
     | 
| 
       239 
     | 
    
         
            -
                rescue LogStash::TimestampParserError => e
         
     | 
| 
       240 
     | 
    
         
            -
                  LOGGER.warn("Error parsing #{TIMESTAMP} string, setting current time to #{TIMESTAMP}, original in #{TIMESTAMP_FAILURE_FIELD} field", :value => o.inspect, :exception => e.message)
         
     | 
| 
       241 
     | 
    
         
            -
                end
         
     | 
| 
       242 
     | 
    
         
            -
             
     | 
| 
       243 
     | 
    
         
            -
                @data["tags"] ||= []
         
     | 
| 
       244 
     | 
    
         
            -
                @data["tags"] << TIMESTAMP_FAILURE_TAG unless @data["tags"].include?(TIMESTAMP_FAILURE_TAG)
         
     | 
| 
       245 
     | 
    
         
            -
                @data[TIMESTAMP_FAILURE_FIELD] = o
         
     | 
| 
       246 
     | 
    
         
            -
             
     | 
| 
       247 
     | 
    
         
            -
                LogStash::Timestamp.now
         
     | 
| 
       248 
     | 
    
         
            -
              end
         
     | 
| 
       249 
     | 
    
         
            -
             
     | 
| 
       250 
     | 
    
         
            -
              public
         
     | 
| 
       251 
     | 
    
         
            -
              def to_hash_with_metadata
         
     | 
| 
       252 
     | 
    
         
            -
                @metadata.empty? ? to_hash : to_hash.merge(METADATA => @metadata)
         
     | 
| 
       253 
     | 
    
         
            -
              end
         
     | 
| 
       254 
     | 
    
         
            -
             
     | 
| 
       255 
     | 
    
         
            -
              public
         
     | 
| 
       256 
     | 
    
         
            -
              def to_json_with_metadata(*args)
         
     | 
| 
       257 
     | 
    
         
            -
                # ignore arguments to respect accepted to_json method signature
         
     | 
| 
       258 
     | 
    
         
            -
                LogStash::Json.dump(to_hash_with_metadata)
         
     | 
| 
       259 
     | 
    
         
            -
              end # def to_json
         
     | 
| 
       260 
     | 
    
         
            -
             
     | 
| 
       261 
     | 
    
         
            -
              def self.validate_value(value)
         
     | 
| 
       262 
     | 
    
         
            -
                case value
         
     | 
| 
       263 
     | 
    
         
            -
                when String
         
     | 
| 
       264 
     | 
    
         
            -
                  raise("expected UTF-8 encoding for value=#{value}, encoding=#{value.encoding.inspect}") unless value.encoding == Encoding::UTF_8
         
     | 
| 
       265 
     | 
    
         
            -
                  raise("invalid UTF-8 encoding for value=#{value}, encoding=#{value.encoding.inspect}") unless value.valid_encoding?
         
     | 
| 
       266 
     | 
    
         
            -
                  value
         
     | 
| 
       267 
     | 
    
         
            -
                when Array
         
     | 
| 
       268 
     | 
    
         
            -
                  value.each{|v| validate_value(v)} # don't map, return original object
         
     | 
| 
       269 
     | 
    
         
            -
                  value
         
     | 
| 
       270 
     | 
    
         
            -
                else
         
     | 
| 
       271 
     | 
    
         
            -
                  value
         
     | 
| 
       272 
     | 
    
         
            -
                end
         
     | 
| 
       273 
     | 
    
         
            -
              end
         
     | 
| 
       274 
     | 
    
         
            -
             
     | 
| 
       275 
     | 
    
         
            -
            end # class LogStash::Event
         
     |