Conversation
259ad9f to
4d2bc69
Compare
dispatch/route.go
Outdated
| return b.String() | ||
| } | ||
|
|
||
| // ID returns a key for the route. It should uniquely identify the route in general. |
There was a problem hiding this comment.
Should we include a line about how it's different than Key(), so something like, ID returns a unique key for the route. It is different than Key() as it adds the position in the list of parent routes.?
simonpasquier
left a comment
There was a problem hiding this comment.
I'm missing the context about this change. Is it linked to the pagination API?
| } | ||
| } | ||
|
|
||
| func TestRouteID(t *testing.T) { |
There was a problem hiding this comment.
if we're only testing the top-level routes, there's no need for having sub-routes?
also it might be good to have routes with same key but different ids?
There was a problem hiding this comment.
"I'm missing the context about this change. Is it linked to the pagination API?"
-> It is related as we need to UUID an aggregation group, aggregation group can be uuid by group_labels + routeId
There was a problem hiding this comment.
=> if we're only testing the top-level routes, there's no need for having sub-routes?
also it might be good to have routes with same key but different ids?
Added the test
dispatch/route.go
Outdated
| // ID returns a key for the route. It should uniquely identify the route in general, | ||
| // it is different than Key() as it adds the route's position on its parent's children. |
There was a problem hiding this comment.
(nit) not sure if we need to go into the implementation details here.
| // ID returns a key for the route. It should uniquely identify the route in general, | |
| // it is different than Key() as it adds the route's position on its parent's children. | |
| // ID returns a unique identifier for the route, unlike Key(). |
|
Overall direction looks good, but I have a couple of pieces of feedback:
// ID returns a unique identifier for the route, unlike Key().
func (r *Route) ID() string {
hash := fnv.New64()
var position *int
if r.parent != nil {
// Find the position in the same level leaf.
for i, cr := range r.parent.Routes {
if cr == r {
position = &i
break
}
}
}
_, _ = hash.Write([]byte(r.Key()))
if position != nil {
_, _ = hash.Write([]byte("/"))
_, _ = hash.Write([]byte(fmt.Sprint(*position)))
}
return fmt.Sprintf("%016x", hash.Sum64())
}
|
|
|
@qinxx108 if I remember correctly, this is the first PR that we're suppose to merge as part of the API - right? If so, could you rebase to fix the diff? Thanks! |
|
@gotjosh Yes this is the change Thank you! |
gotjosh
left a comment
There was a problem hiding this comment.
LGTM
Thank you very much for your contribution! I have addressed my own feedback.
|
@gotjosh wonder if we can merge this pr? |
|
Yep, we can. Thanks again @qinxx108! Can you please rebase to fix added commits? |
Signed-off-by: Yijie Qin <qinyijie@amazon.com>
Signed-off-by: Yijie Qin <qinyijie@amazon.com>
Signed-off-by: Yijie Qin <qinyijie@amazon.com>
Signed-off-by: Yijie Qin <qinyijie@amazon.com>
Signed-off-by: Yijie Qin <qinyijie@amazon.com>
- use `require.ElementsMatch` instead of `deepequal`. The feedback on what's missing is much better. - remove spaces from the example configuration to make it easier to read. Signed-off-by: gotjosh <josue.abreu@gmail.com>
Signed-off-by: gotjosh <josue.abreu@gmail.com>
2221f3b to
32a69e6
Compare
* Add the route ID to uuid Signed-off-by: Yijie Qin <qinyijie@amazon.com> --------- Signed-off-by: Yijie Qin <qinyijie@amazon.com>
|
Hi! 👋 I found a bug where |
* [CHANGE] Deprecate and remove api/v1/ #2970 * [CHANGE] Remove unused feature flags #3676 * [CHANGE] Newlines in smtp password file are now ignored #3681 * [CHANGE] Change compat metrics to counters #3686 * [CHANGE] Do not register compat metrics in amtool #3713 * [CHANGE] Remove metrics from compat package #3714 * [CHANGE] Mark muted alerts #3793 * [FEATURE] Add metric for inhibit rules #3681 * [FEATURE] Support UTF-8 label matchers #3453, #3507, #3523, #3483, #3567, #3568, #3569, #3571, #3595, #3604, #3619, #3658, #3659, #3662, #3668, 3572 * [FEATURE] Add counter to track alerts dropped outside of time_intervals #3565 * [FEATURE] Add date and tz functions to templates #3812 * [FEATURE] Add limits for silences #3852 * [FEATURE] Add time helpers for templates #3863 * [FEATURE] Add auto GOMAXPROCS #3837 * [FEATURE] Add auto GOMEMLIMIT #3895 * [FEATURE] Add Jira receiver integration #3590 * [ENHANCEMENT] Add the receiver name to notification metrics #3045 * [ENHANCEMENT] Add the route ID to uuid #3372 * [ENHANCEMENT] Add duration to the notify success message #3559 * [ENHANCEMENT] Implement webhook_url_file for discord and msteams #3555 * [ENHANCEMENT] Add debug logs for muted alerts #3558 * [ENHANCEMENT] API: Allow the Silences API to use their own 400 response #3610 * [ENHANCEMENT] Add summary to msteams notification #3616 * [ENHANCEMENT] Add context reasons to notifications failed counter #3631 * [ENHANCEMENT] Add optional native histogram support to latency metrics #3737 * [ENHANCEMENT] Enable setting ThreadId for Telegram notifications #3638 * [ENHANCEMENT] Allow webex roomID from template #3801 * [BUGFIX] Add missing integrations to notify metrics #3480 * [BUGFIX] Add missing ttl in pushhover #3474 * [BUGFIX] Fix scheme required for webhook url in amtool #3409 * [BUGFIX] Remove duplicate integration from metrics #3516 * [BUGFIX] Reflect Discord's max length message limits #3597 * [BUGFIX] Fix nil error in warn logs about incompatible matchers #3683 * [BUGFIX] Fix a small number of inconsistencies in compat package logging #3718 * [BUGFIX] Fix log line in featurecontrol #3719 * [BUGFIX] Fix panic in acceptance tests #3592 * [BUGFIX] Fix flaky test TestClusterJoinAndReconnect/TestTLSConnection #3722 * [BUGFIX] Fix crash on errors when url_file is used #3800 * [BUGFIX] Fix race condition in dispatch.go #3826 * [BUGFIX] Fix race conditions in the memory alerts store #3648 * [BUGFIX] Hide config.SecretURL when the URL is incorrect. #3887 * [BUGFIX] Fix invalid silence causes incomplete updates #3898 * [BUGFIX] Fix leaking of Silences matcherCache entries #3930 * [BUGFIX] Close SMTP submission correctly to handle errors #4006 Signed-off-by: SuperQ <superq@gmail.com>
Adding a UUID to identify the route in general
The route can be UUID by itself matchers+parents matchers + itself position
For example to UUID route 6, it will be (matcher="1")/(matcher="1")/(matcher="1")/1