Files
zeekay 54ffd7aa85 debrand: purge ClickHouse -> datastore + hanzo-ds; datastore:// DSN; no replace
- 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.
2026-07-12 19:08:48 -07:00

62 lines
1.8 KiB
Go

package o11ydatastoremeter
import (
"context"
"errors"
internalmetadata "github.com/hanzoai/otel-collector/exporter/o11ydatastoremeter/internal/metadata"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/config/configoptional"
"go.opentelemetry.io/collector/config/configretry"
"go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/exporter/exporterhelper"
)
// NewFactory creates a new Datastore Meter Metrics exporter.
func NewFactory() exporter.Factory {
return exporter.NewFactory(
internalmetadata.Type,
createDefaultConfig,
exporter.WithMetrics(createMeterMetricsExporter, internalmetadata.MetricsStability))
}
func createMeterMetricsExporter(ctx context.Context, params exporter.Settings, cfg component.Config) (exporter.Metrics, error) {
chCfg, ok := cfg.(*Config)
if !ok {
return nil, errors.New("invalid configuration")
}
chExporter, err := NewDatastoreExporter(params.Logger, cfg)
if err != nil {
return nil, err
}
exporter, err := exporterhelper.NewMetrics(
ctx,
params,
cfg,
chExporter.ConsumeMetrics,
exporterhelper.WithTimeout(chCfg.TimeoutConfig),
exporterhelper.WithQueue(chCfg.QueueBatchConfig),
exporterhelper.WithRetry(chCfg.BackOffConfig),
exporterhelper.WithStart(chExporter.Start),
exporterhelper.WithShutdown(chExporter.Shutdown),
)
if err != nil {
return nil, err
}
return exporter, nil
}
func createDefaultConfig() component.Config {
return &Config{
TimeoutConfig: exporterhelper.NewDefaultTimeoutConfig(),
BackOffConfig: configretry.NewDefaultBackOffConfig(),
QueueBatchConfig: configoptional.Some(exporterhelper.NewDefaultQueueConfig()),
DSN: "tcp://localhost:9000",
Database: "o11y_meter",
SamplesTable: "distributed_samples",
}
}