cloudscopes 0.8.11 → 0.9.0

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: 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