Class: Nightwing::Instrumentation::ActiveRecord
- Inherits:
-
Object
- Object
- Nightwing::Instrumentation::ActiveRecord
- Defined in:
- lib/nightwing/instrumentation/active_record.rb
Overview
This code was influenced by Matt Aimonetti’s awesome blog post: “Practical Guide to StatsD/Graphite Monitoring” Check it out: matt.aimonetti.net/posts/2013/06/26/practical-guide-to-graphite-monitoring
Constant Summary collapse
- SQL_INSERT_DELETE_PARSER_REGEXP =
/^(\w+)\s(\w+)\s\W*(\w+)/- SQL_SELECT_REGEXP =
/select .*? FROM \W*(\w+)/i- SQL_UPDATE_REGEXP =
/update \W*(\w+)/i
Instance Method Summary collapse
Instance Method Details
#call(_name, started, finished, _unique_id, payload) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/nightwing/instrumentation/active_record.rb', line 10 def call(_name, started, finished, _unique_id, payload) if payload[:name] == "SQL" || payload[:name] =~ /.* Load$/ || payload[:name].nil? table, action = query_info(payload[:sql]) end if table action.downcase! table.downcase! query_time = (finished - started) * 1_000 Nightwing.client.timing "sql.#{action}.time", query_time.round Nightwing.client.timing "sql.#{action}.#{table}.time", query_time.round Nightwing.client.increment "sql.#{action}.processed" Nightwing.client.increment "sql.#{action}.#{table}.processed" end end |