@@ -11,6 +11,7 @@ require "em-hiredis"
require "em_promise"
require "ruby-bandwidth-iris"
require "sentry-ruby"
+require "statsd-instrument"
Sentry.init
@@ -136,7 +137,9 @@ setup(
workqueue_count: 0
)
-message to: /\Aaccount@/ do |m|
+message to: /\Aaccount@/, body: /./ do |m|
+ StatsD.increment("deprecated_account_bot")
+
self << m.reply.tap do |out|
out.body = "This bot is deprecated. Please talk to xmpp:cheogram.com"
end
@@ -150,6 +153,8 @@ before(
) { |iq| halt if IQ_MANAGER.fulfill(iq) }
before nil, to: /\Acustomer_/, from: /(\A|@)#{CONFIG[:sgx]}(\/|\Z)/ do |s|
+ StatsD.increment("stanza_customer")
+
sentry_hub = new_sentry_hub(s, name: "stanza_customer")
Customer.for_customer_id(
s.to.node.delete_prefix("customer_")
@@ -172,12 +177,13 @@ def billable_message(m)
end
message do |m|
+ StatsD.increment("message")
+
sentry_hub = new_sentry_hub(m, name: "message")
today = Time.now.utc.to_date
Customer.for_jid(m.from.stripped).then { |customer|
sentry_hub.current_scope.set_user(
- id: customer.customer_id,
- jid: m.from.stripped.to_s
+ id: customer.customer_id, jid: m.from.stripped.to_s
)
EMPromise.all([
customer,
@@ -202,6 +208,8 @@ message do |m|
end
message :error? do |m|
+ StatsD.increment("message_error")
+
puts "MESSAGE ERROR: #{m.inspect}"
end
@@ -264,6 +272,8 @@ disco_info to: Blather::JID.new(CONFIG[:component][:jid]) do |iq|
end
disco_items node: "http://jabber.org/protocol/commands" do |iq|
+ StatsD.increment("command_list")
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
reply = iq.reply
@@ -280,6 +290,8 @@ disco_items node: "http://jabber.org/protocol/commands" do |iq|
end
iq "/iq/ns:services", ns: "urn:xmpp:extdisco:2" do |iq|
+ StatsD.increment("extdisco")
+
reply = iq.reply
reply << Nokogiri::XML::Builder.new {
services(xmlns: "urn:xmpp:extdisco:2") do
@@ -294,6 +306,8 @@ iq "/iq/ns:services", ns: "urn:xmpp:extdisco:2" do |iq|
end
command :execute?, node: "jabber:iq:register", sessionid: nil do |iq|
+ StatsD.increment("command", tags: ["node:#{iq.node}"])
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
EMPromise.resolve(nil).then {
Customer.for_jid(iq.from.stripped)
@@ -335,6 +349,8 @@ command node: [
"configure-calls",
"record-voicemail-greeting"
] do |iq|
+ StatsD.increment("command", tags: ["node:#{iq.node}"])
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
Customer.for_jid(iq.from.stripped).then { |customer|
sentry_hub.current_scope.set_user(
@@ -347,6 +363,8 @@ command node: [
end
command :execute?, node: "credit cards", sessionid: nil do |iq|
+ StatsD.increment("command", tags: ["node:#{iq.node}"])
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
reply = iq.reply
reply.status = :completed
@@ -367,6 +385,8 @@ command :execute?, node: "credit cards", sessionid: nil do |iq|
end
command :execute?, node: "top up", sessionid: nil do |iq|
+ StatsD.increment("command", tags: ["node:#{iq.node}"])
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
reply = iq.reply
reply.allowed_actions = [:complete]
@@ -393,6 +413,8 @@ command :execute?, node: "top up", sessionid: nil do |iq|
end
command :execute?, node: "alt top up", sessionid: nil do |iq|
+ StatsD.increment("command", tags: ["node:#{iq.node}"])
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
reply = iq.reply
reply.status = :executing
@@ -415,6 +437,8 @@ command :execute?, node: "alt top up", sessionid: nil do |iq|
end
command :execute?, node: "reset sip account", sessionid: nil do |iq|
+ StatsD.increment("command", tags: ["node:#{iq.node}"])
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
Customer.for_jid(iq.from.stripped).then { |customer|
sentry_hub.current_scope.set_user(
@@ -430,6 +454,8 @@ command :execute?, node: "reset sip account", sessionid: nil do |iq|
end
command :execute?, node: "usage", sessionid: nil do |iq|
+ StatsD.increment("command", tags: ["node:#{iq.node}"])
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
report_for = (Date.today..(Date.today << 1))
@@ -449,6 +475,8 @@ command :execute?, node: "usage", sessionid: nil do |iq|
end
command :execute?, node: "web-register", sessionid: nil do |iq|
+ StatsD.increment("command", tags: ["node:#{iq.node}"])
+
sentry_hub = new_sentry_hub(iq, name: iq.node)
begin
@@ -462,7 +490,6 @@ command :execute?, node: "web-register", sessionid: nil do |iq|
else
IQ_MANAGER.write(Blather::Stanza::Iq::Command.new.tap { |cmd|
cmd.to = CONFIG[:web_register][:to]
- cmd.from = CONFIG[:component][:jid]
cmd.node = "push-register"
cmd.form.fields = [var: "to", value: jid]
cmd.form.type = "submit"
@@ -486,5 +513,7 @@ iq type: [:result, :error] do |iq|
end
iq type: [:get, :set] do |iq|
+ StatsD.increment("unknown_iq")
+
self << Blather::StanzaError.new(iq, "feature-not-implemented", :cancel)
end