logstash-filter-transaction_time 1.0.1 → 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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: edc1cb278d1570f38410dfb0adcbc6cb916051b8
|
4
|
+
data.tar.gz: e7af3ddd9246545057682d1f20570fc392f361fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ae4104911a6088a0708b5d8f0135af8e28ddf7e1c96b50e30b6e7c1ee8538bf48a1b3f2921e022ff53af1e9f5433c9bcdefaca3bff1ca9735d602121b83200a
|
7
|
+
data.tar.gz: aef8f360cbce787e8482f2e1f24be6fa73e37503335837323f7876aa1d1da3790f28e6a8557f8159e4e1bcf0b6c930480164b4a5f03a7c130cc3b507b7c23b00
|
@@ -56,8 +56,8 @@ require "logstash/namespace"
|
|
56
56
|
# }
|
57
57
|
# }
|
58
58
|
# transaction_time {
|
59
|
-
# uid_field => "
|
60
|
-
# filter_tag => "
|
59
|
+
# uid_field => "UID"
|
60
|
+
# filter_tag => "Transaction"
|
61
61
|
# }
|
62
62
|
# }
|
63
63
|
#
|
@@ -65,6 +65,8 @@ require "logstash/namespace"
|
|
65
65
|
# is added for a specific set of messages.
|
66
66
|
# This tag is then used in the transaction_time as filter_tag.
|
67
67
|
# Only the messages with this tag will be evaluated.
|
68
|
+
# Note: Do not use reserved name "TransactionTime"
|
69
|
+
# which is added to all events created by this plugin
|
68
70
|
#
|
69
71
|
# The attach_event parameter can be used to append information from one of the events to the
|
70
72
|
# new transaction_time event. The default is to not attach anything.
|
@@ -89,6 +91,7 @@ class LogStash::Filters::TransactionTime < LogStash::Filters::Base
|
|
89
91
|
# Override the new events timestamp with the oldest or newest timestamp or keep the new one (set when logstash has processed the event)
|
90
92
|
config :replace_timestamp, :validate => ['keep', 'oldest', 'newest'], :default => 'keep'
|
91
93
|
# Tag used to identify transactional events. If set, only events tagged with the specified tag attached will be concidered transactions and be processed by the plugin
|
94
|
+
# Do not use reserved tag name "TransactionTime"
|
92
95
|
config :filter_tag, :validate => :string
|
93
96
|
# Whether or not to attach one or none of the events in a transaction to the output event.
|
94
97
|
# Defaults to 'none' - which reduces memory footprint by not adding the event to the transactionlist.
|
@@ -118,10 +121,15 @@ class LogStash::Filters::TransactionTime < LogStash::Filters::Base
|
|
118
121
|
|
119
122
|
@logger.debug("Received UID", uid: uid)
|
120
123
|
|
121
|
-
|
124
|
+
#Dont use filter-plugin on events created by this filter-plugin
|
125
|
+
#Dont use filter on anything else but events with the filter_tag if specified
|
126
|
+
if (!uid.nil? && (event.get("tags").nil? || !event.get("tags").include?(TRANSACTION_TIME_TAG)) &&
|
127
|
+
(@filter_tag.nil? || (!event.get("tags").nil? && event.get("tags").include?(@filter_tag))))
|
128
|
+
filter_matched(event)
|
122
129
|
@mutex.synchronize do
|
123
130
|
if(!@transactions.has_key?(uid))
|
124
131
|
@transactions[uid] = LogStash::Filters::TransactionTime::Transaction.new(event, uid, @storeEvent)
|
132
|
+
|
125
133
|
else #End of transaction
|
126
134
|
@transactions[uid].addSecond(event,@storeEvent)
|
127
135
|
transaction_event = new_transactiontime_event(@transactions[uid])
|
@@ -132,10 +140,6 @@ class LogStash::Filters::TransactionTime < LogStash::Filters::Base
|
|
132
140
|
end
|
133
141
|
end
|
134
142
|
|
135
|
-
event.set("uid_field", @uid_field)
|
136
|
-
|
137
|
-
# filter_matched should go in the last line of our successful code
|
138
|
-
filter_matched(event)
|
139
143
|
end # def filter
|
140
144
|
|
141
145
|
|
@@ -173,33 +177,36 @@ class LogStash::Filters::TransactionTime < LogStash::Filters::Base
|
|
173
177
|
end
|
174
178
|
|
175
179
|
def new_transactiontime_event(transaction)
|
180
|
+
|
181
|
+
|
176
182
|
case @attach_event
|
177
183
|
when 'oldest'
|
178
|
-
|
184
|
+
transaction_event = transaction.getOldestEvent()
|
179
185
|
when 'first'
|
180
|
-
|
186
|
+
transaction_event = transaction.firstEvent
|
181
187
|
when 'newest'
|
182
|
-
|
188
|
+
transaction_event = transaction.getNewestEvent()
|
183
189
|
when 'last'
|
184
|
-
|
185
|
-
else
|
186
|
-
|
190
|
+
transaction_event = transaction.lastEvent
|
191
|
+
else
|
192
|
+
transaction_event = LogStash::Event.new
|
187
193
|
end
|
188
|
-
|
194
|
+
transaction_event.set(HOST_FIELD, Socket.gethostname)
|
195
|
+
|
189
196
|
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
197
|
+
transaction_event.tag(TRANSACTION_TIME_TAG)
|
198
|
+
transaction_event.set(TRANSACTION_TIME_FIELD, transaction.diff)
|
199
|
+
transaction_event.set(TRANSACTION_UID_FIELD, transaction.uid)
|
200
|
+
transaction_event.set(TIMESTAMP_START_FIELD, transaction.getOldestTimestamp())
|
194
201
|
|
195
202
|
if(@replace_timestamp.eql?'oldest')
|
196
|
-
|
203
|
+
transaction_event.set("@timestamp", transaction.getOldestTimestamp())
|
197
204
|
elsif (@replace_timestamp.eql?'newest')
|
198
|
-
|
205
|
+
transaction_event.set("@timestamp", transaction.getNewestTimestamp())
|
199
206
|
end
|
200
207
|
|
201
208
|
|
202
|
-
return
|
209
|
+
return transaction_event
|
203
210
|
end
|
204
211
|
|
205
212
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-filter-transaction_time'
|
3
|
-
s.version = '1.0.
|
3
|
+
s.version = '1.0.2'
|
4
4
|
s.licenses = ['Apache-2.0','Apache License (2.0)']
|
5
5
|
s.summary = 'Writes the time difference between two events in a transaction to a new event'
|
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. Source-code and documentation available at github: https://github.com/AddinITAB/logstash-filter-transaction_time'
|
@@ -24,7 +24,7 @@ describe LogStash::Filters::TransactionTime do
|
|
24
24
|
expect(subject.get('timestamp_tag')).to eq('testing')
|
25
25
|
end
|
26
26
|
|
27
|
-
sample("uid_field" => "
|
27
|
+
sample("uid_field" => "uid") do
|
28
28
|
expect(subject).to include("uid_field")
|
29
29
|
expect(subject.get('uid_field')).to eq('uid')
|
30
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-filter-transaction_time
|
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
|
- Tommy Welleby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|