logstash-input-sls 0.0.2 → 0.0.7
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 +4 -4
- data/Gemfile +1 -1
- data/README.md +1 -9
- data/README_CN.md +1 -11
- data/lib/logstash/inputs/logservice.rb +39 -13
- data/lib/logstash/vendor/jar-dependencies/runtime-jars/logstash-input-sls-1.0-SNAPSHOT.jar +0 -0
- data/logstash-input-sls.gemspec +1 -1
- metadata +14 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a6d027adb56504c63006dd1c960fa31bef1405f41d3dc521ad7547e2680828e8
|
|
4
|
+
data.tar.gz: 6d575c491a13d926b4f76f0ddf2fb7d1f06a317b3d18892d6cfe2f8d4a04afce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 89d481180b4911e2ad14289b018117224ad3198df9349c01dd247fdeedcc66588c161a1d9ce2d1e44550ee98f9744b8770080754c9d83ec62ec8f05fb37b1224
|
|
7
|
+
data.tar.gz: f7f6a43b919a03d300064aba1fc1dbc776d7aa025f9c123d50e2dab99f20765eb5fd500bce233f477b083c76f275fce344142abaf3dcf420e0174fd46a369181
|
data/Gemfile
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
source 'https://
|
|
1
|
+
source 'https://gems.ruby-china.com'
|
|
2
2
|
gemspec
|
data/README.md
CHANGED
|
@@ -50,20 +50,12 @@ This plugin supports the following configuration options
|
|
|
50
50
|
|
|
51
51
|
## Install the plugin
|
|
52
52
|
|
|
53
|
-
[logstash-input-sls-0.0.1.gem](https://github.com/aliyun/logstash-input-logservice/raw/master/logstash-input-sls-0.0.1.gem)
|
|
54
|
-
|
|
55
53
|
you can build the gem and install it using:
|
|
56
54
|
|
|
57
|
-
- Build your plugin gem
|
|
58
|
-
|
|
59
|
-
```sh
|
|
60
|
-
gem build logstash-input-sls.gemspec
|
|
61
|
-
```
|
|
62
|
-
|
|
63
55
|
- Install the plugin from the Logstash home
|
|
64
56
|
|
|
65
57
|
```sh
|
|
66
|
-
logstash-plugin install
|
|
58
|
+
logstash-plugin install logstash-input-sls
|
|
67
59
|
```
|
|
68
60
|
|
|
69
61
|
- Start Logstash
|
data/README_CN.md
CHANGED
|
@@ -63,20 +63,10 @@ output {
|
|
|
63
63
|
|
|
64
64
|
## 安装插件
|
|
65
65
|
|
|
66
|
-
* 注意:如果没有修改源码可直接安装
|
|
67
|
-
|
|
68
|
-
下载地址:[logstash-input-sls-0.0.1.gem](https://github.com/aliyun/logstash-input-logservice/raw/master/logstash-input-sls-0.0.1.gem)
|
|
69
|
-
|
|
70
|
-
- 构建 插件
|
|
71
|
-
|
|
72
|
-
```sh
|
|
73
|
-
gem build logstash-input-sls.gemspec
|
|
74
|
-
```
|
|
75
|
-
|
|
76
66
|
- 安装 日志服务 input 插件
|
|
77
67
|
|
|
78
68
|
```sh
|
|
79
|
-
logstash-plugin install
|
|
69
|
+
logstash-plugin install logstash-input-sls
|
|
80
70
|
```
|
|
81
71
|
|
|
82
72
|
- 启动 Logstash
|
|
@@ -3,6 +3,8 @@ require "logstash/namespace"
|
|
|
3
3
|
require "logstash/event"
|
|
4
4
|
require "logstash/environment"
|
|
5
5
|
require "logstash/inputs/base"
|
|
6
|
+
require 'json'
|
|
7
|
+
require "stud/interval"
|
|
6
8
|
|
|
7
9
|
root_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
|
8
10
|
LogStash::Environment.load_runtime_jars! File.join(root_dir, "vendor")
|
|
@@ -16,14 +18,7 @@ class LogStash::Inputs::LogService < LogStash::Inputs::Base
|
|
|
16
18
|
super(*args)
|
|
17
19
|
end
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
attr_accessor :queue
|
|
21
|
-
def showContent(logmap)
|
|
22
|
-
event = LogStash::Event.new(logmap)
|
|
23
|
-
# this will block if output_queue is full. output_queue size is 20
|
|
24
|
-
@queue << event
|
|
25
|
-
end
|
|
26
|
-
end
|
|
21
|
+
default :codec, "json"
|
|
27
22
|
|
|
28
23
|
config_name "logservice"
|
|
29
24
|
|
|
@@ -38,6 +33,8 @@ class LogStash::Inputs::LogService < LogStash::Inputs::Base
|
|
|
38
33
|
config :checkpoint_second, :validate => :number, :default => 30
|
|
39
34
|
config :include_meta, :validate => :boolean, :default => true
|
|
40
35
|
config :consumer_name_with_ip, :validate => :boolean, :default => true
|
|
36
|
+
config :queue_size, :validate => :number, :default => 1000
|
|
37
|
+
Processor = com.aliyun.log.logstash
|
|
41
38
|
public
|
|
42
39
|
def register
|
|
43
40
|
@logger.info("Init logstash-input-logservice", :endpoint => @endpoint, :project => @project, :logstore => @logstore,
|
|
@@ -51,16 +48,45 @@ class LogStash::Inputs::LogService < LogStash::Inputs::Base
|
|
|
51
48
|
if @consumer_name_with_ip
|
|
52
49
|
@ip_suffix = '_' + @local_address
|
|
53
50
|
end
|
|
51
|
+
@process_pid = "_#{Process.pid}"
|
|
54
52
|
@logger.info("Running logstash-input-logservice",:local_address => @local_address)
|
|
55
|
-
@
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
LogHubStarter.startWorker(@handler, @endpoint, @access_id, @access_key, @project, @logstore, @consumer_group, @consumer_name + @ip_suffix, @position)
|
|
53
|
+
LogHubStarter.startWorker(@endpoint, @access_id, @access_key, @project, @logstore, @consumer_group, @consumer_name + @ip_suffix + @process_pid, @position, @checkpoint_second, @include_meta, @queue_size)
|
|
54
|
+
|
|
55
|
+
consume(queue)
|
|
56
|
+
|
|
60
57
|
rescue Exception => e
|
|
61
58
|
@logger.error("Start logstash-input-logservice", :endpoint => @endpoint, :project => @project, :logstore => @logstore,
|
|
62
59
|
:consumer_group => @consumer_group, :consumer_name => @consumer_name, :position => @position,
|
|
63
60
|
:checkpoint_second => @checkpoint_second, :include_meta => @include_meta, :consumer_name_with_ip => @consumer_name_with_ip, :exception => e)
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def consume(queue)
|
|
65
|
+
while !stop?
|
|
66
|
+
while !Processor.LogstashLogHubProcessor.queueCache.isEmpty
|
|
67
|
+
begin
|
|
68
|
+
textmap = Processor.LogstashLogHubProcessor.queueCache.poll
|
|
69
|
+
event = LogStash::Event.new(textmap)
|
|
70
|
+
decorate(event)
|
|
71
|
+
queue << event
|
|
72
|
+
rescue Exception => e
|
|
73
|
+
@logger.error("Consume logstash-input-logservice", :endpoint => @endpoint, :project => @project, :logstore => @logstore,
|
|
74
|
+
:consumer_group => @consumer_group, :consumer_name => @consumer_name, :position => @position,
|
|
75
|
+
:checkpoint_second => @checkpoint_second, :include_meta => @include_meta, :consumer_name_with_ip => @consumer_name_with_ip, :exception => e)
|
|
76
|
+
retry
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
Stud.stoppable_sleep(@checkpoint_second) { stop? }
|
|
80
|
+
end # loop
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def stop
|
|
85
|
+
# nothing to do in this case so it is not necessary to define stop
|
|
86
|
+
# examples of common "stop" tasks:
|
|
87
|
+
# * close sockets (unblocking blocking reads/accepts)
|
|
88
|
+
# * cleanup temporary files
|
|
89
|
+
# * terminate spawned threads
|
|
64
90
|
end
|
|
65
91
|
|
|
66
92
|
def teardown
|
|
Binary file
|
data/logstash-input-sls.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'logstash-input-sls'
|
|
3
|
-
s.version = '0.0.
|
|
3
|
+
s.version = '0.0.7'
|
|
4
4
|
s.licenses = ['MIT']
|
|
5
5
|
s.summary = "This sls input streams a string at a definable interval."
|
|
6
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 gemname. This gem is not a stand-alone program"
|
metadata
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logstash-input-sls
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- lichao
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-09-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: logstash-core-plugin-api
|
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
|
15
16
|
requirements:
|
|
16
17
|
- - ">="
|
|
@@ -19,9 +20,8 @@ dependencies:
|
|
|
19
20
|
- - "<="
|
|
20
21
|
- !ruby/object:Gem::Version
|
|
21
22
|
version: '2.99'
|
|
22
|
-
name: logstash-core-plugin-api
|
|
23
|
-
prerelease: false
|
|
24
23
|
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
26
|
requirements:
|
|
27
27
|
- - ">="
|
|
@@ -31,42 +31,42 @@ dependencies:
|
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
32
|
version: '2.99'
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: logstash-codec-plain
|
|
34
35
|
requirement: !ruby/object:Gem::Requirement
|
|
35
36
|
requirements:
|
|
36
37
|
- - ">="
|
|
37
38
|
- !ruby/object:Gem::Version
|
|
38
39
|
version: '0'
|
|
39
|
-
name: logstash-codec-plain
|
|
40
|
-
prerelease: false
|
|
41
40
|
type: :runtime
|
|
41
|
+
prerelease: false
|
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - ">="
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
46
|
version: '0'
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: stud
|
|
48
49
|
requirement: !ruby/object:Gem::Requirement
|
|
49
50
|
requirements:
|
|
50
51
|
- - ">="
|
|
51
52
|
- !ruby/object:Gem::Version
|
|
52
53
|
version: 0.0.22
|
|
53
|
-
name: stud
|
|
54
|
-
prerelease: false
|
|
55
54
|
type: :runtime
|
|
55
|
+
prerelease: false
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - ">="
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
60
|
version: 0.0.22
|
|
61
61
|
- !ruby/object:Gem::Dependency
|
|
62
|
+
name: logstash-devutils
|
|
62
63
|
requirement: !ruby/object:Gem::Requirement
|
|
63
64
|
requirements:
|
|
64
65
|
- - ">="
|
|
65
66
|
- !ruby/object:Gem::Version
|
|
66
67
|
version: '0'
|
|
67
|
-
name: logstash-devutils
|
|
68
|
-
prerelease: false
|
|
69
68
|
type: :development
|
|
69
|
+
prerelease: false
|
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - ">="
|
|
@@ -93,7 +93,7 @@ licenses:
|
|
|
93
93
|
metadata:
|
|
94
94
|
logstash_plugin: 'true'
|
|
95
95
|
logstash_group: input
|
|
96
|
-
post_install_message:
|
|
96
|
+
post_install_message:
|
|
97
97
|
rdoc_options: []
|
|
98
98
|
require_paths:
|
|
99
99
|
- lib
|
|
@@ -108,9 +108,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
109
|
version: '0'
|
|
110
110
|
requirements: []
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
signing_key:
|
|
111
|
+
rubygems_version: 3.0.3
|
|
112
|
+
signing_key:
|
|
114
113
|
specification_version: 4
|
|
115
114
|
summary: This sls input streams a string at a definable interval.
|
|
116
115
|
test_files: []
|