feat: game lobby service

This commit is contained in:
Ilia Denisov
2026-04-25 23:20:55 +02:00
committed by GitHub
parent 32dc29359a
commit 48b0056b49
336 changed files with 57074 additions and 1418 deletions
+31 -8
View File
@@ -115,10 +115,11 @@ type Runtime struct {
internalHTTPDuration metric.Float64Histogram
authResolutionOutcomes metric.Int64Counter
userCreationOutcomes metric.Int64Counter
raceNameReservationConflicts metric.Int64Counter
userNameConflicts metric.Int64Counter
entitlementMutations metric.Int64Counter
sanctionMutations metric.Int64Counter
limitMutations metric.Int64Counter
lifecycleMutations metric.Int64Counter
eventPublicationFailures metric.Int64Counter
}
@@ -250,14 +251,14 @@ func (r *Runtime) RecordUserCreationOutcome(ctx context.Context, outcome string)
)
}
// RecordRaceNameReservationConflict records one race-name reservation conflict
// for operation.
func (r *Runtime) RecordRaceNameReservationConflict(ctx context.Context, operation string) {
// RecordUserNameConflict records one user-name generation conflict observed
// during operation.
func (r *Runtime) RecordUserNameConflict(ctx context.Context, operation string) {
if r == nil {
return
}
r.raceNameReservationConflicts.Add(
r.userNameConflicts.Add(
normalizeContext(ctx),
1,
metric.WithAttributes(attribute.String("operation", strings.TrimSpace(operation))),
@@ -312,6 +313,23 @@ func (r *Runtime) RecordLimitMutation(ctx context.Context, command string, outco
)
}
// RecordUserLifecycleMutation records one trusted user-lifecycle command
// outcome (currently `apply_permanent_block` and `delete`).
func (r *Runtime) RecordUserLifecycleMutation(ctx context.Context, command string, outcome string) {
if r == nil {
return
}
r.lifecycleMutations.Add(
normalizeContext(ctx),
1,
metric.WithAttributes(
attribute.String("command", strings.TrimSpace(command)),
attribute.String("outcome", strings.TrimSpace(outcome)),
),
)
}
// RecordEventPublicationFailure records one post-commit auxiliary event
// publication failure.
func (r *Runtime) RecordEventPublicationFailure(ctx context.Context, eventType string) {
@@ -419,9 +437,9 @@ func buildRuntime(
if err != nil {
return nil, fmt.Errorf("build user telemetry runtime: user_creation.outcomes: %w", err)
}
raceNameReservationConflicts, err := meter.Int64Counter("user.race_name.reservation_conflicts")
userNameConflicts, err := meter.Int64Counter("user.user_name.conflicts")
if err != nil {
return nil, fmt.Errorf("build user telemetry runtime: race_name.reservation_conflicts: %w", err)
return nil, fmt.Errorf("build user telemetry runtime: user_name.conflicts: %w", err)
}
entitlementMutations, err := meter.Int64Counter("user.entitlement.mutations")
if err != nil {
@@ -435,6 +453,10 @@ func buildRuntime(
if err != nil {
return nil, fmt.Errorf("build user telemetry runtime: limit.mutations: %w", err)
}
lifecycleMutations, err := meter.Int64Counter("user.lifecycle.mutations")
if err != nil {
return nil, fmt.Errorf("build user telemetry runtime: lifecycle.mutations: %w", err)
}
eventPublicationFailures, err := meter.Int64Counter("user.event_publication_failures")
if err != nil {
return nil, fmt.Errorf("build user telemetry runtime: event_publication_failures: %w", err)
@@ -453,10 +475,11 @@ func buildRuntime(
internalHTTPDuration: internalHTTPDuration,
authResolutionOutcomes: authResolutionOutcomes,
userCreationOutcomes: userCreationOutcomes,
raceNameReservationConflicts: raceNameReservationConflicts,
userNameConflicts: userNameConflicts,
entitlementMutations: entitlementMutations,
sanctionMutations: sanctionMutations,
limitMutations: limitMutations,
lifecycleMutations: lifecycleMutations,
eventPublicationFailures: eventPublicationFailures,
}, nil
}