kennel 1.76.3 → 1.77.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 17d17b2d23505b0d282fcab382a0bb43f452a132826c35a9fead4544631457db
4
- data.tar.gz: d27f3363aafacb7885f833cf0c5d0d925d0b15f22a4d4aced5ff41377375b333
3
+ metadata.gz: e6ac506da0670019c4f9bfeedda08ff728a0522b86a4e65356ef75b806ac1a33
4
+ data.tar.gz: e19bca2c80a775ba5a28a480b7b265246c0aa00699eec87147ef9d1b7725b603
5
5
  SHA512:
6
- metadata.gz: f5558fd02af6b9662955686724c4c406e23393de685ca5db815f02470439d1ece2f446400b154fdd700ac7d71507500022f4b0c1527e9f0b8769fcf99edfe699
7
- data.tar.gz: 3969b3ae9a00f29bc9882ba4395b019d70e3562cbc2b2c6beca72a65352167d47c80fab7b560183a62c312f24f2ec7b147cf30385877b63044e137d26b7e65a3
6
+ metadata.gz: c29f4797475eb5f83eb7d3b5a35af710267eff90263764e0611f6d2bb52b75d3af34c3fdc7423e0945b2c0741c94bed3480152a17ef73b301877592d93c138c4
7
+ data.tar.gz: bbe104daf2fc7962fa95d94ce6b44b098ddd40461354717d99c0483f5672659a71ebaeaecaad32a28406161b8cd6ff726deefbf6986063b36e7eeb6e0edd60e5
data/Readme.md CHANGED
@@ -210,6 +210,7 @@ To link to existing monitors via their kennel_id `projects kennel_id` + `:` + `m
210
210
  - Screens `uptime` widgets can use `monitor: {id: "foo:bar"}`
211
211
  - Screens `alert_graph` widgets can use `alert_id: "foo:bar"`
212
212
  - Monitors `composite` can use `query: -> { "%{foo:bar} || %{foo:baz}" }`
213
+ - Slos can use `monitor_ids: -> ["foo:bar"]`
213
214
 
214
215
  ### Debugging changes locally
215
216
 
@@ -192,7 +192,7 @@ module Kennel
192
192
  end
193
193
 
194
194
  if type == "query alert"
195
- # verify interval is valud
195
+ # verify interval is valid
196
196
  interval = data.fetch(:query)[/\(last_(\S+?)\)/, 1]
197
197
  if interval && !QUERY_INTERVALS.include?(interval)
198
198
  invalid! "query interval was #{interval}, but must be one of #{QUERY_INTERVALS.join(", ")}"
@@ -200,13 +200,17 @@ module Kennel
200
200
  end
201
201
 
202
202
  if ["query alert", "service check"].include?(type) # TODO: most likely more types need this
203
- # verify is_match uses available variables
203
+ # verify is_match/is_exact_match uses available variables
204
204
  message = data.fetch(:message)
205
- used = message.scan(/{{\s*#is_match\s*"([a-zA-Z\d_.-]+).name"/).flatten.uniq
206
- allowed = data.fetch(:query)[/by\s*[({]([^})]+)[})]/, 1].to_s.gsub(/["']/, "").split(/\s*,\s*/)
207
- unsupported = used - allowed
208
- if unsupported.any?
209
- invalid! "is_match used with #{unsupported}, but metric is only grouped by #{allowed}"
205
+ used = message.scan(/{{\s*([#^]is(?:_exact)?_match)\s*([^\s}]+)/)
206
+ if used.any?
207
+ allowed = data.fetch(:query)[/by\s*[({]([^})]+)[})]/, 1]
208
+ .to_s.gsub(/["']/, "").split(/\s*,\s*/)
209
+ .map! { |w| %("#{w}.name") }
210
+ used.uniq.each do |match, group|
211
+ next if allowed.include?(group)
212
+ invalid! "#{match} used with #{group}, but can only be used with #{allowed.join(", ")}. Add more groupings or fix the #{match}"
213
+ end
210
214
  end
211
215
  end
212
216
  end
@@ -38,7 +38,7 @@ module Kennel
38
38
  end
39
39
 
40
40
  def update
41
- changed = (@create + @update).map { |_, e| e } unless @create.empty?
41
+ changed = (@create + @update).map { |_, e| e }
42
42
 
43
43
  @create.each do |_, e|
44
44
  e.resolve_linked_tracking_ids!({}, force: true)
@@ -188,7 +188,7 @@ module Kennel
188
188
  end
189
189
 
190
190
  # Do not add tracking-id when working with existing ids on a branch,
191
- # so resource do not get deleted fr:om merges to master.
191
+ # so resource do not get deleted from running an update on master (for example merge->CI).
192
192
  # Also make sure the diff still makes sense, by kicking out the now noop-update.
193
193
  #
194
194
  # Note: ideally we'd never add tracking in the first place, but at that point we do not know the diff yet
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.76.3"
3
+ VERSION = "1.77.0"
4
4
  end
@@ -192,6 +192,7 @@ To link to existing monitors via their kennel_id `projects kennel_id` + `:` + `m
192
192
  - Screens `uptime` widgets can use `monitor: {id: "foo:bar"}`
193
193
  - Screens `alert_graph` widgets can use `alert_id: "foo:bar"`
194
194
  - Monitors `composite` can use `query: -> { "%{foo:bar} || %{foo:baz}" }`
195
+ - Slos can use `monitor_ids: -> ["foo:bar"]`
195
196
 
196
197
  ### Debugging changes locally
197
198
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kennel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.76.3
4
+ version: 1.77.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-11 00:00:00.000000000 Z
11
+ date: 2020-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday