From 96b8a92fc11d094eedc24bf9b3f76a230d654416 Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Mon, 16 Nov 2020 12:25:42 +0000 Subject: Better examples --- examples/test_config.rb | 33 +++++++++++++++++++++++++ examples/test_config.yaml | 3 +++ examples/test_fixed.rb | 20 +++++++++++++++ examples/test_histo.rb | 41 ++++++++++++++++++++++++++++++ examples/test_random.rb | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 160 insertions(+) create mode 100644 examples/test_config.rb create mode 100644 examples/test_config.yaml create mode 100644 examples/test_fixed.rb create mode 100644 examples/test_histo.rb create mode 100644 examples/test_random.rb (limited to 'examples') diff --git a/examples/test_config.rb b/examples/test_config.rb new file mode 100644 index 0000000..b5a1418 --- /dev/null +++ b/examples/test_config.rb @@ -0,0 +1,33 @@ +require 'yaml' + +class TestConfig + def initialize(collector, config) + @collector = collector + @config = config + @config.merge!(Longboat::Config.for_raider do + opt :test_config, "Config file for test_config", type: String + end) + + @name = "configurable_value" + @config_file = {} + @config_file = YAML.load_file(@config[:test_config]) if @config[:test_config] + end + + def raid + # Clean up any previously reported metrics + # to prevent stale labelsets + @collector.redact!(@name) + + # Report new metrics + value = @config_file["configurable_value"] || 4 + @collector.report!( + @name, + value, + help: "A value specified on the command line at runtime", + type: "gauge", + labels: { + given: @config[:test_config_given] ? 1 : 0 + } + ) + end +end diff --git a/examples/test_config.yaml b/examples/test_config.yaml new file mode 100644 index 0000000..8073a84 --- /dev/null +++ b/examples/test_config.yaml @@ -0,0 +1,3 @@ +{ + "configurable_value": 6 +} diff --git a/examples/test_fixed.rb b/examples/test_fixed.rb new file mode 100644 index 0000000..e6be609 --- /dev/null +++ b/examples/test_fixed.rb @@ -0,0 +1,20 @@ +class TestFixed + def initialize(collector, config) + @collector = collector + @config = config + end + + def raid + # Clean up any previously reported metrics + # to prevent stale labelsets + @collector.redact!("fixed_value") + + # Report new metrics + @collector.report!( + "fixed_value", + 4, + help: "A fixed value", + type: "gauge" + ) + end +end diff --git a/examples/test_histo.rb b/examples/test_histo.rb new file mode 100644 index 0000000..ed3fb01 --- /dev/null +++ b/examples/test_histo.rb @@ -0,0 +1,41 @@ +class TestHisto + def initialize(collector, config) + @collector = collector + @config = config + end + + def raid + # Clean up any previously reported metrics + # to prevent stale labelsets + @collector.redact!("histo") + @collector.redact!("summ") + + # Report new metrics + @collector.report!( + "histo", + { + buckets: { + 0.5 => 1, + 1 => 2 + }, + count: 3, + sum: 3 + }, + help: "A histogram over the data [0.25, 0.75, 2]", + type: "histogram" + ) + @collector.report!( + "summ", + { + quantiles: { + 0.5 => 5, + 0.95 => 9.5 + }, + count: 21, + sum: 105 + }, + help: "A summary of data (0..10).step(0.5)", + type: "summary" + ) + end +end diff --git a/examples/test_random.rb b/examples/test_random.rb new file mode 100644 index 0000000..89a7acd --- /dev/null +++ b/examples/test_random.rb @@ -0,0 +1,63 @@ +class TestRandom + def initialize(collector, config) + @collector = collector + @config = config + end + + def raid + # Clean up any previously reported metrics + # to prevent stale labelsets + @collector.redact!("die_roll") + + # Report new metrics + @collector.report!( + "die_roll", + rand(4) + 1, + help: "A random value from 1 to 4 inclusive", + type: "gauge", + labels: { die: "d4" } + ) + @collector.report!( + "die_roll", + rand(6) + 1, + help: "A random value from 1 to 6 inclusive", + type: "gauge", + labels: { die: "d6" } + ) + @collector.report!( + "die_roll", + rand(8) + 1, + help: "A random value from 1 to 8 inclusive", + type: "gauge", + labels: { die: "d8" } + ) + @collector.report!( + "die_roll", + rand(10) + 1, + help: "A random value from 1 to 10 inclusive", + type: "gauge", + labels: { die: "d10" } + ) + @collector.report!( + "die_roll", + rand(12) + 1, + help: "A random value from 1 to 12 inclusive", + type: "gauge", + labels: { die: "d12" } + ) + @collector.report!( + "die_roll", + rand(20) + 1, + help: "A random value from 1 to 20 inclusive", + type: "gauge", + labels: { die: "d20" } + ) + @collector.report!( + "die_roll", + rand(100) + 1, + help: "A random value from 1 to 100 inclusive", + type: "gauge", + labels: { die: "d%" } + ) + end +end -- cgit v1.2.1