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.
68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
package datastoresystemtablesreceiver
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"go.opentelemetry.io/collector/component"
|
|
"go.opentelemetry.io/collector/consumer"
|
|
"go.opentelemetry.io/collector/receiver"
|
|
"go.opentelemetry.io/collector/receiver/receiverhelper"
|
|
|
|
"github.com/hanzoai/otel-collector/receiver/datastoresystemtablesreceiver/internal/metadata"
|
|
)
|
|
|
|
const (
|
|
defaultScrapeIntervalSeconds = 10
|
|
)
|
|
|
|
func NewFactory() receiver.Factory {
|
|
return receiver.NewFactory(
|
|
metadata.Type,
|
|
createDefaultConfig,
|
|
receiver.WithLogs(createLogsReceiver, metadata.LogsStability),
|
|
)
|
|
}
|
|
|
|
func createDefaultConfig() component.Config {
|
|
return &Config{}
|
|
}
|
|
|
|
func createLogsReceiver(
|
|
ctx context.Context,
|
|
params receiver.Settings,
|
|
cfg component.Config,
|
|
consumer consumer.Logs,
|
|
) (receiver.Logs, error) {
|
|
rCfg := cfg.(*Config)
|
|
|
|
scrapeIntervalSeconds := rCfg.QueryLogScrapeConfig.ScrapeIntervalSeconds
|
|
if scrapeIntervalSeconds == 0 {
|
|
scrapeIntervalSeconds = defaultScrapeIntervalSeconds
|
|
}
|
|
|
|
logger := params.Logger
|
|
if logger == nil {
|
|
return nil, fmt.Errorf("logger must be provided")
|
|
}
|
|
|
|
obsrecv, err := receiverhelper.NewObsReport(receiverhelper.ObsReportSettings{
|
|
ReceiverID: params.ID,
|
|
Transport: "datastore",
|
|
ReceiverCreateSettings: params,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &systemTablesReceiver{
|
|
nextConsumer: consumer,
|
|
config: rCfg,
|
|
scrapeIntervalSeconds: scrapeIntervalSeconds,
|
|
scrapeDelaySeconds: rCfg.QueryLogScrapeConfig.MinScrapeDelaySeconds,
|
|
logger: params.Logger,
|
|
obsrecv: obsrecv,
|
|
}, nil
|
|
|
|
}
|