logstash-input-oss 0.0.1-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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +2 -0
- data/CONTRIBUTORS +10 -0
- data/DEVELOPER.md +10 -0
- data/Gemfile +2 -0
- data/LICENSE +11 -0
- data/README.md +143 -0
- data/lib/com/aliyun/aliyun-java-sdk-core/3.4.0/aliyun-java-sdk-core-3.4.0.jar +0 -0
- data/lib/com/aliyun/aliyun-java-sdk-ecs/4.2.0/aliyun-java-sdk-ecs-4.2.0.jar +0 -0
- data/lib/com/aliyun/aliyun-java-sdk-ram/3.0.0/aliyun-java-sdk-ram-3.0.0.jar +0 -0
- data/lib/com/aliyun/aliyun-java-sdk-sts/3.0.0/aliyun-java-sdk-sts-3.0.0.jar +0 -0
- data/lib/com/aliyun/oss/aliyun-sdk-oss/3.4.0/aliyun-sdk-oss-3.4.0.jar +0 -0
- data/lib/com/sun/jersey/jersey-core/1.9/jersey-core-1.9.jar +0 -0
- data/lib/com/sun/jersey/jersey-json/1.9/jersey-json-1.9.jar +0 -0
- data/lib/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar +0 -0
- data/lib/commons-codec/commons-codec/1.9/commons-codec-1.9.jar +0 -0
- data/lib/commons-logging/commons-logging/1.2/commons-logging-1.2.jar +0 -0
- data/lib/javax/activation/activation/1.1/activation-1.1.jar +0 -0
- data/lib/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar +0 -0
- data/lib/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar +0 -0
- data/lib/logstash-input-oss_jars.rb +54 -0
- data/lib/logstash/inputs/mns/message.rb +53 -0
- data/lib/logstash/inputs/mns/request.rb +85 -0
- data/lib/logstash/inputs/oss.rb +382 -0
- data/lib/logstash/inputs/version.rb +14 -0
- data/lib/org/apache/httpcomponents/httpclient/4.4.1/httpclient-4.4.1.jar +0 -0
- data/lib/org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1.jar +0 -0
- data/lib/org/codehaus/jackson/jackson-core-asl/1.8.3/jackson-core-asl-1.8.3.jar +0 -0
- data/lib/org/codehaus/jackson/jackson-jaxrs/1.8.3/jackson-jaxrs-1.8.3.jar +0 -0
- data/lib/org/codehaus/jackson/jackson-mapper-asl/1.8.3/jackson-mapper-asl-1.8.3.jar +0 -0
- data/lib/org/codehaus/jackson/jackson-xc/1.8.3/jackson-xc-1.8.3.jar +0 -0
- data/lib/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar +0 -0
- data/lib/org/jdom/jdom/1.1/jdom-1.1.jar +0 -0
- data/lib/org/json/json/20170516/json-20170516.jar +0 -0
- data/lib/stax/stax-api/1.0.1/stax-api-1.0.1.jar +0 -0
- data/logstash-input-oss.gemspec +33 -0
- data/spec/integration/common.rb +79 -0
- data/spec/integration/oss_spec.rb +73 -0
- data/spec/sample/uncompressed.log +37 -0
- data/spec/sample/uncompressed.log.1.gz +0 -0
- metadata +249 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
Gem::Specification.new do |s|
|
|
2
|
+
s.name = 'logstash-input-oss'
|
|
3
|
+
s.version = '0.0.1'
|
|
4
|
+
s.licenses = ['Apache-2.0']
|
|
5
|
+
s.summary = 'Streams events from files in an OSS(Aliyun Object Storage Service) bucket'
|
|
6
|
+
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gem-name. This gem is not a stand-alone program"
|
|
7
|
+
s.authors = ['Jinhu Wu']
|
|
8
|
+
s.email = 'jinhu.wu.nju@gmail.com'
|
|
9
|
+
s.require_paths = ['lib']
|
|
10
|
+
s.homepage = "http://www.elastic.co/guide/en/logstash/current/index.html"
|
|
11
|
+
|
|
12
|
+
# Files
|
|
13
|
+
s.files = Dir['lib/**/*','spec/**/*','vendor/**/*','*.gemspec','*.md','CONTRIBUTORS','Gemfile','LICENSE','NOTICE.TXT']
|
|
14
|
+
# Tests
|
|
15
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
|
16
|
+
|
|
17
|
+
# Special flag to let us know this is actually a logstash plugin
|
|
18
|
+
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" }
|
|
19
|
+
|
|
20
|
+
# Gem dependencies
|
|
21
|
+
s.add_runtime_dependency "logstash-core-plugin-api", "~> 2.0"
|
|
22
|
+
s.add_runtime_dependency "logstash-codec-plain", "~> 3.0"
|
|
23
|
+
s.add_runtime_dependency "concurrent-ruby", "~> 1.0"
|
|
24
|
+
s.add_runtime_dependency "nokogiri", '~> 1.10', '>= 1.10.0'
|
|
25
|
+
s.add_runtime_dependency "rest-client", '~> 1.8', '>= 1.8.0'
|
|
26
|
+
s.add_runtime_dependency "uuid", '~> 2.3', '>= 2.3.9'
|
|
27
|
+
s.add_runtime_dependency 'stud', '~> 0.0.18'
|
|
28
|
+
s.add_development_dependency "logstash-devutils", "~> 1.3"
|
|
29
|
+
s.add_development_dependency "logstash-codec-line", "~> 3.0"
|
|
30
|
+
s.platform = 'java'
|
|
31
|
+
s.add_runtime_dependency 'jar-dependencies', '~> 0.3'
|
|
32
|
+
s.requirements << 'jar com.aliyun.oss:aliyun-sdk-oss, 3.4.0'
|
|
33
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
|
|
3
|
+
require 'logstash/devutils/rspec/spec_helper'
|
|
4
|
+
require 'logstash/logging/logger'
|
|
5
|
+
require 'logstash/inputs/oss'
|
|
6
|
+
|
|
7
|
+
java_import 'com.aliyun.oss.model.GetObjectRequest'
|
|
8
|
+
|
|
9
|
+
# This file contains the common logic used by integration tests
|
|
10
|
+
shared_context "plugin initialize" do
|
|
11
|
+
let(:endpoint) { ENV['OSS_ENDPOINT'] }
|
|
12
|
+
let(:bucket) { ENV['OSS_BUCKET'] }
|
|
13
|
+
let(:access_key_id) { ENV['OSS_ACCESS_KEY'] }
|
|
14
|
+
let(:access_key_secret) { ENV['OSS_SECRET_KEY'] }
|
|
15
|
+
let(:backup_add_prefix) { 'input-oss/' }
|
|
16
|
+
let(:backup_to_bucket) { ENV['BACKUP_BUCKET'] }
|
|
17
|
+
let(:backup_to_dir) { ENV['BACKUP_DIR'] }
|
|
18
|
+
let(:common_configurations) do
|
|
19
|
+
{
|
|
20
|
+
"endpoint" => endpoint,
|
|
21
|
+
"bucket" => bucket,
|
|
22
|
+
"access_key_id" => access_key_id,
|
|
23
|
+
"access_key_secret" => access_key_secret,
|
|
24
|
+
"stop_for_test" => true,
|
|
25
|
+
"include_object_properties" => true,
|
|
26
|
+
"mns_settings" => {
|
|
27
|
+
"endpoint" => ENV['MNS_ENDPOINT'],
|
|
28
|
+
"queue" => ENV['MNS_QUEUE'],
|
|
29
|
+
"poll_interval_seconds" => 3,
|
|
30
|
+
"wait_seconds" => 3
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
LogStash::Logging::Logger::configure_logging("debug") if ENV["DEBUG"]
|
|
36
|
+
|
|
37
|
+
let(:oss) { OSSClientBuilder.new().build(endpoint, access_key_id, access_key_secret) }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def fetch_events(settings, size)
|
|
41
|
+
queue = []
|
|
42
|
+
input = LogStash::Inputs::OSS.new(settings)
|
|
43
|
+
input.register
|
|
44
|
+
thread = Thread.start do
|
|
45
|
+
input.run(queue)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
thread.join
|
|
49
|
+
|
|
50
|
+
expect(queue.size).to eq(size)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# remove object with `prefix`
|
|
54
|
+
def clean_bucket(bucket)
|
|
55
|
+
oss.listObjects(bucket, "").getObjectSummaries().each do |objectSummary|
|
|
56
|
+
oss.deleteObject(bucket, objectSummary.getKey())
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def delete_bucket(bucket)
|
|
61
|
+
oss.deleteBucket(bucket)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def list_remote_files(bucket, prefix)
|
|
65
|
+
oss.listObjects(bucket, prefix).getObjectSummaries().collect(&:getKey)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def upload_local_file(local_file, remote_file_name)
|
|
69
|
+
file = File.join(File.dirname(__FILE__), local_file)
|
|
70
|
+
oss.putObject(bucket, remote_file_name, java.io.File.new(file))
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def upload(prefix)
|
|
74
|
+
upload_local_file('../sample/uncompressed.log', "uncompressed.log/")
|
|
75
|
+
upload_local_file('../sample/uncompressed.log', "uncompressed.log")
|
|
76
|
+
upload_local_file('../sample/uncompressed.log', "uncompressed.log.1.gz")
|
|
77
|
+
upload_local_file('../sample/uncompressed.log', "#{prefix}uncompressed.log")
|
|
78
|
+
upload_local_file('../sample/uncompressed.log.1.gz', "#{prefix}exclude/uncompressed.log.1.gz")
|
|
79
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'rspec'
|
|
3
|
+
require_relative 'common'
|
|
4
|
+
|
|
5
|
+
describe 'integration tests', :integration => true do
|
|
6
|
+
include_context 'plugin initialize'
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
Thread.abort_on_exception = true
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
after do
|
|
13
|
+
clean_bucket(bucket)
|
|
14
|
+
FileUtils.rm_rf(backup_to_dir)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "backup to another bucket" do
|
|
18
|
+
prefix = rand(999999).to_s + '/'
|
|
19
|
+
upload(prefix)
|
|
20
|
+
fetch_events(common_configurations.merge(
|
|
21
|
+
{ "backup_to_bucket" => backup_to_bucket,
|
|
22
|
+
"backup_add_prefix" => backup_add_prefix,
|
|
23
|
+
"prefix" => prefix,
|
|
24
|
+
}), 74)
|
|
25
|
+
expect(list_remote_files(backup_to_bucket, backup_add_prefix).size).to eq(2)
|
|
26
|
+
expect(list_remote_files(bucket, prefix).size).to eq(2)
|
|
27
|
+
clean_bucket(backup_to_bucket)
|
|
28
|
+
delete_bucket(backup_to_bucket)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "delete after backup" do
|
|
32
|
+
prefix = rand(999999).to_s + '/'
|
|
33
|
+
upload(prefix)
|
|
34
|
+
fetch_events(common_configurations.merge(
|
|
35
|
+
{ "backup_to_bucket" => backup_to_bucket,
|
|
36
|
+
"backup_add_prefix" => backup_add_prefix,
|
|
37
|
+
"prefix" => prefix,
|
|
38
|
+
"delete" => true
|
|
39
|
+
}), 74)
|
|
40
|
+
expect(list_remote_files(backup_to_bucket, backup_add_prefix).size).to eq(2)
|
|
41
|
+
expect(list_remote_files(bucket, prefix).size).to eq(0)
|
|
42
|
+
clean_bucket(backup_to_bucket)
|
|
43
|
+
delete_bucket(backup_to_bucket)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "backup to local dir" do
|
|
47
|
+
prefix = rand(999999).to_s + '/'
|
|
48
|
+
upload(prefix)
|
|
49
|
+
fetch_events(common_configurations.merge(
|
|
50
|
+
{
|
|
51
|
+
"backup_to_dir" => backup_to_dir,
|
|
52
|
+
"prefix" => prefix,
|
|
53
|
+
"delete" => true
|
|
54
|
+
}), 74)
|
|
55
|
+
expect(list_remote_files(bucket, prefix).size).to eq(0)
|
|
56
|
+
expect(Dir.glob("#{backup_to_dir}/**/*").size).to eq(4)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "exclude pattern" do
|
|
60
|
+
prefix = rand(999999).to_s + '/'
|
|
61
|
+
upload(prefix)
|
|
62
|
+
fetch_events(common_configurations.merge(
|
|
63
|
+
{ "backup_to_bucket" => backup_to_bucket,
|
|
64
|
+
"backup_add_prefix" => backup_add_prefix,
|
|
65
|
+
"prefix" => prefix,
|
|
66
|
+
"exclude_pattern" => "^" + prefix + "exclude"
|
|
67
|
+
}), 37)
|
|
68
|
+
expect(list_remote_files(backup_to_bucket, backup_add_prefix).size).to eq(1)
|
|
69
|
+
expect(list_remote_files(bucket, prefix).size).to eq(2)
|
|
70
|
+
clean_bucket(backup_to_bucket)
|
|
71
|
+
delete_bucket(backup_to_bucket)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
2019-06-11 20:45:35,798 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891466_150647]
|
|
2
|
+
2019-06-11 20:45:35,798 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891466_150647]
|
|
3
|
+
2019-06-11 20:45:38,799 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891466_150647]
|
|
4
|
+
2019-06-11 20:46:35,800 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891467_150648]
|
|
5
|
+
2019-06-11 20:46:35,800 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891467_150648]
|
|
6
|
+
2019-06-11 20:46:38,801 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891467_150648]
|
|
7
|
+
2019-06-11 20:47:35,802 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891468_150649]
|
|
8
|
+
2019-06-11 20:47:35,802 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891468_150649]
|
|
9
|
+
2019-06-11 20:47:38,803 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891468_150649]
|
|
10
|
+
2019-06-11 20:48:41,804 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891469_150650]
|
|
11
|
+
2019-06-11 20:48:41,805 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891469_150650]
|
|
12
|
+
2019-06-11 20:48:44,805 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891469_150650]
|
|
13
|
+
2019-06-11 20:49:44,807 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891470_150651]
|
|
14
|
+
2019-06-11 20:49:44,807 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891470_150651]
|
|
15
|
+
2019-06-11 20:49:47,807 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891470_150651]
|
|
16
|
+
2019-06-11 20:50:44,808 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891471_150652]
|
|
17
|
+
2019-06-11 20:50:44,809 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891471_150652]
|
|
18
|
+
2019-06-11 20:50:47,809 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891471_150652]
|
|
19
|
+
2019-06-11 20:51:44,810 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891472_150653]
|
|
20
|
+
2019-06-11 20:51:44,810 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891472_150653]
|
|
21
|
+
2019-06-11 20:51:47,811 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891472_150653]
|
|
22
|
+
2019-06-11 20:52:44,812 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891473_150654]
|
|
23
|
+
2019-06-11 20:52:44,812 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891473_150654]
|
|
24
|
+
2019-06-11 20:52:47,813 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891473_150654]
|
|
25
|
+
2019-06-11 20:53:50,815 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891474_150655]
|
|
26
|
+
2019-06-11 20:53:50,815 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891474_150655]
|
|
27
|
+
2019-06-11 20:53:53,815 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891474_150655]
|
|
28
|
+
2019-06-11 20:54:56,817 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891475_150656]
|
|
29
|
+
2019-06-11 20:54:56,817 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891475_150656]
|
|
30
|
+
2019-06-11 20:54:59,817 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891475_150656]
|
|
31
|
+
2019-06-11 20:55:56,819 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891476_150657]
|
|
32
|
+
2019-06-11 20:55:56,819 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891476_150657]
|
|
33
|
+
2019-06-11 20:55:59,819 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891476_150657]
|
|
34
|
+
2019-06-11 20:56:56,821 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.173:50010 to delete [blk_1073891477_150658]
|
|
35
|
+
2019-06-11 20:56:56,821 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.174:50010 to delete [blk_1073891477_150658]
|
|
36
|
+
2019-06-11 20:56:59,821 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.172:50010 to delete [blk_1073891477_150658]
|
|
37
|
+
2019-06-11 20:57:38,822 INFO BlockStateChange: BLOCK* BlockManager: ask 192.168.0.175:50010 to delete [blk_1073891482_150663]
|
|
Binary file
|
metadata
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: logstash-input-oss
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: java
|
|
6
|
+
authors:
|
|
7
|
+
- Jinhu Wu
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2019-07-02 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '2.0'
|
|
19
|
+
name: logstash-core-plugin-api
|
|
20
|
+
prerelease: false
|
|
21
|
+
type: :runtime
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '2.0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '3.0'
|
|
33
|
+
name: logstash-codec-plain
|
|
34
|
+
prerelease: false
|
|
35
|
+
type: :runtime
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '3.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '1.0'
|
|
47
|
+
name: concurrent-ruby
|
|
48
|
+
prerelease: false
|
|
49
|
+
type: :runtime
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '1.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '1.10'
|
|
61
|
+
- - ">="
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: 1.10.0
|
|
64
|
+
name: nokogiri
|
|
65
|
+
prerelease: false
|
|
66
|
+
type: :runtime
|
|
67
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
68
|
+
requirements:
|
|
69
|
+
- - "~>"
|
|
70
|
+
- !ruby/object:Gem::Version
|
|
71
|
+
version: '1.10'
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.10.0
|
|
75
|
+
- !ruby/object:Gem::Dependency
|
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - "~>"
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '1.8'
|
|
81
|
+
- - ">="
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: 1.8.0
|
|
84
|
+
name: rest-client
|
|
85
|
+
prerelease: false
|
|
86
|
+
type: :runtime
|
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
88
|
+
requirements:
|
|
89
|
+
- - "~>"
|
|
90
|
+
- !ruby/object:Gem::Version
|
|
91
|
+
version: '1.8'
|
|
92
|
+
- - ">="
|
|
93
|
+
- !ruby/object:Gem::Version
|
|
94
|
+
version: 1.8.0
|
|
95
|
+
- !ruby/object:Gem::Dependency
|
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
|
97
|
+
requirements:
|
|
98
|
+
- - "~>"
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: '2.3'
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 2.3.9
|
|
104
|
+
name: uuid
|
|
105
|
+
prerelease: false
|
|
106
|
+
type: :runtime
|
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
108
|
+
requirements:
|
|
109
|
+
- - "~>"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: '2.3'
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: 2.3.9
|
|
115
|
+
- !ruby/object:Gem::Dependency
|
|
116
|
+
requirement: !ruby/object:Gem::Requirement
|
|
117
|
+
requirements:
|
|
118
|
+
- - "~>"
|
|
119
|
+
- !ruby/object:Gem::Version
|
|
120
|
+
version: 0.0.18
|
|
121
|
+
name: stud
|
|
122
|
+
prerelease: false
|
|
123
|
+
type: :runtime
|
|
124
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
125
|
+
requirements:
|
|
126
|
+
- - "~>"
|
|
127
|
+
- !ruby/object:Gem::Version
|
|
128
|
+
version: 0.0.18
|
|
129
|
+
- !ruby/object:Gem::Dependency
|
|
130
|
+
requirement: !ruby/object:Gem::Requirement
|
|
131
|
+
requirements:
|
|
132
|
+
- - "~>"
|
|
133
|
+
- !ruby/object:Gem::Version
|
|
134
|
+
version: '1.3'
|
|
135
|
+
name: logstash-devutils
|
|
136
|
+
prerelease: false
|
|
137
|
+
type: :development
|
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
139
|
+
requirements:
|
|
140
|
+
- - "~>"
|
|
141
|
+
- !ruby/object:Gem::Version
|
|
142
|
+
version: '1.3'
|
|
143
|
+
- !ruby/object:Gem::Dependency
|
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
|
145
|
+
requirements:
|
|
146
|
+
- - "~>"
|
|
147
|
+
- !ruby/object:Gem::Version
|
|
148
|
+
version: '3.0'
|
|
149
|
+
name: logstash-codec-line
|
|
150
|
+
prerelease: false
|
|
151
|
+
type: :development
|
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
153
|
+
requirements:
|
|
154
|
+
- - "~>"
|
|
155
|
+
- !ruby/object:Gem::Version
|
|
156
|
+
version: '3.0'
|
|
157
|
+
- !ruby/object:Gem::Dependency
|
|
158
|
+
requirement: !ruby/object:Gem::Requirement
|
|
159
|
+
requirements:
|
|
160
|
+
- - "~>"
|
|
161
|
+
- !ruby/object:Gem::Version
|
|
162
|
+
version: '0.3'
|
|
163
|
+
name: jar-dependencies
|
|
164
|
+
prerelease: false
|
|
165
|
+
type: :runtime
|
|
166
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
167
|
+
requirements:
|
|
168
|
+
- - "~>"
|
|
169
|
+
- !ruby/object:Gem::Version
|
|
170
|
+
version: '0.3'
|
|
171
|
+
description: This gem is a Logstash plugin required to be installed on top of the
|
|
172
|
+
Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gem-name. This
|
|
173
|
+
gem is not a stand-alone program
|
|
174
|
+
email: jinhu.wu.nju@gmail.com
|
|
175
|
+
executables: []
|
|
176
|
+
extensions: []
|
|
177
|
+
extra_rdoc_files: []
|
|
178
|
+
files:
|
|
179
|
+
- CHANGELOG.md
|
|
180
|
+
- CONTRIBUTORS
|
|
181
|
+
- DEVELOPER.md
|
|
182
|
+
- Gemfile
|
|
183
|
+
- LICENSE
|
|
184
|
+
- README.md
|
|
185
|
+
- lib/com/aliyun/aliyun-java-sdk-core/3.4.0/aliyun-java-sdk-core-3.4.0.jar
|
|
186
|
+
- lib/com/aliyun/aliyun-java-sdk-ecs/4.2.0/aliyun-java-sdk-ecs-4.2.0.jar
|
|
187
|
+
- lib/com/aliyun/aliyun-java-sdk-ram/3.0.0/aliyun-java-sdk-ram-3.0.0.jar
|
|
188
|
+
- lib/com/aliyun/aliyun-java-sdk-sts/3.0.0/aliyun-java-sdk-sts-3.0.0.jar
|
|
189
|
+
- lib/com/aliyun/oss/aliyun-sdk-oss/3.4.0/aliyun-sdk-oss-3.4.0.jar
|
|
190
|
+
- lib/com/sun/jersey/jersey-core/1.9/jersey-core-1.9.jar
|
|
191
|
+
- lib/com/sun/jersey/jersey-json/1.9/jersey-json-1.9.jar
|
|
192
|
+
- lib/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar
|
|
193
|
+
- lib/commons-codec/commons-codec/1.9/commons-codec-1.9.jar
|
|
194
|
+
- lib/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
|
|
195
|
+
- lib/javax/activation/activation/1.1/activation-1.1.jar
|
|
196
|
+
- lib/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar
|
|
197
|
+
- lib/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar
|
|
198
|
+
- lib/logstash-input-oss_jars.rb
|
|
199
|
+
- lib/logstash/inputs/mns/message.rb
|
|
200
|
+
- lib/logstash/inputs/mns/request.rb
|
|
201
|
+
- lib/logstash/inputs/oss.rb
|
|
202
|
+
- lib/logstash/inputs/version.rb
|
|
203
|
+
- lib/org/apache/httpcomponents/httpclient/4.4.1/httpclient-4.4.1.jar
|
|
204
|
+
- lib/org/apache/httpcomponents/httpcore/4.4.1/httpcore-4.4.1.jar
|
|
205
|
+
- lib/org/codehaus/jackson/jackson-core-asl/1.8.3/jackson-core-asl-1.8.3.jar
|
|
206
|
+
- lib/org/codehaus/jackson/jackson-jaxrs/1.8.3/jackson-jaxrs-1.8.3.jar
|
|
207
|
+
- lib/org/codehaus/jackson/jackson-mapper-asl/1.8.3/jackson-mapper-asl-1.8.3.jar
|
|
208
|
+
- lib/org/codehaus/jackson/jackson-xc/1.8.3/jackson-xc-1.8.3.jar
|
|
209
|
+
- lib/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar
|
|
210
|
+
- lib/org/jdom/jdom/1.1/jdom-1.1.jar
|
|
211
|
+
- lib/org/json/json/20170516/json-20170516.jar
|
|
212
|
+
- lib/stax/stax-api/1.0.1/stax-api-1.0.1.jar
|
|
213
|
+
- logstash-input-oss.gemspec
|
|
214
|
+
- spec/integration/common.rb
|
|
215
|
+
- spec/integration/oss_spec.rb
|
|
216
|
+
- spec/sample/uncompressed.log
|
|
217
|
+
- spec/sample/uncompressed.log.1.gz
|
|
218
|
+
homepage: http://www.elastic.co/guide/en/logstash/current/index.html
|
|
219
|
+
licenses:
|
|
220
|
+
- Apache-2.0
|
|
221
|
+
metadata:
|
|
222
|
+
logstash_plugin: 'true'
|
|
223
|
+
logstash_group: input
|
|
224
|
+
post_install_message:
|
|
225
|
+
rdoc_options: []
|
|
226
|
+
require_paths:
|
|
227
|
+
- lib
|
|
228
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
229
|
+
requirements:
|
|
230
|
+
- - ">="
|
|
231
|
+
- !ruby/object:Gem::Version
|
|
232
|
+
version: '0'
|
|
233
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
234
|
+
requirements:
|
|
235
|
+
- - ">="
|
|
236
|
+
- !ruby/object:Gem::Version
|
|
237
|
+
version: '0'
|
|
238
|
+
requirements:
|
|
239
|
+
- jar com.aliyun.oss:aliyun-sdk-oss, 3.4.0
|
|
240
|
+
rubyforge_project:
|
|
241
|
+
rubygems_version: 2.7.6
|
|
242
|
+
signing_key:
|
|
243
|
+
specification_version: 4
|
|
244
|
+
summary: Streams events from files in an OSS(Aliyun Object Storage Service) bucket
|
|
245
|
+
test_files:
|
|
246
|
+
- spec/integration/common.rb
|
|
247
|
+
- spec/integration/oss_spec.rb
|
|
248
|
+
- spec/sample/uncompressed.log
|
|
249
|
+
- spec/sample/uncompressed.log.1.gz
|