como_client 0.1.1 → 0.3.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
- 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