stat-count-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 +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
|