hawkular-client 3.0.2 → 5.0.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.
@@ -0,0 +1,66 @@
1
+ require 'hawkular/base_client'
2
+ require 'hawkular/inventory/entities'
3
+ require 'ostruct'
4
+
5
+ module Hawkular::Prometheus
6
+ class Alerter < Hawkular::BaseClient
7
+ def initialize(entrypoint, credentials = {}, options = {})
8
+ @entrypoint = normalize_entrypoint_url entrypoint, 'hawkular/alerter'
9
+ super(@entrypoint, credentials, options)
10
+ end
11
+
12
+ def prometheus_entrypoint
13
+ rest_client('/prometheus/endpoint').get
14
+ end
15
+ end
16
+
17
+ # Interface to talk with the Prometheus server used for Middleware Manager
18
+ # @param entrypoint [String] base url of Hawkular Services
19
+ class Client < Hawkular::BaseClient
20
+ attr_reader :entrypoint
21
+
22
+ def initialize(entrypoint, credentials = {}, options = {})
23
+ prometheus_entrypoint = Alerter.new(entrypoint, credentials, options).prometheus_entrypoint
24
+ @entrypoint = normalize_entrypoint_url prometheus_entrypoint, 'api/v1'
25
+ super(@entrypoint, credentials, options)
26
+ end
27
+
28
+ def query(metrics: [], time: nil)
29
+ results = []
30
+ metrics.each do |metric|
31
+ query = metric['expression']
32
+ response = http_get "/query?start=#{time}&query=#{query}"
33
+ result = response['data']['result'].empty? ? {} : response['data']['result'].first
34
+ result['metric'] = metric
35
+ results << result
36
+ end
37
+ results
38
+ end
39
+
40
+ def query_range(metrics: [], starts: nil, ends: nil, step: nil)
41
+ results = []
42
+ metrics.each do |metric|
43
+ query = metric['expression']
44
+ response = http_get "/query_range?start=#{starts}&end=#{ends}&step=#{step}&query=#{query}"
45
+ result = response['data']['result'].empty? ? {} : response['data']['result'].first
46
+ result['metric'] = metric
47
+ results << result
48
+ end
49
+ results
50
+ end
51
+
52
+ def up_time(feed_id: nil, starts: nil, ends: nil, step: nil)
53
+ query = "up{feed_id=\"#{feed_id}\"}"
54
+ response = http_get "/query_range?start=#{starts}&end=#{ends}&step=#{step}&query=#{query}"
55
+ if response['data']['result'].empty?
56
+ []
57
+ else
58
+ response['data']['result'].first['values']
59
+ end
60
+ end
61
+
62
+ def ping
63
+ http_get '/query?query=up'
64
+ end
65
+ end
66
+ end
@@ -4,5 +4,5 @@
4
4
  # @see https://github.com/hawkular
5
5
  module Hawkular
6
6
  # Version of the Hawkular Ruby Gem
7
- VERSION = '3.0.2'.freeze
7
+ VERSION = '5.0.0'.freeze
8
8
  end
@@ -4,5 +4,6 @@ require 'hawkular/metrics/metrics_client'
4
4
  require 'hawkular/alerts/alerts_api'
5
5
  require 'hawkular/tokens/tokens_api'
6
6
  require 'hawkular/operations/operations_api'
7
+ require 'hawkular/prometheus/prometheus_api'
7
8
  require 'hawkular/base_client'
8
9
  require 'hawkular/hawkular_client'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hawkular-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Libor Zoubek
@@ -11,22 +11,36 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-05-04 00:00:00.000000000 Z
14
+ date: 2020-09-03 00:00:00.000000000 Z
15
15
  dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: addressable
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
16
30
  - !ruby/object:Gem::Dependency
17
31
  name: rest-client
18
32
  requirement: !ruby/object:Gem::Requirement
19
33
  requirements:
20
34
  - - "~>"
21
35
  - !ruby/object:Gem::Version
22
- version: 2.0.0
36
+ version: '2.1'
23
37
  type: :runtime
24
38
  prerelease: false
25
39
  version_requirements: !ruby/object:Gem::Requirement
26
40
  requirements:
27
41
  - - "~>"
28
42
  - !ruby/object:Gem::Version
29
- version: 2.0.0
43
+ version: '2.1'
30
44
  - !ruby/object:Gem::Dependency
31
45
  name: websocket-client-simple
32
46
  requirement: !ruby/object:Gem::Requirement
@@ -42,21 +56,21 @@ dependencies:
42
56
  - !ruby/object:Gem::Version
43
57
  version: 0.3.0
44
58
  - !ruby/object:Gem::Dependency
45
- name: addressable
59
+ name: actionpack
46
60
  requirement: !ruby/object:Gem::Requirement
47
61
  requirements:
48
- - - ">="
62
+ - - "~>"
49
63
  - !ruby/object:Gem::Version
50
- version: '0'
51
- type: :runtime
64
+ version: '4'
65
+ type: :development
52
66
  prerelease: false
53
67
  version_requirements: !ruby/object:Gem::Requirement
54
68
  requirements:
55
- - - ">="
69
+ - - "~>"
56
70
  - !ruby/object:Gem::Version
57
- version: '0'
71
+ version: '4'
58
72
  - !ruby/object:Gem::Dependency
59
- name: shoulda
73
+ name: coveralls
60
74
  requirement: !ruby/object:Gem::Requirement
61
75
  requirements:
62
76
  - - ">="
@@ -70,33 +84,33 @@ dependencies:
70
84
  - !ruby/object:Gem::Version
71
85
  version: '0'
72
86
  - !ruby/object:Gem::Dependency
73
- name: rspec-rails
87
+ name: pry-byebug
74
88
  requirement: !ruby/object:Gem::Requirement
75
89
  requirements:
76
- - - "~>"
90
+ - - ">="
77
91
  - !ruby/object:Gem::Version
78
- version: '3.1'
92
+ version: '0'
79
93
  type: :development
80
94
  prerelease: false
81
95
  version_requirements: !ruby/object:Gem::Requirement
82
96
  requirements:
83
- - - "~>"
97
+ - - ">="
84
98
  - !ruby/object:Gem::Version
85
- version: '3.1'
99
+ version: '0'
86
100
  - !ruby/object:Gem::Dependency
87
- name: actionpack
101
+ name: rack
88
102
  requirement: !ruby/object:Gem::Requirement
89
103
  requirements:
90
104
  - - "~>"
91
105
  - !ruby/object:Gem::Version
92
- version: '4'
106
+ version: 1.6.4
93
107
  type: :development
94
108
  prerelease: false
95
109
  version_requirements: !ruby/object:Gem::Requirement
96
110
  requirements:
97
111
  - - "~>"
98
112
  - !ruby/object:Gem::Version
99
- version: '4'
113
+ version: 1.6.4
100
114
  - !ruby/object:Gem::Dependency
101
115
  name: rake
102
116
  requirement: !ruby/object:Gem::Requirement
@@ -112,49 +126,35 @@ dependencies:
112
126
  - !ruby/object:Gem::Version
113
127
  version: '11'
114
128
  - !ruby/object:Gem::Dependency
115
- name: simple-websocket-vcr
116
- requirement: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - '='
119
- - !ruby/object:Gem::Version
120
- version: 0.0.7
121
- type: :development
122
- prerelease: false
123
- version_requirements: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - '='
126
- - !ruby/object:Gem::Version
127
- version: 0.0.7
128
- - !ruby/object:Gem::Dependency
129
- name: yard
129
+ name: rspec-rails
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
- - - ">="
132
+ - - "~>"
133
133
  - !ruby/object:Gem::Version
134
- version: '0'
134
+ version: '3.1'
135
135
  type: :development
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
- - - ">="
139
+ - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: '0'
141
+ version: '3.1'
142
142
  - !ruby/object:Gem::Dependency
143
- name: webmock
143
+ name: rubocop
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - "~>"
146
+ - - '='
147
147
  - !ruby/object:Gem::Version
148
- version: 1.24.0
148
+ version: 0.51.0
149
149
  type: :development
150
150
  prerelease: false
151
151
  version_requirements: !ruby/object:Gem::Requirement
152
152
  requirements:
153
- - - "~>"
153
+ - - '='
154
154
  - !ruby/object:Gem::Version
155
- version: 1.24.0
155
+ version: 0.51.0
156
156
  - !ruby/object:Gem::Dependency
157
- name: vcr
157
+ name: shoulda
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
160
  - - ">="
@@ -168,21 +168,21 @@ dependencies:
168
168
  - !ruby/object:Gem::Version
169
169
  version: '0'
170
170
  - !ruby/object:Gem::Dependency
171
- name: rubocop
171
+ name: simple-websocket-vcr
172
172
  requirement: !ruby/object:Gem::Requirement
173
173
  requirements:
174
174
  - - '='
175
175
  - !ruby/object:Gem::Version
176
- version: 0.34.2
176
+ version: 0.1.0
177
177
  type: :development
178
178
  prerelease: false
179
179
  version_requirements: !ruby/object:Gem::Requirement
180
180
  requirements:
181
181
  - - '='
182
182
  - !ruby/object:Gem::Version
183
- version: 0.34.2
183
+ version: 0.1.0
184
184
  - !ruby/object:Gem::Dependency
185
- name: coveralls
185
+ name: vcr
186
186
  requirement: !ruby/object:Gem::Requirement
187
187
  requirements:
188
188
  - - ">="
@@ -196,21 +196,21 @@ dependencies:
196
196
  - !ruby/object:Gem::Version
197
197
  version: '0'
198
198
  - !ruby/object:Gem::Dependency
199
- name: rack
199
+ name: webmock
200
200
  requirement: !ruby/object:Gem::Requirement
201
201
  requirements:
202
202
  - - "~>"
203
203
  - !ruby/object:Gem::Version
204
- version: 1.6.4
204
+ version: '3.0'
205
205
  type: :development
206
206
  prerelease: false
207
207
  version_requirements: !ruby/object:Gem::Requirement
208
208
  requirements:
209
209
  - - "~>"
210
210
  - !ruby/object:Gem::Version
211
- version: 1.6.4
211
+ version: '3.0'
212
212
  - !ruby/object:Gem::Dependency
213
- name: pry-byebug
213
+ name: yard
214
214
  requirement: !ruby/object:Gem::Requirement
215
215
  requirements:
216
216
  - - ">="
@@ -223,7 +223,7 @@ dependencies:
223
223
  - - ">="
224
224
  - !ruby/object:Gem::Version
225
225
  version: '0'
226
- description: " A Ruby client for Hawkular\n"
226
+ description: A Ruby client for Hawkular
227
227
  email:
228
228
  - lzoubek@redhat.com
229
229
  - hrupp@redhat.com
@@ -250,6 +250,7 @@ files:
250
250
  - lib/hawkular/metrics/tenant_api.rb
251
251
  - lib/hawkular/metrics/types.rb
252
252
  - lib/hawkular/operations/operations_api.rb
253
+ - lib/hawkular/prometheus/prometheus_api.rb
253
254
  - lib/hawkular/tokens/tokens_api.rb
254
255
  - lib/hawkular/version.rb
255
256
  - lib/hawkularclient.rb
@@ -271,7 +272,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
271
272
  requirements:
272
273
  - - ">="
273
274
  - !ruby/object:Gem::Version
274
- version: 2.0.0
275
+ version: 2.2.0
275
276
  required_rubygems_version: !ruby/object:Gem::Requirement
276
277
  requirements:
277
278
  - - ">="
@@ -279,7 +280,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
280
  version: '0'
280
281
  requirements: []
281
282
  rubyforge_project:
282
- rubygems_version: 2.6.12
283
+ rubygems_version: 2.6.14
283
284
  signing_key:
284
285
  specification_version: 4
285
286
  summary: A Ruby client for Hawkular