fluent-plugin-cloudwatch-transform 0.0.6 → 0.0.7

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: d2049729cdc16d2272af9e4a8624c75664783fa5
4
- data.tar.gz: 522eb8adeb406890ecb9ddf01b4990ed61420c5b
3
+ metadata.gz: d617c260e7c26f81912db6b173ce73bffb4fbc29
4
+ data.tar.gz: b5b9d11c388678d5ba3bbabaf426810622913edf
5
5
  SHA512:
6
- metadata.gz: e3bf5bef0729c12ec15cf16992ffc41dbb7be10a2a53414c4d10f80d07bc45747ce0d05dfa6c1e881a02f5a240c2db8cca4e3f634bbad52e65ef2c5dc2ecb1e9
7
- data.tar.gz: b9f316ec8905c247521dde1dd725f9b81386e053954db40171bf82b451304f4fc372dda49e332744d8c1fc90da5fb613a4400325259528dcf5eddd93432946e7
6
+ metadata.gz: 76088e67c7ac772999a7b07d653295f5ded2cc1544b8da1a073da10d1d4c614fefac3a8676d0f7fc4ffdfb8e63a60805f2a0ea6d79191781c533bfeac0283498
7
+ data.tar.gz: 8dff90e28003fdaba5c0d65e0a79583af6c176e799b6f8812909acdaa2442a693e28a186868c1d24068ef1d3a1f159cdddd2bf4d9333c922b7fd3efe0a1e88f0
@@ -3,8 +3,8 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
5
  gem.name = "fluent-plugin-cloudwatch-transform"
6
- gem.version = "0.0.6"
7
- gem.date = '2015-04-21'
6
+ gem.version = "0.0.7"
7
+ gem.date = '2015-04-23'
8
8
  gem.authors = ["Ling Zhang"]
9
9
  gem.email = ["zhangling.ice@gmail.com"]
10
10
  gem.summary = %q{Fluentd output plugin for transform cloudwatch alerts }
@@ -8,10 +8,23 @@ module Fluent
8
8
  config_param :state_type, :string, :default => nil
9
9
  config_param :state_file, :string, :default => nil
10
10
  config_param :state_tag, :string, :default => nil
11
+ config_param :name_for_origin_key, :string, :default => nil
12
+ config_param :name_for_origin_value, :string, :default => nil
13
+
14
+ #also need add config for info_name and postion_in_tag (start from 0) within <tag_infos> </tag_infos> block
11
15
 
12
16
  # This method is called before starting.
13
17
  def configure(conf)
14
18
  super
19
+ # Read configuration for tag_infos and create a hash
20
+ @tag_infos = Hash.new
21
+ conf.elements.select { |element| element.name == 'tag_infos' }.each { |element|
22
+ element.each_pair { |info_name, position_in_tag|
23
+ @tag_infos[info_name] = position_in_tag.to_i
24
+ $log.info "Added tag_infos: #{info_name}=>#{@tag_infos[info_name]}"
25
+ }
26
+ }
27
+
15
28
  end
16
29
 
17
30
  def initialize
@@ -39,30 +52,31 @@ module Fluent
39
52
  #
40
53
  # NOTE! This method is called by Fluentd's main thread so you should not write slow routine here. It causes Fluentd's performance degression.
41
54
  def emit(tag, es, chain)
42
- #tag_parts = tag.split('.')
43
55
  tag_parts = tag.scan( /([^".]+)|"([^"]+)"/ ).flatten.compact
44
- # the prefix of tag should be like alert.cloudwatch.raw.***
45
- # so start from tag_parts[3]
46
- regionAZ = tag_parts[3]
47
- application_name = tag_parts[4]
48
- runbook_url = tag_parts[5]
56
+ # split the tags with .
57
+ # ingnore the . within ""
58
+
49
59
  chain.next
50
60
  es.each {|time,record|
51
61
 
52
62
  newhash = Hash.new
53
63
  # though there is just one key-value pair in cloudwatch alert record, we use a loop to add context for it.
54
64
  record.each_pair do |singlekey, singlevalue|
55
- newhash["event_name"] = singlekey
56
- newhash["value"] = singlevalue.to_s
65
+ newhash[@name_for_origin_key] = singlekey
66
+ newhash[@name_for_origin_value] = singlevalue.to_s
57
67
  newhash["raw"] ={singlekey => singlevalue}
58
68
  end
59
69
  # add more information for the cloudwatch alert
70
+ # fixed info
60
71
  timestamp = Engine.now # Should be receive_time_input
61
72
  newhash["receive_time_input"]=timestamp.to_s
62
- newhash["application_name"] = application_name
63
- newhash["intermediary_source"] = regionAZ
64
- newhash["runbook"] = runbook_url
65
- newhash["event_type"] = "alert.cloudwatch"
73
+ newhash["event_type"] = @out_tag
74
+
75
+ @tag_infos.each do |info_name, position_in_tag|
76
+ newhash[info_name] = tag_parts[position_in_tag]
77
+ end
78
+
79
+
66
80
 
67
81
  if @highwatermark.last_records(@state_tag)
68
82
  last_hwm = @highwatermark.last_records(@state_tag)
@@ -1,12 +1,23 @@
1
1
  require 'helper'
2
2
 
3
- class SnmpTrapInputTest < Test::Unit::TestCase
3
+ class CloudWatchTransOutputTest < Test::Unit::TestCase
4
4
  def setup
5
5
  Fluent::Test.setup
6
6
  end
7
7
 
8
8
  CONFIG = %[
9
- tag alert.cloudwatch.raw.FPS
9
+ tag alert.cloudwatch.raw.region1-AZ1.Form & Printing Services (FPS)."http://testurl.com"
10
+ out_tag alert.processed.cloudwatch
11
+ state_type file
12
+ state_file cloudwatch.yaml
13
+ state_tag cloudwatch
14
+ name_for_origin_key event_name
15
+ name_for_origin_value value
16
+ <tag_infos>
17
+ region_and_AZ 3
18
+ application_name 4
19
+ runbook_url 5
20
+ </tag_infos>
10
21
  ]
11
22
 
12
23
  def create_driver(conf=CONFIG)
@@ -15,6 +26,6 @@ class SnmpTrapInputTest < Test::Unit::TestCase
15
26
 
16
27
  def test_configure
17
28
  d = create_driver
18
- assert_equal 'alert.cloudwatch.out', d.instance.tag
29
+ assert_equal 'alert.processed.cloudwatch', d.instance.out_tag
19
30
  end
20
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-cloudwatch-transform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ling Zhang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-21 00:00:00.000000000 Z
11
+ date: 2015-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd