fluent-plugin-cloudstack 0.0.3 → 0.0.4

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: d9a3b997bae08e9b069c03ad5cfa34461ff6a104
4
- data.tar.gz: 1814c3cbc8c8c8d4fe735d20187c4c030df69c65
3
+ metadata.gz: c04b0483c9975c8fc4f196907a71df1a31f5d911
4
+ data.tar.gz: e0a41f5b7d8d2f9a1bf6d3a1c1889fc92a98073e
5
5
  SHA512:
6
- metadata.gz: 00b67f6b78dea69ca5f84b31f43f7d3c372d569d132b986db4217e683fcfa72462ea5d0abd27e1a3b1ceea6f5112d1bf22e96a404f5dc61f9c288a98c4348fd5
7
- data.tar.gz: 3f2f8665a01982c381e42c4c4112d573ac39e7deb0087b52ce6cd17fe07cd8fd230492d343fdd88ae2a0b99d47d20550e7008340ee7d7145a56604498a476ad7
6
+ metadata.gz: 39b8c083cfa1a443e6b24d4868b80fb2aa0aa175fc589d55e2542e455a0a53172ddc408837f4eb00287775096cb0d7322f587962b301ae286eeefc45ec769a29
7
+ data.tar.gz: a2a0791de3be0c2ebf06c606c8d3040dc77cac0a20d442d2d828a49e1450bc4955881eb3727a6cc4a087bec641e1e4664e10c0114eef40519b8312f5781ed9c2
data/README.textile CHANGED
@@ -10,6 +10,8 @@ Fluentd input plugin to get usages and events from CloudStack API.
10
10
  ** usages_per_service_offering
11
11
  ** usages_per_disk_offering
12
12
  * event
13
+ ** event_log
14
+ ** event_flow(per interval)
13
15
 
14
16
 
15
17
  h2. Installation
@@ -60,25 +62,26 @@ h2. Configuration
60
62
  h2. Data Example
61
63
 
62
64
  <pre>
63
- 20130507T041336+0000 cloudstack.event {"id":"xxxxxxx-4e64-4fa5-8045-5ecffb7e2417",
64
- "username":"clnxxxxxxxxx",
65
- "type":"USER.LOGIN",
66
- "level":"INFO",
67
- "description":"user has logged in from IP Address xxx.xxx.xxx.xxx",
68
- "account":"clnxxxxxxx",
69
- "domainid":"xxxxxxxx-dcc3-486b-90e8-02c514c93d1f",
70
- "domain":"cln10000004",
71
- "created":"2013-05-07T13:13:36+0900",
72
- "state":"Completed",
73
- "parentid":"0"}
74
-
75
- 20131028T133511+0000 cloudstack.usages {"vm_usage":1,
76
- "memory_usage":512,
77
- "cpu_usage":1,
78
- "root_volume_usage":16106127360,
79
- "data_volume_usage":42949672960,
65
+ 20130507T041336+0000 cloudstack.event {"id":"xxxxxxx-4e64-4fa5-8045-5ecffb7e2417",
66
+ "username":"clnxxxxxxxxx",
67
+ "type":"USER.LOGIN",
68
+ "level":"INFO",
69
+ "description":"user has logged in from IP Address xxx.xxx.xxx.xxx",
70
+ "account":"clnxxxxxxx",
71
+ "domainid":"xxxxxxxx-dcc3-486b-90e8-02c514c93d1f",
72
+ "domain":"cln10000004",
73
+ "created":"2013-05-07T13:13:36+0900",
74
+ "state":"Completed",
75
+ "parentid":"0"}
76
+
77
+ 20131028T133511+0000 cloudstack.usages {"vm_sum":1,
78
+ "memory_sum":512,
79
+ "cpu_sum":1,
80
+ "root_volume_sum":16106127360,
81
+ "data_volume_sum":42949672960,
80
82
  "t1.micro":1,
81
83
  "Datadisk_40GB":1}
84
+ 20131028T133511+0000 cloudstack.usages {"event_flow":5}
82
85
 
83
86
  </pre>
84
87
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.4
@@ -2,7 +2,7 @@ module Fluent
2
2
  class CloudStackInput < Input
3
3
  Fluent::Plugin.register_input("cloudstack", self)
4
4
 
5
- INTERVAL_MIN = 10
5
+ INTERVAL_MIN = 300
6
6
 
7
7
  config_param :host
8
8
  config_param :path, :default =>'/client/api'
@@ -23,14 +23,6 @@ module Fluent
23
23
  require "eventmachine"
24
24
  init_eventmachine
25
25
 
26
- @before_events_filepath = "logs/before_events.yml"
27
-
28
- if File.exist?(@before_events_filepath)
29
- @before_events = YAML.load_file(@before_events_filepath)
30
- else
31
- @before_events = nil
32
- end
33
-
34
26
  super
35
27
  end
36
28
 
@@ -44,6 +36,17 @@ module Fluent
44
36
  if @interval < INTERVAL_MIN
45
37
  raise ConfigError, "'interval' must be over #{INTERVAL_MIN}."
46
38
  end
39
+
40
+ @before_events_filepath = "logs/before_events.yml"
41
+
42
+ if File.exist?(@before_events_filepath)
43
+ @before_events = YAML.load_file(@before_events_filepath)
44
+ else
45
+ @before_events = nil
46
+ end
47
+
48
+ @event_output_tag = "#{@tag}.event"
49
+ @usages_output_tag = "#{@tag}.usages"
47
50
  end
48
51
 
49
52
  def start
@@ -69,18 +72,16 @@ module Fluent
69
72
 
70
73
  def emit_new_events
71
74
  new_events = get_new_events
72
- output_tag = "#{@tag}.event"
73
75
  new_events.each do |event|
74
76
  time = Time.parse(event["created"]).to_i
75
- Engine.emit(output_tag, time, event)
77
+ Engine.emit(@event_output_tag, time, event)
76
78
  end
79
+
80
+ Engine.emit("#{@usages_output_tag}", Engine.now, {"events_flow" => new_events.size})
77
81
  end
78
82
 
79
83
  def emit_usages
80
- usages = get_usages
81
- time = Engine.now
82
- output_tag = "#{@tag}.usages"
83
- Engine.emit("#{output_tag}", time, usages)
84
+ Engine.emit("#{@usages_output_tag}", Engine.now, get_usages)
84
85
  end
85
86
 
86
87
  def get_new_events
@@ -108,18 +109,18 @@ module Fluent
108
109
  def get_usages
109
110
  usages_per_service_offering = Hash.new(0)
110
111
  usages_per_disk_offering = Hash.new(0)
111
- memory_usage = 0
112
- cpu_usage = 0
113
- root_volume_usage = 0
114
- data_volume_usage = 0
112
+ memory_sum = 0
113
+ cpu_sum = 0
114
+ root_volume_sum = 0
115
+ data_volume_sum = 0
115
116
 
116
117
  vms_responses = cs.list_virtual_machines(:domainid=>@domain_id)
117
118
  vms = vms_responses["listvirtualmachinesresponse"]["virtualmachine"]
118
119
 
119
120
  if vms
120
121
  vms.each do |vm|
121
- memory_usage += vm["memory"].to_i
122
- cpu_usage += vm["cpunumber"].to_i
122
+ memory_sum += vm["memory"].to_i
123
+ cpu_sum += vm["cpunumber"].to_i
123
124
  usages_per_service_offering[vm["serviceofferingname"]] += 1
124
125
  end
125
126
  end
@@ -131,19 +132,19 @@ module Fluent
131
132
  volumes.each do |volume|
132
133
  case volume["type"]
133
134
  when "ROOT"
134
- root_volume_usage += volume["size"]
135
+ root_volume_sum += volume["size"]
135
136
  when "DATADISK"
136
- data_volume_usage += volume["size"]
137
+ data_volume_sum += volume["size"]
137
138
  usages_per_disk_offering[volume["diskofferingname"].gsub(' ','_')] += 1
138
139
  end
139
140
  end
140
141
  end
141
142
 
142
- results = {:vm_usage => vms.size,
143
- :memory_usage => memory_usage,
144
- :cpu_usage => cpu_usage,
145
- :root_volume_usage => root_volume_usage,
146
- :data_volume_usage => data_volume_usage,
143
+ results = {:vm_sum => vms.size,
144
+ :memory_sum => memory_sum,
145
+ :cpu_sum => cpu_sum,
146
+ :root_volume_sum => root_volume_sum,
147
+ :data_volume_sum => data_volume_sum,
147
148
  }
148
149
 
149
150
  usages_per_service_offering.each do |key,value|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-cloudstack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuichi UEMURA