Sha256: 101c5cacb380d119da0008b3fea3abb9f2cb68dc7668d9d51c4d6f15f4187716
Contents?: true
Size: 1.58 KB
Versions: 8
Compression:
Stored size: 1.58 KB
Contents
module Sc4ry module Notifiers class Mattermost # send metrics to Prometheus PushGateway # @return [Bool] def Mattermost.notify(options = {}) config = Sc4ry::Notifiers.get({name: :mattermost})[:config] status = options[:config][:status][:general] circuit = options[:circuit] status_map = {:open => 0, :half_open => 1, :closed => 2} uri = URI.parse("#{config[:url]}/hooks/#{config[:token]}") message = "notifying for circuit #{circuit.to_s}, state : #{status.to_s}." if Sc4ry::Helpers::verify_service url: config[:url] then request = ::Net::HTTP::Post.new(uri) request.content_type = "application/json" req_options = { use_ssl: uri.scheme == "https", } payload = { "text" => "message : #{message } from #{Socket.gethostname}", "username" => "Sc4ry" } Sc4ry::Helpers.log level: :debug, message: "Mattermost Notifier : #{message}" request.body = ::JSON.dump(payload) response = ::Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| http.request(request) end else Sc4ry::Helpers.log level: :warn, message: "Mattermost Notifier : can't notify Mattermost not reachable." end end end end end
Version data entries
8 entries across 8 versions & 1 rubygems