feat: game lobby service
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user