como_client 0.1.1 → 0.3.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
- SHA1:
3
- metadata.gz: ae20fe23f326d495c7edf5f443930b2367aed444
4
- data.tar.gz: b93f69e2785a6555fe7c98d9cc8827f8453c6cd8
2
+ SHA256:
3
+ metadata.gz: 0a46fb908d89401f14ca6a5da2b07b90ac80d908f0a63da574a7f7a3b2c32fd2
4
+ data.tar.gz: 2cbdc2ad2c54f24ee9beaea1b4b053ca19f9601c86011943b832707d759baa27
5
5
  SHA512:
6
- metadata.gz: ddb4bcbc381b9c3fc9697e1a778e284fdcac72af88c4d5387902fb3a85753f5ee59574417c896865779c8a979844cdd7828c7afb081af3be529ba687c87c78ed
7
- data.tar.gz: 0f33065ad30d448a07731b570cf102e639b80bd19f1ff98e47505ba06c895c82d7d82ab16719adc9888c75ecd9ef901dabf201f6f06a6a2a3b6fe06c3b11dad2
6
+ metadata.gz: e267901e852d2c4e182805e9b62a1e8b80a2e85f59e1effe89b59414661ceb9c2e3b99cb716bf3d7d927acf7cb7c91674f6a92534e64d3f9bfec8d328268bd37
7
+ data.tar.gz: 02c09fec0e0cedf8595a61eb7ac854e4ce6003fe08dab48d7febb9f1506b447c3175ceddf38b70442c7ef7d36b829eefd07a6d828f7fafe13a8f434b7767c35d
@@ -1,5 +1,5 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.3.3
4
+ - 2.6.3
5
5
  before_install: gem install bundler -v 1.14.6
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2017 Disler Colin, INI-DEV-APO-CAU-LFA
3
+ Copyright (c) 2019 Disler Colin
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -8,7 +8,7 @@ If you work in a Cloud Foundry environment and want to actively push your Promet
8
8
  Add this line to your application's Gemfile:
9
9
 
10
10
  ```ruby
11
- gem 'COMO_Client'
11
+ gem 'como_client'
12
12
  ```
13
13
 
14
14
  And then execute:
@@ -17,7 +17,7 @@ And then execute:
17
17
 
18
18
  Or install it yourself as:
19
19
 
20
- $ gem install COMO_Client
20
+ $ gem install como_client
21
21
 
22
22
  ## Usage
23
23
 
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["Colin.Disler@gmail.com"]
11
11
 
12
12
  spec.summary = "A Prometheus Client for continuous monitoring"
13
- spec.description = "A Prometheus Client for continuous monitoring"
13
+ spec.description = "A Prometheus Client for continuous monitoring. Configure & Run."
14
14
  spec.homepage = "https://github.com/lombold/COMO_Client"
15
15
  spec.license = "MIT"
16
16
 
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ["lib"]
32
32
 
33
- spec.add_development_dependency 'rspec'
34
- spec.add_dependency 'concurrent-ruby'
35
- spec.add_dependency 'prometheus-client'
36
- spec.add_dependency 'usagewatch_ext'
37
- spec.add_dependency 'mem_info'
33
+ spec.add_development_dependency 'rspec', '~> 3.9.0'
34
+ spec.add_dependency 'concurrent-ruby', '~> 1.1.5'
35
+ spec.add_dependency 'prometheus-client', '~> 1.0'
36
+ spec.add_dependency 'usagewatch_ext', '~> 0.2.1'
37
+ spec.add_dependency 'mem_info', '~> 1.0.1'
38
38
  end
@@ -10,11 +10,17 @@ require 'prometheus/middleware/exporter'
10
10
  require 'prometheus/middleware/collector'
11
11
 
12
12
  module COMOClient
13
+ def self.logger
14
+ @@logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
15
+ end
16
+
17
+ def self.logger=(logger)
18
+ @@logger = logger
19
+ end
13
20
 
14
21
  class Railtie < Rails::Railtie
15
22
  initializer 'como_client.configure_rails_initialization' do
16
23
  Rails.configuration.middleware.use Prometheus::Middleware::Collector
17
- Rails.configuration.middleware.use Prometheus::Middleware::Exporter
18
24
  end
19
25
  end
20
26
 
@@ -36,18 +42,18 @@ module COMOClient
36
42
  end
37
43
 
38
44
  def self.run
39
- logger = Logger.new(STDOUT)
40
- logger.info("initialize metrics push service...")
45
+
46
+ COMOClient.logger.debug("initialise metrics push service...")
41
47
  if @pushTask and @pushTask.running?
42
- logger.info("the metrics push service is already running!")
48
+ COMOClient.logger.debug("push service is already running!")
43
49
  return true
44
50
  end
45
51
 
46
52
  COMOClient::Metrics.register
47
- @pushTask = Concurrent::TimerTask.new(execution_interval: 20, timeout_interval: 20){COMOClient::Tasks::PeriodicPush.push}
53
+ @pushTask = Concurrent::TimerTask.new(execution_interval: @configuration.push_interval, timeout_interval: 20){COMOClient::Tasks::PeriodicPush.push}
48
54
  @pushTask.add_observer(COMOClient::Tasks::Observer.new)
49
55
  @pushTask.execute
50
- logger.info("successfully initiated metrics push service!")
56
+ COMOClient.logger.info("push service initialised")
51
57
  @pushTask.running?
52
58
  end
53
59
 
@@ -1,23 +1,21 @@
1
1
  module COMOClient
2
2
  module Metrics
3
3
  def self.register
4
- logger = Logger.new(STDOUT)
5
- logger.info("register metrics...")
4
+ COMOClient.logger.debug("register metrics...")
6
5
 
7
6
  #Register Cloud Froundry metrics if the app is pushed to Cloud Foundry
8
7
  COMOClient::Metrics::CF.register if !ENV["CF_INSTANCE_GUID"].nil?
9
8
 
10
- logger.info("registered metrics")
9
+ COMOClient.logger.debug("registered metrics")
11
10
  end
12
11
 
13
12
  def self.update
14
- logger = Logger.new(STDOUT)
15
- logger.info("update metrics...")
13
+ COMOClient.logger.debug("update metrics...")
16
14
 
17
15
  #Update Cloud Froundry metrics if the app is pushed to Cloud Foundry
18
16
  COMOClient::Metrics::CF.update if !ENV["CF_INSTANCE_GUID"].nil?
19
17
 
20
- logger.info("updated metrics")
18
+ COMOClient.logger.debug("updated metrics")
21
19
  end
22
20
  end
23
21
  end
@@ -6,36 +6,33 @@ module COMOClient
6
6
  require 'mem_info'
7
7
 
8
8
  def self.register
9
- logger = Logger.new(STDOUT)
10
- logger.info("register CF metrics...")
9
+ COMOClient.logger.debug("register CF metrics...")
11
10
 
12
11
  prometheus = Prometheus::Client.registry
13
12
 
14
- hardwareGauges = Prometheus::Client::Gauge.new(:instance_metrics, 'instance hardware metrics')
13
+ hardwareGauges = Prometheus::Client::Gauge.new( :instance_metrics, docstring: 'instance hardware metrics', labels: [:hardware])
15
14
  prometheus.register(hardwareGauges)
16
- logger.info("registered hardware gauges")
15
+ COMOClient.logger.debug("registered hardware gauges")
17
16
 
18
- logger.info("registered CF metrics")
17
+ COMOClient.logger.debug("registered CF metrics")
19
18
  end
20
19
  def self.update
21
- logger = Logger.new(STDOUT)
22
- logger.info("update CF metrics...")
20
+ COMOClient.logger.debug("update CF metrics...")
23
21
  prometheus = Prometheus::Client.registry
24
22
 
25
23
  usw = Usagewatch
26
24
  mem = MemInfo.new
27
25
  hardwareGauges = prometheus.get(:instance_metrics)
28
- hardwareGauges.set({ hardware: 'cpu'}, usw.uw_cpuused)
29
- hardwareGauges.set({ hardware: 'avg_load_past_minute'}, usw.uw_load)
30
- hardwareGauges.set({ hardware: 'memory_total'}, mem.memtotal)
31
- hardwareGauges.set({ hardware: 'memory_free'}, mem.memfree)
32
- hardwareGauges.set({ hardware: 'memory_used'}, mem.memused)
33
- hardwareGauges.set({ hardware: 'disk_used_perc'}, usw.uw_diskused_perc)
34
- hardwareGauges.set({ hardware: 'disk_used_gigabytes'}, usw.uw_diskused)
35
- hardwareGauges.set({ hardware: 'uptime_seconds'}, IO.read('/proc/uptime').split[0].to_i)
36
- logger.info("instance gauges")
26
+ hardwareGauges.set(usw.uw_cpuused, labels: { hardware: 'cpu'})
27
+ hardwareGauges.set(usw.uw_load, labels: { hardware: 'avg_load_past_minute'})
28
+ hardwareGauges.set(mem.memtotal, labels: { hardware: 'memory_total'})
29
+ hardwareGauges.set(mem.memfree, labels: { hardware: 'memory_free'})
30
+ hardwareGauges.set(mem.memused, labels: { hardware: 'memory_used'})
31
+ hardwareGauges.set(usw.uw_diskused_perc, labels: { hardware: 'disk_used_perc'})
32
+ hardwareGauges.set(usw.uw_diskused, labels: { hardware: 'disk_used_gigabytes'})
33
+ hardwareGauges.set(IO.read('/proc/uptime').split[0].to_i, labels: { hardware: 'uptime_seconds'})
37
34
 
38
- logger.info("updated CF metrics")
35
+ COMOClient.logger.debug("updated CF metrics")
39
36
  end
40
37
  end
41
38
  end
@@ -5,17 +5,16 @@ module COMOClient
5
5
  require 'prometheus/client/push'
6
6
  def self.push
7
7
  # register some metrics
8
- logger = Logger.new(STDOUT)
9
- logger.info("pushing metrics to #{COMOClient.configuration.pushgateway_url}")
10
- logger.info("job: #{COMOClient.configuration.job_name}")
11
- logger.info("instance: #{COMOClient.configuration.instance_name}")
8
+ COMOClient.logger.debug("pushing metrics to #{COMOClient.configuration.pushgateway_url}")
9
+ COMOClient.logger.debug("job: #{COMOClient.configuration.job_name}")
10
+ COMOClient.logger.debug("instance: #{COMOClient.configuration.instance_name}")
12
11
  COMOClient::Metrics.update
13
12
  Prometheus::Client::Push.new(COMOClient.configuration.job_name, #job name
14
13
  COMOClient.configuration.instance_name,#instance name
15
14
  COMOClient.configuration.pushgateway_url)#pushgateway url
16
15
  .add(Prometheus::Client.registry)
17
- logger.info("successfully pushed metrics")
16
+ COMOClient.logger.debug("successfully pushed metrics")
18
17
  end
19
18
  end
20
19
  end
21
- end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module COMOClient
2
- VERSION = "0.1.1"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,86 +1,86 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: como_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Disler Colin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-14 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 3.9.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 3.9.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: concurrent-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 1.1.5
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 1.1.5
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: prometheus-client
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: usagewatch_ext
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.2.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 0.2.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mem_info
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 1.0.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
83
- description: A Prometheus Client for continuous monitoring
82
+ version: 1.0.1
83
+ description: A Prometheus Client for continuous monitoring. Configure & Run.
84
84
  email:
85
85
  - Colin.Disler@gmail.com
86
86
  executables: []
@@ -124,8 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  requirements: []
127
- rubyforge_project:
128
- rubygems_version: 2.4.6
127
+ rubygems_version: 3.0.6
129
128
  signing_key:
130
129
  specification_version: 4
131
130
  summary: A Prometheus Client for continuous monitoring