fluent-plugin-cloudstack 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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