add influxdb
This commit is contained in:
@@ -4,6 +4,12 @@ development:
|
||||
org: "primary"
|
||||
bucket: "redux-scraper-dev"
|
||||
|
||||
staging:
|
||||
host: "http://grafana:8086"
|
||||
token: "cq3ytOdINIktgUynWj0tDfkpFha8iQHy0njLmpx87Rlko4bo2Gn8oxdk6dLL6y-X3jlZqXJjZ2xtpzFvk1BSMw=="
|
||||
org: "primary"
|
||||
bucket: "redux-scraper-dev"
|
||||
|
||||
production:
|
||||
host: "http://grafana.local:8086"
|
||||
token: "W2ikhmpQxQHZAStgSEK6s6aJxnOqeD4Zz2MI1m_lnD1JX57V9Esqm0zXb3DWbN7Gnj2GdmF_YrcvE8cy6NbIqQ=="
|
||||
|
||||
41
config/initializers/influxdb_rails.rb
Normal file
41
config/initializers/influxdb_rails.rb
Normal file
@@ -0,0 +1,41 @@
|
||||
client = InfluxDB2::Client.new(
|
||||
Rails.application.config.x.influxdb.host || raise("no host"),
|
||||
Rails.application.config.x.influxdb.token || raise("no token"),
|
||||
bucket: Rails.application.config.x.influxdb.bucket || raise("no bucket"),
|
||||
org: Rails.application.config.x.influxdb.org || raise("no org"),
|
||||
precision: InfluxDB2::WritePrecision::NANOSECOND,
|
||||
use_ssl: false,
|
||||
)
|
||||
write_api = client.create_write_api
|
||||
|
||||
ActiveSupport::Notifications.subscribe "process_action.action_controller" do |name, started, finished, unique_id, data|
|
||||
request = data[:request]
|
||||
api_token = request.params[:api_token]
|
||||
api_user = api_token ? ApplicationController::API_TOKENS[api_token] : nil
|
||||
ip = request.headers["HTTP_CF_CONNECTING_IP"] || request.remote_ip
|
||||
|
||||
hash = {
|
||||
name: "process_action.action_controller",
|
||||
tags: {
|
||||
method: "#{data[:controller]}##{data[:action]}",
|
||||
format: data[:format],
|
||||
http_method: data[:method],
|
||||
status: data[:status],
|
||||
exception: data[:exception]&.first,
|
||||
},
|
||||
fields: {
|
||||
ip: ip,
|
||||
api_token: api_token,
|
||||
api_user: api_user,
|
||||
time_in_controller: (finished - started) * 1000,
|
||||
time_in_view: (data[:view_runtime] || 0).ceil,
|
||||
time_in_db: (data[:db_runtime] || 0).ceil,
|
||||
request_id: unique_id,
|
||||
},
|
||||
time: started,
|
||||
}
|
||||
|
||||
write_api.write(data: hash)
|
||||
rescue
|
||||
Rails.logger.error("error writing influxdb metric: #{$!}")
|
||||
end
|
||||
Reference in New Issue
Block a user