diff --git a/README.md b/README.md index c440fbf..8561ea0 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ receivers: ``` peer.usage.rx_bytes peer.usage.tx_bytes +peer.last_handshake ``` ## Attributes diff --git a/metrics.go b/metrics.go index d779cff..fcea4b3 100644 --- a/metrics.go +++ b/metrics.go @@ -19,7 +19,6 @@ func peerToMetrics(ts time.Time, deviceName string, peer *wgtypes.Peer) pmetric. resourceAttr := rs.Resource().Attributes() resourceAttr.PutStr("peer.device.name", deviceName) resourceAttr.PutStr("peer.name", peer.PublicKey.String()) - ms := rs.ScopeMetrics().AppendEmpty().Metrics() appendPeerMetrics(ms, peer, pbts) @@ -29,6 +28,7 @@ func peerToMetrics(ts time.Time, deviceName string, peer *wgtypes.Peer) pmetric. func appendPeerMetrics(ms pmetric.MetricSlice, peer *wgtypes.Peer, ts pcommon.Timestamp) { gaugeI(ms, "usage.rx_bytes", "By", peer.ReceiveBytes, ts) gaugeI(ms, "usage.tx_bytes", "By", peer.TransmitBytes, ts) + gaugeI(ms, "last_handshake", "s", int64(peer.LastHandshakeTime.Second()), ts) } func initMetric(ms pmetric.MetricSlice, name, unit string) pmetric.Metric { diff --git a/metrics_test.go b/metrics_test.go index 094d28c..42af0df 100644 --- a/metrics_test.go +++ b/metrics_test.go @@ -36,7 +36,7 @@ func assertPeerToMetrics(t *testing.T, peer *wgtypes.Peer, md pmetric.Metrics) { assert.Equal(t, rsm.ScopeMetrics().Len(), 1) metrics := rsm.ScopeMetrics().At(0).Metrics() - assert.Equal(t, metrics.Len(), 2) + assert.Equal(t, metrics.Len(), 3) } func getPeer() (*wgtypes.Peer, error) {