stop tracking events

This commit is contained in:
Elio Bischof
2023-06-21 11:40:16 +02:00
parent 35aa43a4ac
commit 1b5f5e9e62
34 changed files with 20731 additions and 153 deletions

View File

@@ -27,12 +27,12 @@ type TelemetryPusherConfig struct {
}
type telemetryPusher struct {
cfg TelemetryPusherConfig
crdb.StatementHandler
commands *command.Commands
queries *NotificationQueries
metricSuccessfulDeliveriesJSON string
metricFailedDeliveriesJSON string
endpoints []string
}
func NewTelemetryPusher(
@@ -46,8 +46,11 @@ func NewTelemetryPusher(
) *telemetryPusher {
p := new(telemetryPusher)
handlerCfg.ProjectionName = TelemetryProjectionTable
handlerCfg.Reducers = p.reducers()
p.cfg = telemetryCfg
handlerCfg.Reducers = []handler.AggregateReducer{{}}
if telemetryCfg.Enabled {
handlerCfg.Reducers = p.reducers()
}
p.endpoints = telemetryCfg.Endpoints
p.StatementHandler = crdb.NewStatementHandler(ctx, handlerCfg)
p.commands = commands
p.queries = queries
@@ -58,23 +61,20 @@ func NewTelemetryPusher(
}
func (t *telemetryPusher) reducers() []handler.AggregateReducer {
if !t.cfg.Enabled {
return nil
}
return []handler.AggregateReducer{
{
Aggregate: milestone.AggregateType,
EventRedusers: []handler.EventReducer{
{
Event: milestone.ReachedEventType,
Reduce: t.reduceTelemetryPushDue,
Reduce: t.reduceMilestoneReached,
},
},
},
}
}
func (t *telemetryPusher) reduceTelemetryPushDue(event eventstore.Event) (*handler.Statement, error) {
func (t *telemetryPusher) reduceMilestoneReached(event eventstore.Event) (*handler.Statement, error) {
e, ok := event.(*milestone.ReachedEvent)
if !ok {
return nil, errors.ThrowInvalidArgumentf(nil, "HANDL-UjA3E", "reduce.wrong.event.type %s", milestone.ReachedEventType)
@@ -87,7 +87,7 @@ func (t *telemetryPusher) reduceTelemetryPushDue(event eventstore.Event) (*handl
if alreadyHandled {
return crdb.NewNoOpStatement(e), nil
}
for _, endpoint := range t.cfg.Endpoints {
for _, endpoint := range t.endpoints {
if err = types.SendJSON(
ctx,
webhook.Config{
@@ -105,7 +105,7 @@ func (t *telemetryPusher) reduceTelemetryPushDue(event eventstore.Event) (*handl
}
}
err = t.commands.TelemetryPushed(ctx, e, t.cfg.Endpoints)
err = t.commands.ReportMilestonePushed(ctx, t.endpoints, e)
if err != nil {
return nil, err
}

View File

@@ -2,13 +2,8 @@ package handlers
import (
"context"
"fmt"
"time"
"github.com/zitadel/zitadel/internal/repository/project"
"github.com/zitadel/zitadel/internal/repository/instance"
"github.com/zitadel/zitadel/internal/command"
"github.com/zitadel/zitadel/internal/crypto"
"github.com/zitadel/zitadel/internal/domain"
@@ -111,67 +106,11 @@ func (u *userNotifier) reducers() []handler.AggregateReducer {
Event: user.HumanPasswordChangedType,
Reduce: u.reducePasswordChanged,
},
{
Event: user.UserTokenAddedType,
Reduce: u.reduceUserTokenAdded,
},
},
},
{
Aggregate: instance.AggregateType,
EventRedusers: []handler.EventReducer{
{
Event: instance.InstanceAddedEventType,
Reduce: u.reduceInstanceAdded,
},
{
Event: instance.InstanceRemovedEventType,
Reduce: u.reduceInstanceRemoved,
},
},
},
{
Aggregate: project.AggregateType,
EventRedusers: []handler.EventReducer{
{
Event: project.ProjectAddedType,
Reduce: u.reduceProjectAdded,
},
{
Event: project.ApplicationAddedType,
Reduce: u.reduceApplicationAdded,
},
},
},
}
}
func (u *userNotifier) reduceInstanceAdded(event eventstore.Event) (*handler.Statement, error) {
fmt.Println("reduceInstanceAdded")
return crdb.NewNoOpStatement(event), nil
}
func (u *userNotifier) reduceProjectAdded(event eventstore.Event) (*handler.Statement, error) {
// ignore instance.ProjectSetEventType
fmt.Println("reduceProjectAdded")
return crdb.NewNoOpStatement(event), nil
}
func (u *userNotifier) reduceApplicationAdded(event eventstore.Event) (*handler.Statement, error) {
fmt.Println("reduceApplicationAdded")
return crdb.NewNoOpStatement(event), nil
}
func (u *userNotifier) reduceUserTokenAdded(event eventstore.Event) (*handler.Statement, error) {
fmt.Println("reduceUserTokenAdded")
return crdb.NewNoOpStatement(event), nil
}
func (u *userNotifier) reduceInstanceRemoved(event eventstore.Event) (*handler.Statement, error) {
fmt.Println("reduceInstanceRemoved")
return crdb.NewNoOpStatement(event), nil
}
func (u *userNotifier) reduceInitCodeAdded(event eventstore.Event) (*handler.Statement, error) {
e, ok := event.(*user.HumanInitialCodeAddedEvent)
if !ok {