logstash-filter-truncate 1.0.0 → 1.0.2
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/CHANGELOG.md +5 -0
- data/Gemfile +8 -0
- data/docs/index.asciidoc +84 -0
- data/lib/logstash/filters/truncate.rb +1 -0
- data/logstash-filter-truncate.gemspec +2 -2
- data/spec/filters/truncate_spec.rb +9 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7cf39e6a114d7a4009db9ecd95141f257ebe0b07
|
4
|
+
data.tar.gz: e52131367130d3af6a7ebf1e7922015a989047c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 250aea4f5f329c99e402d9a9dc787e89dc2d89ce6aab956a028de67cb7e9420873f41a465b0cf01d9847c8f77cd5a02ecbea3985e04c9eb3f47f2fed059fe31c
|
7
|
+
data.tar.gz: 1c817cec96009a69ba17c787da917cc15778b32dcacfb87665cc6dd36d54940271854bee4ee252da6f8d6a1539ad64b22e7546c2c11f633bef2bd74919e339b5
|
data/CHANGELOG.md
CHANGED
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/docs/index.asciidoc
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
:plugin: truncate
|
2
|
+
:type: filter
|
3
|
+
|
4
|
+
///////////////////////////////////////////
|
5
|
+
START - GENERATED VARIABLES, DO NOT EDIT!
|
6
|
+
///////////////////////////////////////////
|
7
|
+
:version: %VERSION%
|
8
|
+
:release_date: %RELEASE_DATE%
|
9
|
+
:changelog_url: %CHANGELOG_URL%
|
10
|
+
:include_path: ../../../../logstash/docs/include
|
11
|
+
///////////////////////////////////////////
|
12
|
+
END - GENERATED VARIABLES, DO NOT EDIT!
|
13
|
+
///////////////////////////////////////////
|
14
|
+
|
15
|
+
[id="plugins-{type}-{plugin}"]
|
16
|
+
|
17
|
+
=== Truncate filter plugin
|
18
|
+
|
19
|
+
include::{include_path}/plugin_header.asciidoc[]
|
20
|
+
|
21
|
+
==== Description
|
22
|
+
|
23
|
+
Allows you to truncate fields longer than a given length.
|
24
|
+
|
25
|
+
This truncates on bytes values, not character count. In practice, this
|
26
|
+
should mean that the truncated length is somewhere between `length_bytes` and
|
27
|
+
`length_bytes - 6` (UTF-8 supports up to 6-byte characters).
|
28
|
+
|
29
|
+
[id="plugins-{type}s-{plugin}-options"]
|
30
|
+
==== Truncate Filter Configuration Options
|
31
|
+
|
32
|
+
This plugin supports the following configuration options plus the <<plugins-{type}s-{plugin}-common-options>> described later.
|
33
|
+
|
34
|
+
[cols="<,<,<",options="header",]
|
35
|
+
|=======================================================================
|
36
|
+
|Setting |Input type|Required
|
37
|
+
| <<plugins-{type}s-{plugin}-fields>> |<<string,string>>|No
|
38
|
+
| <<plugins-{type}s-{plugin}-length_bytes>> |<<number,number>>|Yes
|
39
|
+
|=======================================================================
|
40
|
+
|
41
|
+
Also see <<plugins-{type}s-{plugin}-common-options>> for a list of options supported by all
|
42
|
+
filter plugins.
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
[id="plugins-{type}s-{plugin}-fields"]
|
47
|
+
===== `fields`
|
48
|
+
|
49
|
+
* Value type is <<string,string>>
|
50
|
+
* There is no default value for this setting.
|
51
|
+
|
52
|
+
A list of fieldrefs to truncate if they are too long.
|
53
|
+
|
54
|
+
If not specified, the default behavior will be to attempt truncation on all
|
55
|
+
strings in the event. This default behavior could be computationally
|
56
|
+
expensive, so if you know exactly which fields you wish to truncate, it is
|
57
|
+
advised that you be specific and configure the fields you want truncated.
|
58
|
+
|
59
|
+
Special behaviors for non-string fields:
|
60
|
+
|
61
|
+
* Numbers: No action
|
62
|
+
* Array: this plugin will attempt truncation on all elements of that array.
|
63
|
+
* Hash: truncate will try all values of the hash (recursively, if this hash
|
64
|
+
contains other hashes).
|
65
|
+
|
66
|
+
[id="plugins-{type}s-{plugin}-length_bytes"]
|
67
|
+
===== `length_bytes`
|
68
|
+
|
69
|
+
* This is a required setting.
|
70
|
+
* Value type is <<number,number>>
|
71
|
+
* There is no default value for this setting.
|
72
|
+
|
73
|
+
Fields over this length will be truncated to this length.
|
74
|
+
|
75
|
+
Truncation happens from the end of the text (the start will be kept).
|
76
|
+
|
77
|
+
As an example, if you set `length_bytes => 10` and a field contains "hello
|
78
|
+
world, how are you?", then this field will be truncated and have this value:
|
79
|
+
"hello worl"
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
[id="plugins-{type}s-{plugin}-common-options"]
|
84
|
+
include::{include_path}/{type}.asciidoc[]
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-filter-truncate'
|
4
|
-
s.version = '1.0.
|
4
|
+
s.version = '1.0.2'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "This filter allows you to truncate fields to a given length."
|
7
7
|
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"
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.require_paths = ["lib"]
|
12
12
|
|
13
13
|
# Files
|
14
|
-
s.files = Dir[
|
14
|
+
s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
|
15
15
|
|
16
16
|
# Tests
|
17
17
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
@@ -84,6 +84,14 @@ describe LogStash::Filters::Truncate do
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
end
|
87
|
-
end
|
88
87
|
|
88
|
+
describe "calling of filter_matched" do
|
89
|
+
subject { described_class.new("length_bytes" => 1, "fields" => [ "example" ]) }
|
90
|
+
let(:event) { LogStash::Event.new("example" => 1000) }
|
89
91
|
|
92
|
+
it "should be called" do
|
93
|
+
expect(subject).to receive(:filter_matched).once
|
94
|
+
subject.filter(event)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-truncate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,6 +70,7 @@ files:
|
|
70
70
|
- LICENSE
|
71
71
|
- NOTICE.TXT
|
72
72
|
- README.md
|
73
|
+
- docs/index.asciidoc
|
73
74
|
- lib/logstash/filters/truncate.rb
|
74
75
|
- logstash-filter-truncate.gemspec
|
75
76
|
- spec/filters/truncate_spec.rb
|