aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorNat Lasseter <nat.lasseter@york.ac.uk>2020-11-16 12:25:42 +0000
committerNat Lasseter <nat.lasseter@york.ac.uk>2020-11-16 12:25:42 +0000
commit96b8a92fc11d094eedc24bf9b3f76a230d654416 (patch)
tree4788565ba5ce65cd40d0aa9f967eb44c4d63c665 /examples
parent622a1770df1baa13c02f155cde3301306c8f8be0 (diff)
Better examples
Diffstat (limited to 'examples')
-rw-r--r--examples/test_config.rb33
-rw-r--r--examples/test_config.yaml3
-rw-r--r--examples/test_fixed.rb20
-rw-r--r--examples/test_histo.rb41
-rw-r--r--examples/test_random.rb63
5 files changed, 160 insertions, 0 deletions
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