27 lines
949 B
Go
27 lines
949 B
Go
package daemon
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
telemetryadapter "github.com/aoagents/agent-orchestrator/backend/internal/adapters/telemetry"
|
|
"github.com/aoagents/agent-orchestrator/backend/internal/config"
|
|
"github.com/aoagents/agent-orchestrator/backend/internal/ports"
|
|
"github.com/aoagents/agent-orchestrator/backend/internal/storage/sqlite"
|
|
)
|
|
|
|
func newTelemetrySink(cfg config.Config, store *sqlite.Store, log *slog.Logger) ports.EventSink {
|
|
if !cfg.Telemetry.Events {
|
|
return telemetryadapter.NoopSink{}
|
|
}
|
|
local := telemetryadapter.NewLocalSQLiteSink(store, log)
|
|
if cfg.Telemetry.Remote != config.TelemetryRemotePostHog {
|
|
return local
|
|
}
|
|
remote, err := telemetryadapter.NewPostHogSink(cfg.DataDir, cfg.Telemetry.PostHogKey, cfg.Telemetry.PostHogHost, nil, log)
|
|
if err != nil {
|
|
log.Warn("telemetry remote sink disabled", "remote", cfg.Telemetry.Remote, "error", err)
|
|
return local
|
|
}
|
|
return telemetryadapter.NewFanoutSink(local, remote)
|
|
}
|