From 68c27f7c374c9ea0686d9c6eee8c5cbc27e9444c Mon Sep 17 00:00:00 2001 From: Conor Macpherson Date: Thu, 8 Dec 2022 16:20:17 -0500 Subject: [PATCH] Run make store-layers --- store/opentracinglayer/opentracinglayer.go | 36 +++++++++++++++++++ store/retrylayer/retrylayer.go | 42 ++++++++++++++++++++++ store/timerlayer/timerlayer.go | 32 +++++++++++++++++ 3 files changed, 110 insertions(+) diff --git a/store/opentracinglayer/opentracinglayer.go b/store/opentracinglayer/opentracinglayer.go index aa41c28ab5..75e832ccf9 100644 --- a/store/opentracinglayer/opentracinglayer.go +++ b/store/opentracinglayer/opentracinglayer.go @@ -12462,6 +12462,24 @@ func (s *OpenTracingLayerWebhookStore) GetIncomingListByUser(userID string, offs return result, err } +func (s *OpenTracingLayerWebhookStore) GetIncomingTotal() (int64, error) { + origCtx := s.Root.Store.Context() + span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "WebhookStore.GetIncomingTotal") + s.Root.Store.SetContext(newCtx) + defer func() { + s.Root.Store.SetContext(origCtx) + }() + + defer span.Finish() + result, err := s.WebhookStore.GetIncomingTotal() + if err != nil { + span.LogFields(spanlog.Error(err)) + ext.Error.Set(span, true) + } + + return result, err +} + func (s *OpenTracingLayerWebhookStore) GetOutgoing(id string) (*model.OutgoingWebhook, error) { origCtx := s.Root.Store.Context() span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "WebhookStore.GetOutgoing") @@ -12588,6 +12606,24 @@ func (s *OpenTracingLayerWebhookStore) GetOutgoingListByUser(userID string, offs return result, err } +func (s *OpenTracingLayerWebhookStore) GetOutgoingTotal() (int64, error) { + origCtx := s.Root.Store.Context() + span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "WebhookStore.GetOutgoingTotal") + s.Root.Store.SetContext(newCtx) + defer func() { + s.Root.Store.SetContext(origCtx) + }() + + defer span.Finish() + result, err := s.WebhookStore.GetOutgoingTotal() + if err != nil { + span.LogFields(spanlog.Error(err)) + ext.Error.Set(span, true) + } + + return result, err +} + func (s *OpenTracingLayerWebhookStore) InvalidateWebhookCache(webhook string) { origCtx := s.Root.Store.Context() span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "WebhookStore.InvalidateWebhookCache") diff --git a/store/retrylayer/retrylayer.go b/store/retrylayer/retrylayer.go index 5aca1535cb..426cc15487 100644 --- a/store/retrylayer/retrylayer.go +++ b/store/retrylayer/retrylayer.go @@ -14211,6 +14211,27 @@ func (s *RetryLayerWebhookStore) GetIncomingListByUser(userID string, offset int } +func (s *RetryLayerWebhookStore) GetIncomingTotal() (int64, error) { + + tries := 0 + for { + result, err := s.WebhookStore.GetIncomingTotal() + if err == nil { + return result, nil + } + if !isRepeatableError(err) { + return result, err + } + tries++ + if tries >= 3 { + err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures") + return result, err + } + timepkg.Sleep(100 * timepkg.Millisecond) + } + +} + func (s *RetryLayerWebhookStore) GetOutgoing(id string) (*model.OutgoingWebhook, error) { tries := 0 @@ -14358,6 +14379,27 @@ func (s *RetryLayerWebhookStore) GetOutgoingListByUser(userID string, offset int } +func (s *RetryLayerWebhookStore) GetOutgoingTotal() (int64, error) { + + tries := 0 + for { + result, err := s.WebhookStore.GetOutgoingTotal() + if err == nil { + return result, nil + } + if !isRepeatableError(err) { + return result, err + } + tries++ + if tries >= 3 { + err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures") + return result, err + } + timepkg.Sleep(100 * timepkg.Millisecond) + } + +} + func (s *RetryLayerWebhookStore) InvalidateWebhookCache(webhook string) { s.WebhookStore.InvalidateWebhookCache(webhook) diff --git a/store/timerlayer/timerlayer.go b/store/timerlayer/timerlayer.go index c4c89b935c..cff6c65e91 100644 --- a/store/timerlayer/timerlayer.go +++ b/store/timerlayer/timerlayer.go @@ -11224,6 +11224,22 @@ func (s *TimerLayerWebhookStore) GetIncomingListByUser(userID string, offset int return result, err } +func (s *TimerLayerWebhookStore) GetIncomingTotal() (int64, error) { + start := time.Now() + + result, err := s.WebhookStore.GetIncomingTotal() + + elapsed := float64(time.Since(start)) / float64(time.Second) + if s.Root.Metrics != nil { + success := "false" + if err == nil { + success = "true" + } + s.Root.Metrics.ObserveStoreMethodDuration("WebhookStore.GetIncomingTotal", success, elapsed) + } + return result, err +} + func (s *TimerLayerWebhookStore) GetOutgoing(id string) (*model.OutgoingWebhook, error) { start := time.Now() @@ -11336,6 +11352,22 @@ func (s *TimerLayerWebhookStore) GetOutgoingListByUser(userID string, offset int return result, err } +func (s *TimerLayerWebhookStore) GetOutgoingTotal() (int64, error) { + start := time.Now() + + result, err := s.WebhookStore.GetOutgoingTotal() + + elapsed := float64(time.Since(start)) / float64(time.Second) + if s.Root.Metrics != nil { + success := "false" + if err == nil { + success = "true" + } + s.Root.Metrics.ObserveStoreMethodDuration("WebhookStore.GetOutgoingTotal", success, elapsed) + } + return result, err +} + func (s *TimerLayerWebhookStore) InvalidateWebhookCache(webhook string) { start := time.Now()