Files
sendico/api/pkg/discovery/logging.go
2026-01-04 12:57:40 +01:00

109 lines
3.3 KiB
Go

package discovery
import (
"strings"
me "github.com/tech/sendico/pkg/messaging/envelope"
"go.uber.org/zap"
)
func announcementFields(announce Announcement) []zap.Field {
fields := make([]zap.Field, 0, 10)
if announce.ID != "" {
fields = append(fields, zap.String("id", announce.ID))
}
if announce.InstanceID != "" {
fields = append(fields, zap.String("instance_id", announce.InstanceID))
}
if announce.Service != "" {
fields = append(fields, zap.String("service", announce.Service))
}
if announce.Rail != "" {
fields = append(fields, zap.String("rail", announce.Rail))
}
if announce.Network != "" {
fields = append(fields, zap.String("network", announce.Network))
}
if announce.InvokeURI != "" {
fields = append(fields, zap.String("invoke_uri", announce.InvokeURI))
}
if announce.Version != "" {
fields = append(fields, zap.String("version", announce.Version))
}
if announce.RoutingPriority != 0 {
fields = append(fields, zap.Int("routing_priority", announce.RoutingPriority))
}
if len(announce.Operations) > 0 {
fields = append(fields, zap.Int("ops", len(announce.Operations)))
}
if len(announce.Currencies) > 0 {
fields = append(fields, zap.Int("currencies", len(announce.Currencies)))
}
if announce.Health.IntervalSec > 0 {
fields = append(fields, zap.Int("interval_sec", announce.Health.IntervalSec))
}
if announce.Health.TimeoutSec > 0 {
fields = append(fields, zap.Int("timeout_sec", announce.Health.TimeoutSec))
}
return fields
}
func entryFields(entry RegistryEntry) []zap.Field {
fields := make([]zap.Field, 0, 12)
if entry.ID != "" {
fields = append(fields, zap.String("id", entry.ID))
}
if entry.InstanceID != "" {
fields = append(fields, zap.String("instance_id", entry.InstanceID))
}
if entry.Service != "" {
fields = append(fields, zap.String("service", entry.Service))
}
if entry.Rail != "" {
fields = append(fields, zap.String("rail", entry.Rail))
}
if entry.Network != "" {
fields = append(fields, zap.String("network", entry.Network))
}
if entry.Version != "" {
fields = append(fields, zap.String("version", entry.Version))
}
if entry.InvokeURI != "" {
fields = append(fields, zap.String("invoke_uri", entry.InvokeURI))
}
if entry.Status != "" {
fields = append(fields, zap.String("status", entry.Status))
}
if !entry.LastHeartbeat.IsZero() {
fields = append(fields, zap.Time("last_heartbeat", entry.LastHeartbeat))
}
fields = append(fields, zap.Bool("healthy", entry.Healthy))
if entry.RoutingPriority != 0 {
fields = append(fields, zap.Int("routing_priority", entry.RoutingPriority))
}
if len(entry.Operations) > 0 {
fields = append(fields, zap.Int("ops", len(entry.Operations)))
}
if len(entry.Currencies) > 0 {
fields = append(fields, zap.Int("currencies", len(entry.Currencies)))
}
return fields
}
func envelopeFields(env me.Envelope) []zap.Field {
if env == nil {
return nil
}
fields := make([]zap.Field, 0, 4)
sender := strings.TrimSpace(env.GetSender())
if sender != "" {
fields = append(fields, zap.String("sender", sender))
}
if signature := env.GetSignature(); signature != nil {
fields = append(fields, zap.String("event", signature.ToString()))
}
fields = append(fields, zap.String("message_id", env.GetMessageId().String()))
fields = append(fields, zap.Time("timestamp", env.GetTimeStamp()))
return fields
}