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

Version Path
sc4ry-0.1.7 lib/sc4ry/notifiers/mattermost.rb
sc4ry-0.1.6 lib/sc4ry/notifiers/mattermost.rb
sc4ry-0.1.5 lib/sc4ry/notifiers/mattermost.rb
sc4ry-0.1.4 lib/sc4ry/notifiers/mattermost.rb
sc4ry-0.1.3 lib/sc4ry/notifiers/mattermost.rb
sc4ry-0.1.2 lib/sc4ry/notifiers/mattermost.rb
sc4ry-0.1.1 lib/sc4ry/notifiers/mattermost.rb
sc4ry-0.1.0 lib/sc4ry/notifiers/mattermost.rb