Commit 696ebc2f authored by Dylan Griffith's avatar Dylan Griffith

Minor refactor extract method InstrumentationHelper

This will hopefully improve readability since this method is getting a
little long now.
parent ff4425ba
...@@ -20,42 +20,59 @@ module Gitlab ...@@ -20,42 +20,59 @@ module Gitlab
DURATION_PRECISION = 6 # microseconds DURATION_PRECISION = 6 # microseconds
def add_instrumentation_data(payload) def add_instrumentation_data(payload)
instrument_gitaly(payload)
instrument_rugged(payload)
instrument_redis(payload)
instrument_redis_bytes(payload)
instrument_elasticsearch(payload)
end
def instrument_gitaly(payload)
gitaly_calls = Gitlab::GitalyClient.get_request_count gitaly_calls = Gitlab::GitalyClient.get_request_count
if gitaly_calls > 0 return if gitaly_calls == 0
payload[:gitaly_calls] = gitaly_calls
payload[:gitaly_duration_s] = Gitlab::GitalyClient.query_time payload[:gitaly_calls] = gitaly_calls
end payload[:gitaly_duration_s] = Gitlab::GitalyClient.query_time
end
def instrument_rugged(payload)
rugged_calls = Gitlab::RuggedInstrumentation.query_count rugged_calls = Gitlab::RuggedInstrumentation.query_count
if rugged_calls > 0 return if rugged_calls == 0
payload[:rugged_calls] = rugged_calls
payload[:rugged_duration_s] = Gitlab::RuggedInstrumentation.query_time payload[:rugged_calls] = rugged_calls
end payload[:rugged_duration_s] = Gitlab::RuggedInstrumentation.query_time
end
def instrument_redis(payload)
redis_calls = Gitlab::Instrumentation::Redis.get_request_count redis_calls = Gitlab::Instrumentation::Redis.get_request_count
if redis_calls > 0 return if redis_calls == 0
payload[:redis_calls] = redis_calls
payload[:redis_duration_s] = Gitlab::Instrumentation::Redis.query_time
end
payload[:redis_calls] = redis_calls
payload[:redis_duration_s] = Gitlab::Instrumentation::Redis.query_time
end
def instrument_redis_bytes(payload)
redis_read_bytes = Gitlab::Instrumentation::Redis.read_bytes redis_read_bytes = Gitlab::Instrumentation::Redis.read_bytes
redis_write_bytes = Gitlab::Instrumentation::Redis.write_bytes redis_write_bytes = Gitlab::Instrumentation::Redis.write_bytes
if redis_read_bytes > 0 || redis_write_bytes > 0
payload[:redis_read_bytes] = redis_read_bytes
payload[:redis_write_bytes] = redis_write_bytes
end
return if redis_read_bytes == 0 && redis_write_bytes == 0
payload[:redis_read_bytes] = redis_read_bytes
payload[:redis_write_bytes] = redis_write_bytes
end
def instrument_elasticsearch(payload)
# Elasticsearch integration is only available in EE but instrumentation # Elasticsearch integration is only available in EE but instrumentation
# only depends on the Gem which is also available in FOSS. # only depends on the Gem which is also available in FOSS.
elasticsearch_calls = Gitlab::Instrumentation::ElasticsearchTransport.get_request_count elasticsearch_calls = Gitlab::Instrumentation::ElasticsearchTransport.get_request_count
if elasticsearch_calls > 0 return if elasticsearch_calls == 0
payload[:elasticsearch_calls] = elasticsearch_calls
payload[:elasticsearch_duration_s] = Gitlab::Instrumentation::ElasticsearchTransport.query_time payload[:elasticsearch_calls] = elasticsearch_calls
end payload[:elasticsearch_duration_s] = Gitlab::Instrumentation::ElasticsearchTransport.query_time
end end
# Returns the queuing duration for a Sidekiq job in seconds, as a float, if the # Returns the queuing duration for a Sidekiq job in seconds, as a float, if the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment