mackerel-client 0.0.2 → 0.0.3

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: 6469f220c097bfce9c5410a1897c517cf498f396
4
- data.tar.gz: 1e343adc7d72fd577f2d1a12c2fa022382186114
3
+ metadata.gz: 91ab71f2c21720288ec7c6c1d44079f4d98326d5
4
+ data.tar.gz: 3e6e4f6bc08ad6c72949538141eacf94d16407d6
5
5
  SHA512:
6
- metadata.gz: 65fa9d1846465abc5b741b2785fe02a3cc617c34c438f2a51089d3919ea36aeb6aef5661fe5b636a0f9c53ed8f808495c85ea8e26ebbdd21a0d1017be6ebcf18
7
- data.tar.gz: 1e26dc9a86fd0118176cad8d3ad11ff0536c4633b06e46dedd29ab331cdde25a8691877faa60c0a7097e6a89a779beb804d7605aca221b2c84526a465c3e8cf5
6
+ metadata.gz: cd2297ae218d4c491c51c0a82e5985aa7f7674b0bed2d22ed0246f919155d0e96a8a6fca22b31fc4f81bf49be10057c992988e27543521a1a765f2e874e0292c
7
+ data.tar.gz: 98363c727e49f46c2250dc30ab730fb53d852eb150c5342cf590697cf91709f4daab37360fa0427cf2e8f725ebfe5db5b2e6878c7ad6adf5d2c6f7e589d5e926
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -80,6 +80,22 @@ module Mackerel
80
80
  data = JSON.parse(response.body)
81
81
  end
82
82
 
83
+ def post_service_metrics(service_name, metrics)
84
+ client = http_client
85
+
86
+ response = client.post "/api/v0/services/#{service_name}/tsdb" do |req|
87
+ req.headers['X-Api-Key'] = @api_key
88
+ req.headers['Content-Type'] = 'application/json'
89
+ req.body = metrics.to_json
90
+ end
91
+
92
+ unless response.success?
93
+ raise "POST /api/v0/services/#{service_name}/tsdb faild: #{response.status}"
94
+ end
95
+
96
+ data = JSON.parse(response.body)
97
+ end
98
+
83
99
  def get_hosts(opts = {})
84
100
  client = http_client
85
101
 
@@ -168,6 +168,45 @@ describe Mackerel::Client do
168
168
  end
169
169
  end
170
170
 
171
+ describe '#post_service_metrics' do
172
+ let(:stubbed_response) {
173
+ [
174
+ 200,
175
+ {},
176
+ JSON.dump(response_object)
177
+ ]
178
+ }
179
+
180
+ let(:test_client) {
181
+ Faraday.new do |builder|
182
+ builder.adapter :test do |stubs|
183
+ stubs.post(api_path) { stubbed_response }
184
+ end
185
+ end
186
+ }
187
+
188
+ let(:service_name) { 'service_name' }
189
+
190
+ let(:api_path) { "/api/v0/services/#{service_name}/tsdb" }
191
+
192
+ let(:response_object) {
193
+ { 'success' => true }
194
+ }
195
+
196
+ let(:metrics) { [
197
+ { 'name' => 'custom.metrics.latency', 'time' => 1401537844, 'value' => 0.5 },
198
+ { 'name' => 'custom.metrics.uptime', 'time' => 1401537844, 'value' => 500 },
199
+ ] }
200
+
201
+ before do
202
+ allow(client).to receive(:http_client).and_return(test_client)
203
+ end
204
+
205
+ it "successfully post metrics" do
206
+ expect(client.post_service_metrics(service_name, metrics)).to eq(response_object)
207
+ end
208
+ end
209
+
171
210
  describe '#get_hosts' do
172
211
  let(:stubbed_response) {
173
212
  [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mackerel-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mackerel developer team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-19 00:00:00.000000000 Z
11
+ date: 2014-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday