growthforecast-client 0.0.1 → 0.0.2
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.
- data/README.md +2 -0
- data/VERSION +1 -1
- data/examples/create_complex.rb +42 -0
- data/examples/edit_graph.rb +9 -5
- data/spec/growthforecast/client_spec.rb +8 -5
- data/spec/support/mock.rb +28 -1
- metadata +5 -5
- data/examples/complex_graph.rb +0 -37
data/README.md
CHANGED
@@ -6,6 +6,8 @@ testing ruby: 1.9.3; GrowthForecast: > 0.39
|
|
6
6
|
|
7
7
|
growthforecast-client is a ruby client library for GrowthForecast API where [GrowthForecast](http://kazeburo.github.com/GrowthForecast/) is a visualization graph tool.
|
8
8
|
|
9
|
+
With growthforecast-client, for example, you can edit properties of a graph such as `color`, and create a complex graph.
|
10
|
+
|
9
11
|
## USAGE
|
10
12
|
|
11
13
|
gem install growthforecast-client
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
# An example to create complex graphs
|
3
|
+
|
4
|
+
# require anyway
|
5
|
+
require 'growthforecast-client'
|
6
|
+
|
7
|
+
# Create a GrowthForecast Client, given he base URI of GrowthForecast
|
8
|
+
client = GrowthForecast::Client.new('http://localhost:5125')
|
9
|
+
|
10
|
+
# I gonna apply for all services/sections
|
11
|
+
sections = client.list_section
|
12
|
+
sections.each do |service_name, sections|
|
13
|
+
sections.each do |section_name|
|
14
|
+
# Make a complex graph from these graphs
|
15
|
+
from_graphs= [
|
16
|
+
{"service_name" => service_name, "section_name" => section_name, "graph_name" => "<1sec_count", "gmode" => 'gauge', "stack" => true, "type" => 'AREA'},
|
17
|
+
{"service_name" => service_name, "section_name" => section_name, "graph_name" => "<2sec_count", "gmode" => 'gauge', "stack" => true, "type" => 'AREA'},
|
18
|
+
{"service_name" => service_name, "section_name" => section_name, "graph_name" => "<3sec_count", "gmode" => 'gauge', "stack" => true, "type" => 'AREA'},
|
19
|
+
{"service_name" => service_name, "section_name" => section_name, "graph_name" => "<4sec_count", "gmode" => 'gauge', "stack" => true, "type" => 'AREA'},
|
20
|
+
{"service_name" => service_name, "section_name" => section_name, "graph_name" => ">=4sec_count", "gmode" => 'gauge', "stack" => true, "type" => 'AREA'},
|
21
|
+
]
|
22
|
+
|
23
|
+
# The propety of a complex graph to create
|
24
|
+
to_complex = {
|
25
|
+
"service_name" => service_name,
|
26
|
+
"section_name" => section_name,
|
27
|
+
"graph_name" => "response_time_count",
|
28
|
+
"description" => "response time count",
|
29
|
+
"sort" => 10,
|
30
|
+
}
|
31
|
+
|
32
|
+
# Create a complex graph!
|
33
|
+
begin
|
34
|
+
puts "Setup /#{service_name}/#{section_name}/#{to_complex['graph_name']}"
|
35
|
+
client.create_complex(from_graphs, to_complex)
|
36
|
+
rescue GrowthForecast::AlreadyExists => e
|
37
|
+
puts "\tclass:#{e.class}\t#{e.message}"
|
38
|
+
rescue GrowthForecast::NotFound => e
|
39
|
+
puts "\tclass:#{e.class}\t#{e.message}"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/examples/edit_graph.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
# An example to edit properties of graphs such as color, unit.
|
3
|
+
|
4
|
+
# require anyway
|
2
5
|
require 'growthforecast-client'
|
3
6
|
|
4
7
|
# Create a GrowthForecast Client, given he base URI of GrowthForecast
|
5
|
-
|
6
|
-
client = GrowthForecast::Client.new(uri)
|
8
|
+
client = GrowthForecast::Client.new('http://localhost:5125')
|
7
9
|
|
8
10
|
# configure colors of graphs whose names are as belows:
|
9
11
|
graph_colors = {
|
@@ -13,21 +15,23 @@ graph_colors = {
|
|
13
15
|
'<4sec_count' => '#cccc11',
|
14
16
|
'>=4sec_count' => '#cc1111',
|
15
17
|
}
|
16
|
-
#
|
18
|
+
# I gonna apply for all services/sections
|
17
19
|
sections = client.list_section
|
18
20
|
sections.each do |service_name, sections|
|
19
21
|
sections.each do |section_name|
|
20
22
|
graph_colors.keys.each do |graph_name|
|
21
|
-
|
23
|
+
# Graph properties to overwrite
|
24
|
+
params = {
|
22
25
|
'color' => graph_colors[graph_name],
|
23
26
|
'unit' => 'count',
|
24
27
|
'sort' => 1, # order to display, 19 is the top
|
25
28
|
'adjust' => '/',
|
26
29
|
'adjustval' => '1',
|
27
30
|
}
|
31
|
+
# Edit a graph
|
28
32
|
begin
|
29
33
|
puts "Setup /#{service_name}/#{section_name}/#{graph_name}"
|
30
|
-
client.edit_graph(service_name, section_name, graph_name,
|
34
|
+
client.edit_graph(service_name, section_name, graph_name, params)
|
31
35
|
rescue GrowthForecast::NotFound => e
|
32
36
|
puts "\tclass:#{e.class}\t#{e.message}"
|
33
37
|
end
|
@@ -1,10 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
id_keys = %w[id service_name section_name graph_name]
|
5
|
-
graph_keys = %w[number llimit mode stype adjustval gmode color created_at ulimit description
|
6
|
-
sulimit unit sort updated_at adjust type sllimit meta md5]
|
7
|
-
|
3
|
+
shared_context "setup_growthforecast_client" do
|
8
4
|
before(:all) { @client = GrowthForecast::Client.new('http://localhost:5125') }
|
9
5
|
|
10
6
|
include_context "stub_list_graph" if ENV['MOCK'] == 'on'
|
@@ -23,6 +19,13 @@ describe GrowthForecast::Client do
|
|
23
19
|
@client.delete_graph("app_name", "hostname", "<1sec_count") rescue nil
|
24
20
|
@client.delete_graph("app_name", "hostname", "<2sec_count") rescue nil
|
25
21
|
}
|
22
|
+
end
|
23
|
+
|
24
|
+
describe GrowthForecast::Client do
|
25
|
+
include_context "setup_growthforecast_client"
|
26
|
+
id_keys = %w[id service_name section_name graph_name]
|
27
|
+
graph_keys = %w[number llimit mode stype adjustval gmode color created_at ulimit description
|
28
|
+
sulimit unit sort updated_at adjust type sllimit meta md5]
|
26
29
|
|
27
30
|
context "#list_graph" do
|
28
31
|
include_context "stub_list_graph" if ENV['MOCK'] == 'on'
|
data/spec/support/mock.rb
CHANGED
@@ -62,7 +62,34 @@ shared_context "stub_get_graph" do
|
|
62
62
|
end
|
63
63
|
|
64
64
|
shared_context "stub_get_graph_by_id" do
|
65
|
-
|
65
|
+
# /json/graph/:id does not return `meta` and `md5`
|
66
|
+
let(:graph_example) {
|
67
|
+
{
|
68
|
+
"number"=>0,
|
69
|
+
"llimit"=>-1000000000,
|
70
|
+
"mode"=>"gauge",
|
71
|
+
"stype"=>"AREA",
|
72
|
+
"adjustval"=>"1",
|
73
|
+
# "meta"=>"",
|
74
|
+
"service_name"=>"app_name",
|
75
|
+
"gmode"=>"gauge",
|
76
|
+
"color"=>"#cc6633",
|
77
|
+
"created_at"=>"2013/02/02 00:41:11",
|
78
|
+
"section_name"=>"hostname",
|
79
|
+
"ulimit"=>1000000000,
|
80
|
+
"id"=>1,
|
81
|
+
"graph_name"=>"<1sec_count",
|
82
|
+
"description"=>"",
|
83
|
+
"sulimit"=>100000,
|
84
|
+
"unit"=>"",
|
85
|
+
"sort"=>0,
|
86
|
+
"updated_at"=>"2013/02/02 02:32:10",
|
87
|
+
"adjust"=>"*",
|
88
|
+
"type"=>"AREA",
|
89
|
+
"sllimit"=>-100000,
|
90
|
+
# "md5"=>"3c59dc048e8850243be8079a5c74d079"
|
91
|
+
}
|
92
|
+
}
|
66
93
|
|
67
94
|
proc = Proc.new do
|
68
95
|
stub_request(:get, "#{base_uri}/json/graph/#{graph['id']}").
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: growthforecast-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httpclient
|
@@ -155,7 +155,7 @@ files:
|
|
155
155
|
- README.md
|
156
156
|
- Rakefile
|
157
157
|
- VERSION
|
158
|
-
- examples/
|
158
|
+
- examples/create_complex.rb
|
159
159
|
- examples/edit_graph.rb
|
160
160
|
- growthforecast-client.gemspec
|
161
161
|
- lib/growthforecast-client.rb
|
@@ -177,7 +177,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
177
177
|
version: '0'
|
178
178
|
segments:
|
179
179
|
- 0
|
180
|
-
hash:
|
180
|
+
hash: 503186860326361050
|
181
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
182
|
none: false
|
183
183
|
requirements:
|
@@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
186
|
version: '0'
|
187
187
|
segments:
|
188
188
|
- 0
|
189
|
-
hash:
|
189
|
+
hash: 503186860326361050
|
190
190
|
requirements: []
|
191
191
|
rubyforge_project:
|
192
192
|
rubygems_version: 1.8.23
|
data/examples/complex_graph.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require 'growthforecast-client'
|
3
|
-
|
4
|
-
# Create a GrowthForecast Client, given he base URI of GrowthForecast
|
5
|
-
uri = 'http://localhost:5125'
|
6
|
-
client = GrowthForecast::Client.new(uri)
|
7
|
-
|
8
|
-
# Apply for all services/sections
|
9
|
-
sections = client.list_section
|
10
|
-
sections.each do |service_name, sections|
|
11
|
-
sections.each do |section_name|
|
12
|
-
# Make a complex graph from these graphs
|
13
|
-
from_graphs= [
|
14
|
-
{:path => "#{service_name}/#{section_name}/<1sec_count", :gmode => 'gauge', :stack => true, :type => 'AREA'},
|
15
|
-
{:path => "#{service_name}/#{section_name}/<2sec_count", :gmode => 'gauge', :stack => true, :type => 'AREA'},
|
16
|
-
{:path => "#{service_name}/#{section_name}/<3sec_count", :gmode => 'gauge', :stack => true, :type => 'AREA'},
|
17
|
-
{:path => "#{service_name}/#{section_name}/<4sec_count", :gmode => 'gauge', :stack => true, :type => 'AREA'},
|
18
|
-
{:path => "#{service_name}/#{section_name}/>=4sec_count", :gmode => 'gauge', :stack => true, :type => 'AREA'},
|
19
|
-
]
|
20
|
-
|
21
|
-
# The propety of a complex graph to create, e.g., path
|
22
|
-
to_complex = {
|
23
|
-
:path => "#{service_name}/#{section_name}/response_count",
|
24
|
-
:description => 'response time count',
|
25
|
-
:sort => 10,
|
26
|
-
}
|
27
|
-
|
28
|
-
begin
|
29
|
-
puts "Setup #{to_complex[:path]}"
|
30
|
-
client.create_complex(from_graphs, to_complex)
|
31
|
-
rescue GrowthForecast::AlreadyExists => e
|
32
|
-
puts "\tclass:#{e.class}\t#{e.message}"
|
33
|
-
rescue GrowthForecast::NotFound => e
|
34
|
-
puts "\tclass:#{e.class}\t#{e.message}"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|