Skip to content

Commit

Permalink
message relayer metrics error checking
Browse files Browse the repository at this point in the history
  • Loading branch information
cam-schultz committed Feb 2, 2024
1 parent c77b20d commit b2b6bec
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 4 deletions.
9 changes: 8 additions & 1 deletion main/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,14 @@ func main() {

startMetricsServer(logger, gatherer, defaultMetricsPort)

metrics := relayer.NewMessageRelayerMetrics(registerer)
metrics, err := relayer.NewMessageRelayerMetrics(registerer)
if err != nil {
logger.Error(
"Failed to create message relayer metrics",
zap.Error(err),
)
panic(err)
}

// Initialize message creator passed down to relayers for creating app requests.
messageCreator, err := message.NewCreator(logger, registerer, "message_creator", constants.DefaultNetworkCompressionType, constants.DefaultNetworkMaximumInboundTimeout)
Expand Down
20 changes: 17 additions & 3 deletions relayer/message_relayer_metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,23 @@

package relayer

import "github.com/prometheus/client_golang/prometheus"
import (
"errors"

"github.com/prometheus/client_golang/prometheus"
)

var (
ErrFailedToCreateMessageRelayerMetrics = errors.New("failed to create message relayer metrics")
)

type MessageRelayerMetrics struct {
successfulRelayMessageCount *prometheus.CounterVec
createSignedMessageLatencyMS *prometheus.GaugeVec
failedRelayMessageCount *prometheus.CounterVec
}

func NewMessageRelayerMetrics(registerer prometheus.Registerer) *MessageRelayerMetrics {
func NewMessageRelayerMetrics(registerer prometheus.Registerer) (*MessageRelayerMetrics, error) {
successfulRelayMessageCount := prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "successful_relay_message_count",
Expand All @@ -28,6 +36,9 @@ func NewMessageRelayerMetrics(registerer prometheus.Registerer) *MessageRelayerM
},
[]string{"destination_chain_id", "source_chain_id", "source_subnet_id"},
)
if createSignedMessageLatencyMS == nil {
return nil, ErrFailedToCreateMessageRelayerMetrics
}
registerer.MustRegister(createSignedMessageLatencyMS)

failedRelayMessageCount := prometheus.NewCounterVec(
Expand All @@ -37,11 +48,14 @@ func NewMessageRelayerMetrics(registerer prometheus.Registerer) *MessageRelayerM
},
[]string{"destination_chain_id", "source_chain_id", "source_subnet_id", "failure_reason"},
)
if failedRelayMessageCount == nil {
return nil, ErrFailedToCreateMessageRelayerMetrics
}
registerer.MustRegister(failedRelayMessageCount)

return &MessageRelayerMetrics{
successfulRelayMessageCount: successfulRelayMessageCount,
createSignedMessageLatencyMS: createSignedMessageLatencyMS,
failedRelayMessageCount: failedRelayMessageCount,
}
}, nil
}

0 comments on commit b2b6bec

Please sign in to comment.