mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 14:27:32 +00:00

This PR is still WIP and needs changes to at least the tests. # Which Problems Are Solved To be able to report analytical / telemetry data from deployed Zitadel systems back to a central endpoint, we designed a "service ping" functionality. See also https://github.com/zitadel/zitadel/issues/9706. This PR adds the first implementation to allow collection base data as well as report amount of resources such as organizations, users per organization and more. # How the Problems Are Solved - Added a worker to handle the different `ReportType` variations. - Schedule a periodic job to start a `ServicePingReport` - Configuration added to allow customization of what data will be reported - Setup step to generate and store a `systemID` # Additional Changes None # Additional Context relates to #9869
28 lines
599 B
Go
28 lines
599 B
Go
package setup
|
|
|
|
import (
|
|
"context"
|
|
_ "embed"
|
|
|
|
"github.com/zitadel/zitadel/internal/eventstore"
|
|
"github.com/zitadel/zitadel/internal/serviceping"
|
|
"github.com/zitadel/zitadel/internal/v2/system"
|
|
)
|
|
|
|
type GenerateSystemID struct {
|
|
eventstore *eventstore.Eventstore
|
|
}
|
|
|
|
func (mig *GenerateSystemID) Execute(ctx context.Context, _ eventstore.Event) error {
|
|
id, err := serviceping.GenerateSystemID()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
_, err = mig.eventstore.Push(ctx, system.NewIDGeneratedEvent(ctx, id))
|
|
return err
|
|
}
|
|
|
|
func (mig *GenerateSystemID) String() string {
|
|
return "60_generate_system_id"
|
|
}
|