2022-10-06 20:13:30 +05:30
|
|
|
package db
|
|
|
|
|
|
|
|
|
|
import (
|
2023-08-10 17:20:34 +05:30
|
|
|
"time"
|
|
|
|
|
|
2022-10-06 20:13:30 +05:30
|
|
|
"github.com/ClickHouse/clickhouse-go/v2"
|
|
|
|
|
|
2025-03-20 21:01:41 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/cache"
|
2025-03-31 19:41:11 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/prometheus"
|
2025-03-20 21:01:41 +05:30
|
|
|
basechr "github.com/SigNoz/signoz/pkg/query-service/app/clickhouseReader"
|
2025-04-04 01:36:47 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/sqlstore"
|
2025-03-31 19:41:11 +05:30
|
|
|
"github.com/SigNoz/signoz/pkg/telemetrystore"
|
2022-10-06 20:13:30 +05:30
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type ClickhouseReader struct {
|
|
|
|
|
conn clickhouse.Conn
|
2025-04-04 01:36:47 +05:30
|
|
|
appdb sqlstore.SQLStore
|
2022-10-06 20:13:30 +05:30
|
|
|
*basechr.ClickHouseReader
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-10 17:20:34 +05:30
|
|
|
func NewDataConnector(
|
2025-04-04 01:36:47 +05:30
|
|
|
sqlDB sqlstore.SQLStore,
|
2025-03-31 19:41:11 +05:30
|
|
|
telemetryStore telemetrystore.TelemetryStore,
|
|
|
|
|
prometheus prometheus.Prometheus,
|
2023-10-20 12:37:45 +05:30
|
|
|
cluster string,
|
2025-01-24 00:16:38 +05:30
|
|
|
fluxIntervalForTraceDetail time.Duration,
|
|
|
|
|
cache cache.Cache,
|
2023-08-10 17:20:34 +05:30
|
|
|
) *ClickhouseReader {
|
2025-04-28 21:01:35 +05:30
|
|
|
chReader := basechr.NewReader(sqlDB, telemetryStore, prometheus, cluster, fluxIntervalForTraceDetail, cache)
|
2022-10-06 20:13:30 +05:30
|
|
|
return &ClickhouseReader{
|
2025-03-31 19:41:11 +05:30
|
|
|
conn: telemetryStore.ClickhouseDB(),
|
2025-04-04 01:36:47 +05:30
|
|
|
appdb: sqlDB,
|
2025-01-30 15:51:55 +05:30
|
|
|
ClickHouseReader: chReader,
|
2022-10-06 20:13:30 +05:30
|
|
|
}
|
|
|
|
|
}
|
2025-05-14 23:12:55 +05:30
|
|
|
|
|
|
|
|
func (r *ClickhouseReader) GetSQLStore() sqlstore.SQLStore {
|
|
|
|
|
return r.appdb
|
|
|
|
|
}
|