Skip to content

Commit 950b8ce

Browse files
committed
reduce metrics generated by UA tracker
1 parent 14623ed commit 950b8ce

File tree

2 files changed

+6
-48
lines changed

2 files changed

+6
-48
lines changed

lib/travis/api/app/middleware/user_agent_tracker.rb

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,14 @@ def mark_browser
3737
end
3838

3939
def mark_travis(agent)
40-
os, *rest = agent.application.comment
41-
ruby, rubygems, command = "unknown", "unknown", nil
42-
43-
rest.each do |comment|
44-
case comment
45-
when /^Ruby (\d\.\d.\d)/ then ruby = $1
46-
when /^RubyGems (.+)$/ then rubygems = $1
47-
when /^command (.+)$/ then command = $1
48-
end
49-
end
50-
51-
# "Ubuntu 12.04 like Linux" => "linux.ubuntu.12.04"
52-
if os =~ /^(.+) (\S+) like (\S+)$/
53-
os = "#{$3}.#{$1}.#{$2[/\d+\.\d+/]}"
54-
end
40+
command = agent.application.comment.detect { |c| c.start_with? "command " }
5541

5642
if command
57-
mark(:cli, version: agent.version, ruby: ruby, rubygems: rubygems, command: command, os: os)
43+
mark(:cli, :version, agent.version)
44+
mark(:cli, command.sub(' ', '.'))
5845
else
5946
# only track ruby version and library version for non-cli usage
60-
mark(:script, :ruby, :travis, version: agent.version, ruby: ruby)
47+
mark(:script, :ruby, :travis, :version, agent.version)
6148
end
6249
end
6350

@@ -66,19 +53,9 @@ def mark_unknown
6653
mark(:unknown)
6754
end
6855

69-
def track_key(string)
70-
string.to_s.downcase.gsub(/[^a-z0-9\-\.]+/, '_')
71-
end
72-
7356
def mark(*keys)
74-
key = "api.user_agent"
75-
keys.each do |subkey|
76-
if subkey.is_a? Hash
77-
subkey.each_pair { |k, v| ::Metriks.meter("#{key}.#{track_key(k)}.#{track_key(v)}").mark }
78-
else
79-
::Metriks.meter(key << "." << track_key(subkey)).mark
80-
end
81-
end
57+
key = "api.user_agent." << keys.map { |k| k.to_s.downcase.gsub(/[^a-z0-9\-\.]+/, '_') }.join('.')
58+
::Metriks.meter(key).mark
8259
end
8360
end
8461
end

spec/unit/middleware/user_agent_tracker_spec.rb

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,11 @@ def get(env = {})
3535
let(:agent) { "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.36 Safari/537.36" }
3636

3737
specify 'without X-User-Agent' do
38-
expect_meter("api.user_agent.browser")
3938
expect_meter("api.user_agent.browser.unknown")
4039
get
4140
end
4241

4342
specify 'with X-User-Agent' do
44-
expect_meter("api.user_agent.browser")
4543
expect_meter("api.user_agent.browser.travis-web")
4644
get('HTTP_X_USER_AGENT' => 'travis-web')
4745
end
@@ -50,7 +48,6 @@ def get(env = {})
5048
context 'console' do
5149
let(:agent) { 'curl' }
5250
specify do
53-
expect_meter("api.user_agent.console")
5451
expect_meter("api.user_agent.console.curl")
5552
get
5653
end
@@ -59,8 +56,6 @@ def get(env = {})
5956
context 'travis-api-wrapper' do
6057
let(:agent) { 'travis-api-wrapper - v0.01 - ([email protected])' }
6158
specify do
62-
expect_meter("api.user_agent.script")
63-
expect_meter("api.user_agent.script.node_js")
6459
expect_meter("api.user_agent.script.node_js.travis-api-wrapper")
6560
get
6661
end
@@ -69,8 +64,6 @@ def get(env = {})
6964
context 'TravisPy' do
7065
let(:agent) { 'TravisPy' }
7166
specify do
72-
expect_meter("api.user_agent.script")
73-
expect_meter("api.user_agent.script.python")
7467
expect_meter("api.user_agent.script.python.travispy")
7568
get
7669
end
@@ -79,8 +72,6 @@ def get(env = {})
7972
context 'Ruby' do
8073
let(:agent) { 'Ruby' }
8174
specify do
82-
expect_meter("api.user_agent.script")
83-
expect_meter("api.user_agent.script.ruby")
8475
expect_meter("api.user_agent.script.ruby.vanilla")
8576
get
8677
end
@@ -89,8 +80,6 @@ def get(env = {})
8980
context 'Faraday' do
9081
let(:agent) { 'Faraday' }
9182
specify do
92-
expect_meter("api.user_agent.script")
93-
expect_meter("api.user_agent.script.ruby")
9483
expect_meter("api.user_agent.script.ruby.vanilla")
9584
get
9685
end
@@ -99,24 +88,16 @@ def get(env = {})
9988
context 'travis.rb' do
10089
let(:agent) { 'Travis/1.6.8 (Mac OS X 10.9.2 like Darwin; Ruby 2.1.1p42; RubyGems 2.0.14) Faraday/0.8.9 Typhoeus/0.6.7' }
10190
specify do
102-
expect_meter("api.user_agent.script")
103-
expect_meter("api.user_agent.script.ruby")
104-
expect_meter("api.user_agent.script.ruby.travis")
10591
expect_meter("api.user_agent.script.ruby.travis.version.1.6.8")
106-
expect_meter("api.user_agent.script.ruby.travis.ruby.2.1.1")
10792
get
10893
end
10994
end
11095

11196
context 'Travis CLI' do
11297
let(:agent) { 'Travis/1.6.8 (Mac OS X 10.10.2 like Darwin; Ruby 2.1.1; RubyGems 2.0.14; command whoami) Faraday/0.8.9 Typhoeus/0.6.7' }
11398
specify do
114-
expect_meter("api.user_agent.cli")
11599
expect_meter("api.user_agent.cli.version.1.6.8")
116-
expect_meter("api.user_agent.cli.ruby.2.1.1")
117-
expect_meter("api.user_agent.cli.rubygems.2.0.14")
118100
expect_meter("api.user_agent.cli.command.whoami")
119-
expect_meter("api.user_agent.cli.os.darwin.mac_os_x.10.10")
120101
get
121102
end
122103
end

0 commit comments

Comments
 (0)