From e80f5830d4a73d8cb19712d20d5fd330834acf10 Mon Sep 17 00:00:00 2001 From: DimitrisJim Date: Thu, 12 Dec 2024 10:19:12 +0200 Subject: [PATCH] chore: add telemetry reporting for packet methods --- .../core/04-channel/v2/keeper/msg_server.go | 4 ++ modules/core/internal/v2/telemetry/packet.go | 56 ++++++++++++++++--- 2 files changed, 53 insertions(+), 7 deletions(-) diff --git a/modules/core/04-channel/v2/keeper/msg_server.go b/modules/core/04-channel/v2/keeper/msg_server.go index e7fff53b9af..3c80eb9671b 100644 --- a/modules/core/04-channel/v2/keeper/msg_server.go +++ b/modules/core/04-channel/v2/keeper/msg_server.go @@ -226,6 +226,8 @@ func (k *Keeper) Acknowledgement(ctx context.Context, msg *types.MsgAcknowledgem } } + defer telemetry.ReportAcknowledgePacket(msg.Packet) + return &types.MsgAcknowledgementResponse{Result: types.SUCCESS}, nil } @@ -265,5 +267,7 @@ func (k *Keeper) Timeout(ctx context.Context, timeout *types.MsgTimeout) (*types } } + defer telemetry.ReportTimeoutPacket(timeout.Packet) + return &types.MsgTimeoutResponse{Result: types.SUCCESS}, nil } diff --git a/modules/core/internal/v2/telemetry/packet.go b/modules/core/internal/v2/telemetry/packet.go index 7c5c8588247..8d12f785960 100644 --- a/modules/core/internal/v2/telemetry/packet.go +++ b/modules/core/internal/v2/telemetry/packet.go @@ -1,14 +1,56 @@ package telemetry import ( - channeltypesv2 "github.com/cosmos/ibc-go/v9/modules/core/04-channel/v2/types" + metrics "github.com/hashicorp/go-metrics" + + "github.com/cosmos/cosmos-sdk/telemetry" + + "github.com/cosmos/ibc-go/v9/modules/core/04-channel/v2/types" + ibcmetrics "github.com/cosmos/ibc-go/v9/modules/core/metrics" ) -// ReportRecvPacket TODO: https://github.com/cosmos/ibc-go/issues/7437 -func ReportRecvPacket(packet channeltypesv2.Packet) {} +func ReportRecvPacket(packet types.Packet) { + for _, payload := range packet.Payloads { + telemetry.IncrCounterWithLabels( + []string{"tx", "msg", "ibc", types.EventTypeRecvPacket}, + 1, + []metrics.Label{ + telemetry.NewLabel(ibcmetrics.LabelSourcePort, payload.SourcePort), + telemetry.NewLabel(ibcmetrics.LabelSourceChannel, packet.SourceChannel), + telemetry.NewLabel(ibcmetrics.LabelDestinationPort, payload.DestinationPort), + telemetry.NewLabel(ibcmetrics.LabelDestinationChannel, packet.DestinationChannel), + }, + ) + } +} -// ReportTimeoutPacket TODO: https://github.com/cosmos/ibc-go/issues/7437 -func ReportTimeoutPacket(packet channeltypesv2.Packet, timeoutType string) {} +func ReportTimeoutPacket(packet types.Packet) { + for _, payload := range packet.Payloads { + telemetry.IncrCounterWithLabels( + []string{"ibc", "timeout", "packet"}, + 1, + []metrics.Label{ + telemetry.NewLabel(ibcmetrics.LabelSourcePort, payload.SourcePort), + telemetry.NewLabel(ibcmetrics.LabelSourceChannel, packet.SourceChannel), + telemetry.NewLabel(ibcmetrics.LabelDestinationPort, payload.DestinationPort), + telemetry.NewLabel(ibcmetrics.LabelDestinationChannel, packet.DestinationChannel), + telemetry.NewLabel(ibcmetrics.LabelTimeoutType, "height"), + }, + ) + } +} -// ReportAcknowledgePacket TODO: https://github.com/cosmos/ibc-go/issues/7437 -func ReportAcknowledgePacket(packet channeltypesv2.Packet) {} +func ReportAcknowledgePacket(packet types.Packet) { + for _, payload := range packet.Payloads { + telemetry.IncrCounterWithLabels( + []string{"tx", "msg", "ibc", types.EventTypeAcknowledgePacket}, + 1, + []metrics.Label{ + telemetry.NewLabel(ibcmetrics.LabelSourcePort, payload.SourcePort), + telemetry.NewLabel(ibcmetrics.LabelSourceChannel, packet.SourceChannel), + telemetry.NewLabel(ibcmetrics.LabelDestinationPort, payload.DestinationPort), + telemetry.NewLabel(ibcmetrics.LabelDestinationChannel, packet.DestinationChannel), + }, + ) + } +}