Fix regex for ondemand instances

It appears we renamed `/ondemand/` to `/ondemandvm/` at some point and,
as a result, have not been stripping hostnames from that endpoint's
metrics. This has caused issues with metrics collection due a very high
cardinality.
This commit is contained in:
Gene Liverman 2021-02-02 10:37:21 -05:00
parent 45c14312b6
commit 7a1fc24685
No known key found for this signature in database
GPG key ID: A5E7EC8322AE6F74
2 changed files with 4 additions and 4 deletions

View file

@ -113,7 +113,7 @@ module Vmpooler
# Similarly, request IDs are also stripped from the /ondemand path. # Similarly, request IDs are also stripped from the /ondemand path.
path path
.gsub(%r{/vm/.+$}, '/vm') .gsub(%r{/vm/.+$}, '/vm')
.gsub(%r{/ondemand/.+$}, '/ondemand') .gsub(%r{/ondemandvm/.+$}, '/ondemandvm')
.gsub(%r{/token/.+$}, '/token') .gsub(%r{/token/.+$}, '/token')
.gsub(%r{/lib/.+$}, '/lib') .gsub(%r{/lib/.+$}, '/lib')
.gsub(%r{/img/.+$}, '/img') .gsub(%r{/img/.+$}, '/img')

View file

@ -72,14 +72,14 @@ describe Vmpooler::Metrics::Promstats::CollectorMiddleware do
it 'normalizes paths containing /ondemandvm by ' do it 'normalizes paths containing /ondemandvm by ' do
expect(Benchmark).to receive(:realtime).and_yield.and_return(0.3) expect(Benchmark).to receive(:realtime).and_yield.and_return(0.3)
get '/foo/ondemand/bar/fatman' get '/foo/ondemandvm/bar/fatman'
metric = :http_server_requests_total metric = :http_server_requests_total
labels = { method: 'get', path: '/foo/ondemand', code: '200' } labels = { method: 'get', path: '/foo/ondemandvm', code: '200' }
expect(registry.get(metric).get(labels: labels)).to eql(1.0) expect(registry.get(metric).get(labels: labels)).to eql(1.0)
metric = :http_server_request_duration_seconds metric = :http_server_request_duration_seconds
labels = { method: 'get', path: '/foo/ondemand' } labels = { method: 'get', path: '/foo/ondemandvm' }
expect(registry.get(metric).get(labels: labels)).to include("0.1" => 0, "0.5" => 1) expect(registry.get(metric).get(labels: labels)).to include("0.1" => 0, "0.5" => 1)
end end