feat(collectors) basic implementation of boring collectors; sender via http(s) to hard coded api route
This commit is contained in:
33
internal/sender/logging.go
Normal file
33
internal/sender/logging.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package sender
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
|
||||
"bugs.watch/agent/internal/aggregate"
|
||||
)
|
||||
|
||||
// LoggingSender sends snapshots to the local log.
|
||||
// This is a stand-in for HTTP or disk-backed senders.
|
||||
type LoggingSender struct{}
|
||||
|
||||
func NewLoggingSender() *LoggingSender {
|
||||
return &LoggingSender{}
|
||||
}
|
||||
|
||||
func (s *LoggingSender) Send(ctx context.Context, snap aggregate.Snapshot) error {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
// Context cancelled. Best effort: do not block shutdown.
|
||||
return ctx.Err()
|
||||
default:
|
||||
log.Printf(
|
||||
"SEND cpu=%.2f%% mem=%.2f%% disk=%.2f%% uptime=%ds",
|
||||
snap.CPUAvg,
|
||||
snap.MemAvg,
|
||||
snap.DiskAvg,
|
||||
snap.Uptime,
|
||||
)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user