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"
|
|
|
|
|
|
|
|
|
|
"github.com/jmoiron/sqlx"
|
|
|
|
|
|
2025-01-24 00:16:38 +05:30
|
|
|
"go.signoz.io/signoz/pkg/cache"
|
2022-10-06 20:13:30 +05:30
|
|
|
basechr "go.signoz.io/signoz/pkg/query-service/app/clickhouseReader"
|
2022-11-24 18:18:19 +05:30
|
|
|
"go.signoz.io/signoz/pkg/query-service/interfaces"
|
2022-10-06 20:13:30 +05:30
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type ClickhouseReader struct {
|
|
|
|
|
conn clickhouse.Conn
|
|
|
|
|
appdb *sqlx.DB
|
|
|
|
|
*basechr.ClickHouseReader
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-10 17:20:34 +05:30
|
|
|
func NewDataConnector(
|
|
|
|
|
localDB *sqlx.DB,
|
|
|
|
|
promConfigPath string,
|
|
|
|
|
lm interfaces.FeatureLookup,
|
|
|
|
|
maxIdleConns int,
|
|
|
|
|
maxOpenConns int,
|
|
|
|
|
dialTimeout time.Duration,
|
2023-10-20 12:37:45 +05:30
|
|
|
cluster string,
|
2024-09-12 10:58:07 +05:30
|
|
|
useLogsNewSchema bool,
|
2024-11-22 12:00:29 +05:30
|
|
|
useTraceNewSchema bool,
|
2025-01-24 00:16:38 +05:30
|
|
|
fluxIntervalForTraceDetail time.Duration,
|
|
|
|
|
cache cache.Cache,
|
2023-08-10 17:20:34 +05:30
|
|
|
) *ClickhouseReader {
|
2025-01-24 00:16:38 +05:30
|
|
|
ch := basechr.NewReader(localDB, promConfigPath, lm, maxIdleConns, maxOpenConns, dialTimeout, cluster, useLogsNewSchema, useTraceNewSchema, fluxIntervalForTraceDetail, cache)
|
2022-10-06 20:13:30 +05:30
|
|
|
return &ClickhouseReader{
|
|
|
|
|
conn: ch.GetConn(),
|
|
|
|
|
appdb: localDB,
|
|
|
|
|
ClickHouseReader: ch,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (r *ClickhouseReader) Start(readerReady chan bool) {
|
|
|
|
|
r.ClickHouseReader.Start(readerReady)
|
|
|
|
|
}
|