forked from voxpupuli/puppet-prometheus
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request voxpupuli#271 from wiebe/statsd_exporter-0.5.0-and-up
Refactor statsd_exporter class to support version >= 0.5.0; bump from 0.3.0->0.8.0
- Loading branch information
Showing
5 changed files
with
181 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
require 'spec_helper_acceptance' | ||
|
||
describe 'prometheus statsd exporter' do | ||
it 'statsd_exporter works idempotently with no errors' do | ||
pp = 'include prometheus::statsd_exporter' | ||
# Run it twice and test for idempotency | ||
apply_manifest(pp, catch_failures: true) | ||
apply_manifest(pp, catch_changes: true) | ||
end | ||
|
||
describe 'prometheus statsd exporter version 0.5.0' do | ||
it ' statsd_exporter installs with version 0.5.0' do | ||
pp = "class {'prometheus::statsd_exporter': version => '0.5.0' }" | ||
# Run it twice and test for idempotency | ||
apply_manifest(pp, catch_failures: true) | ||
apply_manifest(pp, catch_changes: true) | ||
end | ||
describe process('statsd_exporter') do | ||
its(:args) { is_expected.to match %r{\ -statsd.mapping-config} } | ||
end | ||
describe service('statsd_exporter') do | ||
it { is_expected.to be_running } | ||
it { is_expected.to be_enabled } | ||
end | ||
describe port(9102) do | ||
it { is_expected.to be_listening.with('tcp6') } | ||
end | ||
describe port(9125) do | ||
it { is_expected.to be_listening.with('udp6') } | ||
end | ||
end | ||
|
||
describe 'prometheus statsd exporter version 0.7.0' do | ||
it ' statsd_exporter installs with version 0.7.0' do | ||
pp = "class {'prometheus::statsd_exporter': version => '0.7.0' }" | ||
# Run it twice and test for idempotency | ||
apply_manifest(pp, catch_failures: true) | ||
apply_manifest(pp, catch_changes: true) | ||
end | ||
describe process('statsd_exporter') do | ||
its(:args) { is_expected.to match %r{\ --statsd.mapping-config} } | ||
end | ||
describe service('statsd_exporter') do | ||
it { is_expected.to be_running } | ||
it { is_expected.to be_enabled } | ||
end | ||
describe port(9102) do | ||
it { is_expected.to be_listening.with('tcp6') } | ||
end | ||
describe port(9125) do | ||
it { is_expected.to be_listening.with('udp6') } | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
require 'spec_helper' | ||
|
||
describe 'prometheus::statsd_exporter' do | ||
on_supported_os.each do |os, facts| | ||
context "on #{os}" do | ||
let(:facts) do | ||
facts.merge(os_specific_facts(facts)) | ||
end | ||
|
||
context 'with version specified' do | ||
let(:params) do | ||
{ | ||
version: '0.8.0', | ||
arch: 'amd64', | ||
os: 'linux', | ||
bin_dir: '/usr/local/bin', | ||
install_method: 'url', | ||
mappings: [ | ||
{ | ||
match: 'test.dispatcher.*.*.*', | ||
name: 'dispatcher_events_total', | ||
labels: { | ||
processor: '$1', | ||
action: '$2', | ||
outcome: '$3', | ||
job: 'test_dispatcher' | ||
} | ||
}, | ||
{ | ||
match: '*.signup.*.*', | ||
name: 'signup_events_total', | ||
labels: { | ||
provider: '$2', | ||
outcome: '$3', | ||
job: '${1}_server' | ||
} | ||
} | ||
] | ||
} | ||
end | ||
|
||
it { is_expected.to contain_archive('/tmp/statsd_exporter-0.8.0.tar.gz') } | ||
|
||
describe 'compile manifest' do | ||
it { is_expected.to compile.with_all_deps } | ||
end | ||
|
||
describe 'install correct binary' do | ||
it { is_expected.to contain_file('/usr/local/bin/statsd_exporter').with('target' => '/opt/statsd_exporter-0.8.0.linux-amd64/statsd_exporter') } | ||
end | ||
|
||
describe 'required resources' do | ||
it { is_expected.to contain_prometheus__daemon('statsd_exporter').with(options: "--statsd.mapping-config='/etc/statsd-exporter-mapping.yaml' ") } | ||
it { is_expected.to contain_user('statsd-exporter') } | ||
it { is_expected.to contain_group('statsd-exporter') } | ||
it { is_expected.to contain_service('statsd_exporter') } | ||
end | ||
|
||
describe 'mapping config file' do | ||
it { | ||
is_expected.to contain_file('/etc/statsd-exporter-mapping.yaml').with( | ||
'ensure' => 'file', | ||
'owner' => 'statsd-exporter', | ||
'group' => 'statsd-exporter', | ||
'mode' => '0660', | ||
'notify' => 'Service[statsd_exporter]', | ||
'content' => <<-YAML.gsub(%r{^\s+\|}, '') | ||
|--- | ||
|mappings: | ||
|- match: test.dispatcher.*.*.* | ||
| name: dispatcher_events_total | ||
| labels: | ||
| processor: "$1" | ||
| action: "$2" | ||
| outcome: "$3" | ||
| job: test_dispatcher | ||
|- match: "*.signup.*.*" | ||
| name: signup_events_total | ||
| labels: | ||
| provider: "$2" | ||
| outcome: "$3" | ||
| job: "${1}_server" | ||
YAML | ||
) | ||
} | ||
end | ||
end | ||
|
||
context 'with older version that does not support posix like option flags specified' do | ||
let(:params) do | ||
{ | ||
version: '0.6.0', | ||
arch: 'amd64', | ||
os: 'linux', | ||
bin_dir: '/usr/local/bin', | ||
install_method: 'url' | ||
} | ||
end | ||
|
||
describe 'compile manifest' do | ||
it { is_expected.to compile.with_all_deps } | ||
end | ||
|
||
it { is_expected.to contain_prometheus__daemon('statsd_exporter').with(options: "-statsd.mapping-config='/etc/statsd-exporter-mapping.yaml' ") } | ||
end | ||
end | ||
end | ||
end |
This file was deleted.
Oops, something went wrong.