logstash-output-sentry 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -6
- data/lib/logstash/outputs/sentry.rb +12 -1
- data/logstash-output-sentry.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0167aa85d7256913ed5f26cdbde6afbc1d648be
|
4
|
+
data.tar.gz: 996a962f3f97b93a15c0d7fa0849c32e8a8664ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 151cb70eca4b7fe7369ea09487a20bb1cc9a635570a2110b122d47c5996cd446e0eb65e0e498dcebcaddf0dac55b18fb6252aa4235e5ccc4342465ea0fde0eac
|
7
|
+
data.tar.gz: af27c9c7dd5f3afc467adae93237656696712519cbd9ea7b2eec387465db3a44d19693ca033b08844872d04c526a1e5c71c96dba070be08e1e0c39db66f49982
|
data/README.md
CHANGED
@@ -21,12 +21,12 @@ As this plugin has been shared on [RubyGems](https://rubygems.org) with the name
|
|
21
21
|
bin/plugin install logstash-output-sentry
|
22
22
|
```
|
23
23
|
|
24
|
-
When installing from official repository as suggested below, the installation path is
|
24
|
+
When installing from official repository as suggested below, the installation path is `/opt/logstash`.
|
25
25
|
|
26
26
|
### Usage
|
27
27
|
|
28
28
|
[Sentry](https://getsentry.com/) is a modern error logging and aggregation platform.
|
29
|
-
It
|
29
|
+
It's important to note that Sentry should not be thought of as a log stream, but as an aggregator.
|
30
30
|
It fits somewhere in-between a simple metrics solution (such as Graphite) and a full-on log stream aggregator (like Logstash).
|
31
31
|
|
32
32
|
* In Sentry, generate and get your client key (Settings -> Client key). The client key has this form:
|
@@ -45,7 +45,7 @@ output {
|
|
45
45
|
}
|
46
46
|
```
|
47
47
|
|
48
|
-
* Note that all your fields (incluing the Logstash field
|
48
|
+
* Note that all your fields (incluing the Logstash field `message`) will be in the `extra` field in Sentry. But be careful: by default, the `host` is set to `"app.getsentry.com"`. If you have installed Sentry on your own machine, please change the `host` (change "localhost:9000" with the correct value according your configuration):
|
49
49
|
```ruby
|
50
50
|
output {
|
51
51
|
sentry {
|
@@ -58,7 +58,7 @@ output {
|
|
58
58
|
}
|
59
59
|
```
|
60
60
|
|
61
|
-
* You can change the
|
61
|
+
* You can change the `message` field (default: `"Message from logstash"`), or optionally specify a field to use from your event. In case the `message` field doesn't exist, it'll be used as the actual message.
|
62
62
|
```ruby
|
63
63
|
sentry {
|
64
64
|
'project_id' => "1"
|
@@ -68,7 +68,7 @@ sentry {
|
|
68
68
|
}
|
69
69
|
```
|
70
70
|
|
71
|
-
* You can indicate the level (default
|
71
|
+
* You can indicate the level (default: `"error"`), and decide if all your Logstash fields will be tagged in Sentry. If you use the protocole HTTPS, please enable `use_ssl` (default: `true`), but if you use http you MUST disable SSL.
|
72
72
|
```ruby
|
73
73
|
sentry {
|
74
74
|
'host' => "192.168.56.102:9000"
|
@@ -82,7 +82,7 @@ sentry {
|
|
82
82
|
}
|
83
83
|
```
|
84
84
|
|
85
|
-
* You can optionally strip the timestamp from the sentry title by
|
85
|
+
* You can optionally strip the timestamp from the sentry title by setting `strip_timestamp` field to `true` (default: `false`), which will change `YYYY-MM-DD HH:MM:SS,MILLISEC INFO ..` to `INFO ...`
|
86
86
|
```ruby
|
87
87
|
sentry {
|
88
88
|
'host' => "192.168.56.102:9000"
|
@@ -62,6 +62,9 @@ class LogStash::Outputs::Sentry < LogStash::Outputs::Base
|
|
62
62
|
# }
|
63
63
|
config :fields_to_tags, :validate => :boolean, :default => false, :required => false
|
64
64
|
|
65
|
+
# Remove timestamp from message (title) if the message starts with a timestamp
|
66
|
+
config :strip_timestamp, :validate => :boolean, :default => false, :required => false
|
67
|
+
|
65
68
|
public
|
66
69
|
def register
|
67
70
|
require 'net/https'
|
@@ -83,10 +86,18 @@ class LogStash::Outputs::Sentry < LogStash::Outputs::Base
|
|
83
86
|
|
84
87
|
require 'securerandom'
|
85
88
|
|
89
|
+
#use message from event if exists, if not from static
|
90
|
+
message_to_send = event["#{msg}"] || "#{msg}"
|
91
|
+
if strip_timestamp
|
92
|
+
#remove timestamp from message if available
|
93
|
+
message_matched = message_to_send.match(/\d\d\d\d\-\d\d\-\d\d\s[0-9]{1,2}\:\d\d\:\d\d,\d{1,}\s(.*)/)
|
94
|
+
message_to_send = message_matched ? message_matched[1] : message_to_send
|
95
|
+
end
|
96
|
+
|
86
97
|
packet = {
|
87
98
|
:event_id => SecureRandom.uuid.gsub('-', ''),
|
88
99
|
:timestamp => event['@timestamp'],
|
89
|
-
:message =>
|
100
|
+
:message => message_to_send,
|
90
101
|
:level => "#{level_tag}",
|
91
102
|
:platform => 'logstash',
|
92
103
|
:server_name => event['host'],
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-output-sentry'
|
3
|
-
s.version = '0.
|
3
|
+
s.version = '0.3.0'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = 'This output plugin sends messages to any sentry server.'
|
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/plugin install logstash-output-sentry. This gem is not a stand-alone program.'
|