2025-01-20 17:45:33 +05:30
|
|
|
package signoz
|
|
|
|
|
|
|
|
|
|
import (
|
2025-03-20 21:01:41 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/alertmanager"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/alertmanager/legacyalertmanager"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/alertmanager/signozalertmanager"
|
2025-06-09 16:43:29 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/analytics"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/analytics/noopanalytics"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/analytics/segmentanalytics"
|
2025-03-20 21:01:41 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/cache"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/cache/memorycache"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/cache/rediscache"
|
2025-05-23 00:01:52 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/emailing"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/emailing/noopemailing"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/emailing/smtpemailing"
|
2025-03-20 21:01:41 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/factory"
|
2025-05-31 16:04:13 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/modules/organization"
|
2025-06-18 01:54:55 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/modules/user"
|
2025-03-31 19:41:11 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/prometheus"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/prometheus/clickhouseprometheus"
|
2025-06-10 18:26:28 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/querier"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/querier/signozquerier"
|
2025-06-09 16:43:29 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/ruler"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/ruler/signozruler"
|
2025-05-31 16:04:13 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/sharder"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/sharder/noopsharder"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/sharder/singlesharder"
|
2025-03-20 21:01:41 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/sqlmigration"
|
2025-07-08 00:21:26 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/sqlschema"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/sqlschema/sqlitesqlschema"
|
2025-03-20 21:01:41 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/sqlstore"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/sqlstore/sqlitesqlstore"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/sqlstore/sqlstorehook"
|
2025-06-09 16:43:29 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/statsreporter"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/statsreporter/analyticsstatsreporter"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/statsreporter/noopstatsreporter"
|
2025-03-20 21:01:41 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/telemetrystore"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/telemetrystore/clickhousetelemetrystore"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/telemetrystore/telemetrystorehook"
|
2025-06-09 16:43:29 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/version"
|
2025-03-20 21:01:41 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/web"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/web/noopweb"
|
|
|
|
|
"github.com/SigNoz/signoz/pkg/web/routerweb"
|
2025-01-20 17:45:33 +05:30
|
|
|
)
|
|
|
|
|
|
2025-06-09 16:43:29 +05:30
|
|
|
func NewAnalyticsProviderFactories() factory.NamedMap[factory.ProviderFactory[analytics.Analytics, analytics.Config]] {
|
|
|
|
|
return factory.MustNewNamedMap(
|
|
|
|
|
noopanalytics.NewFactory(),
|
|
|
|
|
segmentanalytics.NewFactory(),
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-10 01:30:42 +05:30
|
|
|
func NewCacheProviderFactories() factory.NamedMap[factory.ProviderFactory[cache.Cache, cache.Config]] {
|
|
|
|
|
return factory.MustNewNamedMap(
|
|
|
|
|
memorycache.NewFactory(),
|
|
|
|
|
rediscache.NewFactory(),
|
|
|
|
|
)
|
|
|
|
|
}
|
2025-01-20 17:45:33 +05:30
|
|
|
|
2025-03-10 01:30:42 +05:30
|
|
|
func NewWebProviderFactories() factory.NamedMap[factory.ProviderFactory[web.Web, web.Config]] {
|
|
|
|
|
return factory.MustNewNamedMap(
|
|
|
|
|
routerweb.NewFactory(),
|
|
|
|
|
noopweb.NewFactory(),
|
|
|
|
|
)
|
|
|
|
|
}
|
2025-01-20 17:45:33 +05:30
|
|
|
|
2025-03-10 01:30:42 +05:30
|
|
|
func NewSQLStoreProviderFactories() factory.NamedMap[factory.ProviderFactory[sqlstore.SQLStore, sqlstore.Config]] {
|
|
|
|
|
hook := sqlstorehook.NewLoggingFactory()
|
|
|
|
|
return factory.MustNewNamedMap(
|
|
|
|
|
sqlitesqlstore.NewFactory(hook),
|
|
|
|
|
)
|
|
|
|
|
}
|
2025-01-20 17:45:33 +05:30
|
|
|
|
2025-07-08 00:21:26 +05:30
|
|
|
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]] {
|
2025-03-10 01:30:42 +05:30
|
|
|
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),
|
2025-03-20 13:59:52 +05:30
|
|
|
sqlmigration.NewAddAlertmanagerFactory(sqlstore),
|
2025-03-12 17:18:11 +05:30
|
|
|
sqlmigration.NewUpdateDashboardAndSavedViewsFactory(sqlstore),
|
2025-03-20 13:59:52 +05:30
|
|
|
sqlmigration.NewUpdatePatAndOrgDomainsFactory(sqlstore),
|
2025-03-24 10:17:12 +05:30
|
|
|
sqlmigration.NewUpdatePipelines(sqlstore),
|
2025-03-25 04:05:40 +05:30
|
|
|
sqlmigration.NewDropLicensesSitesFactory(sqlstore),
|
2025-03-25 22:02:34 +05:30
|
|
|
sqlmigration.NewUpdateInvitesFactory(sqlstore),
|
2025-04-01 23:49:37 +05:30
|
|
|
sqlmigration.NewUpdatePatFactory(sqlstore),
|
2025-04-03 23:26:49 +05:30
|
|
|
sqlmigration.NewUpdateAlertmanagerFactory(sqlstore),
|
2025-04-04 01:25:24 +05:30
|
|
|
sqlmigration.NewUpdatePreferencesFactory(sqlstore),
|
2025-04-04 01:36:47 +05:30
|
|
|
sqlmigration.NewUpdateApdexTtlFactory(sqlstore),
|
2025-04-04 01:46:28 +05:30
|
|
|
sqlmigration.NewUpdateResetPasswordFactory(sqlstore),
|
2025-04-18 00:04:25 +05:30
|
|
|
sqlmigration.NewUpdateRulesFactory(sqlstore),
|
2025-04-11 07:36:31 +05:30
|
|
|
sqlmigration.NewAddVirtualFieldsFactory(),
|
2025-04-15 21:05:36 +05:30
|
|
|
sqlmigration.NewUpdateIntegrationsFactory(sqlstore),
|
2025-04-25 19:38:15 +05:30
|
|
|
sqlmigration.NewUpdateOrganizationsFactory(sqlstore),
|
2025-04-26 15:50:02 +05:30
|
|
|
sqlmigration.NewDropGroupsFactory(sqlstore),
|
2025-05-02 22:39:26 +05:30
|
|
|
sqlmigration.NewCreateQuickFiltersFactory(sqlstore),
|
2025-05-12 16:20:47 +05:30
|
|
|
sqlmigration.NewUpdateQuickFiltersFactory(sqlstore),
|
2025-05-14 23:12:55 +05:30
|
|
|
sqlmigration.NewAuthRefactorFactory(sqlstore),
|
2025-05-24 19:14:29 +05:30
|
|
|
sqlmigration.NewUpdateLicenseFactory(sqlstore),
|
2025-05-21 17:21:19 +05:30
|
|
|
sqlmigration.NewMigratePATToFactorAPIKey(sqlstore),
|
2025-05-27 23:12:08 +05:30
|
|
|
sqlmigration.NewUpdateApiMonitoringFiltersFactory(sqlstore),
|
2025-05-31 16:04:13 +05:30
|
|
|
sqlmigration.NewAddKeyOrganizationFactory(sqlstore),
|
2025-06-02 12:30:49 +05:30
|
|
|
sqlmigration.NewAddTraceFunnelsFactory(sqlstore),
|
2025-06-02 22:41:38 +05:30
|
|
|
sqlmigration.NewUpdateDashboardFactory(sqlstore),
|
2025-06-03 17:05:42 +05:30
|
|
|
sqlmigration.NewDropFeatureSetFactory(),
|
2025-06-09 15:46:22 +05:30
|
|
|
sqlmigration.NewDropDeprecatedTablesFactory(),
|
2025-06-16 20:07:16 +05:30
|
|
|
sqlmigration.NewUpdateAgentsFactory(sqlstore),
|
2025-07-08 00:21:26 +05:30
|
|
|
sqlmigration.NewUpdateUsersFactory(sqlstore, sqlschema),
|
|
|
|
|
sqlmigration.NewUpdateUserInviteFactory(sqlstore, sqlschema),
|
|
|
|
|
sqlmigration.NewUpdateOrgDomainFactory(sqlstore, sqlschema),
|
|
|
|
|
sqlmigration.NewAddFactorIndexesFactory(sqlstore, sqlschema),
|
2025-03-10 01:30:42 +05:30
|
|
|
)
|
|
|
|
|
}
|
2025-01-30 15:51:55 +05:30
|
|
|
|
2025-03-10 01:30:42 +05:30
|
|
|
func NewTelemetryStoreProviderFactories() factory.NamedMap[factory.ProviderFactory[telemetrystore.TelemetryStore, telemetrystore.Config]] {
|
|
|
|
|
return factory.MustNewNamedMap(
|
2025-03-31 19:41:11 +05:30
|
|
|
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),
|
2025-03-10 01:30:42 +05:30
|
|
|
)
|
2025-01-20 17:45:33 +05:30
|
|
|
}
|
|
|
|
|
|
2025-05-31 16:04:13 +05:30
|
|
|
func NewAlertmanagerProviderFactories(sqlstore sqlstore.SQLStore, orgGetter organization.Getter) factory.NamedMap[factory.ProviderFactory[alertmanager.Alertmanager, alertmanager.Config]] {
|
2025-03-10 01:30:42 +05:30
|
|
|
return factory.MustNewNamedMap(
|
2025-05-31 16:04:13 +05:30
|
|
|
legacyalertmanager.NewFactory(sqlstore, orgGetter),
|
|
|
|
|
signozalertmanager.NewFactory(sqlstore, orgGetter),
|
2025-03-10 01:30:42 +05:30
|
|
|
)
|
2025-01-20 17:45:33 +05:30
|
|
|
}
|
2025-05-23 00:01:52 +05:30
|
|
|
|
2025-06-09 16:43:29 +05:30
|
|
|
func NewRulerProviderFactories(sqlstore sqlstore.SQLStore) factory.NamedMap[factory.ProviderFactory[ruler.Ruler, ruler.Config]] {
|
|
|
|
|
return factory.MustNewNamedMap(
|
|
|
|
|
signozruler.NewFactory(sqlstore),
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-23 00:01:52 +05:30
|
|
|
func NewEmailingProviderFactories() factory.NamedMap[factory.ProviderFactory[emailing.Emailing, emailing.Config]] {
|
|
|
|
|
return factory.MustNewNamedMap(
|
|
|
|
|
noopemailing.NewFactory(),
|
|
|
|
|
smtpemailing.NewFactory(),
|
|
|
|
|
)
|
|
|
|
|
}
|
2025-05-31 16:04:13 +05:30
|
|
|
|
|
|
|
|
func NewSharderProviderFactories() factory.NamedMap[factory.ProviderFactory[sharder.Sharder, sharder.Config]] {
|
|
|
|
|
return factory.MustNewNamedMap(
|
|
|
|
|
singlesharder.NewFactory(),
|
|
|
|
|
noopsharder.NewFactory(),
|
|
|
|
|
)
|
|
|
|
|
}
|
2025-06-09 16:43:29 +05:30
|
|
|
|
2025-06-18 01:54:55 +05:30
|
|
|
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]] {
|
2025-06-09 16:43:29 +05:30
|
|
|
return factory.MustNewNamedMap(
|
2025-06-18 01:54:55 +05:30
|
|
|
analyticsstatsreporter.NewFactory(telemetryStore, collectors, orgGetter, userGetter, build, analyticsConfig),
|
2025-06-09 16:43:29 +05:30
|
|
|
noopstatsreporter.NewFactory(),
|
|
|
|
|
)
|
|
|
|
|
}
|
2025-06-10 18:26:28 +05:30
|
|
|
|
|
|
|
|
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),
|
|
|
|
|
)
|
|
|
|
|
}
|