mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-17 15:36:48 +00:00
## 📄 Summary
- add sqlschema package
- add unique index on email,org_id in users and user_invite
181 lines
7.8 KiB
Go
181 lines
7.8 KiB
Go
package signoz
|
|
|
|
import (
|
|
"github.com/SigNoz/signoz/pkg/alertmanager"
|
|
"github.com/SigNoz/signoz/pkg/alertmanager/legacyalertmanager"
|
|
"github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
|
|
"github.com/SigNoz/signoz/pkg/analytics"
|
|
"github.com/SigNoz/signoz/pkg/analytics/noopanalytics"
|
|
"github.com/SigNoz/signoz/pkg/analytics/segmentanalytics"
|
|
"github.com/SigNoz/signoz/pkg/cache"
|
|
"github.com/SigNoz/signoz/pkg/cache/memorycache"
|
|
"github.com/SigNoz/signoz/pkg/cache/rediscache"
|
|
"github.com/SigNoz/signoz/pkg/emailing"
|
|
"github.com/SigNoz/signoz/pkg/emailing/noopemailing"
|
|
"github.com/SigNoz/signoz/pkg/emailing/smtpemailing"
|
|
"github.com/SigNoz/signoz/pkg/factory"
|
|
"github.com/SigNoz/signoz/pkg/modules/organization"
|
|
"github.com/SigNoz/signoz/pkg/modules/user"
|
|
"github.com/SigNoz/signoz/pkg/prometheus"
|
|
"github.com/SigNoz/signoz/pkg/prometheus/clickhouseprometheus"
|
|
"github.com/SigNoz/signoz/pkg/querier"
|
|
"github.com/SigNoz/signoz/pkg/querier/signozquerier"
|
|
"github.com/SigNoz/signoz/pkg/ruler"
|
|
"github.com/SigNoz/signoz/pkg/ruler/signozruler"
|
|
"github.com/SigNoz/signoz/pkg/sharder"
|
|
"github.com/SigNoz/signoz/pkg/sharder/noopsharder"
|
|
"github.com/SigNoz/signoz/pkg/sharder/singlesharder"
|
|
"github.com/SigNoz/signoz/pkg/sqlmigration"
|
|
"github.com/SigNoz/signoz/pkg/sqlschema"
|
|
"github.com/SigNoz/signoz/pkg/sqlschema/sqlitesqlschema"
|
|
"github.com/SigNoz/signoz/pkg/sqlstore"
|
|
"github.com/SigNoz/signoz/pkg/sqlstore/sqlitesqlstore"
|
|
"github.com/SigNoz/signoz/pkg/sqlstore/sqlstorehook"
|
|
"github.com/SigNoz/signoz/pkg/statsreporter"
|
|
"github.com/SigNoz/signoz/pkg/statsreporter/analyticsstatsreporter"
|
|
"github.com/SigNoz/signoz/pkg/statsreporter/noopstatsreporter"
|
|
"github.com/SigNoz/signoz/pkg/telemetrystore"
|
|
"github.com/SigNoz/signoz/pkg/telemetrystore/clickhousetelemetrystore"
|
|
"github.com/SigNoz/signoz/pkg/telemetrystore/telemetrystorehook"
|
|
"github.com/SigNoz/signoz/pkg/version"
|
|
"github.com/SigNoz/signoz/pkg/web"
|
|
"github.com/SigNoz/signoz/pkg/web/noopweb"
|
|
"github.com/SigNoz/signoz/pkg/web/routerweb"
|
|
)
|
|
|
|
func NewAnalyticsProviderFactories() factory.NamedMap[factory.ProviderFactory[analytics.Analytics, analytics.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
noopanalytics.NewFactory(),
|
|
segmentanalytics.NewFactory(),
|
|
)
|
|
}
|
|
|
|
func NewCacheProviderFactories() factory.NamedMap[factory.ProviderFactory[cache.Cache, cache.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
memorycache.NewFactory(),
|
|
rediscache.NewFactory(),
|
|
)
|
|
}
|
|
|
|
func NewWebProviderFactories() factory.NamedMap[factory.ProviderFactory[web.Web, web.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
routerweb.NewFactory(),
|
|
noopweb.NewFactory(),
|
|
)
|
|
}
|
|
|
|
func NewSQLStoreProviderFactories() factory.NamedMap[factory.ProviderFactory[sqlstore.SQLStore, sqlstore.Config]] {
|
|
hook := sqlstorehook.NewLoggingFactory()
|
|
return factory.MustNewNamedMap(
|
|
sqlitesqlstore.NewFactory(hook),
|
|
)
|
|
}
|
|
|
|
func NewSQLSchemaProviderFactories(sqlstore sqlstore.SQLStore) factory.NamedMap[factory.ProviderFactory[sqlschema.SQLSchema, sqlschema.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
sqlitesqlschema.NewFactory(sqlstore),
|
|
)
|
|
}
|
|
|
|
func NewSQLMigrationProviderFactories(sqlstore sqlstore.SQLStore, sqlschema sqlschema.SQLSchema) factory.NamedMap[factory.ProviderFactory[sqlmigration.SQLMigration, sqlmigration.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
sqlmigration.NewAddDataMigrationsFactory(),
|
|
sqlmigration.NewAddOrganizationFactory(),
|
|
sqlmigration.NewAddPreferencesFactory(),
|
|
sqlmigration.NewAddDashboardsFactory(),
|
|
sqlmigration.NewAddSavedViewsFactory(),
|
|
sqlmigration.NewAddAgentsFactory(),
|
|
sqlmigration.NewAddPipelinesFactory(),
|
|
sqlmigration.NewAddIntegrationsFactory(),
|
|
sqlmigration.NewAddLicensesFactory(),
|
|
sqlmigration.NewAddPatsFactory(),
|
|
sqlmigration.NewModifyDatetimeFactory(),
|
|
sqlmigration.NewModifyOrgDomainFactory(),
|
|
sqlmigration.NewUpdateOrganizationFactory(sqlstore),
|
|
sqlmigration.NewAddAlertmanagerFactory(sqlstore),
|
|
sqlmigration.NewUpdateDashboardAndSavedViewsFactory(sqlstore),
|
|
sqlmigration.NewUpdatePatAndOrgDomainsFactory(sqlstore),
|
|
sqlmigration.NewUpdatePipelines(sqlstore),
|
|
sqlmigration.NewDropLicensesSitesFactory(sqlstore),
|
|
sqlmigration.NewUpdateInvitesFactory(sqlstore),
|
|
sqlmigration.NewUpdatePatFactory(sqlstore),
|
|
sqlmigration.NewUpdateAlertmanagerFactory(sqlstore),
|
|
sqlmigration.NewUpdatePreferencesFactory(sqlstore),
|
|
sqlmigration.NewUpdateApdexTtlFactory(sqlstore),
|
|
sqlmigration.NewUpdateResetPasswordFactory(sqlstore),
|
|
sqlmigration.NewUpdateRulesFactory(sqlstore),
|
|
sqlmigration.NewAddVirtualFieldsFactory(),
|
|
sqlmigration.NewUpdateIntegrationsFactory(sqlstore),
|
|
sqlmigration.NewUpdateOrganizationsFactory(sqlstore),
|
|
sqlmigration.NewDropGroupsFactory(sqlstore),
|
|
sqlmigration.NewCreateQuickFiltersFactory(sqlstore),
|
|
sqlmigration.NewUpdateQuickFiltersFactory(sqlstore),
|
|
sqlmigration.NewAuthRefactorFactory(sqlstore),
|
|
sqlmigration.NewUpdateLicenseFactory(sqlstore),
|
|
sqlmigration.NewMigratePATToFactorAPIKey(sqlstore),
|
|
sqlmigration.NewUpdateApiMonitoringFiltersFactory(sqlstore),
|
|
sqlmigration.NewAddKeyOrganizationFactory(sqlstore),
|
|
sqlmigration.NewAddTraceFunnelsFactory(sqlstore),
|
|
sqlmigration.NewUpdateDashboardFactory(sqlstore),
|
|
sqlmigration.NewDropFeatureSetFactory(),
|
|
sqlmigration.NewDropDeprecatedTablesFactory(),
|
|
sqlmigration.NewUpdateAgentsFactory(sqlstore),
|
|
sqlmigration.NewUpdateUsersFactory(sqlstore, sqlschema),
|
|
sqlmigration.NewUpdateUserInviteFactory(sqlstore, sqlschema),
|
|
sqlmigration.NewUpdateOrgDomainFactory(sqlstore, sqlschema),
|
|
sqlmigration.NewAddFactorIndexesFactory(sqlstore, sqlschema),
|
|
)
|
|
}
|
|
|
|
func NewTelemetryStoreProviderFactories() factory.NamedMap[factory.ProviderFactory[telemetrystore.TelemetryStore, telemetrystore.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
clickhousetelemetrystore.NewFactory(telemetrystorehook.NewSettingsFactory(), telemetrystorehook.NewLoggingFactory()),
|
|
)
|
|
}
|
|
|
|
func NewPrometheusProviderFactories(telemetryStore telemetrystore.TelemetryStore) factory.NamedMap[factory.ProviderFactory[prometheus.Prometheus, prometheus.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
clickhouseprometheus.NewFactory(telemetryStore),
|
|
)
|
|
}
|
|
|
|
func NewAlertmanagerProviderFactories(sqlstore sqlstore.SQLStore, orgGetter organization.Getter) factory.NamedMap[factory.ProviderFactory[alertmanager.Alertmanager, alertmanager.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
legacyalertmanager.NewFactory(sqlstore, orgGetter),
|
|
signozalertmanager.NewFactory(sqlstore, orgGetter),
|
|
)
|
|
}
|
|
|
|
func NewRulerProviderFactories(sqlstore sqlstore.SQLStore) factory.NamedMap[factory.ProviderFactory[ruler.Ruler, ruler.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
signozruler.NewFactory(sqlstore),
|
|
)
|
|
}
|
|
|
|
func NewEmailingProviderFactories() factory.NamedMap[factory.ProviderFactory[emailing.Emailing, emailing.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
noopemailing.NewFactory(),
|
|
smtpemailing.NewFactory(),
|
|
)
|
|
}
|
|
|
|
func NewSharderProviderFactories() factory.NamedMap[factory.ProviderFactory[sharder.Sharder, sharder.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
singlesharder.NewFactory(),
|
|
noopsharder.NewFactory(),
|
|
)
|
|
}
|
|
|
|
func NewStatsReporterProviderFactories(telemetryStore telemetrystore.TelemetryStore, collectors []statsreporter.StatsCollector, orgGetter organization.Getter, userGetter user.Getter, build version.Build, analyticsConfig analytics.Config) factory.NamedMap[factory.ProviderFactory[statsreporter.StatsReporter, statsreporter.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
analyticsstatsreporter.NewFactory(telemetryStore, collectors, orgGetter, userGetter, build, analyticsConfig),
|
|
noopstatsreporter.NewFactory(),
|
|
)
|
|
}
|
|
|
|
func NewQuerierProviderFactories(telemetryStore telemetrystore.TelemetryStore, prometheus prometheus.Prometheus, cache cache.Cache) factory.NamedMap[factory.ProviderFactory[querier.Querier, querier.Config]] {
|
|
return factory.MustNewNamedMap(
|
|
signozquerier.NewFactory(telemetryStore, prometheus, cache),
|
|
)
|
|
}
|