logstash-output-applicationinsights 0.9.0 → 0.9.1
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 +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:
|