appsignal 1.3.4 → 1.3.5.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +5 -0
- data/CHANGELOG.md +4 -0
- data/ext/agent.yml +11 -11
- data/lib/appsignal/config.rb +6 -3
- data/lib/appsignal/transmitter.rb +9 -3
- data/lib/appsignal/version.rb +1 -1
- data/spec/lib/appsignal/config_spec.rb +3 -1
- data/spec/lib/appsignal/integrations/webmachine_spec.rb +0 -1
- data/spec/lib/appsignal/transmitter_spec.rb +51 -12
- data/spec/support/helpers/directory_helper.rb +8 -0
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c3a75a284960b4d62fbe5a44bb0d8874ea659d26
         | 
| 4 | 
            +
              data.tar.gz: 9b0c5a85331cf63415a8d06d5f167fd51001e71d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5bc51d6d2696d1c9e3187bdc0542cffe1ac5c68c3bb6739ae720a54c5021891e8ec5897d0dfe03dbdf0eb81475e1688ea9cf11a482c370bfc7171c7d788563bd
         | 
| 7 | 
            +
              data.tar.gz: 21fb5d5806e5f224960991fdc402ba6ef24dc8abf76af0835960935e39c4c72e96039d9e7412482a2b1f9dee1c95e5c6c7ada5bae5944ccc83b5ca32859fa714
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/ext/agent.yml
    CHANGED
    
    | @@ -1,18 +1,18 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
            version:  | 
| 2 | 
            +
            version: f0c15da
         | 
| 3 3 | 
             
            triples:
         | 
| 4 4 | 
             
              x86_64-linux:
         | 
| 5 | 
            -
                checksum:  | 
| 6 | 
            -
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ | 
| 5 | 
            +
                checksum: 2af2810c660b7b1ad38f5962db00a81965dcf0be07b101ff87f182d1699165b5
         | 
| 6 | 
            +
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/f0c15da/appsignal-x86_64-linux-all-static.tar.gz
         | 
| 7 7 | 
             
              i686-linux:
         | 
| 8 | 
            -
                checksum:  | 
| 9 | 
            -
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ | 
| 8 | 
            +
                checksum: a96f492f08bcccb0e66347fb0920b56d3d5c2958776469a241bf4357cfb4c1a0
         | 
| 9 | 
            +
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/f0c15da/appsignal-i686-linux-all-static.tar.gz
         | 
| 10 10 | 
             
              x86-linux:
         | 
| 11 | 
            -
                checksum:  | 
| 12 | 
            -
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ | 
| 11 | 
            +
                checksum: a96f492f08bcccb0e66347fb0920b56d3d5c2958776469a241bf4357cfb4c1a0
         | 
| 12 | 
            +
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/f0c15da/appsignal-i686-linux-all-static.tar.gz
         | 
| 13 13 | 
             
              x86_64-darwin:
         | 
| 14 | 
            -
                checksum:  | 
| 15 | 
            -
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ | 
| 14 | 
            +
                checksum: 0bbfdf50c06f1b3759ccac1a5b9bed8ebe42859144a045404ce258b3a2a93a4a
         | 
| 15 | 
            +
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/f0c15da/appsignal-x86_64-darwin-all-static.tar.gz
         | 
| 16 16 | 
             
              universal-darwin:
         | 
| 17 | 
            -
                checksum:  | 
| 18 | 
            -
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/ | 
| 17 | 
            +
                checksum: 0bbfdf50c06f1b3759ccac1a5b9bed8ebe42859144a045404ce258b3a2a93a4a
         | 
| 18 | 
            +
                download_url: https://appsignal-agent-releases.global.ssl.fastly.net/f0c15da/appsignal-x86_64-darwin-all-static.tar.gz
         | 
    
        data/lib/appsignal/config.rb
    CHANGED
    
    | @@ -23,7 +23,8 @@ module Appsignal | |
| 23 23 | 
             
                  :running_in_container           => false,
         | 
| 24 24 | 
             
                  :enable_host_metrics            => true,
         | 
| 25 25 | 
             
                  :enable_minutely_probes         => false,
         | 
| 26 | 
            -
                  :hostname                       => ::Socket.gethostname
         | 
| 26 | 
            +
                  :hostname                       => ::Socket.gethostname,
         | 
| 27 | 
            +
                  :ca_file_path                   => File.expand_path(File.join('../../../resources/cacert.pem'), __FILE__)
         | 
| 27 28 | 
             
                }.freeze
         | 
| 28 29 |  | 
| 29 30 | 
             
                ENV_TO_KEY_MAPPING = {
         | 
| @@ -50,7 +51,8 @@ module Appsignal | |
| 50 51 | 
             
                  'APPSIGNAL_WORKING_DIR_PATH'               => :working_dir_path,
         | 
| 51 52 | 
             
                  'APPSIGNAL_ENABLE_HOST_METRICS'            => :enable_host_metrics,
         | 
| 52 53 | 
             
                  'APPSIGNAL_ENABLE_MINUTELY_PROBES'         => :enable_minutely_probes,
         | 
| 53 | 
            -
                  'APPSIGNAL_HOSTNAME'                       => :hostname
         | 
| 54 | 
            +
                  'APPSIGNAL_HOSTNAME'                       => :hostname,
         | 
| 55 | 
            +
                  'APPSIGNAL_CA_FILE_PATH'                   => :ca_file_path
         | 
| 54 56 | 
             
                }.freeze
         | 
| 55 57 |  | 
| 56 58 | 
             
                attr_reader :root_path, :env, :initial_config, :config_hash
         | 
| @@ -127,6 +129,7 @@ module Appsignal | |
| 127 129 | 
             
                  ENV['APPSIGNAL_ENABLE_MINUTELY_PROBES']       = config_hash[:enable_minutely_probes].to_s
         | 
| 128 130 | 
             
                  ENV['APPSIGNAL_HOSTNAME']                     = config_hash[:hostname].to_s
         | 
| 129 131 | 
             
                  ENV['APPSIGNAL_PROCESS_NAME']                 = $0
         | 
| 132 | 
            +
                  ENV['APPSIGNAL_CA_FILE_PATH']                 = config_hash[:ca_file_path].to_s
         | 
| 130 133 | 
             
                end
         | 
| 131 134 |  | 
| 132 135 | 
             
                protected
         | 
| @@ -175,7 +178,7 @@ module Appsignal | |
| 175 178 | 
             
                  # Configuration with string type
         | 
| 176 179 | 
             
                  %w(APPSIGNAL_PUSH_API_KEY APPSIGNAL_APP_NAME APPSIGNAL_PUSH_API_ENDPOINT
         | 
| 177 180 | 
             
                     APPSIGNAL_FRONTEND_ERROR_CATCHING_PATH APPSIGNAL_HTTP_PROXY APPSIGNAL_LOG_PATH
         | 
| 178 | 
            -
                     APPSIGNAL_WORKING_DIR_PATH APPSIGNAL_HOSTNAME).each do |var|
         | 
| 181 | 
            +
                     APPSIGNAL_WORKING_DIR_PATH APPSIGNAL_HOSTNAME APPSIGNAL_CA_FILE_PATH).each do |var|
         | 
| 179 182 | 
             
                    if env_var = ENV[var]
         | 
| 180 183 | 
             
                      config[ENV_TO_KEY_MAPPING[var]] = env_var
         | 
| 181 184 | 
             
                    end
         | 
| @@ -8,7 +8,6 @@ module Appsignal | |
| 8 8 | 
             
              class Transmitter
         | 
| 9 9 | 
             
                CONTENT_TYPE = 'application/json; charset=UTF-8'.freeze
         | 
| 10 10 | 
             
                CONTENT_ENCODING = 'gzip'.freeze
         | 
| 11 | 
            -
                CA_FILE_PATH = File.expand_path(File.join(__FILE__, '../../../resources/cacert.pem'))
         | 
| 12 11 |  | 
| 13 12 | 
             
                HTTP_ERRORS = [
         | 
| 14 13 | 
             
                  EOFError,
         | 
| @@ -42,7 +41,7 @@ module Appsignal | |
| 42 41 | 
             
                end
         | 
| 43 42 |  | 
| 44 43 | 
             
                def transmit(payload)
         | 
| 45 | 
            -
                   | 
| 44 | 
            +
                  config.logger.debug "Transmitting payload to #{uri}"
         | 
| 46 45 | 
             
                  http_client.request(http_post(payload)).code
         | 
| 47 46 | 
             
                end
         | 
| 48 47 |  | 
| @@ -71,7 +70,14 @@ module Appsignal | |
| 71 70 | 
             
                      http.use_ssl     = true
         | 
| 72 71 | 
             
                      http.ssl_version = :TLSv1
         | 
| 73 72 | 
             
                      http.verify_mode = OpenSSL::SSL::VERIFY_PEER
         | 
| 74 | 
            -
             | 
| 73 | 
            +
             | 
| 74 | 
            +
                      ca_file = config[:ca_file_path]
         | 
| 75 | 
            +
                      if ca_file && File.exist?(ca_file) && File.readable?(ca_file)
         | 
| 76 | 
            +
                        http.ca_file = ca_file
         | 
| 77 | 
            +
                      else
         | 
| 78 | 
            +
                        config.logger.warn "Ignoring non-existing or unreadable "\
         | 
| 79 | 
            +
                          "`ca_file_path`: #{ca_file}"
         | 
| 80 | 
            +
                      end
         | 
| 75 81 | 
             
                    end
         | 
| 76 82 | 
             
                  end
         | 
| 77 83 | 
             
                end
         | 
    
        data/lib/appsignal/version.rb
    CHANGED
    
    
| @@ -35,7 +35,8 @@ describe Appsignal::Config do | |
| 35 35 | 
             
                    :running_in_container           => false,
         | 
| 36 36 | 
             
                    :enable_host_metrics            => true,
         | 
| 37 37 | 
             
                    :enable_minutely_probes         => false,
         | 
| 38 | 
            -
                    :hostname                       => Socket.gethostname
         | 
| 38 | 
            +
                    :hostname                       => Socket.gethostname,
         | 
| 39 | 
            +
                    :ca_file_path                   => File.join(resources_dir, 'cacert.pem')
         | 
| 39 40 | 
             
                  })
         | 
| 40 41 | 
             
                end
         | 
| 41 42 |  | 
| @@ -130,6 +131,7 @@ describe Appsignal::Config do | |
| 130 131 | 
             
                    ENV['APPSIGNAL_ENABLE_MINUTELY_PROBES'].should       eq 'false'
         | 
| 131 132 | 
             
                    ENV['APPSIGNAL_HOSTNAME'].should                     eq 'app1.local'
         | 
| 132 133 | 
             
                    ENV['APPSIGNAL_PROCESS_NAME'].should                 include 'rspec'
         | 
| 134 | 
            +
                    ENV['APPSIGNAL_CA_FILE_PATH'].should                 eq File.join(resources_dir, "cacert.pem")
         | 
| 133 135 | 
             
                  end
         | 
| 134 136 |  | 
| 135 137 | 
             
                  context "if working_dir_path is set" do
         | 
| @@ -1,11 +1,14 @@ | |
| 1 1 | 
             
            describe Appsignal::Transmitter do
         | 
| 2 2 | 
             
              let(:config) { project_fixture_config }
         | 
| 3 3 | 
             
              let(:action) { 'action' }
         | 
| 4 | 
            +
              let(:log) { StringIO.new }
         | 
| 4 5 | 
             
              let(:instance) { Appsignal::Transmitter.new(action, config) }
         | 
| 6 | 
            +
              before do
         | 
| 7 | 
            +
                config.config_hash[:hostname] = 'app1.local'
         | 
| 8 | 
            +
                config.logger = Logger.new(log)
         | 
| 9 | 
            +
              end
         | 
| 5 10 |  | 
| 6 11 | 
             
              describe "#uri" do
         | 
| 7 | 
            -
                before { ENV['APPSIGNAL_HOSTNAME'] = 'app1.local' }
         | 
| 8 | 
            -
             | 
| 9 12 | 
             
                subject { instance.uri.to_s }
         | 
| 10 13 |  | 
| 11 14 | 
             
                it { should include 'https://push.appsignal.com/1/action?' }
         | 
| @@ -20,7 +23,9 @@ describe Appsignal::Transmitter do | |
| 20 23 | 
             
                before do
         | 
| 21 24 | 
             
                  stub_request(
         | 
| 22 25 | 
             
                    :post,
         | 
| 23 | 
            -
                    "https://push.appsignal.com/1/action?api_key=abc | 
| 26 | 
            +
                    "https://push.appsignal.com/1/action?api_key=abc"\
         | 
| 27 | 
            +
                      "&environment=production&gem_version=#{Appsignal::VERSION}"\
         | 
| 28 | 
            +
                      "&hostname=#{config.config_hash[:hostname]}&name=TestApp"
         | 
| 24 29 | 
             
                  ).with(
         | 
| 25 30 | 
             
                    :body => Zlib::Deflate.deflate("{\"the\":\"payload\"}", Zlib::BEST_SPEED),
         | 
| 26 31 | 
             
                    :headers => {
         | 
| @@ -31,10 +36,51 @@ describe Appsignal::Transmitter do | |
| 31 36 | 
             
                    :status => 200
         | 
| 32 37 | 
             
                  )
         | 
| 33 38 | 
             
                end
         | 
| 34 | 
            -
             | 
| 35 39 | 
             
                subject { instance.transmit(:the => :payload) }
         | 
| 36 40 |  | 
| 37 41 | 
             
                it { should eq '200' }
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                context "with ca_file_path config option set" do
         | 
| 44 | 
            +
                  context "when not existing file" do
         | 
| 45 | 
            +
                    before do
         | 
| 46 | 
            +
                      config.config_hash[:ca_file_path] = File.join(resources_dir, "cacert.pem")
         | 
| 47 | 
            +
                    end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                    it "ignores the config and logs a warning" do
         | 
| 50 | 
            +
                      expect(subject).to eq '200'
         | 
| 51 | 
            +
                      expect(log.string).to_not include "Ignoring non-existing or unreadable " \
         | 
| 52 | 
            +
                        "`ca_file_path`: #{config[:ca_file_path]}"
         | 
| 53 | 
            +
                    end
         | 
| 54 | 
            +
                  end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                  context "when not existing file" do
         | 
| 57 | 
            +
                    before do
         | 
| 58 | 
            +
                      config.config_hash[:ca_file_path] = File.join(tmp_dir, "ca_file_that_does_not_exist")
         | 
| 59 | 
            +
                    end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                    it "ignores the config and logs a warning" do
         | 
| 62 | 
            +
                      expect(subject).to eq '200'
         | 
| 63 | 
            +
                      expect(log.string).to include "Ignoring non-existing or unreadable " \
         | 
| 64 | 
            +
                        "`ca_file_path`: #{config[:ca_file_path]}"
         | 
| 65 | 
            +
                    end
         | 
| 66 | 
            +
                  end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                  context "when not readable file" do
         | 
| 69 | 
            +
                    let(:file) { File.join(tmp_dir, "ca_file") }
         | 
| 70 | 
            +
                    before do
         | 
| 71 | 
            +
                      config.config_hash[:ca_file_path] = file
         | 
| 72 | 
            +
                      File.open(file, "w") { |f| f.chmod 0000 }
         | 
| 73 | 
            +
                    end
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                    it "ignores the config and logs a warning" do
         | 
| 76 | 
            +
                      expect(subject).to eq '200'
         | 
| 77 | 
            +
                      expect(log.string).to include "Ignoring non-existing or unreadable " \
         | 
| 78 | 
            +
                        "`ca_file_path`: #{config[:ca_file_path]}"
         | 
| 79 | 
            +
                    end
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                    after { File.delete file }
         | 
| 82 | 
            +
                  end
         | 
| 83 | 
            +
                end
         | 
| 38 84 | 
             
              end
         | 
| 39 85 |  | 
| 40 86 | 
             
              describe "#http_post" do
         | 
| @@ -53,13 +99,6 @@ describe Appsignal::Transmitter do | |
| 53 99 | 
             
                end
         | 
| 54 100 | 
             
              end
         | 
| 55 101 |  | 
| 56 | 
            -
              describe ".CA_FILE_PATH" do
         | 
| 57 | 
            -
                subject { Appsignal::Transmitter::CA_FILE_PATH }
         | 
| 58 | 
            -
             | 
| 59 | 
            -
                it { should include('resources/cacert.pem') }
         | 
| 60 | 
            -
                it("should exist") { File.exist?(subject).should be_true }
         | 
| 61 | 
            -
              end
         | 
| 62 | 
            -
             | 
| 63 102 | 
             
              describe "#http_client" do
         | 
| 64 103 | 
             
                subject { instance.send(:http_client) }
         | 
| 65 104 |  | 
| @@ -78,7 +117,7 @@ describe Appsignal::Transmitter do | |
| 78 117 | 
             
                  its(:proxy?) { should be_false }
         | 
| 79 118 | 
             
                  its(:use_ssl?) { should be_true }
         | 
| 80 119 | 
             
                  its(:verify_mode) { should eq OpenSSL::SSL::VERIFY_PEER }
         | 
| 81 | 
            -
                  its(:ca_file) {  | 
| 120 | 
            +
                  its(:ca_file) { should eq config[:ca_file_path] }
         | 
| 82 121 | 
             
                end
         | 
| 83 122 |  | 
| 84 123 | 
             
                context "with a proxy" do
         | 
| @@ -1,4 +1,8 @@ | |
| 1 1 | 
             
            module DirectoryHelper
         | 
| 2 | 
            +
              def project_dir
         | 
| 3 | 
            +
                @project_dir ||= File.expand_path('..', spec_dir)
         | 
| 4 | 
            +
              end
         | 
| 5 | 
            +
             | 
| 2 6 | 
             
              def spec_dir
         | 
| 3 7 | 
             
                APPSIGNAL_SPEC_DIR
         | 
| 4 8 | 
             
              end
         | 
| @@ -14,4 +18,8 @@ module DirectoryHelper | |
| 14 18 | 
             
              def fixtures_dir
         | 
| 15 19 | 
             
                @fixtures_dir ||= File.join(support_dir, 'fixtures')
         | 
| 16 20 | 
             
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              def resources_dir
         | 
| 23 | 
            +
                @resources_dir ||= File.join(project_dir, 'resources')
         | 
| 24 | 
            +
              end
         | 
| 17 25 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: appsignal
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.3. | 
| 4 | 
            +
              version: 1.3.5.beta.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Robert Beekman
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2016-09- | 
| 12 | 
            +
            date: 2016-09-16 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rack
         | 
| @@ -313,9 +313,9 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 313 313 | 
             
                  version: '1.9'
         | 
| 314 314 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 315 315 | 
             
              requirements:
         | 
| 316 | 
            -
              - - " | 
| 316 | 
            +
              - - ">"
         | 
| 317 317 | 
             
                - !ruby/object:Gem::Version
         | 
| 318 | 
            -
                  version:  | 
| 318 | 
            +
                  version: 1.3.1
         | 
| 319 319 | 
             
            requirements: []
         | 
| 320 320 | 
             
            rubyforge_project: 
         | 
| 321 321 | 
             
            rubygems_version: 2.5.1
         |