logstash-output-applicationinsights 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -1
- data/README.md +12 -0
- data/lib/logstash/outputs/applicationinsights.rb +28 -10
- data/logstash-output-applicationinsights.gemspec +1 -1
- metadata +21 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56eb89268c2ab037a4210b2186c90e8f1e3b77e1
|
4
|
+
data.tar.gz: f4a10728a8a13bb5d730702d4f64ec77013be935
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6861df39c2a94f2540b38e3e9fd4f007ba5aaaa0fec3161473af8d75953c38bd653d8e06960dd58fc75b94743ece57aee4c833d7e33623a34e710a13d8f1c24a
|
7
|
+
data.tar.gz: 5ddf8ede80ce2bcd3e249ceeb91ceadd768ee858321920c2508481c2100255febadbd7f3a374e09727d3f5275bd26aac067353a6f00880922261b48f5d741cd4
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -16,6 +16,10 @@ __*ikey*__
|
|
16
16
|
|
17
17
|
The Application Insights Instrumentation key.
|
18
18
|
|
19
|
+
__*ai_type*__
|
20
|
+
|
21
|
+
The type of Application Insights event: "trace", "metric" and "event" are supported
|
22
|
+
|
19
23
|
### Optional Parameters
|
20
24
|
__*ai_message_field*__
|
21
25
|
|
@@ -35,6 +39,14 @@ Specifies how to map the values read from *ai_severity_level_field* to Applicati
|
|
35
39
|
|
36
40
|
See example below for how to map [Azure diagnostics log level values](https://msdn.microsoft.com/en-us/library/azure/microsoft.windowsazure.diagnostics.loglevel.aspx) to [Application Insights severity values](https://github.com/Microsoft/ApplicationInsights-Ruby/blob/master/lib/application_insights/channel/contracts/severity_level.rb).
|
37
41
|
|
42
|
+
__*ai_metrics_names*__
|
43
|
+
|
44
|
+
Specifies the names of the event fields to be used as metrics name; the value of each field specified will be reported as metric value. If not specified, no metric will be reported.
|
45
|
+
|
46
|
+
__*ai_event_name*__
|
47
|
+
|
48
|
+
Specifies the name of the event to be reported; If not specified, no event will be reported.
|
49
|
+
|
38
50
|
__*dev_mode*__
|
39
51
|
|
40
52
|
If this is set to True, the plugin sends telemetry to Application Insights immediately; otherwise the plugin respects production sending policies defined by other properties.
|
@@ -10,12 +10,15 @@ class LogStash::Outputs::ApplicationInsights < LogStash::Outputs::Base
|
|
10
10
|
config_name "applicationinsights"
|
11
11
|
|
12
12
|
config :ikey, :validate => :string, :required => true
|
13
|
+
config :ai_type, :validate => :string, :required => true
|
13
14
|
config :dev_mode, :validate => :boolean, :required => false, :default => false
|
14
15
|
config :ai_message_field, :validate => :string, :required => false, :default => nil
|
15
16
|
config :ai_properties_field, :validate => :string, :required => false, :default => nil
|
16
17
|
config :ai_severity_level_field, :validate => :string, :required => false, :default => nil
|
17
18
|
config :ai_severity_level_mapping, :validate => :hash, :required => false, :default => nil
|
18
|
-
|
19
|
+
config :ai_metrics_names, :validate => :array, :required => false, :default => nil
|
20
|
+
config :ai_event_name, :validate => :string, :required => false, :default => nil
|
21
|
+
|
19
22
|
public
|
20
23
|
def register
|
21
24
|
create_client
|
@@ -25,11 +28,26 @@ class LogStash::Outputs::ApplicationInsights < LogStash::Outputs::Base
|
|
25
28
|
def multi_receive(events)
|
26
29
|
events.each do |event|
|
27
30
|
begin
|
28
|
-
ai_message = get_ai_message(event)
|
29
31
|
ai_properties = get_ai_properties(event)
|
30
|
-
|
32
|
+
if @ai_type == "trace"
|
33
|
+
ai_message = get_field(event, @ai_message_field)
|
34
|
+
ai_severity = get_ai_severity(event)
|
35
|
+
@client.track_trace(ai_message, ai_severity, { :properties => ai_properties })
|
36
|
+
elsif @ai_type == "metric"
|
37
|
+
if !@ai_metrics_names.nil? && @ai_metrics_names.any?
|
38
|
+
@ai_metrics_names.each do |metric_name|
|
39
|
+
metric_value = get_field(event, metric_name)
|
40
|
+
if metric_value.nil?
|
41
|
+
@logger.warn("#{@metric_name} specified in ai_metrics_names not found in event data.")
|
42
|
+
else
|
43
|
+
@client.track_metric(metric_name, metric_value.to_f, { :properties => ai_properties })
|
44
|
+
end # if
|
45
|
+
end # do
|
46
|
+
end # if ai_metric_fields
|
47
|
+
elsif @ai_type == "event"
|
48
|
+
@client.track_event(@ai_event_name, { :properties => ai_properties }) if !@ai_event_name.nil?
|
49
|
+
end # if ai_type
|
31
50
|
|
32
|
-
@client.track_trace(ai_message, ai_severity, { :properties => ai_properties })
|
33
51
|
@client.flush if @dev_mode
|
34
52
|
|
35
53
|
rescue => e
|
@@ -49,13 +67,13 @@ class LogStash::Outputs::ApplicationInsights < LogStash::Outputs::Base
|
|
49
67
|
@client = TelemetryClient.new(@ikey, telemetry_channel)
|
50
68
|
end # def create_client
|
51
69
|
|
52
|
-
def
|
53
|
-
return nil if
|
70
|
+
def get_field(event, field_name)
|
71
|
+
return nil if field_name.nil?
|
54
72
|
|
55
|
-
|
56
|
-
@logger.warn("#{
|
57
|
-
event.remove(
|
58
|
-
|
73
|
+
field = event[field_name] # Extracts specified field value as the AI Message.
|
74
|
+
@logger.warn("#{field_name} not found in event data.") if field.nil?
|
75
|
+
event.remove(field_name) unless field.nil? # Removes the duplicated AI field.
|
76
|
+
field
|
59
77
|
end # def get_ai_message
|
60
78
|
|
61
79
|
def get_ai_properties(event)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-output-applicationinsights'
|
3
|
-
s.version = '0.9.
|
3
|
+
s.version = '0.9.1'
|
4
4
|
s.licenses = ['Apache License (2.0)']
|
5
5
|
s.summary = "This plugin sends data to Application Insights."
|
6
6
|
s.description = "This gem is a Logstash plugin. It sends data to Application Insights."
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-applicationinsights
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Microsoft Corporation
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: logstash-core
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
|
-
- - ~>
|
17
|
+
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: '2.0'
|
19
|
-
name: logstash-core
|
20
|
-
prerelease: false
|
21
20
|
type: :runtime
|
21
|
+
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: application_insights
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- - ~>
|
31
|
+
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 0.5.3
|
33
|
-
name: application_insights
|
34
|
-
prerelease: false
|
35
34
|
type: :runtime
|
35
|
+
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.5.3
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: logstash-devutils
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
|
-
- -
|
45
|
+
- - ">="
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: 0.0.16
|
47
|
-
name: logstash-devutils
|
48
|
-
prerelease: false
|
49
48
|
type: :development
|
49
|
+
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 0.0.16
|
55
55
|
description: This gem is a Logstash plugin. It sends data to Application Insights.
|
@@ -71,24 +71,24 @@ licenses:
|
|
71
71
|
metadata:
|
72
72
|
logstash_plugin: 'true'
|
73
73
|
logstash_group: output
|
74
|
-
post_install_message:
|
74
|
+
post_install_message:
|
75
75
|
rdoc_options: []
|
76
76
|
require_paths:
|
77
77
|
- lib
|
78
78
|
required_ruby_version: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- -
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
requirements: []
|
89
|
-
rubyforge_project:
|
90
|
-
rubygems_version: 2.
|
91
|
-
signing_key:
|
89
|
+
rubyforge_project:
|
90
|
+
rubygems_version: 2.5.1
|
91
|
+
signing_key:
|
92
92
|
specification_version: 4
|
93
93
|
summary: This plugin sends data to Application Insights.
|
94
94
|
test_files:
|