From 0ca32f93ba961f904caad29b9e7bef823eee10e2 Mon Sep 17 00:00:00 2001 From: Jordan Krage Date: Thu, 15 Oct 2026 14:43:23 -0500 Subject: [PATCH] chain_capabilities/*/monitoring: remove redundant logged metrics --- .../aptos/monitoring/processor.go | 30 ------------ .../evm/monitoring/processor.go | 48 ------------------- .../stellar/monitoring/processor.go | 29 ----------- 3 files changed, 107 deletions(-) diff --git a/chain_capabilities/aptos/monitoring/processor.go b/chain_capabilities/aptos/monitoring/processor.go index 07aed7f98..c42f0edd4 100644 --- a/chain_capabilities/aptos/monitoring/processor.go +++ b/chain_capabilities/aptos/monitoring/processor.go @@ -2,10 +2,8 @@ package monitoring import ( "context" - "encoding/json" "fmt" - "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "github.com/smartcontractkit/chainlink-common/pkg/beholder" @@ -30,53 +28,43 @@ func NewProcessor(lggr logger.Logger, metrics Metrics) (beholder.ProtoProcessor, func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any) error { switch msg := m.(type) { case *ViewInitiated, *WriteReportInitiated: - p.logMessage(m) case *ViewSuccess: - p.logMessage(msg) if err := p.metrics.OnViewSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish ViewSuccess metrics: %w", err) } case *ViewError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnViewError(ctx, msg); err != nil { return fmt.Errorf("failed to publish ViewError metrics: %w", err) } } case *WriteReportSuccess: - p.logMessage(msg) if err := p.metrics.OnWriteReportSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportSuccess metrics: %w", err) } case *WriteReportError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnWriteReportError(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportError metrics: %w", err) } } case *WriteReportTxFeeCalculationError: - p.logMessage(msg) if err := p.metrics.OnWriteReportTxFeeCalculationError(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportTxFeeCalculationError metrics: %w", err) } case *WriteReportDuplicateTx: - p.logMessage(msg) if err := p.metrics.OnWriteReportDuplicateTx(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportDuplicateTx metrics: %w", err) } case *WriteReportSuccessfulEarlyReturn: - p.logMessage(msg) if err := p.metrics.OnWriteReportSuccessfulEarlyReturn(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportSuccessfulEarlyReturn metrics: %w", err) } case *WriteReportTransmitterMismatch: - p.logMessage(msg) if err := p.metrics.OnWriteReportTransmitterMismatch(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportTransmitterMismatch metrics: %w", err) } case *WriteReportP2PConfigIncomplete: - p.logMessage(msg) if err := p.metrics.OnWriteReportP2PConfigIncomplete(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportP2PConfigIncomplete metrics: %w", err) } @@ -94,24 +82,6 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any return nil } -func (p *processor) logMessage(msg proto.Message) { - mStr := protojson.MarshalOptions{ - UseProtoNames: true, - EmitUnpopulated: true, - }.Format(msg) - - var asMap map[string]any - if err := json.Unmarshal([]byte(mStr), &asMap); err != nil { - p.lggr.Errorw("Failed to unmarshal telemetry message for logging", - "err", err, - "message_type", msg.ProtoReflect().Descriptor().Name(), - "json_message", mStr) - return - } - - p.lggr.Infow("[Aptos Monitoring]", "message", asMap, "entity_name", msg.ProtoReflect().Descriptor().Name()) -} - var LogAndEmitSuccess = commonmon.LogAndEmitSuccess var EmitInitiated = commonmon.EmitInitiated var LogAndEmitError = commonmon.LogAndEmitError diff --git a/chain_capabilities/evm/monitoring/processor.go b/chain_capabilities/evm/monitoring/processor.go index 099eff880..9b907b437 100644 --- a/chain_capabilities/evm/monitoring/processor.go +++ b/chain_capabilities/evm/monitoring/processor.go @@ -2,10 +2,8 @@ package monitoring import ( "context" - "encoding/json" "fmt" - "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "github.com/smartcontractkit/chainlink-common/pkg/beholder" @@ -34,15 +32,12 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any case *CallContractInitiated, *WriteReportInitiated, *LogTriggerInitiated, *FilterLogsInitiated, *BalanceAtInitiated, *EstimateGasInitiated, *GetTransactionByHashInitiated, *GetTransactionReceiptInitiated, *HeaderByNumberInitiated: - p.logMessage(m) // -- CallContract -- case *CallContractSuccess: - p.logMessage(msg) if err := p.metrics.OnCallContractSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish CallContractSuccess metrics: %w", err) } case *CallContractError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnCallContractError(ctx, msg); err != nil { return fmt.Errorf("failed to publish CallContractError metrics: %w", err) @@ -50,7 +45,6 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any } // -- WriteReport -- case *WriteReportSuccess: - p.logMessage(msg) if err := p.metrics.OnWriteReportSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportSuccess metrics: %w", err) } @@ -59,50 +53,41 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any return fmt.Errorf("failed to publish WriteReportSuccessfulEarlyReturn metrics: %w", err) } case *WriteReportError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnWriteReportError(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportError metrics: %w", err) } } case *WriteReportTxFeeCalculationError: - p.logMessage(msg) if err := p.metrics.OnWriteReportTxFeeCalculationError(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportTxFeeCalculationError metrics: %w", err) } case *WriteReportInvalidTransmissionState: - p.logMessage(msg) if err := p.metrics.OnWriteReportInvalidTransmissionState(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportInvalidTransmissionState metrics: %w", err) } case *WriteReportDuplicateTx: - p.logMessage(msg) if err := p.metrics.OnWriteReportDuplicateTx(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportDuplicateTx metrics: %w", err) } case *WriteReportInsufficientGasRetry: - p.logMessage(msg) if err := p.metrics.OnWriteReportInsufficientGasRetry(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportInsufficientGasRetry metrics: %w", err) } // -- LogTrigger -- case *LogTriggerSuccess: - p.logMessage(msg) if err := p.metrics.OnLogTriggerSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish LogTriggerSuccess metrics: %w", err) } case *LogTriggerError: - p.logMessage(msg) if err := p.metrics.OnLogTriggerError(ctx, msg); err != nil { return fmt.Errorf("failed to publish LogTriggerError metrics: %w", err) } case *LogTriggerCleanUpError: - p.logMessage(msg) if err := p.metrics.OnLogTriggerCleanUpError(ctx, msg); err != nil { return fmt.Errorf("failed to publish LogTriggerCleanUpError metrics: %w", err) } case *LogTriggerEventDroppedError: - p.logMessage(msg) if !msg.GetIsLimitError() { if err := p.metrics.OnTriggerEventDroppedError(ctx, msg); err != nil { return fmt.Errorf("failed to publish TriggerEventDroppedError metrics: %w", err) @@ -110,12 +95,10 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any } // -- FilterLogs -- case *FilterLogsSuccess: - p.logMessage(msg) if err := p.metrics.OnFilterLogsSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish FilterLogsSuccess metrics: %w", err) } case *FilterLogsError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnFilterLogsError(ctx, msg); err != nil { return fmt.Errorf("failed to publish FilterLogsError metrics: %w", err) @@ -123,12 +106,10 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any } // --- BalanceAt --- case *BalanceAtSuccess: - p.logMessage(msg) if err := p.metrics.OnBalanceAtSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish BalanceAtSuccess metrics: %w", err) } case *BalanceAtError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnBalanceAtError(ctx, msg); err != nil { return fmt.Errorf("failed to publish BalanceAtError metrics: %w", err) @@ -136,12 +117,10 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any } // -- EstimateGas -- case *EstimateGasSuccess: - p.logMessage(msg) if err := p.metrics.OnEstimateGasSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish EstimateGasSuccess metrics: %w", err) } case *EstimateGasError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnEstimateGasError(ctx, msg); err != nil { return fmt.Errorf("failed to publish EstimateGasError metrics: %w", err) @@ -149,12 +128,10 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any } // -- GetTransactionByHash -- case *GetTransactionByHashSuccess: - p.logMessage(msg) if err := p.metrics.OnGetTransactionByHashSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish GetTransactionByHashSuccess metrics: %w", err) } case *GetTransactionByHashError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnGetTransactionByHashError(ctx, msg); err != nil { return fmt.Errorf("failed to publish GetTransactionByHashError metrics: %w", err) @@ -162,12 +139,10 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any } // -- GetTransactionReceipt -- case *GetTransactionReceiptSuccess: - p.logMessage(msg) if err := p.metrics.OnGetTransactionReceiptSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish GetTransactionReceiptSuccess metrics: %w", err) } case *GetTransactionReceiptError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.metrics.OnGetTransactionReceiptError(ctx, msg); err != nil { return fmt.Errorf("failed to publish GetTransactionReceiptError metrics: %w", err) @@ -175,20 +150,17 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any } // -- HeaderByNumber -- case *HeaderByNumberSuccess: - p.logMessage(msg) if err := p.metrics.OnHeaderByNumberSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish HeaderByNumberSuccess metrics: %w", err) } case *HeaderByNumberError: if !msg.GetIsUserError() { - p.logMessage(msg) if err := p.metrics.OnHeaderByNumberError(ctx, msg); err != nil { return fmt.Errorf("failed to publish HeaderByNumberError metrics: %w", err) } } // -- TransmissionScheduler -- case *TransmissionSchedulerNodeNotFoundInDon: - p.logMessage(msg) if err := p.metrics.OnTransmissionSchedulerNodeNotFoundInDon(ctx, msg); err != nil { return fmt.Errorf("failed to publish TransmissionSchedulerNodeNotFoundInDon metrics: %w", err) } @@ -199,26 +171,6 @@ func (p *processor) Process(ctx context.Context, m proto.Message, attrKVs ...any return nil } -func (p *processor) logMessage(msg proto.Message) { - mStr := protojson.MarshalOptions{ - UseProtoNames: true, - EmitUnpopulated: true, - }.Format(msg) - - // Convert to map for structured logging - var asMap map[string]any - err := json.Unmarshal([]byte(mStr), &asMap) - if err != nil { - p.lggr.Errorw("Failed to unmarshal telemetry message for logging", - "err", err, - "message_type", msg.ProtoReflect().Descriptor().Name(), - "json_message", mStr) - return - } - - p.lggr.Infow("[EVM Monitoring]", "message", asMap, "entity_name", msg.ProtoReflect().Descriptor().Name()) -} - var LogAndEmitSuccess = commonmon.LogAndEmitSuccess var EmitInitiated = commonmon.EmitInitiated var LogAndEmitError = commonmon.LogAndEmitError diff --git a/chain_capabilities/stellar/monitoring/processor.go b/chain_capabilities/stellar/monitoring/processor.go index 079945d4c..9bbb094c8 100644 --- a/chain_capabilities/stellar/monitoring/processor.go +++ b/chain_capabilities/stellar/monitoring/processor.go @@ -2,10 +2,8 @@ package monitoring import ( "context" - "encoding/json" "fmt" - "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "github.com/smartcontractkit/chainlink-common/pkg/logger" @@ -33,48 +31,39 @@ type Processor struct { func (p *Processor) Process(ctx context.Context, m proto.Message, attrKVs ...any) error { switch msg := m.(type) { case *ReadContractInitiated, *WriteReportInitiated: - p.logMessage(m) case *ReadContractSuccess: - p.logMessage(msg) if err := p.Metrics.OnReadContractSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish ReadContractSuccess metrics: %w", err) } case *ReadContractError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.Metrics.OnReadContractError(ctx, msg); err != nil { return fmt.Errorf("failed to publish ReadContractError metrics: %w", err) } } case *WriteReportSuccess: - p.logMessage(msg) if err := p.Metrics.OnWriteReportSuccess(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportSuccess metrics: %w", err) } case *WriteReportError: - p.logMessage(msg) if !msg.GetIsUserError() { if err := p.Metrics.OnWriteReportError(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportError metrics: %w", err) } } case *WriteReportTxInfoRetrievalError: - p.logMessage(msg) if err := p.Metrics.OnWriteReportTxInfoRetrievalError(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportTxInfoRetrievalError metrics: %w", err) } case *WriteReportDuplicateTx: - p.logMessage(msg) if err := p.Metrics.OnWriteReportDuplicateTx(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportDuplicateTx metrics: %w", err) } case *WriteReportSuccessfulEarlyReturn: - p.logMessage(msg) if err := p.Metrics.OnWriteReportSuccessfulEarlyReturn(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportSuccessfulEarlyReturn metrics: %w", err) } case *WriteReportInvalidTransmissionState: - p.logMessage(msg) if err := p.Metrics.OnWriteReportInvalidTransmissionState(ctx, msg); err != nil { return fmt.Errorf("failed to publish WriteReportInvalidTransmissionState metrics: %w", err) } @@ -84,24 +73,6 @@ func (p *Processor) Process(ctx context.Context, m proto.Message, attrKVs ...any return nil } -func (p *Processor) logMessage(msg proto.Message) { - mStr := protojson.MarshalOptions{ - UseProtoNames: true, - EmitUnpopulated: true, - }.Format(msg) - - var asMap map[string]any - if err := json.Unmarshal([]byte(mStr), &asMap); err != nil { - p.Lggr.Errorw("Failed to unmarshal telemetry message for logging", - "err", err, - "message_type", msg.ProtoReflect().Descriptor().Name(), - "json_message", mStr) - return - } - - p.Lggr.Infow("[Stellar Monitoring]", "message", asMap, "entity_name", msg.ProtoReflect().Descriptor().Name()) -} - var LogAndEmitSuccess = commonmon.LogAndEmitSuccess var EmitInitiated = commonmon.EmitInitiated var LogAndEmitError = commonmon.LogAndEmitError