logstash-output-stackify 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|