mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-17 15:36:48 +00:00
* feat(telemetry/meter): added base setup for telemetry meter signal * feat(telemetry/meter): added metadata setup for meter * feat(telemetry/meter): fix stmnt builder tests * feat(telemetry/meter): test query range API fixes * feat(telemetry/meter): improve error messages * feat(telemetrymeter): step interval improvements * feat(telemetrymeter): metadata changes and aggregate attribute changes * feat(telemetrymeter): metadata changes and aggregate attribute changes * feat(telemetrymeter): deprecate the signal and use aggregation instead * feat(telemetrymeter): deprecate the signal and use aggregation instead * feat(telemetrymeter): deprecate the signal and use aggregation instead * feat(telemetrymeter): cleanup the types * feat(telemetrymeter): introduce source for query * feat(telemetrymeter): better naming for source in metadata * feat(telemetrymeter): added quick filters for meter explorer * feat(telemetrymeter): incorporate the new changes to stmnt builder * feat(telemetrymeter): add the statement builder for the ranged cache queries * feat(telemetrymeter): use meter aggregate keys * feat(telemetrymeter): use meter aggregate keys * feat(telemetrymeter): remove meter from complete bools * feat(telemetrymeter): remove meter from complete bools * feat(telemetrymeter): update the quick filters to use meter
188 lines
8.0 KiB
Go
188 lines
8.0 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,
|
|
telemetryStore telemetrystore.TelemetryStore,
|
|
providerSettings factory.ProviderSettings,
|
|
) 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),
|
|
sqlmigration.NewQueryBuilderV5MigrationFactory(sqlstore, telemetryStore),
|
|
sqlmigration.NewAddMeterQuickFiltersFactory(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),
|
|
)
|
|
}
|