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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d5043bd9ad3a1cc123d446408dda36912b2dddd57b385c1c759923d66ee60ef
4
- data.tar.gz: d721fa819bda7140a27c5ca9971058060591d7f497b6319b274500b7796377d2
3
+ metadata.gz: a6d027adb56504c63006dd1c960fa31bef1405f41d3dc521ad7547e2680828e8
4
+ data.tar.gz: 6d575c491a13d926b4f76f0ddf2fb7d1f06a317b3d18892d6cfe2f8d4a04afce
5
5
  SHA512:
6
- metadata.gz: ea69bedf30527c0bc0e7eb39fe9fd6539759429564563ae4eb645c81f046644371d244356c2ef3ac93aca476a0462cb09a8d12f3a34e7aea2c31a70bfa2aff6e
7
- data.tar.gz: 5be4fdf65df4f3bc48a0b2216f57a1d6a046e33819c0127a2e4695192b2bd36a855e0a881a679eec4e9f1880a5f00e25ce078ec052f1b91ae56b8b02ee4708ff
6
+ metadata.gz: 89d481180b4911e2ad14289b018117224ad3198df9349c01dd247fdeedcc66588c161a1d9ce2d1e44550ee98f9744b8770080754c9d83ec62ec8f05fb37b1224
7
+ data.tar.gz: f7f6a43b919a03d300064aba1fc1dbc776d7aa025f9c123d50e2dab99f20765eb5fd500bce233f477b083c76f275fce344142abaf3dcf420e0174fd46a369181
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source 'https://rubygems.org'
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 --local logstash-input-sls-0.0.1.gem
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 --local logstash-input-sls-0.0.1.gem
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
- class LogHubProcessor < LogstashLogHubProcessor
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
- @handler = LogHubProcessor.new()
56
- @handler.setCheckpointSecond(@checkpoint_second)
57
- @handler.setIncludeMeta(@include_meta)
58
- @handler.queue = queue
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-sls'
3
- s.version = '0.0.2'
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.2
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: 2019-07-25 00:00:00.000000000 Z
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
- rubyforge_project:
112
- rubygems_version: 2.7.6
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: []