logstash-filter-elasticsearchslowlog 0.3.0 → 0.4.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acabadb6181cf54d1a56ff1b889849eafd4e65d997eeff07e816b500e8933d6f
|
4
|
+
data.tar.gz: d88ad920cc826e1ef019827f65ec0b98885f321a30193b5b9265b5a2a7500d26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd4d0abe0e5229176d2167d582607fe21250587111d9e9dffb306dfe48074c481f0e55b13de0cb0d483b0be61936aa9cea50305b221b7774fce7801c477eddf7
|
7
|
+
data.tar.gz: f5308a7cd27495d55d938b76f637d6d9436a0201643026ddf197572171bd7a075bf6fe74fb1a17e9077cef7be502f8a6aa7354c67953cd35dedb260610aac0be
|
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
# Elasticsearch Slowlog Logstash Plugin [](http://travis-ci.org/ananthakumaran/logstash-filter-elasticsearchslowlog)
|
1
|
+
# Elasticsearch Slowlog Logstash Plugin [](http://travis-ci.org/ananthakumaran/logstash-filter-elasticsearchslowlog)
|
3
2
|
|
4
3
|
## Installation
|
5
4
|
|
@@ -27,7 +27,7 @@ class LogStash::Filters::Elasticsearchslowlog < LogStash::Filters::Base
|
|
27
27
|
SLOWLOG_REGEX = /^\s*\[(?<local_timestamp>[^,]+),\d+\]\s*\[(?<level>.+?)\s*\]\s*\[index.search.slowlog.(?:query|fetch)\]\s*\[(?<node>.+?)\]\s*\[(?<index>.+?)\]\s*\[(?<shard>.+?)\]\s*(?<key_values>.+)$/.freeze
|
28
28
|
|
29
29
|
def filter(event)
|
30
|
-
message = event
|
30
|
+
message = event[@source]
|
31
31
|
if message
|
32
32
|
if matches = message.match(SLOWLOG_REGEX)
|
33
33
|
captures = Hash[matches.names.zip(matches.captures)]
|
@@ -37,7 +37,7 @@ class LogStash::Filters::Elasticsearchslowlog < LogStash::Filters::Base
|
|
37
37
|
if ['shard'].include?(key)
|
38
38
|
value = value.to_i
|
39
39
|
end
|
40
|
-
event
|
40
|
+
event[key] = value
|
41
41
|
end
|
42
42
|
if captures['key_values']
|
43
43
|
key_values = parse_key_values(captures['key_values'])
|
@@ -45,7 +45,7 @@ class LogStash::Filters::Elasticsearchslowlog < LogStash::Filters::Base
|
|
45
45
|
if ['took_millis', 'total_shards'].include?(key)
|
46
46
|
value = value.to_i
|
47
47
|
end
|
48
|
-
event
|
48
|
+
event[key] = value
|
49
49
|
end
|
50
50
|
|
51
51
|
source = key_values['source']
|
@@ -54,8 +54,8 @@ class LogStash::Filters::Elasticsearchslowlog < LogStash::Filters::Base
|
|
54
54
|
if normalized
|
55
55
|
normalized = JSON.dump(normalized)
|
56
56
|
source_id = Digest::MD5.hexdigest(normalized)[0..8]
|
57
|
-
event
|
58
|
-
event
|
57
|
+
event['source_normalized'] = normalized
|
58
|
+
event['source_id'] = source_id.force_encoding("utf-8")
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'logstash-filter-elasticsearchslowlog'
|
5
|
-
s.version = '0.
|
5
|
+
s.version = '0.4.0'
|
6
6
|
s.licenses = ['Apache-2.0']
|
7
7
|
s.summary = 'elasticsearch slowlog parser'
|
8
8
|
s.description = 'elasticsearch slowlog parser'
|
@@ -21,6 +21,6 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
# Gem dependencies
|
23
23
|
s.add_runtime_dependency "deepsort", "0.4.0"
|
24
|
-
s.add_runtime_dependency "logstash-core-plugin-api", "
|
24
|
+
s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.20", "<= 2.99"
|
25
25
|
s.add_development_dependency 'logstash-devutils'
|
26
26
|
end
|
@@ -14,20 +14,20 @@ describe LogStash::Filters::Elasticsearchslowlog do
|
|
14
14
|
|
15
15
|
describe "filter" do
|
16
16
|
sample("message" => "some text") do
|
17
|
-
expect(subject
|
17
|
+
expect(subject['message']).to eq('some text')
|
18
18
|
end
|
19
19
|
|
20
20
|
sample("message" => '[2019-05-07T15:27:34,422][TRACE ][index.search.slowlog.query] [elasticsearch-data7.mid.veritrans.co.id] [transactionsv3_2018-12][2] took[350.9ms], took_millis[350], types[transaction], stats[], search_type[QUERY_THEN_FETCH], total_shards[111], source[{"from":0,"size":20,"query":{"bool":{"filter":[{"terms":{"transaction.merchant_id":["abcd"],"boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},"sort":[{"transaction.transaction_time":{"order":"desc"}}]}],') do
|
21
|
-
expect(subject
|
22
|
-
expect(subject
|
23
|
-
expect(subject
|
24
|
-
expect(subject
|
25
|
-
expect(subject
|
26
|
-
expect(subject
|
27
|
-
expect(subject
|
28
|
-
expect(subject
|
29
|
-
expect(subject
|
30
|
-
expect(subject
|
21
|
+
expect(subject['local_timestamp']).to eq('2019-05-07T15:27:34')
|
22
|
+
expect(subject['level']).to eq('TRACE')
|
23
|
+
expect(subject['node']).to eq('elasticsearch-data7.mid.veritrans.co.id')
|
24
|
+
expect(subject['index']).to eq('transactionsv3_2018-12')
|
25
|
+
expect(subject['shard']).to eq(2)
|
26
|
+
expect(subject['took_millis']).to eq(350)
|
27
|
+
expect(subject['types']).to eq('transaction')
|
28
|
+
expect(subject['search_type']).to eq('QUERY_THEN_FETCH')
|
29
|
+
expect(subject['total_shards']).to eq(111)
|
30
|
+
expect(subject['source']).to eq('{"from":0,"size":20,"query":{"bool":{"filter":[{"terms":{"transaction.merchant_id":["abcd"],"boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},"sort":[{"transaction.transaction_time":{"order":"desc"}}]}')
|
31
31
|
expect(subject).to include('source_id')
|
32
32
|
end
|
33
33
|
end
|
@@ -49,10 +49,10 @@ describe LogStash::Filters::Elasticsearchslowlog do
|
|
49
49
|
expect(subject).to include('total_shards')
|
50
50
|
expect(subject).to include('source')
|
51
51
|
expect(subject).to include('source_id')
|
52
|
-
unless subject
|
53
|
-
puts subject
|
52
|
+
unless subject['source_normalized'] == source_normalized[i]
|
53
|
+
puts subject['source_normalized']
|
54
54
|
end
|
55
|
-
expect(subject
|
55
|
+
expect(subject['source_normalized']).to eq(source_normalized[i])
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-elasticsearchslowlog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anantha Kumaran
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-05-
|
11
|
+
date: 2019-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -27,17 +27,23 @@ dependencies:
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
|
-
- - "
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.20'
|
33
|
+
- - "<="
|
31
34
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
35
|
+
version: '2.99'
|
33
36
|
name: logstash-core-plugin-api
|
34
37
|
prerelease: false
|
35
38
|
type: :runtime
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
|
-
- - "
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.20'
|
44
|
+
- - "<="
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
46
|
+
version: '2.99'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
requirement: !ruby/object:Gem::Requirement
|
43
49
|
requirements:
|