Skip to content

Commit 823afc6

Browse files
committed
Add telemetry for cloudevents
1 parent 63095e1 commit 823afc6

4 files changed

Lines changed: 16 additions & 7 deletions

File tree

api/pkg/di/container.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,6 +1018,7 @@ func (container *Container) OtelResources(version string, namespace string) *res
10181018
semconv.ServiceNameKey.String(namespace),
10191019
semconv.ServiceVersionKey.String(version),
10201020
semconv.ServiceInstanceIDKey.String(hostName()),
1021+
semconv.HostNameKey.String(hostName()),
10211022
semconv.DeploymentEnvironmentKey.String(os.Getenv("ENV")),
10221023
)
10231024
}

api/pkg/handlers/events_handler.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,9 @@ func (h *EventsHandler) RegisterRoutes(router fiber.Router, middlewares ...fiber
4444
// Dispatch a cloud event
4545
// This is an internal API so no documentation provided
4646
func (h *EventsHandler) Dispatch(c *fiber.Ctx) error {
47-
ctx, span := h.tracer.StartFromFiberCtx(c)
47+
ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
4848
defer span.End()
4949

50-
ctxLogger := h.tracer.CtxLogger(h.logger, span)
51-
5250
var request cloudevents.Event
5351
if err := c.BodyParser(&request); err != nil {
5452
msg := fmt.Sprintf("cannot marshall params [%s] into %T", c.OriginalURL(), request)

api/pkg/repositories/billing_usage_repository.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ type BillingUsageRepository interface {
2121
// GetHistory returns past billing usage by entities.UserID
2222
GetHistory(ctx context.Context, userID entities.UserID, params IndexParams) (*[]entities.BillingUsage, error)
2323

24-
// DeleteForUser deletes all billing usage for an entities.UserID
24+
// DeleteAllForUser deletes all billing usage for an entities.UserID
2525
DeleteAllForUser(ctx context.Context, userID entities.UserID) error
2626
}

api/pkg/services/event_dispatcher_service.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111

1212
"go.opentelemetry.io/otel/metric"
1313
semconv "go.opentelemetry.io/otel/semconv/v1.18.0"
14+
"go.opentelemetry.io/otel/trace"
1415

1516
"github.com/NdoleStudio/httpsms/pkg/events"
1617
"github.com/NdoleStudio/httpsms/pkg/telemetry"
@@ -119,12 +120,12 @@ func (dispatcher *EventDispatcher) Subscribe(eventType string, listener events.E
119120

120121
// Publish an event to subscribers
121122
func (dispatcher *EventDispatcher) Publish(ctx context.Context, event cloudevents.Event) {
122-
ctx, span := dispatcher.tracer.Start(ctx)
123+
ctx, span, ctxLogger := dispatcher.tracer.StartWithLogger(ctx, dispatcher.logger)
123124
defer span.End()
124125

125-
start := time.Now()
126+
dispatcher.addCloudEventAttributes(span, event)
126127

127-
ctxLogger := dispatcher.tracer.CtxLogger(dispatcher.logger, span)
128+
start := time.Now()
128129

129130
subscribers, ok := dispatcher.listeners[event.Type()]
130131
if !ok {
@@ -156,6 +157,15 @@ func (dispatcher *EventDispatcher) Publish(ctx context.Context, event cloudevent
156157
)
157158
}
158159

160+
func (dispatcher *EventDispatcher) addCloudEventAttributes(span trace.Span, event cloudevents.Event) {
161+
span.SetAttributes(
162+
semconv.CloudeventsEventType(event.Type()),
163+
semconv.CloudeventsEventID(event.ID()),
164+
semconv.CloudeventsEventSource(event.Source()),
165+
semconv.CloudeventsEventSpecVersion(event.SpecVersion()),
166+
)
167+
}
168+
159169
func (dispatcher *EventDispatcher) createCloudTask(event cloudevents.Event) (*PushQueueTask, error) {
160170
eventContent, err := json.Marshal(event)
161171
if err != nil {

0 commit comments

Comments
 (0)