stat-count-client 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +23 -0
- data/lib/stat-count-client/config_loader.rb +6 -2
- data/lib/stat-count-client/thrift_client.rb +13 -20
- data/lib/stat-count-client/version.rb +1 -1
- data/test/benchmark.rb +45 -0
- data/test/thrift_count_client_test.rb +1 -1
- metadata +5 -5
- data/lib/config_loader.rb +0 -13
- data/lib/hessian_data_utils.rb +0 -33
- data/lib/logger_factory.rb +0 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87d871672e40a91293e2b061ef214c03c8f5e6a4
|
4
|
+
data.tar.gz: 379a6cad4f296795eae3fbc21ae97d23d650b496
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b32f31fe751b288e59eabc931bd3d442df8bb7a3bc4dfeeb692accf4abf5f4646f8ae53081dc42e233dac8035649c6a8e0eb077914d91fecfd9ba51043e87c8
|
7
|
+
data.tar.gz: ba2887361ca54a5c429fc2e36ddb5eced14a4d14538d4d17f7539f091f4a1c971ab7a43999fc907e06f8620870126ee8cd2ec108a3b5719990148e889843a624
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
stat-count-client (0.0.2)
|
5
|
+
hessian2
|
6
|
+
thrift-client
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
remote: http://192.168.3.220:9292/
|
11
|
+
specs:
|
12
|
+
bigdecimal (1.2.1)
|
13
|
+
hessian2 (2.0.0)
|
14
|
+
bigdecimal
|
15
|
+
thrift (0.9.1)
|
16
|
+
thrift-client (0.0.5)
|
17
|
+
thrift (~> 0.9.0)
|
18
|
+
|
19
|
+
PLATFORMS
|
20
|
+
ruby
|
21
|
+
|
22
|
+
DEPENDENCIES
|
23
|
+
stat-count-client!
|
@@ -8,6 +8,10 @@
|
|
8
8
|
# log.level: info
|
9
9
|
|
10
10
|
module ConfigLoader
|
11
|
-
|
12
|
-
|
11
|
+
begin
|
12
|
+
LOADER = YAML.load_file(File.join(File.dirname(__FILE__),"../config","stat-count-client.yaml"));
|
13
|
+
CONFIG = LOADER['stat.count']
|
14
|
+
rescue
|
15
|
+
CONFIG = {}
|
16
|
+
end
|
13
17
|
end
|
@@ -15,22 +15,16 @@ module Stat
|
|
15
15
|
include Stat::Count::Thrift
|
16
16
|
@@logger = LoggerFactory.getLogger("StatCountThriftClient")
|
17
17
|
|
18
|
-
def initialize(
|
19
|
-
|
20
|
-
config ||=
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
config[:client_class] = eval(client_class)
|
27
|
-
application_exception_classes_strs = config['application_exception_classes'] || ["DataCollectionException"]
|
28
|
-
application_exception_classe=application_exception_classes_strs.collect { |class_str|
|
29
|
-
eval(class_str)
|
30
|
-
}
|
31
|
-
config[:application_exception_classes] = application_exception_classe
|
32
|
-
init(servers, config)
|
18
|
+
def initialize(config=nil)
|
19
|
+
config ||= ConfigLoader::CONFIG['thrift'] || {}
|
20
|
+
config['servers'] ||='localhost:9090'
|
21
|
+
config['client_class'] ||= 'Stat::Count::Thrift::RemoteSimpleCountCollecter::Client'
|
22
|
+
config['application_exception_classes'] ||= 'Stat::Count::Thrift::DataCollectionException'
|
23
|
+
config['timeout'] ||= 10
|
24
|
+
if !config['size'].nil? && config['size'] > 1
|
25
|
+
config['pool_timeout'] = 12
|
33
26
|
end
|
27
|
+
init(config)
|
34
28
|
end
|
35
29
|
|
36
30
|
|
@@ -136,12 +130,11 @@ module Stat
|
|
136
130
|
|
137
131
|
|
138
132
|
private
|
139
|
-
def init(
|
140
|
-
@@logger.info("Init Stat count client connect to thrift
|
141
|
-
puts
|
142
|
-
puts config
|
133
|
+
def init(config)
|
134
|
+
@@logger.info("Init Stat count client connect to thrift config: #{config}")
|
135
|
+
puts "StatCount init config #{config}"
|
143
136
|
begin
|
144
|
-
@client = ThriftClient.new(
|
137
|
+
@client = ThriftClient.new(config)
|
145
138
|
|
146
139
|
@client.add_callback(:on_exception) { |method_name, e|
|
147
140
|
@@logger.error("call #{method_name} fails! cause by: #{e.message}, " + "\n" + e.backtrace.join("\n"))
|
data/test/benchmark.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__),"..")
|
3
|
+
|
4
|
+
require "rubygems"
|
5
|
+
require "hessian2"
|
6
|
+
require "stat-count-client"
|
7
|
+
require_relative "count_mother"
|
8
|
+
require 'benchmark'
|
9
|
+
|
10
|
+
iterations = 100000
|
11
|
+
def reset(client)
|
12
|
+
client.reset("test", "1")
|
13
|
+
client.reset("testHour", "2")
|
14
|
+
client.reset("testDay", "3")
|
15
|
+
end
|
16
|
+
|
17
|
+
client = Stat::Count::Client::ThriftStatCountClient.new({"servers" => "localhost:9095"});
|
18
|
+
Benchmark.bm do |bm|
|
19
|
+
# joining an array of strings
|
20
|
+
bm.report do
|
21
|
+
iterations.times do
|
22
|
+
reset(client)
|
23
|
+
count = CountMother.createIncrCount
|
24
|
+
countResult = client.incrByCount(count)
|
25
|
+
# puts countResult.getResult()
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
client = Stat::Count::Client::StatCountClient.new("http://localhost:8080/stat-count-runtime/hessian/remoteSimpleCountCollecter");
|
32
|
+
Benchmark.bm do |bm|
|
33
|
+
# joining an array of strings
|
34
|
+
bm.report do
|
35
|
+
iterations.times do
|
36
|
+
reset(client)
|
37
|
+
count = CountMother.createIncrCount
|
38
|
+
countResult = client.incrByCount(count)
|
39
|
+
# puts countResult.getResult()
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
|
@@ -14,7 +14,7 @@ class TC_StatCountClientTest < Test::Unit::TestCase
|
|
14
14
|
# Called before every test method runs. Can be used
|
15
15
|
# to set up fixture information.
|
16
16
|
def setup
|
17
|
-
@client = ThriftStatCountClient.new("localhost:9095");
|
17
|
+
@client = ThriftStatCountClient.new({"servers" => "localhost:9095"});
|
18
18
|
end
|
19
19
|
|
20
20
|
# Called after every test method runs. Can be used to tear
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stat-count-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- gavin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: hessian2
|
@@ -46,17 +46,16 @@ extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
48
|
- Gemfile
|
49
|
+
- Gemfile.lock
|
49
50
|
- LICENSE
|
50
51
|
- Rakefile
|
51
52
|
- README.md
|
53
|
+
- test/benchmark.rb
|
52
54
|
- test/count_mother.rb
|
53
55
|
- test/stat_ccount_client_test.rb
|
54
56
|
- test/stat_count_client_test.rb
|
55
57
|
- test/test.rb
|
56
58
|
- test/thrift_count_client_test.rb
|
57
|
-
- lib/config_loader.rb
|
58
|
-
- lib/hessian_data_utils.rb
|
59
|
-
- lib/logger_factory.rb
|
60
59
|
- lib/stat-count-client/config_loader.rb
|
61
60
|
- lib/stat-count-client/hessian/stat_data_utils.rb
|
62
61
|
- lib/stat-count-client/hessian_client.rb
|
@@ -95,6 +94,7 @@ signing_key:
|
|
95
94
|
specification_version: 4
|
96
95
|
summary: stat count client
|
97
96
|
test_files:
|
97
|
+
- test/benchmark.rb
|
98
98
|
- test/count_mother.rb
|
99
99
|
- test/stat_ccount_client_test.rb
|
100
100
|
- test/stat_count_client_test.rb
|
data/lib/config_loader.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
#Example
|
4
|
-
#stat.count:
|
5
|
-
# hessian.domain: http://localhost:8080/stat-count-runtime/hessian/remoteSimpleCountCollecter
|
6
|
-
# hessian.java.package: com.ximalaya.stat.count.data
|
7
|
-
# log.file: D:/log/stat/stat-count-ruby.log
|
8
|
-
# log.level: info
|
9
|
-
|
10
|
-
module ConfigLoader
|
11
|
-
LOADER = YAML.load_file("../config/stat-count-client.yaml");
|
12
|
-
CONFIG = LOADER['stat.count']
|
13
|
-
end
|
data/lib/hessian_data_utils.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
module Hessian
|
4
|
-
module Data
|
5
|
-
module Utils
|
6
|
-
def to_hash_unit
|
7
|
-
hash = {}
|
8
|
-
instance_variables.each {|var| hash[var.to_s.delete("@")] = instance_variable_get(var) }
|
9
|
-
hash
|
10
|
-
end
|
11
|
-
|
12
|
-
def to_hash_map
|
13
|
-
hash = {}
|
14
|
-
instance_variables.each {|var|
|
15
|
-
internal_hash = {}
|
16
|
-
map = instance_variable_get(var)
|
17
|
-
map.each { |key, list|
|
18
|
-
newList = nil
|
19
|
-
list.each { |unit|
|
20
|
-
if (newList.nil?)
|
21
|
-
newList = Array.new
|
22
|
-
end
|
23
|
-
newList << unit.to_hessian
|
24
|
-
}
|
25
|
-
internal_hash[key] = newList
|
26
|
-
}
|
27
|
-
hash[var.to_s.delete("@")] = internal_hash
|
28
|
-
}
|
29
|
-
hash
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
data/lib/logger_factory.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
|
3
|
-
require "logger"
|
4
|
-
require "config_loader"
|
5
|
-
require "monitor"
|
6
|
-
|
7
|
-
class LoggerFactory
|
8
|
-
include ConfigLoader
|
9
|
-
@@logger = nil
|
10
|
-
def self.getLogger(name)
|
11
|
-
if @@logger.nil?
|
12
|
-
@monitor = Monitor.new
|
13
|
-
@monitor.synchronize do
|
14
|
-
if @@logger.nil?
|
15
|
-
log_path = CONFIG['log.file.'+name];
|
16
|
-
if(log_path.nil?)
|
17
|
-
log_path = "../log"
|
18
|
-
end
|
19
|
-
|
20
|
-
log_level = CONFIG['log.level.'+name]
|
21
|
-
if(log_level.nil?)
|
22
|
-
log_level = "error";
|
23
|
-
end
|
24
|
-
logger = Logger.new(log_path,'daily')
|
25
|
-
logger.level = Logger::const_get(log_level.upcase)
|
26
|
-
@@logger = logger;
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
@@logger
|
31
|
-
end
|
32
|
-
end
|