Skip to content

Commit f61d84d

Browse files
committed
Improve key quantization and add command length
1 parent 933f2da commit f61d84d

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

lib/datadog/tracing/contrib/dalli/ext.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ module Ext
2626
SPAN_COMMAND = 'memcached.command'
2727
SPAN_TYPE_COMMAND = 'memcached'
2828
TAG_COMMAND = 'memcached.command'
29+
# BEGIN BRAZE MODIFICATION
30+
TAG_LENGTH = 'memcached.length'
31+
# END BRAZE MODIFICATION
2932
TAG_COMPONENT = 'dalli'
3033
TAG_OPERATION_COMMAND = 'command'
3134
TAG_SYSTEM = 'memcached'

lib/datadog/tracing/contrib/dalli/instrumentation.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ def request(op, *args)
5454
cmd = Quantize.format_command(op, args)
5555
span.set_tag(Ext::TAG_COMMAND, cmd)
5656
end
57+
# BEGIN BRAZE MODIFICATION
58+
span.set_tag(Ext::TAG_LENGTH, Core::Utils.utf8_encode([op, *args].join(' ').strip, binary: true).length)
59+
# END BRAZE MODIFICATION
5760

5861
Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
5962
super

lib/datadog/tracing/contrib/dalli/quantize.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,24 @@ module Contrib
66
module Dalli
77
# Quantize contains dalli-specic quantization tools.
88
module Quantize
9+
# BEGIN BRAZE MODIFICATION
10+
GUID_ID_REGEX = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i
11+
BSON_ID_REGEX = /[0-9a-f]{24}/i
12+
XXHASH_REGEX = /[0-9a-f]{16}/
13+
INTEGER_ID_REGEX = /\d+/
14+
# END BRAZE MODIFICATION
915
module_function
1016

1117
def format_command(operation, args)
1218
placeholder = "#{operation} BLOB (OMITTED)"
1319
command = [operation, *args].join(' ').strip
1420
command = Core::Utils.utf8_encode(command, binary: true, placeholder: placeholder)
21+
# BEGIN BRAZE MODIFICATION
22+
command = command.gsub(GUID_ID_REGEX, "GUID")
23+
command = command.gsub(BSON_ID_REGEX, "BSON")
24+
command = command.gsub(XXHASH_REGEX, "XXHASH")
25+
command = command.gsub(INTEGER_ID_REGEX, "INTEGER")
26+
# END BRAZE MODIFICATION
1527
Core::Utils.truncate(command, Ext::QUANTIZE_MAX_CMD_LENGTH)
1628
rescue => e
1729
Datadog.logger.debug("Error sanitizing Dalli operation: #{e}")

0 commit comments

Comments
 (0)