diff --git a/lib/statsd.rb b/lib/statsd.rb new file mode 100644 index 0000000000000000000000000000000000000000..45b4f419de18125d728e82f1675eb405c203be2b --- /dev/null +++ b/lib/statsd.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require "statsd-instrument" + +# These are basically data, not code, I find them more readable on one line each +# rubocop:disable Metrics/LineLength + +Registration::Registered.extend StatsD::Instrument +Registration::Registered.statsd_count :write, "registration.registered" + +Registration::Activation.extend StatsD::Instrument +Registration::Activation.statsd_count :write, "registration.activation" + +Registration::Payment::Bitcoin.extend StatsD::Instrument +Registration::Payment::Bitcoin.statsd_count :write, "registration.payment.bitcoin" + +Registration::Payment::CreditCard.extend StatsD::Instrument +Registration::Payment::CreditCard.statsd_count :write, "registration.payment.credit_card" + +Registration::Payment::CreditCard::Activate.extend StatsD::Instrument +Registration::Payment::CreditCard::Activate.statsd_count :write, "registration.payment.credit_card.activate" +Registration::Payment::CreditCard::Activate.statsd_count :declined, "registration.payment.credit_card.activate_declined" + +Registration::Payment::InviteCode.extend StatsD::Instrument +Registration::Payment::InviteCode.statsd_count :write, "registration.payment.invite_code" + +Registration::Payment::Mail.extend StatsD::Instrument +Registration::Payment::Mail.statsd_count :write, "registration.payment.mail" + +Registration::Finish.extend StatsD::Instrument +Registration::Finish.statsd_count :write, "registration.payment.finish" + +# rubocop:enable Metrics/LineLength diff --git a/sgx_jmp.rb b/sgx_jmp.rb index 389f4a1bd2d4be4f05a0a56cc60b631af4790edf..3fe777b177d788a51b1742cb5b330f81f17b6b50 100644 --- a/sgx_jmp.rb +++ b/sgx_jmp.rb @@ -39,6 +39,7 @@ require_relative "lib/payment_methods" require_relative "lib/registration" require_relative "lib/transaction" require_relative "lib/web_register_manager" +require_relative "lib/statsd" ELECTRUM = Electrum.new(**CONFIG[:electrum]) @@ -368,7 +369,7 @@ command :execute?, node: "jabber:iq:register", sessionid: nil do |iq| iq, customer, web_register_manager - ).then(&:write) + ).then(&:write).then { StatsD.increment("registration.completed") } }.catch_only(Blather::Stanza) { |reply| self << reply }.catch { |e| panic(e, sentry_hub) }