// NewDropsondeMarshaller instantiates a DropsondeMarshaller and logs to the // provided logger. func NewDropsondeMarshaller(logger *gosteno.Logger) DropsondeMarshaller { messageCounts := make(map[events.Envelope_EventType]*uint64) for key := range events.Envelope_EventType_name { var count uint64 messageCounts[events.Envelope_EventType(key)] = &count } return &dropsondeMarshaller{ logger: logger, messageCounts: messageCounts, } }
// NewDropsondeUnmarshaller instantiates a DropsondeUnmarshaller and logs to the // provided logger. func NewDropsondeUnmarshaller(logger *gosteno.Logger) DropsondeUnmarshaller { receiveCounts := make(map[events.Envelope_EventType]*uint64) for key := range events.Envelope_EventType_name { var count uint64 receiveCounts[events.Envelope_EventType(key)] = &count } return &dropsondeUnmarshaller{ logger: logger, receiveCounts: receiveCounts, logMessageReceiveCounts: make(map[string]*uint64), } }
func (m *dropsondeMarshaller) metrics() []instrumentation.Metric { var metrics []instrumentation.Metric for eventType, eventName := range events.Envelope_EventType_name { modifiedEventName := []rune(eventName) modifiedEventName[0] = unicode.ToLower(modifiedEventName[0]) metricName := string(modifiedEventName) + "Marshalled" metricValue := atomic.LoadUint64(m.messageCounts[events.Envelope_EventType(eventType)]) metrics = append(metrics, instrumentation.Metric{Name: metricName, Value: metricValue}) } metrics = append(metrics, instrumentation.Metric{ Name: "marshalErrors", Value: atomic.LoadUint64(&m.marshalErrorCount), }) return metrics }