Sha256: 4631ec86bf501ecc662e35ba648aaa517ff80d3f0112585f49037dac2d2aa99f

Contents?: true

Size: 1.63 KB

Versions: 30

Compression:

Stored size: 1.63 KB

Contents

# encoding: utf-8
require "logstash/instrument/collector"
require "spec_helper"

describe LogStash::Instrument::Collector do
  subject { LogStash::Instrument::Collector.new }
  describe "#push" do
    let(:namespaces_path) { [:root, :pipelines, :pipelines01] }
    let(:key) { :my_key }

    context "when the `MetricType` exist" do
      it "store the metric of type `counter`" do
        subject.push(namespaces_path, key, :counter, :increment)
      end
    end

    context "when the `MetricType` doesn't exist" do
      let(:wrong_type) { :donotexist }

      it "logs an error but dont crash" do
        expect(subject.logger).to receive(:error)
          .with("Collector: Cannot create concrete class for this metric type",
        hash_including({ :type => wrong_type, :namespaces_path => namespaces_path }))

          subject.push(namespaces_path, key, wrong_type, :increment)
      end
    end

    context "when there is a conflict with the metric key" do
      let(:conflicting_namespaces) { [namespaces_path, key].flatten }

      it "logs an error but dont crash" do
        subject.push(namespaces_path, key, :counter, :increment)

        expect(subject.logger).to receive(:error)
          .with("Collector: Cannot record metric",
          hash_including({ :exception => instance_of(LogStash::Instrument::MetricStore::NamespacesExpectedError) }))

          subject.push(conflicting_namespaces, :random_key, :counter, :increment)
      end
    end
  end

  describe "#snapshot_metric" do
    it "return a `LogStash::Instrument::MetricStore`" do
      expect(subject.snapshot_metric).to be_kind_of(LogStash::Instrument::Snapshot)
    end
  end
end

Version data entries

30 entries across 30 versions & 7 rubygems

Version Path
mrcooper-logstash-output-azuresearch-0.2.2 vendor/jruby/2.5.0/gems/logstash-core-5.0.0-java/spec/logstash/instrument/collector_spec.rb
logstash-input-fifo-0.9.1 vendor/bundle/jruby/1.9/gems/logstash-core-5.1.1.1-java/spec/logstash/instrument/collector_spec.rb
logstash-input-fifo-0.9.0 vendor/bundle/jruby/1.9/gems/logstash-core-5.1.1.1-java/spec/logstash/instrument/collector_spec.rb
logstash-input-salesforce-3.0.0 vendor/jruby/1.9/gems/logstash-core-5.1.1.1-java/spec/logstash/instrument/collector_spec.rb
logstash-core-5.1.2-java spec/logstash/instrument/collector_spec.rb
logstash-core-5.1.1.1-java spec/logstash/instrument/collector_spec.rb
ivanvc-logstash-input-s3-3.1.1.4 vendor/local/gems/logstash-core-5.1.2.snapshot1-java/spec/logstash/instrument/collector_spec.rb
ivanvc-logstash-input-s3-3.1.1.3 vendor/local/gems/logstash-core-5.1.2.snapshot1-java/spec/logstash/instrument/collector_spec.rb
ivanvc-logstash-input-s3-3.1.1.2 vendor/local/gems/logstash-core-5.1.2.snapshot1-java/spec/logstash/instrument/collector_spec.rb
logstash-core-5.0.2-java spec/logstash/instrument/collector_spec.rb
logstash-core-5.0.1-java spec/logstash/instrument/collector_spec.rb
logstash-core-5.0.0-java spec/logstash/instrument/collector_spec.rb
logstash-core-5.0.0.pre.rc1-java spec/logstash/instrument/collector_spec.rb
logstash-core-5.0.0.pre.beta1-java spec/logstash/instrument/collector_spec.rb
logstash-filter-delta-1.1.0 vendor/bundle/jruby/2.2.0/gems/logstash-core-5.0.0.alpha6.snapshot5-java/spec/logstash/instrument/collector_spec.rb
logstash-filter-delta-1.0.1 vendor/bundle/jruby/2.2.0/gems/logstash-core-5.0.0.alpha6.snapshot5-java/spec/logstash/instrument/collector_spec.rb
logstash-filter-base64-1.0.4 vendor/bundle/jruby/2.2.0/gems/logstash-core-5.0.0.alpha6.snapshot5-java/spec/logstash/instrument/collector_spec.rb
logstash-filter-base64-1.0.3 vendor/bundle/jruby/2.2.0/gems/logstash-core-5.0.0.alpha6.snapshot5-java/spec/logstash/instrument/collector_spec.rb
logstash-filter-delta-1.0.0 vendor/bundle/jruby/2.2.0/gems/logstash-core-5.0.0.alpha6.snapshot5-java/spec/logstash/instrument/collector_spec.rb
logstash-filter-base64-1.0.2 vendor/bundle/jruby/2.3.0/gems/logstash-core-5.0.0.alpha6.snapshot5-java/spec/logstash/instrument/collector_spec.rb