cloudscopes 0.8.11 → 0.9.0

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: 70aaeb8bd42c38505955f3a28360a62bffb9eae6
4
- data.tar.gz: 8fa7a39022e6fe06dc471aadbf021a15fc1a2e39
3
+ metadata.gz: c10cf3fdfa70ce1de5a02adb3bf4efd0d96804da
4
+ data.tar.gz: 88d6da877e73a5d78c51bd375c7b083512cfe212
5
5
  SHA512:
6
- metadata.gz: 56fd20839e1b6cc4782102068b46a8a597e6f3792f43155a958357c8325d6890287c069fff2f767a993a7e6d55d981f357cd0bbf3a5a029293f3d4f77b560f2d
7
- data.tar.gz: 590ff8e64743d371d9ebe4c52f2e2472b3a17eb54c7ec760d65a576e18dbc5c6fa4840d72013cb6e6b876eeb9e8de7b16a4137244a9f637d88e05376aa5bc66b
6
+ metadata.gz: be20dacf290f31e39a3bf7360317adcf9a2eb7d568d5453eb45b2098585ba372911acd146e4b5ebb73aa0cb8d692c1c71a5cfb287b24232a9d6d132f6f6730e0
7
+ data.tar.gz: 0ca2172ae69b6afd2a2f605ff6aee2f5adadddcc6c07094b4091dd9a457c85931fbbeaee1c59273b1a31ce99ed9f21bc02b3463cc14645522e1e19106b657b8e
@@ -3,6 +3,8 @@ settings:
3
3
  key: AWS_KEY_ID
4
4
  secret: AWS_SECRET_KEY
5
5
  region: us-west-2
6
+ dimensions:
7
+ InstanceId: "#{ec2.availability_zone}.#{ec2.instance_id}"
6
8
 
7
9
  metrics:
8
10
  Systems:
@@ -15,7 +17,6 @@ metrics:
15
17
  - name: Memory Utilization
16
18
  unit: Percent
17
19
  value: 100 * memory.MemUsed / memory.MemTotal
18
-
19
20
  - name: Available Space on System
20
21
  unit: Gigabytes
21
22
  value: filesystem.df("/").avail / 1024 / 1024 / 1024
@@ -36,4 +36,8 @@ module Cloudscopes
36
36
  region: @settings['region']
37
37
  end
38
38
 
39
+ def self.data_dimensions
40
+ @settings['dimensions'] || ({ 'InstanceId' => '#{ec2.instance_id}' })
41
+ end
42
+
39
43
  end
@@ -0,0 +1,19 @@
1
+ require 'net/http'
2
+
3
+ module Cloudscopes
4
+
5
+ class Ec2
6
+
7
+ @@baseurl = 'http://169.254.169.254/latest/meta-data'
8
+
9
+ def instance_id
10
+ @@instanceid ||= Net::HTTP.get(URI("#{@@baseurl}/instance-id"))
11
+ end
12
+
13
+ def availability_zone
14
+ @@az ||= Net::HTTP.get(URI("#{@@baseurl}/placement/availability-zone"))
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -4,8 +4,19 @@ module Cloudscopes
4
4
 
5
5
  attr_reader :name, :value, :unit
6
6
 
7
- ec2_instanceid_file = "/var/lib/cloud/data/previous-instance-id"
8
- @@instanceid = File.exists?(ec2_instanceid_file) ? File.read(ec2_instanceid_file).chomp : nil
7
+ def dimensions
8
+ Cloudscopes.data_dimensions.collect do |key,value|
9
+ begin
10
+ if ! value.start_with?('"') and value.include?('#') # user wants to expand a string expression, but can't be bothered with escaping double quotes
11
+ { name: key, value: Cloudscopes.get_binding.eval('"' + value + '"') }
12
+ else
13
+ { name: key, value: Cloudscopes.get_binding.eval(value) }
14
+ end
15
+ rescue NameError # assume the user meant to send the static text
16
+ { name: key, value: value }
17
+ end
18
+ end
19
+ end
9
20
 
10
21
  def initialize(namespace, metric)
11
22
  @name = metric['name']
@@ -29,7 +40,7 @@ module Cloudscopes
29
40
  return nil if @value.nil?
30
41
  data = { metric_name: @name, value: @value }
31
42
  data[:unit] = @unit if @unit
32
- data[:dimensions] = [ { name: "InstanceId", value: @@instanceid } ] unless @@instanceid.nil?
43
+ data[:dimensions] = dimensions
33
44
  data
34
45
  end
35
46
 
@@ -1,3 +1,3 @@
1
1
  module Cloudscopes
2
- VERSION = "0.8.11"
2
+ VERSION = "0.9.0"
3
3
  end
data/lib/cloudscopes.rb CHANGED
@@ -16,6 +16,7 @@ require 'cloudscopes/system'
16
16
  require 'cloudscopes/filesystem'
17
17
  require 'cloudscopes/redis'
18
18
  require 'cloudscopes/network'
19
+ require 'cloudscopes/ec2'
19
20
 
20
21
  module Cloudscopes
21
22
 
metadata CHANGED
@@ -1,75 +1,75 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudscopes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.11
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oded Arbel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-04 00:00:00.000000000 Z
11
+ date: 2015-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.40'
20
20
  type: :runtime
21
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: '1.40'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ffi
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.9'
34
- - - '>='
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: 1.9.3
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ~>
41
+ - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: '1.9'
44
- - - '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 1.9.3
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ~>
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
53
  version: '1.6'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ~>
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '1.6'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rake
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ~>
65
+ - - "~>"
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - ~>
72
+ - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  description: Ruby gem to report system statistics to web based monitoring services
@@ -83,9 +83,9 @@ extensions: []
83
83
  extra_rdoc_files:
84
84
  - README.md
85
85
  files:
86
- - .buildpath
87
- - .gitignore
88
- - .project
86
+ - ".buildpath"
87
+ - ".gitignore"
88
+ - ".project"
89
89
  - Gemfile
90
90
  - LICENSE
91
91
  - README.md
@@ -97,6 +97,7 @@ files:
97
97
  - config/monitoring.yaml
98
98
  - lib/cloudscopes.rb
99
99
  - lib/cloudscopes/configuration.rb
100
+ - lib/cloudscopes/ec2.rb
100
101
  - lib/cloudscopes/filesystem.rb
101
102
  - lib/cloudscopes/globals.rb
102
103
  - lib/cloudscopes/memory.rb
@@ -116,17 +117,17 @@ require_paths:
116
117
  - lib
117
118
  required_ruby_version: !ruby/object:Gem::Requirement
118
119
  requirements:
119
- - - '>='
120
+ - - ">="
120
121
  - !ruby/object:Gem::Version
121
122
  version: '0'
122
123
  required_rubygems_version: !ruby/object:Gem::Requirement
123
124
  requirements:
124
- - - '>='
125
+ - - ">="
125
126
  - !ruby/object:Gem::Version
126
127
  version: '0'
127
128
  requirements: []
128
129
  rubyforge_project:
129
- rubygems_version: 2.2.2
130
+ rubygems_version: 2.4.6
130
131
  signing_key:
131
132
  specification_version: 4
132
133
  summary: Ruby gem to report system statistics to web based monitoring services such