109 lines
3.3 KiB
Go
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
|
|
}
|