Skip to content

Commit

Permalink
chore: add telemetry reporting for packet methods (#7673)
Browse files Browse the repository at this point in the history
  • Loading branch information
DimitrisJim authored Dec 16, 2024
1 parent 05efed9 commit a8ee548
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 7 deletions.
4 changes: 4 additions & 0 deletions modules/core/04-channel/v2/keeper/msg_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down Expand Up @@ -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
}
56 changes: 49 additions & 7 deletions modules/core/internal/v2/telemetry/packet.go
Original file line number Diff line number Diff line change
@@ -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),
},
)
}
}

0 comments on commit a8ee548

Please sign in to comment.