Skip to content

Commit 272a534

Browse files
authored
Report DataDog internal Event ID (#6)
1 parent dd249d7 commit 272a534

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

internal/command/datadog/datadog.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ func processWebhookEvent(
156156
logger.Debugf("skipping event of type %q because we only process events of types %s",
157157
presentedEventType, strings.Join(eventTypesSet.ToSlice(), ", "))
158158

159-
return nil
159+
return ctx.String(http.StatusOK, fmt.Sprintf("skipping event of type %q", presentedEventType))
160160
}
161161

162162
body, err := io.ReadAll(ctx.Request().Body)
@@ -183,11 +183,12 @@ func processWebhookEvent(
183183
// Enrich the event with tags
184184
enrichEventWithTags(body, evt, logger)
185185

186-
if err := sender.SendEvent(ctx.Request().Context(), evt); err != nil {
186+
message, err := sender.SendEvent(ctx.Request().Context(), evt)
187+
if err != nil {
187188
return fmt.Errorf("%w: %v", ErrDatadogFailed, err)
188189
}
189190

190-
return nil
191+
return ctx.String(http.StatusCreated, message)
191192
}
192193

193194
func verifyEvent(ctx echo.Context, body []byte) error {

internal/datadogsender/api.go

+8-4
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func NewAPISender(apiKey string, apiSite string) (*APISender, error) {
3030
}, nil
3131
}
3232

33-
func (sender *APISender) SendEvent(ctx context.Context, event *Event) error {
33+
func (sender *APISender) SendEvent(ctx context.Context, event *Event) (string, error) {
3434
ctx = context.WithValue(
3535
ctx,
3636
datadog.ContextAPIKeys,
@@ -47,14 +47,18 @@ func (sender *APISender) SendEvent(ctx context.Context, event *Event) error {
4747
"site": sender.apiSite,
4848
})
4949

50-
_, _, err := sender.eventsAPI.CreateEvent(ctx, datadogV1.EventCreateRequest{
50+
response, _, err := sender.eventsAPI.CreateEvent(ctx, datadogV1.EventCreateRequest{
5151
Title: event.Title,
5252
Text: event.Text,
5353
Tags: event.Tags,
5454
})
5555
if err != nil {
56-
return fmt.Errorf("%w: %v", ErrAPISenderFailed, err)
56+
return "", fmt.Errorf("%w: %v", ErrAPISenderFailed, err)
5757
}
5858

59-
return nil
59+
if response.Event == nil {
60+
return "", fmt.Errorf("%w: %v", ErrAPISenderFailed, "response.Event is nil")
61+
}
62+
63+
return fmt.Sprintf("DataDog event id: %v", response.Event.Id), nil
6064
}

internal/datadogsender/datadogsender.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ type Event struct {
99
}
1010

1111
type Sender interface {
12-
SendEvent(context.Context, *Event) error
12+
SendEvent(context.Context, *Event) (string, error)
1313
}

internal/datadogsender/dogstatsd.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@ func NewDogstatsdSender(addr string) (*DogstatsdSender, error) {
2525
}, nil
2626
}
2727

28-
func (sender *DogstatsdSender) SendEvent(ctx context.Context, event *Event) error {
28+
func (sender *DogstatsdSender) SendEvent(ctx context.Context, event *Event) (string, error) {
2929
if err := sender.client.Event(&statsd.Event{
3030
Title: event.Title,
3131
Text: event.Text,
3232
Tags: event.Tags,
3333
}); err != nil {
34-
return fmt.Errorf("%w: %v", ErrDogstatsdSenderFailed, err)
34+
return "", fmt.Errorf("%w: %v", ErrDogstatsdSenderFailed, err)
3535
}
3636

37-
return nil
37+
return "", nil
3838
}

0 commit comments

Comments
 (0)