mirror of
https://github.com/hanzoai/otel-collector.git
synced 2026-10-30 18:26:25 +00:00
- imports: ClickHouse/ch-go, clickhouse-go/v2, srikanthccv/ClickHouse-go-mock
-> github.com/hanzo-ds/{native,go,mock} (require, clean semver, NO replace)
- identifiers/aliases/type-names/config-keys/type-IDs: clickhouse -> datastore
(receiver dir clickhousesystemtablesreceiver -> datastoresystemtablesreceiver)
- DSN scheme clickhouse:// -> datastore:// (driver treats non-http/https as Native)
- removed the go.opencensus.io version-pin replace (require-pinned instead)
- kept: real external refs (github.com/ClickHouse, clickhouse.com docs) and the
hanzo-ds/mock test API (NewClickHouseNative) pending the mock's own rename
Full ./... build passes. 0 replace directives, 0 signoz.
62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
package datastoresystemtablesreceiver
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"go.opentelemetry.io/collector/consumer"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
type mockDatastoreQuerrier struct {
|
|
tsNow uint32
|
|
|
|
nextScrapeResult []QueryLog
|
|
}
|
|
|
|
var _ datastoreQuerier = (*mockDatastoreQuerrier)(nil)
|
|
|
|
func (t *mockDatastoreQuerrier) scrapeQueryLog(
|
|
ctx context.Context, minTs uint32, maxTs uint32,
|
|
) ([]QueryLog, error) {
|
|
return t.nextScrapeResult, nil
|
|
}
|
|
|
|
func (t *mockDatastoreQuerrier) unixTsNow(ctx context.Context) (
|
|
uint32, error,
|
|
) {
|
|
return t.tsNow, nil
|
|
}
|
|
|
|
func newTestReceiver(
|
|
ch datastoreQuerier,
|
|
scrapeIntervalSeconds uint32,
|
|
scrapeDelaySeconds uint32,
|
|
nextConsumer consumer.Logs,
|
|
) (*systemTablesReceiver, error) {
|
|
config := zap.NewProductionConfig()
|
|
config.OutputPaths = []string{"stdout"}
|
|
logger, err := config.Build()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &systemTablesReceiver{
|
|
scrapeIntervalSeconds: scrapeIntervalSeconds,
|
|
scrapeDelaySeconds: scrapeDelaySeconds,
|
|
datastore: ch,
|
|
nextConsumer: nextConsumer,
|
|
logger: logger,
|
|
}, nil
|
|
}
|
|
|
|
func makeTestQueryLog(hostname string, eventTime time.Time, query string) QueryLog {
|
|
return QueryLog{
|
|
Hostname: hostname,
|
|
EventType: "QueryFinish",
|
|
EventTime: eventTime,
|
|
EventTimeMicroseconds: eventTime,
|
|
Query: query,
|
|
}
|
|
}
|