Skip to content

Commit

Permalink
feat: signer module adds metrics for each rpc interface
Browse files Browse the repository at this point in the history
  • Loading branch information
VM committed Nov 4, 2023
1 parent dfc1124 commit cfc7f75
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 28 deletions.
78 changes: 50 additions & 28 deletions base/gfspapp/app_options.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,34 +103,56 @@ const (
ReceiverSuccessDoneReplicatePiece = "receiver_done_replicate_piece_success"
ReceiverFailureDoneReplicatePiece = "receiver_done_replicate_piece_failure"

SignerSuccess = "signer_success"
SignerFailure = "signer_failure"
SignerSuccessBucketApproval = "signer_bucket_approval_success"
SignerFailureBucketApproval = "signer_bucket_approval_failure"
SignerSuccessMigrateBucketApproval = "signer_bucket_approval_success"
SignerFailureMigrateBucketApproval = "signer_bucket_approval_failure"
SignerSuccessObjectApproval = "signer_object_approval_success"
SignerFailureObjectApproval = "signer_object_approval_failure"
SignerSuccessSealObject = "signer_seal_object_success"
SignerFailureSealObject = "signer_seal_object_failure"
SignerSuccessRejectUnSealObject = "signer_reject_unseal_object_success"
SignerFailureRejectUnSealObject = "signer_reject_unseal_object_failure"
SignerSuccessDiscontinueBucket = "signer_discontinue_bucket_success"
SignerFailureDiscontinueBucket = "signer_discontinue_bucket_failure"
SignerSuccessIntegrityHash = "signer_integrity_hash_success"
SignerFailureIntegrityHash = "signer_integrity_hash_failure"
SignerSuccessPing = "signer_ping_success"
SignerFailurePing = "signer_ping_failure"
SignerSuccessPong = "signer_pong_success"
SignerFailurePong = "signer_pong_failure"
SignerSuccessReceiveTask = "signer_receive_task_success"
SignerFailureReceiveTask = "signer_receive_task_failure"
SignerSuccessReplicateApproval = "signer_secondary_approval_success"
SignerFailureReplicateApproval = "signer_secondary_approval_failure"
SignerSuccessCreateGVG = "signer_create_gvg_success"
SignerFailureCreateGVG = "signer_create_gvg_failure"
SignerSuccessRecoveryTask = "signer_recovery_task_success"
SignerFailureRecoveryTask = "signer_recovery_task_failure"
SignerSuccess = "signer_success"
SignerFailure = "signer_failure"
SignerSuccessBucketApproval = "signer_bucket_approval_success"
SignerFailureBucketApproval = "signer_bucket_approval_failure"
SignerSuccessMigrateBucketApproval = "signer_migrate_bucket_approval_success"
SignerFailureMigrateBucketApproval = "signer_migrate_bucket_approval_failure"
SignerSuccessObjectApproval = "signer_object_approval_success"
SignerFailureObjectApproval = "signer_object_approval_failure"
SignerSuccessSealObject = "signer_seal_object_success"
SignerFailureSealObject = "signer_seal_object_failure"
SignerSuccessRejectUnSealObject = "signer_reject_unseal_object_success"
SignerFailureRejectUnSealObject = "signer_reject_unseal_object_failure"
SignerSuccessDiscontinueBucket = "signer_discontinue_bucket_success"
SignerFailureDiscontinueBucket = "signer_discontinue_bucket_failure"
SignerSuccessIntegrityHash = "signer_integrity_hash_success"
SignerFailureIntegrityHash = "signer_integrity_hash_failure"
SignerSuccessPing = "signer_ping_success"
SignerFailurePing = "signer_ping_failure"
SignerSuccessPong = "signer_pong_success"
SignerFailurePong = "signer_pong_failure"
SignerSuccessReceiveTask = "signer_receive_task_success"
SignerFailureReceiveTask = "signer_receive_task_failure"
SignerSuccessReplicateApproval = "signer_secondary_approval_success"
SignerFailureReplicateApproval = "signer_secondary_approval_failure"
SignerSuccessCreateGVG = "signer_create_gvg_success"
SignerFailureCreateGVG = "signer_create_gvg_failure"
SignerSuccessRecoveryTask = "signer_recovery_task_success"
SignerFailureRecoveryTask = "signer_recovery_task_failure"
SignerSuccessCompleteMigrateBucket = "signer_complete_migration_bucket_success"
SignerFailureCompleteMigrateBucket = "signer_complete_migration_bucket_failure"
SignerSuccessSecondarySPMigrationBucket = "signer_secondary_sp_migration_bucket_success"
SignerFailureSecondarySPMigrationBucket = "signer_secondary_sp_migration_bucket_failure"
SignerSuccessSwapOut = "signer_swap_out_success"
SignerFailureSwapOut = "signer_swap_out_failure"
SignerSuccessSignSwapOut = "signer_sign_swap_out_success"
SignerFailureSignSwapOut = "signer_sign_swap_out_failure"
SignerSuccessCompleteSwapOut = "signer_complete_swap_out_success"
SignerFailureCompleteSwapOut = "signer_complete_swap_out_failure"
SignerSuccessSPExit = "signer_sp_exit_success"
SignerFailureSPExit = "signer_sp_exit_failure"
SignerSuccessCompleteSPExit = "signer_complete_sp_exit_success"
SignerFailureCompleteSPExit = "signer_complete_sp_exit_failure"
SignerSuccessSPStoragePrice = "signer_sp_storage_price_success"
SignerFailureSPStoragePrice = "signer_sp_storage_price_failure"
SignerSuccessMigrateGVGTask = "signer_migrate_gvg_task_success"
SignerFailureMigrateGVGTask = "signer_migrate_gvg_task_failure"
SignerSuccessGfSpBucketMigrateInfo = "signer_gfsp_bucket_migrate_info_success"
SignerFailureGfSpBucketMigrateInfo = "signer_gfsp_bucket_migrate_info_failure"
SignerSuccessRejectMigrateBucket = "signer_reject_migrate_bucket_success"
SignerFailureRejectMigrateBucket = "signer_reject_migrate_bucket_failure"

UploaderSuccessPutObject = "uploader_put_object_success"
UploaderFailurePutObject = "uploader_put_object_failure"
Expand Down
55 changes: 55 additions & 0 deletions base/gfspapp/sign_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,58 +183,113 @@ func (g *GfSpBaseApp) GfSpSign(ctx context.Context, req *gfspserver.GfSpSignRequ
txHash, err = g.signer.CompleteMigrateBucket(ctx, t.CompleteMigrateBucket)
if err != nil {
log.CtxErrorw(ctx, "failed to sign complete migrate bucket", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureCompleteMigrateBucket).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureCompleteMigrateBucket).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessCompleteMigrateBucket).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessCompleteMigrateBucket).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_SignSecondarySpMigrationBucket:
signature, err = g.signer.SignSecondarySPMigrationBucket(ctx, t.SignSecondarySpMigrationBucket)
if err != nil {
log.CtxErrorw(ctx, "failed to sign secondary sp bls migration bucket", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureSecondarySPMigrationBucket).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureSecondarySPMigrationBucket).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessSecondarySPMigrationBucket).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessSecondarySPMigrationBucket).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_SwapOut:
txHash, err = g.signer.SwapOut(ctx, t.SwapOut)
if err != nil {
log.CtxErrorw(ctx, "failed to sign swap out", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureSwapOut).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureSwapOut).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessSwapOut).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessSwapOut).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_SignSwapOut:
signature, err = g.signer.SignSwapOut(ctx, t.SignSwapOut)
if err != nil {
log.CtxErrorw(ctx, "failed to sign swap out approval", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureSignSwapOut).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureSignSwapOut).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessSignSwapOut).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessSignSwapOut).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_CompleteSwapOut:
txHash, err = g.signer.CompleteSwapOut(ctx, t.CompleteSwapOut)
if err != nil {
log.CtxErrorw(ctx, "failed to sign complete swap out", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureCompleteSwapOut).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureCompleteSwapOut).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessCompleteSwapOut).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessCompleteSwapOut).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_SpExit:
txHash, err = g.signer.SPExit(ctx, t.SpExit)
if err != nil {
log.CtxErrorw(ctx, "failed to sign sp exit", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureSPExit).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureSPExit).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessSPExit).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessSPExit).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_CompleteSpExit:
txHash, err = g.signer.CompleteSPExit(ctx, t.CompleteSpExit)
if err != nil {
log.CtxErrorw(ctx, "failed to sign complete sp exit", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureCompleteSPExit).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureCompleteSPExit).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessCompleteSPExit).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessCompleteSPExit).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_SpStoragePrice:
txHash, err = g.signer.UpdateSPPrice(ctx, t.SpStoragePrice)
if err != nil {
log.CtxErrorw(ctx, "failed to update sp price", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureSPStoragePrice).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureSPStoragePrice).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessSPStoragePrice).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessSPStoragePrice).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_GfspMigrateGvgTask:
ctx = log.WithValue(ctx, log.CtxKeyTask, t.GfspMigrateGvgTask.Key().String())
signature, err = g.signer.SignMigrateGVG(ctx, t.GfspMigrateGvgTask)
if err != nil {
log.CtxErrorw(ctx, "failed to sign migrate gvg task", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureMigrateGVGTask).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureMigrateGVGTask).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessMigrateGVGTask).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessMigrateGVGTask).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_GfspBucketMigrateInfo:
ctx = log.WithValue(ctx, log.CtxKeyTask, t.GfspBucketMigrateInfo.Key().String())
signature, err = g.signer.SignBucketMigrationInfo(ctx, t.GfspBucketMigrateInfo)
if err != nil {
log.CtxErrorw(ctx, "failed to sign bucket migration task", "task", t, "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureGfSpBucketMigrateInfo).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureGfSpBucketMigrateInfo).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessGfSpBucketMigrateInfo).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessGfSpBucketMigrateInfo).Observe(time.Since(startTime).Seconds())
}
case *gfspserver.GfSpSignRequest_RejectMigrateBucket:
txHash, err = g.signer.RejectMigrateBucket(ctx, t.RejectMigrateBucket)
if err != nil {
log.CtxErrorw(ctx, "failed to sign reject migrate bucket", "error", err)
metrics.ReqCounter.WithLabelValues(SignerFailureRejectMigrateBucket).Inc()
metrics.ReqTime.WithLabelValues(SignerFailureRejectMigrateBucket).Observe(time.Since(startTime).Seconds())
} else {
metrics.ReqCounter.WithLabelValues(SignerSuccessRejectMigrateBucket).Inc()
metrics.ReqTime.WithLabelValues(SignerSuccessRejectMigrateBucket).Observe(time.Since(startTime).Seconds())
}
default:
log.CtxError(ctx, "unknown gfsp sign request type")
Expand Down
2 changes: 2 additions & 0 deletions modular/executor/execute_replicate.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ func (e *ExecuteModular) HandleReplicatePieceTask(ctx context.Context, task core
sealErr := e.sealObject(ctx, task, sealMsg)
metrics.PerfPutObjectTime.WithLabelValues("background_seal_object_cost").Observe(time.Since(sealTime).Seconds())
metrics.PerfPutObjectTime.WithLabelValues("background_task_seal_object_end").Observe(time.Since(startReplicateTime).Seconds())
metrics.PerfPutObjectTime.WithLabelValues("replicate_object_total_time_from_uploading_to_sealing").Observe(time.Since(
time.Unix(task.GetObjectInfo().GetCreateAt(), 0)).Seconds())
if sealErr == nil {
task.SetSealed(true)
}
Expand Down
2 changes: 2 additions & 0 deletions modular/executor/execute_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ func (e *ExecuteModular) HandleSealObjectTask(ctx context.Context, task coretask
SecondarySpBlsAggSignatures: bls.AggregateSignatures(blsSig).Marshal(),
}
task.SetError(e.sealObject(ctx, task, sealMsg))
metrics.PerfPutObjectTime.WithLabelValues("seal_object_total_time_from_uploading_to_sealing").Observe(time.Since(
time.Unix(task.GetObjectInfo().GetCreateAt(), 0)).Seconds())
task.AppendLog("executor-end-handle-seal-task")
log.CtxDebugw(ctx, "finished to handle seal object task", "error", task.Error())
}
Expand Down

0 comments on commit cfc7f75

Please sign in to comment.