mirror of
https://github.com/cmur2/dyndnsd.git
synced 2024-12-22 00:54:22 +01:00
Use metriks with ProcTitle for some initial metrics
This commit is contained in:
parent
a4b6a63383
commit
f0bd538728
@ -22,6 +22,7 @@ Gem::Specification.new do |s|
|
|||||||
|
|
||||||
s.add_runtime_dependency 'rack'
|
s.add_runtime_dependency 'rack'
|
||||||
s.add_runtime_dependency 'json'
|
s.add_runtime_dependency 'json'
|
||||||
|
s.add_runtime_dependency 'metriks'
|
||||||
|
|
||||||
s.add_development_dependency 'bundler', '~> 1.3'
|
s.add_development_dependency 'bundler', '~> 1.3'
|
||||||
s.add_development_dependency 'rake'
|
s.add_development_dependency 'rake'
|
||||||
|
@ -5,6 +5,7 @@ require 'ipaddr'
|
|||||||
require 'json'
|
require 'json'
|
||||||
require 'yaml'
|
require 'yaml'
|
||||||
require 'rack'
|
require 'rack'
|
||||||
|
require 'metriks'
|
||||||
|
|
||||||
require 'dyndnsd/generator/bind'
|
require 'dyndnsd/generator/bind'
|
||||||
require 'dyndnsd/updater/command_with_bind_zone'
|
require 'dyndnsd/updater/command_with_bind_zone'
|
||||||
@ -89,6 +90,7 @@ module Dyndnsd
|
|||||||
|
|
||||||
myip = params["myip"]
|
myip = params["myip"]
|
||||||
|
|
||||||
|
Metriks.meter('requests.valid').mark
|
||||||
Dyndnsd.logger.info "Request to update #{hostnames} to #{myip} for user #{user}"
|
Dyndnsd.logger.info "Request to update #{hostnames} to #{myip} for user #{user}"
|
||||||
|
|
||||||
changes = []
|
changes = []
|
||||||
@ -96,8 +98,10 @@ module Dyndnsd
|
|||||||
if (not @db['hosts'].include? hostname) or (@db['hosts'][hostname] != myip)
|
if (not @db['hosts'].include? hostname) or (@db['hosts'][hostname] != myip)
|
||||||
changes << :good
|
changes << :good
|
||||||
@db['hosts'][hostname] = myip
|
@db['hosts'][hostname] = myip
|
||||||
|
Metriks.meter('requests.good').mark
|
||||||
else
|
else
|
||||||
changes << :nochg
|
changes << :nochg
|
||||||
|
Metriks.meter('requests.nochg').mark
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -106,6 +110,7 @@ module Dyndnsd
|
|||||||
Dyndnsd.logger.info "Committing update ##{@db['serial']}"
|
Dyndnsd.logger.info "Committing update ##{@db['serial']}"
|
||||||
@db.save
|
@db.save
|
||||||
update
|
update
|
||||||
|
Metriks.meter('updates.committed').mark
|
||||||
end
|
end
|
||||||
|
|
||||||
@responder.response_for_changes(changes, myip)
|
@responder.response_for_changes(changes, myip)
|
||||||
@ -140,14 +145,29 @@ module Dyndnsd
|
|||||||
|
|
||||||
Dyndnsd.logger.info "Starting..."
|
Dyndnsd.logger.info "Starting..."
|
||||||
|
|
||||||
|
# configure metriks
|
||||||
|
reporter = Metriks::Reporter::ProcTitle.new
|
||||||
|
reporter.add 'good', 'sec' do
|
||||||
|
Metriks.meter('requests.good').mean_rate
|
||||||
|
end
|
||||||
|
reporter.add 'nochg', 'sec' do
|
||||||
|
Metriks.meter('requests.nochg').mean_rate
|
||||||
|
end
|
||||||
|
reporter.start
|
||||||
|
|
||||||
|
# configure daemon
|
||||||
db = Database.new(config['db'])
|
db = Database.new(config['db'])
|
||||||
updater = Updater::CommandWithBindZone.new(config['domain'], config['updater']['params']) if config['updater']['name'] == 'command_with_bind_zone'
|
updater = Updater::CommandWithBindZone.new(config['domain'], config['updater']['params']) if config['updater']['name'] == 'command_with_bind_zone'
|
||||||
responder = Responder::DynDNSStyle.new
|
responder = Responder::DynDNSStyle.new
|
||||||
|
|
||||||
|
# configure rack
|
||||||
app = Daemon.new(config, db, updater, responder)
|
app = Daemon.new(config, db, updater, responder)
|
||||||
app = Rack::Auth::Basic.new(app, "DynDNS") do |user,pass|
|
app = Rack::Auth::Basic.new(app, "DynDNS") do |user,pass|
|
||||||
allow = (config['users'].has_key? user) and (config['users'][user]['password'] == pass)
|
allow = (config['users'].has_key? user) and (config['users'][user]['password'] == pass)
|
||||||
Dyndnsd.logger.warn "Login failed for #{user}" if not allow
|
if not allow
|
||||||
|
Dyndnsd.logger.warn "Login failed for #{user}"
|
||||||
|
Metriks.meter('requests.auth_failed').mark
|
||||||
|
end
|
||||||
allow
|
allow
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user