1
0
mirror of https://github.com/netsampler/goflow2.git synced 2024-05-06 15:54:52 +00:00

33 lines
661 B
Go
Raw Permalink Normal View History

package metrics
import (
"fmt"
"github.com/netsampler/goflow2/v2/utils"
"github.com/prometheus/client_golang/prometheus"
)
type ReceiverMetric struct {
}
func NewReceiverMetric() *ReceiverMetric {
return &ReceiverMetric{}
}
func (r *ReceiverMetric) Dropped(pkt utils.Message) {
remote := pkt.Src.Addr().Unmap().String()
localIP := pkt.Dst.Addr().Unmap().String()
port := fmt.Sprintf("%d", pkt.Dst.Port())
size := len(pkt.Payload)
labels := prometheus.Labels{
"remote_ip": remote,
"local_ip": localIP,
"local_port": port,
}
MetricReceivedDroppedPackets.With(labels).Inc()
MetricReceivedDroppedBytes.With(labels).Add(float64(size))
}