Module: OpenTelemetry::Instrumentation::Redis::Utils
Overview
Utility functions
Constant Summary collapse
- PLACEHOLDER =
'?'
- VALUE_MAX_LEN =
50
- CMD_MAX_LEN =
500
Instance Method Summary collapse
- #auth_command?(command_args) ⇒ Boolean
- #format_arg(arg) ⇒ Object
- #format_command(command_args) ⇒ Object
- #format_pipeline_statement(command_args) ⇒ Object
- #format_statement(command_args) ⇒ Object
-
#resolve_command_args(command_args) ⇒ Object
Unwraps command array when Redis is called with the following syntax: redis.call([:cmd, 'arg1', …]).
- #truncate(string, size) ⇒ Object
Instance Method Details
#auth_command?(command_args) ⇒ Boolean
45 46 47 48 49 |
# File 'lib/opentelemetry/instrumentation/redis/utils.rb', line 45 def auth_command?(command_args) return false unless command_args.is_a?(Array) && !command_args.empty? command_args.first.to_sym == :auth end |
#format_arg(arg) ⇒ Object
[View source]
36 37 38 39 40 41 42 43 |
# File 'lib/opentelemetry/instrumentation/redis/utils.rb', line 36 def format_arg(arg) str = arg.is_a?(Symbol) ? arg.to_s.upcase : arg.to_s str = OpenTelemetry::Common::Utilities.utf8_encode(str, binary: true) truncate(str, VALUE_MAX_LEN) rescue StandardError => e OpenTelemetry.logger.debug("non formattable Redis arg #{str}: #{e}") PLACEHOLDER end |
#format_command(command_args) ⇒ Object
[View source]
18 19 20 |
# File 'lib/opentelemetry/instrumentation/redis/utils.rb', line 18 def format_command(command_args) format_arg(resolve_command_args(command_args).first) end |
#format_pipeline_statement(command_args) ⇒ Object
[View source]
22 23 24 25 26 |
# File 'lib/opentelemetry/instrumentation/redis/utils.rb', line 22 def format_pipeline_statement(command_args) command_args[0].commands.map do |args| format_statement(args) end.join("\n") end |
#format_statement(command_args) ⇒ Object
[View source]
28 29 30 31 32 33 34 |
# File 'lib/opentelemetry/instrumentation/redis/utils.rb', line 28 def format_statement(command_args) command_args = resolve_command_args(command_args) return 'AUTH ?' if auth_command?(command_args) cmd = command_args.map { |x| format_arg(x) }.join(' ') truncate(cmd, CMD_MAX_LEN) end |
#resolve_command_args(command_args) ⇒ Object
Unwraps command array when Redis is called with the following syntax: redis.call([:cmd, 'arg1', …])
53 54 55 56 57 |
# File 'lib/opentelemetry/instrumentation/redis/utils.rb', line 53 def resolve_command_args(command_args) return command_args.first if command_args.is_a?(Array) && command_args.first.is_a?(Array) command_args end |
#truncate(string, size) ⇒ Object
[View source]
59 60 61 |
# File 'lib/opentelemetry/instrumentation/redis/utils.rb', line 59 def truncate(string, size) string.size > size ? "#{string[0...size - 3]}..." : string end |