Added ability to add custom tags to transactions
One use case for this is manually setting the "action" tag for Grape API calls. Due to Grape running blocks there are no human readable method names that can be used for the "action" tag, thus we have to set these manually on a case by case basis.
This commit is contained in:
parent
8ea6c6d80c
commit
3240ecfbef
3 changed files with 36 additions and 0 deletions
|
@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
|
|||
|
||||
v 8.7.0 (unreleased)
|
||||
- All service classes (those residing in app/services) are now instrumented (Yorick Peterse)
|
||||
- Developers can now add custom tags to transactions (Yorick Peterse)
|
||||
- Enable gzip for assets, makes the page size significantly smaller. !3544 / !3632 (Connor Shea)
|
||||
- Load award emoji images separately unless opening the full picker. Saves several hundred KBs of data for most pages. (Connor Shea)
|
||||
- All images in discussions and wikis now link to their source files !3464 (Connor Shea).
|
||||
|
|
|
@ -104,6 +104,16 @@ module Gitlab
|
|||
retval
|
||||
end
|
||||
|
||||
# Adds a tag to the current transaction (if any)
|
||||
#
|
||||
# name - The name of the tag to add.
|
||||
# value - The value of the tag.
|
||||
def self.tag_transaction(name, value)
|
||||
trans = current_transaction
|
||||
|
||||
trans.add_tag(name, value) if trans
|
||||
end
|
||||
|
||||
# When enabled this should be set before being used as the usual pattern
|
||||
# "@foo ||= bar" is _not_ thread-safe.
|
||||
if enabled?
|
||||
|
|
|
@ -98,4 +98,29 @@ describe Gitlab::Metrics do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.tag_transaction' do
|
||||
context 'without a transaction' do
|
||||
it 'does nothing' do
|
||||
expect_any_instance_of(Gitlab::Metrics::Transaction).
|
||||
not_to receive(:add_tag)
|
||||
|
||||
Gitlab::Metrics.tag_transaction(:foo, 'bar')
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a transaction' do
|
||||
let(:transaction) { Gitlab::Metrics::Transaction.new }
|
||||
|
||||
it 'adds the tag to the transaction' do
|
||||
expect(Gitlab::Metrics).to receive(:current_transaction).
|
||||
and_return(transaction)
|
||||
|
||||
expect(transaction).to receive(:add_tag).
|
||||
with(:foo, 'bar')
|
||||
|
||||
Gitlab::Metrics.tag_transaction(:foo, 'bar')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue