logstash-output-stackify 1.0.0 → 1.0.1
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 +8 -0
- data/LICENSE +11 -0
- data/README.md +31 -2
- data/docs/DEVELOPMENT.md +28 -0
- data/lib/logstash/outputs/stackify.rb +9 -10
- data/logstash-output-stackify.gemspec +6 -4
- data/spec/outputs/stackify_spec.rb +40 -0
- metadata +24 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d53735b4035d55142125702ab144d9911c342e56978ba947cc542d204b35c9b
|
4
|
+
data.tar.gz: 3f2793baec04fa289103e4fa345eb780027166c0cb57d57db22efbea435ea21a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8058d7db838a42892b6b952cff162bd0d3c761ea8451803105977824e51986b2c94c037bd2114bfedfa47b2701b11449445843e24a3ba8d966989062977cd03c
|
7
|
+
data.tar.gz: f86a936b37e833c08af6deff16dcaeb6ba6760bf690a5598bcc2968fabbed209a07dc4fe883bab4caf4da648f1b8b8a22a9826b2ff540ccc7757d5547fd39ab0
|
data/Gemfile
CHANGED
@@ -1,3 +1,11 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
gemspec
|
4
|
+
|
5
|
+
logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
|
6
|
+
use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
|
7
|
+
|
8
|
+
if Dir.exist?(logstash_path) && use_logstash_source
|
9
|
+
gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
|
10
|
+
gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
|
11
|
+
end
|
data/LICENSE
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2
|
+
you may not use this file except in compliance with the License.
|
3
|
+
You may obtain a copy of the License at
|
4
|
+
|
5
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
6
|
+
|
7
|
+
Unless required by applicable law or agreed to in writing, software
|
8
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
See the License for the specific language governing permissions and
|
11
|
+
limitations under the License.
|
data/README.md
CHANGED
@@ -1,2 +1,31 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
|
2
|
+
# Stackify Logstash Output Plugin
|
3
|
+
|
4
|
+
This is a plugin for [Logstash](https://github.com/elastic/logstash).
|
5
|
+
|
6
|
+
## Usage
|
7
|
+
|
8
|
+
1. Download `logstash-output-stackify-#.#.#.gem` file from https://rubygems.org/gems/logstash-output-stackify.
|
9
|
+
|
10
|
+
2. Install
|
11
|
+
`bin/logstash-plugin install /path/to/logstash-output-stackify-#.#.#.gem`
|
12
|
+
|
13
|
+
3. Add plugin to pipeline configuration:
|
14
|
+
```
|
15
|
+
output {
|
16
|
+
stackify {
|
17
|
+
key => "[ACTIVATION KEY]"
|
18
|
+
}
|
19
|
+
}
|
20
|
+
```
|
21
|
+
|
22
|
+
**Optional Configuration Options**:
|
23
|
+
|
24
|
+
* `default_env_name` - used if `env_name_field` is not defined - defaults to `Production`
|
25
|
+
* `default_app_name` - used if `app_name_field` is not defined - defaults to `Logstash`
|
26
|
+
* `env_name_field` - field to use for env name
|
27
|
+
* `server_name_field` - field to use for server name
|
28
|
+
* `app_name_field` - field to use for application name
|
29
|
+
* `level_field` - field to use for log level
|
30
|
+
* `message_field` - field to use for message - defaults to `message`
|
31
|
+
|
data/docs/DEVELOPMENT.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
## References
|
3
|
+
|
4
|
+
* Guide https://www.elastic.co/guide/en/logstash/5.6/_how_to_write_a_logstash_output_plugin.html
|
5
|
+
|
6
|
+
## Install JRuby
|
7
|
+
```
|
8
|
+
brew install jruby
|
9
|
+
jruby -S gem install bundle
|
10
|
+
```
|
11
|
+
|
12
|
+
## Build
|
13
|
+
```
|
14
|
+
|
15
|
+
jruby -S bundle install
|
16
|
+
jruby -S bundle exec rspec
|
17
|
+
jruby -S gem build logstash-output-stackify.gemspec
|
18
|
+
```
|
19
|
+
|
20
|
+
## Install
|
21
|
+
|
22
|
+
```
|
23
|
+
/logstash-5.6.16/bin/logstash-plugin install logstash-output-stackify-#.#.#.gem
|
24
|
+
/logstash-5.6.16/bin/logstash-plugin list
|
25
|
+
```
|
26
|
+
|
27
|
+
|
28
|
+
|
@@ -8,32 +8,32 @@ require "net/https"
|
|
8
8
|
require "logstash/outputs/base"
|
9
9
|
require "logstash/namespace"
|
10
10
|
|
11
|
-
#
|
11
|
+
# Use logstash to ship logs to Stackify
|
12
12
|
class LogStash::Outputs::Stackify < LogStash::Outputs::Base
|
13
13
|
config_name "stackify"
|
14
14
|
|
15
|
-
#
|
15
|
+
# Your Stackify Activation Key
|
16
16
|
config :key, :validate => :string, :required => true
|
17
17
|
|
18
|
-
#
|
18
|
+
# Default Environment Name to associate to log events, used if env_name_field is not defined.
|
19
19
|
config :default_env_name, :validate => :string, :required => false, :default => 'Production'
|
20
20
|
|
21
|
-
#
|
21
|
+
# Default Application Name to associate to log events, used if server_name_field is not defined.
|
22
22
|
config :default_app_name, :validate => :string, :required => false, :default => 'Logstash'
|
23
23
|
|
24
|
-
#
|
24
|
+
# Event Field to use to populate event Environment Name.
|
25
25
|
config :env_name_field, :validate => :string, :required => false, :default => nil
|
26
26
|
|
27
|
-
#
|
27
|
+
# Event Field to use to populate event Server name.
|
28
28
|
config :server_name_field, :validate => :string, :required => false, :default => nil
|
29
29
|
|
30
|
-
#
|
30
|
+
# Event Field to use to populate event Application name.
|
31
31
|
config :app_name_field, :validate => :string, :required => false, :default => nil
|
32
32
|
|
33
|
-
#
|
33
|
+
# Event Field to use to populate event level.
|
34
34
|
config :level_field, :validate => :string, :required => false, :default => nil
|
35
35
|
|
36
|
-
#
|
36
|
+
# Event Field to use to populate event message.
|
37
37
|
config :message_field, :validate => :string, :required => false, :default => 'message'
|
38
38
|
|
39
39
|
public
|
@@ -162,7 +162,6 @@ class LogStash::Outputs::Stackify < LogStash::Outputs::Base
|
|
162
162
|
'X-Stackify-Key' => @key.to_s
|
163
163
|
}
|
164
164
|
|
165
|
-
|
166
165
|
uri = URI.parse('https://api.stackify.com/Log/Save')
|
167
166
|
https = Net::HTTP.new(uri.host, uri.port)
|
168
167
|
https.use_ssl = true
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-output-stackify'
|
3
|
-
s.version = '1.0.
|
3
|
+
s.version = '1.0.1'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = "Sends logs to Stackify"
|
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"
|
@@ -10,7 +10,8 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.require_paths = ["lib"]
|
11
11
|
|
12
12
|
# Files
|
13
|
-
s.files = Dir[
|
13
|
+
s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
|
14
|
+
|
14
15
|
# Tests
|
15
16
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
16
17
|
|
@@ -18,8 +19,9 @@ Gem::Specification.new do |s|
|
|
18
19
|
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
|
19
20
|
|
20
21
|
# Gem dependencies
|
21
|
-
#
|
22
22
|
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
|
23
|
-
|
23
|
+
|
24
24
|
s.add_development_dependency 'logstash-devutils'
|
25
|
+
s.add_development_dependency 'logstash-codec-plain'
|
26
|
+
s.add_development_dependency 'rake', '~> 12.2.1' # for JRuby 1.7, Ruby 1.9
|
25
27
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'logstash/devutils/rspec/spec_helper'
|
3
|
+
require 'logstash/outputs/stackify'
|
4
|
+
|
5
|
+
def logger_for(plugin)
|
6
|
+
plugin.instance_variable_get('@logger')
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'outputs/stackify' do
|
10
|
+
let(:config) {{'key' => 'abcdef123456'}}
|
11
|
+
|
12
|
+
let(:output) do
|
13
|
+
LogStash::Outputs::Stackify.new(config).tap do |output|
|
14
|
+
output.register
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
let(:event) do
|
19
|
+
LogStash::Event.new(
|
20
|
+
'message' => 'fantastic log entry',
|
21
|
+
'source' => 'someapp',
|
22
|
+
'type' => 'nginx',
|
23
|
+
'@timestamp' => LogStash::Timestamp.now)
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when initializing' do
|
27
|
+
subject {LogStash::Outputs::Stackify.new(config)}
|
28
|
+
|
29
|
+
it 'should register' do
|
30
|
+
expect {subject.register}.to_not raise_error
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should have default config values' do
|
34
|
+
expect(subject.default_env_name).to eq('Production')
|
35
|
+
expect(subject.default_app_name).to eq('Logstash')
|
36
|
+
expect(subject.message_field).to eq('message')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-stackify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stackify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -36,9 +36,9 @@ dependencies:
|
|
36
36
|
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
38
38
|
version: '0'
|
39
|
-
name: logstash-
|
39
|
+
name: logstash-devutils
|
40
40
|
prerelease: false
|
41
|
-
type: :
|
41
|
+
type: :development
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '0'
|
53
|
-
name: logstash-
|
53
|
+
name: logstash-codec-plain
|
54
54
|
prerelease: false
|
55
55
|
type: :development
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,6 +58,20 @@ dependencies:
|
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 12.2.1
|
67
|
+
name: rake
|
68
|
+
prerelease: false
|
69
|
+
type: :development
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 12.2.1
|
61
75
|
description: This gem is a Logstash plugin required to be installed on top of the
|
62
76
|
Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This
|
63
77
|
gem is not a stand-alone program
|
@@ -67,9 +81,12 @@ extensions: []
|
|
67
81
|
extra_rdoc_files: []
|
68
82
|
files:
|
69
83
|
- Gemfile
|
84
|
+
- LICENSE
|
70
85
|
- README.md
|
86
|
+
- docs/DEVELOPMENT.md
|
71
87
|
- lib/logstash/outputs/stackify.rb
|
72
88
|
- logstash-output-stackify.gemspec
|
89
|
+
- spec/outputs/stackify_spec.rb
|
73
90
|
homepage: https://www.stackify.com
|
74
91
|
licenses:
|
75
92
|
- Apache License (2.0)
|
@@ -96,4 +113,5 @@ rubygems_version: 2.7.6
|
|
96
113
|
signing_key:
|
97
114
|
specification_version: 4
|
98
115
|
summary: Sends logs to Stackify
|
99
|
-
test_files:
|
116
|
+
test_files:
|
117
|
+
- spec/outputs/stackify_spec.rb
|