Skip to content
This repository has been archived by the owner on May 9, 2024. It is now read-only.

Commit

Permalink
add msg_id to logs for filtration, add env to otlp resource, add trac…
Browse files Browse the repository at this point in the history
…e_id to logger
  • Loading branch information
P1sar committed Jul 26, 2023
1 parent ea61b7e commit c70371b
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 20 deletions.
13 changes: 6 additions & 7 deletions chains/evm/listener/event-handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@ import (
"fmt"
"math/big"

"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"

"github.com/ChainSafe/chainbridge-core/chains/evm/calls/events"
"github.com/ChainSafe/chainbridge-core/relayer/message"
"github.com/ChainSafe/chainbridge-core/types"
"github.com/ethereum/go-ethereum/common"
"github.com/rs/zerolog/log"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
)

type EventListener interface {
Expand Down Expand Up @@ -46,7 +45,7 @@ func (eh *DepositEventHandler) HandleEvent(startBlock *big.Int, endBlock *big.In
ctxWithSpan, span := tp.Tracer("relayer-core-tracer").Start(context.Background(), "relayer.core.DepositEventHandler.HandleEvent")
defer span.End()
span.SetAttributes(attribute.String("startBlock", startBlock.String()), attribute.String("endBlock", endBlock.String()))

logger := log.With().Str("trace_id", span.SpanContext().TraceID().String()).Logger()
deposits, err := eh.eventListener.FetchDeposits(ctxWithSpan, eh.bridgeAddress, startBlock, endBlock)
if err != nil {
span.SetStatus(codes.Error, err.Error())
Expand All @@ -64,12 +63,12 @@ func (eh *DepositEventHandler) HandleEvent(startBlock *big.Int, endBlock *big.In

m, err := eh.depositHandler.HandleDeposit(eh.domainID, d.DestinationDomainID, d.DepositNonce, d.ResourceID, d.Data, d.HandlerResponse)
if err != nil {
log.Error().Err(err).Str("start block", startBlock.String()).Str("end block", endBlock.String()).Uint8("domainID", eh.domainID).Msgf("%v", err)
logger.Error().Err(err).Str("start block", startBlock.String()).Str("end block", endBlock.String()).Uint8("domainID", eh.domainID).Msgf("%v", err)
span.SetStatus(codes.Error, err.Error())
return
}

log.Debug().Msgf("Resolved message %+v in block range: %s-%s", m, startBlock.String(), endBlock.String())
logger.Debug().Str("msg_id", m.ID()).Msgf("Resolved message %s in block range: %s-%s", m.String(), startBlock.String(), endBlock.String())
domainDeposits[m.Destination] = append(domainDeposits[m.Destination], m)
}(d)
}
Expand Down
2 changes: 1 addition & 1 deletion example/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func Run() error {
}
blockstore := store.NewBlockStore(db)

OTLPResource := opentelemetry.InitResource(fmt.Sprintf("Relayer-%s", configuration.RelayerConfig.Id))
OTLPResource := opentelemetry.InitResource(fmt.Sprintf("Relayer-%s", configuration.RelayerConfig.Id), configuration.RelayerConfig.Env)

mp, err := opentelemetry.InitMetricProvider(ctx, OTLPResource, configuration.RelayerConfig.OpenTelemetryCollectorURL)
if err != nil {
Expand Down
3 changes: 2 additions & 1 deletion opentelemetry/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,15 @@ import (
semconv "go.opentelemetry.io/otel/semconv/v1.17.0"
)

func InitResource(serviceName string) *sdkresource.Resource {
func InitResource(serviceName, env string) *sdkresource.Resource {
res, _ := sdkresource.New(context.Background(),
sdkresource.WithProcess(),
sdkresource.WithTelemetrySDK(),
sdkresource.WithHost(),
sdkresource.WithAttributes(
semconv.ServiceName(serviceName),
),
sdkresource.WithAttributes(attribute.String("env", env)),
)
return res
}
Expand Down
10 changes: 2 additions & 8 deletions relayer/message/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,18 +64,12 @@ func (m *Message) payloadToString() string {
}
payload.Write(bv)
}
return payload.String()
return fmt.Sprintf("%x", payload)
}

func (m *Message) String() string {
return fmt.Sprintf(
`Source: %d;
Destination: %d,
DepositNonce: %d,
ResourceID: %x,
Payload: %s,
Metadata: %+v,
Type: %s`,
`Source: %d;Destination: %d,DepositNonce: %d,ResourceID: %x,Payload: %s,Metadata: %+v,Type: %s`,
m.Source, m.Destination, m.DepositNonce, m.ResourceId, m.payloadToString(), m.Metadata, m.Type)
}

Expand Down
6 changes: 3 additions & 3 deletions relayer/relayer.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ func (r *Relayer) route(msgs []*message.Message) {

log.Debug().Msgf("Routing %d messages to destination %d", len(msgs), destChain.DomainID())
for _, m := range msgs {
log.Debug().Msgf("Routing message %+v", m.String())
log.Debug().Str("msg_id", m.ID()).Msgf("Routing message %+v", m.String())
r.metrics.TrackDepositMessage(m)
for _, mp := range r.messageProcessors {
if err := mp(m); err != nil {
log.Error().Err(fmt.Errorf("error %w processing mesage %v", err, m.String()))
log.Error().Str("msg_id", m.ID()).Err(fmt.Errorf("error %w processing message %v", err, m.String()))
return
}
}
Expand All @@ -80,7 +80,7 @@ func (r *Relayer) route(msgs []*message.Message) {
err := destChain.Write(msgs)
if err != nil {
for _, m := range msgs {
log.Err(err).Msgf("Failed sending message %s to destination %v", m.String(), destChain.DomainID())
log.Err(err).Str("msg_id", m.ID()).Msgf("Failed sending message %s to destination %v", m.String(), destChain.DomainID())
r.metrics.TrackExecutionError(m)
}
return
Expand Down

0 comments on commit c70371b

Please sign in to comment.