Implement target selection, autodiscovery via aggregator, implement listTargets

This commit is contained in:
2026-03-15 05:04:46 +01:00
parent afa65a2b29
commit 7f93466645
16 changed files with 507 additions and 57 deletions

View File

@@ -27,16 +27,21 @@ func main() {
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer stop()
merger := NewMerger()
cache := NewCache(merger, *source)
go cache.Run(ctx)
var collectorAddrs []string
for _, addr := range strings.Split(*collectors, ",") {
addr = strings.TrimSpace(addr)
if addr == "" {
continue
if addr != "" {
collectorAddrs = append(collectorAddrs, addr)
}
sub := NewCollectorSub(addr, merger)
}
merger := NewMerger()
cache := NewCache(merger, *source)
registry := NewTargetRegistry(collectorAddrs)
go cache.Run(ctx)
for _, addr := range collectorAddrs {
sub := NewCollectorSub(addr, merger, registry)
go sub.Run(ctx)
log.Printf("aggregator: subscribing to collector %s", addr)
}
@@ -46,7 +51,7 @@ func main() {
log.Fatalf("aggregator: failed to listen on %s: %v", *listen, err)
}
grpcServer := grpc.NewServer()
pb.RegisterLogtailServiceServer(grpcServer, NewServer(cache, *source))
pb.RegisterLogtailServiceServer(grpcServer, NewServer(cache, *source, registry))
go func() {
log.Printf("aggregator: gRPC listening on %s (source=%s)", *listen, *source)