Documentation ¶
Index ¶
- Constants
- Variables
- func IsSampled(span trace.Span) bool
- type NoopTracer
- func (t *NoopTracer) BlockRootSpan(entityID flow.Identifier) trace.Span
- func (t *NoopTracer) Done() <-chan struct{}
- func (t *NoopTracer) Ready() <-chan struct{}
- func (t *NoopTracer) ShouldSample(entityID flow.Identifier) bool
- func (t *NoopTracer) StartBlockSpan(ctx context.Context, entityID flow.Identifier, spanName SpanName, ...) (trace.Span, context.Context)
- func (t *NoopTracer) StartCollectionSpan(ctx context.Context, entityID flow.Identifier, spanName SpanName, ...) (trace.Span, context.Context)
- func (t *NoopTracer) StartSampledSpanFromParent(parentSpan trace.Span, entityID flow.Identifier, operationName SpanName, ...) trace.Span
- func (t *NoopTracer) StartSpanFromContext(ctx context.Context, operationName SpanName, opts ...trace.SpanStartOption) (trace.Span, context.Context)
- func (t *NoopTracer) StartSpanFromParent(parentSpan trace.Span, operationName SpanName, opts ...trace.SpanStartOption) trace.Span
- func (t *NoopTracer) WithSpanFromContext(ctx context.Context, operationName SpanName, f func(), ...)
- type SpanName
- type Tracer
- func (t *Tracer) BlockRootSpan(blockID flow.Identifier) trace.Span
- func (t *Tracer) Done() <-chan struct{}
- func (t *Tracer) Ready() <-chan struct{}
- func (t *Tracer) RecordSpanFromParent(parentSpan trace.Span, operationName SpanName, duration time.Duration, ...)
- func (t *Tracer) ShouldSample(entityID flow.Identifier) bool
- func (t *Tracer) StartBlockSpan(ctx context.Context, blockID flow.Identifier, spanName SpanName, ...) (trace.Span, context.Context)
- func (t *Tracer) StartCollectionSpan(ctx context.Context, collectionID flow.Identifier, spanName SpanName, ...) (trace.Span, context.Context)
- func (t *Tracer) StartSampledSpanFromParent(parentSpan trace.Span, entityID flow.Identifier, operationName SpanName, ...) trace.Span
- func (t *Tracer) StartSpanFromContext(ctx context.Context, operationName SpanName, opts ...trace.SpanStartOption) (trace.Span, context.Context)
- func (t *Tracer) StartSpanFromParent(parentSpan trace.Span, operationName SpanName, opts ...trace.SpanStartOption) trace.Span
- func (t *Tracer) WithSpanFromContext(ctx context.Context, operationName SpanName, f func(), ...)
Constants ¶
const DefaultEntityCacheSize = 1000
const EntityTypeBlock = "Block"
const EntityTypeCollection = "Collection"
const EntityTypeTransaction = "Transaction"
const SensitivityCaptureAll = 0
Variables ¶
var (
NoopSpan trace.Span = trace.SpanFromContext(context.Background())
)
Functions ¶
Types ¶
type NoopTracer ¶
type NoopTracer struct{}
NoopTracer is the implementation of the Tracer interface. TODO(rbtz): make private
func (*NoopTracer) BlockRootSpan ¶ added in v0.30.0
func (t *NoopTracer) BlockRootSpan(entityID flow.Identifier) trace.Span
func (*NoopTracer) Done ¶
func (t *NoopTracer) Done() <-chan struct{}
Done returns a channel that will close when shutdown is complete.
func (*NoopTracer) Ready ¶
func (t *NoopTracer) Ready() <-chan struct{}
Ready returns a channel that will close when the network stack is ready.
func (*NoopTracer) ShouldSample ¶ added in v0.30.0
func (t *NoopTracer) ShouldSample(entityID flow.Identifier) bool
func (*NoopTracer) StartBlockSpan ¶ added in v0.22.0
func (t *NoopTracer) StartBlockSpan( ctx context.Context, entityID flow.Identifier, spanName SpanName, opts ...trace.SpanStartOption, ) ( trace.Span, context.Context, )
func (*NoopTracer) StartCollectionSpan ¶ added in v0.22.0
func (t *NoopTracer) StartCollectionSpan( ctx context.Context, entityID flow.Identifier, spanName SpanName, opts ...trace.SpanStartOption, ) ( trace.Span, context.Context, )
func (*NoopTracer) StartSampledSpanFromParent ¶ added in v0.30.0
func (t *NoopTracer) StartSampledSpanFromParent( parentSpan trace.Span, entityID flow.Identifier, operationName SpanName, opts ...trace.SpanStartOption, ) trace.Span
func (*NoopTracer) StartSpanFromContext ¶
func (t *NoopTracer) StartSpanFromContext( ctx context.Context, operationName SpanName, opts ...trace.SpanStartOption, ) ( trace.Span, context.Context, )
func (*NoopTracer) StartSpanFromParent ¶
func (t *NoopTracer) StartSpanFromParent( parentSpan trace.Span, operationName SpanName, opts ...trace.SpanStartOption, ) trace.Span
func (*NoopTracer) WithSpanFromContext ¶ added in v0.15.0
func (t *NoopTracer) WithSpanFromContext( ctx context.Context, operationName SpanName, f func(), opts ...trace.SpanStartOption, )
type SpanName ¶
type SpanName string
const ( // Extend ProtoStateMutatorExtend SpanName = "proto.state.mutator.extend" ProtoStateMutatorExtendCheckHeader SpanName = "proto.state.mutator.extend.checkHeader" ProtoStateMutatorExtendCheckGuarantees SpanName = "proto.state.mutator.extend.checkGuarantees" ProtoStateMutatorExtendCheckSeals SpanName = "proto.state.mutator.extend.checkSeals" ProtoStateMutatorExtendCheckReceipts SpanName = "proto.state.mutator.extend.checkReceipts" ProtoStateMutatorEvolveProtocolState SpanName = "proto.state.mutator.extend.evolveProtocolState" ProtoStateMutatorExtendDBInsert SpanName = "proto.state.mutator.extend.dbInsert" // HeaderExtend ProtoStateMutatorHeaderExtend SpanName = "proto.state.mutator.headerExtend" ProtoStateMutatorHeaderExtendGetLastSealed SpanName = "proto.state.mutator.headerExtend.lastSealed" // mutator.Finalize ProtoStateMutatorFinalize SpanName = "proto.state.mutator.finalize" // Builder CONBuilderBuildOn SpanName = "con.builder.buildOn" // Finalizer CONFinalizerFinalizeBlock SpanName = "con.finalizer.finalizeBlock" // Ingestion CONIngOnCollectionGuarantee SpanName = "con.ingestion.onCollectionGuarantee" // Compliance CONCompOnBlockProposal SpanName = "con.compliance.onBlockProposal" ConCompProcessBlockProposal SpanName = "con.compliance.processBlockProposal" CONCompOnBlockVote SpanName = "con.compliance.onBlockVote" // Matching CONMatchProcessReceipt SpanName = "con.matching.processReceipt" CONMatchProcessReceiptVal SpanName = "con.matching.processReceipt.validation" // Sealing CONSealingProcessFinalizedBlock SpanName = "con.sealing.processFinalizedBlock" CONSealingCheckForEmergencySealableBlocks SpanName = "con.sealing.processFinalizedBlock.checkEmergencySealing" CONSealingPruning SpanName = "con.sealing.processFinalizedBlock.pruning" CONSealingRequestingPendingApproval SpanName = "con.sealing.processFinalizedBlock.requestPendingApprovals" CONSealingProcessIncorporatedResult SpanName = "con.sealing.processIncorporatedResult" CONSealingProcessApproval SpanName = "con.sealing.processApproval" // Follower Core FollowerProcessFinalizedBlock SpanName = "follower.processFinalizedBlock" FollowerProcessCertifiedBlocks SpanName = "follower.processCertifiedBlocks" FollowerExtendPendingTree SpanName = "follower.extendPendingTree" FollowerExtendProtocolState SpanName = "follower.extendProtocolState" // Builder COLBuildOn SpanName = "col.builder" COLBuildOnGetBuildCtx SpanName = "col.builder.getBuildCtx" COLBuildOnUnfinalizedLookup SpanName = "col.builder.unfinalizedLookup" COLBuildOnFinalizedLookup SpanName = "col.builder.finalizedLookup" COLBuildOnCreatePayload SpanName = "col.builder.createPayload" COLBuildOnCreateHeader SpanName = "col.builder.createHeader" COLBuildOnDBInsert SpanName = "col.builder.dbInsert" // Cluster State COLClusterStateMutatorExtend SpanName = "col.state.mutator.extend" COLClusterStateMutatorExtendCheckHeader SpanName = "col.state.mutator.extend.checkHeader" COLClusterStateMutatorExtendGetExtendCtx SpanName = "col.state.mutator.extend.getExtendCtx" COLClusterStateMutatorExtendCheckAncestry SpanName = "col.state.mutator.extend.checkAncestry" COLClusterStateMutatorExtendCheckReferenceBlock SpanName = "col.state.mutator.extend.checkRefBlock" COLClusterStateMutatorExtendCheckTransactionsValid SpanName = "col.state.mutator.extend.checkTransactionsValid" COLClusterStateMutatorExtendDBInsert SpanName = "col.state.mutator.extend.dbInsert" EXEHandleBlock SpanName = "exe.ingestion.handleBlock" EXEHandleCollection SpanName = "exe.ingestion.handleCollection" EXEExecuteBlock SpanName = "exe.ingestion.executeBlock" EXESaveExecutionResults SpanName = "exe.ingestion.saveExecutionResults" EXEUploadCollections SpanName = "exe.manager.uploadCollections" EXEAddToExecutionDataService SpanName = "exe.manager.addToExecutionDataService" EXEBroadcastExecutionReceipt SpanName = "exe.provider.broadcastExecutionReceipt" EXEComputeBlock SpanName = "exe.computer.computeBlock" EXEComputeTransaction SpanName = "exe.computer.computeTransaction" EXEStateSaveExecutionResults SpanName = "exe.state.saveExecutionResults" EXECommitDelta SpanName = "exe.state.commitDelta" EXEGetExecutionResultID SpanName = "exe.state.getExecutionResultID" EXEUpdateHighestExecutedBlockIfHigher SpanName = "exe.state.updateHighestExecutedBlockIfHigher" // Verification node // // assigner engine VERProcessFinalizedBlock SpanName = "ver.processFinalizedBlock" // children of VERProcessFinalizedBlock VERAssignerHandleFinalizedBlock SpanName = "ver.assigner.handleFinalizedBlock" VERAssignerHandleExecutionReceipt SpanName = "ver.assigner.handleExecutionReceipt" VERAssignerChunkAssignment SpanName = "ver.assigner.chunkAssignment" VERAssignerProcessChunk SpanName = "ver.assigner.processChunk" // fetcher engine VERProcessAssignedChunk SpanName = "ver.processAssignedChunk" // children of VERProcessAssignedChunk VERFetcherHandleAssignedChunk SpanName = "ver.fetcher.handleAssignedChunk" VERFetcherHandleChunkDataPack SpanName = "ver.fetcher.handleChunkDataPack" VERFetcherValidateChunkDataPack SpanName = "ver.fetcher.validateChunkDataPack" VERFetcherPushToVerifier SpanName = "ver.fetcher.pushToVerifier" // requester engine VERProcessChunkDataPackRequest SpanName = "ver.processChunkDataPackRequest" // children of VERProcessChunkDataPackRequest VERRequesterHandleChunkDataRequest SpanName = "ver.requester.handleChunkDataRequest" VERRequesterHandleChunkDataResponse SpanName = "ver.requester.handleChunkDataResponse" VERRequesterDispatchChunkDataRequest SpanName = "ver.requester.dispatchChunkDataRequest" VERProcessExecutionReceipt SpanName = "ver.processExecutionReceipt" // children of VERProcessExecutionReceipt VERFindHandleExecutionReceipt SpanName = "ver.find.handleExecutionReceipt" VERFindOnFinalizedBlock SpanName = "ver.finder.OnFinalizedBlock" VERFindCheckCachedReceipts SpanName = "ver.finder.checkCachedReceipts" VERFindCheckPendingReceipts SpanName = "ver.finder.checkPendingReceipts" VERFindCheckReadyReceipts SpanName = "ver.finder.checkReadyReceipts" VERFindProcessResult SpanName = "ver.finder.processResult" VERFindOnResultProcessed SpanName = "ver.finder.onResultProcessed" VERProcessExecutionResult SpanName = "ver.processExecutionResult" // children of VERProcessExecutionResult VERMatchHandleExecutionResult SpanName = "ver.match.handleExecutionResult" VERMatchHandleChunkDataPack SpanName = "ver.match.handleChunkDataPack" VERMatchMyChunkAssignments SpanName = "ver.match.myChunkAssignments" VERVerVerifyWithMetrics SpanName = "ver.verify.verifyWithMetrics" VERVerChunkVerify SpanName = "ver.verify.ChunkVerifier.Verify" VERVerGenerateResultApproval SpanName = "ver.verify.GenerateResultApproval" // Flow Virtual Machine FVMVerifyTransaction SpanName = "fvm.verifyTransaction" FVMSeqNumCheckTransaction SpanName = "fvm.seqNumCheckTransaction" FVMExecuteTransaction SpanName = "fvm.executeTransaction" FVMDeductTransactionFees SpanName = "fvm.deductTransactionFees" FVMTransactionStorageUsedCheck SpanName = "fvm.env.transactionStorageUsedCheck" FVMInvokeContractFunction SpanName = "fvm.invokeContractFunction" FVMEnvValueExists SpanName = "fvm.env.valueExists" FVMEnvGetValue SpanName = "fvm.env.getValue" FVMEnvSetValue SpanName = "fvm.env.setValue" FVMEnvAllocateSlabIndex SpanName = "fvm.env.allocateSlabIndex" FVMEnvGetAccount SpanName = "fvm.env.getAccount" FVMEnvGetStorageUsed SpanName = "fvm.env.getStorageUsed" FVMEnvGetStorageCapacity SpanName = "fvm.env.getStorageCapacity" FVMEnvGetAccountBalance SpanName = "fvm.env.getAccountBalance" FVMEnvGetAccountAvailableBalance SpanName = "fvm.env.getAccountAvailableBalance" FVMEnvGetAccountKeys SpanName = "fvm.env.getAccountKeys" FVMEnvResolveLocation SpanName = "fvm.env.resolveLocation" FVMEnvGetCode SpanName = "fvm.env.getCode" FVMEnvGetAccountContractNames SpanName = "fvm.env.getAccountContractNames" FVMEnvGetOrLoadProgram SpanName = "fvm.env.getOrLoadCachedProgram" FVMEnvProgramLog SpanName = "fvm.env.programLog" FVMEnvEmitEvent SpanName = "fvm.env.emitEvent" FVMEnvEncodeEvent SpanName = "fvm.env.encodeEvent" FVMEnvGenerateUUID SpanName = "fvm.env.generateUUID" FVMEnvGenerateAccountLocalID SpanName = "fvm.env.generateAccountLocalID" FVMEnvDecodeArgument SpanName = "fvm.env.decodeArgument" FVMEnvHash SpanName = "fvm.env.Hash" FVMEnvVerifySignature SpanName = "fvm.env.verifySignature" FVMEnvValidatePublicKey SpanName = "fvm.env.validatePublicKey" FVMEnvBLSVerifyPOP SpanName = "fvm.env.blsVerifyPOP" FVMEnvBLSAggregateSignatures SpanName = "fvm.env.blsAggregateSignatures" FVMEnvBLSAggregatePublicKeys SpanName = "fvm.env.blsAggregatePublicKeys" FVMEnvGetCurrentBlockHeight SpanName = "fvm.env.getCurrentBlockHeight" FVMEnvGetBlockAtHeight SpanName = "fvm.env.getBlockAtHeight" FVMEnvRandom SpanName = "fvm.env.unsafeRandom" FVMEnvRandomSourceHistoryProvider SpanName = "fvm.env.randomSourceHistoryProvider" FVMEnvCreateAccount SpanName = "fvm.env.createAccount" FVMEnvAddAccountKey SpanName = "fvm.env.addAccountKey" FVMEnvAccountKeysCount SpanName = "fvm.env.accountKeysCount" FVMEnvGetAccountKey SpanName = "fvm.env.getAccountKey" FVMEnvRevokeAccountKey SpanName = "fvm.env.revokeAccountKey" FVMEnvUpdateAccountContractCode SpanName = "fvm.env.updateAccountContractCode" FVMEnvGetAccountContractCode SpanName = "fvm.env.getAccountContractCode" FVMEnvRemoveAccountContractCode SpanName = "fvm.env.removeAccountContractCode" FVMEnvGetSigningAccounts SpanName = "fvm.env.getSigningAccounts" FVMEVMDeployCOA SpanName = "fvm.evm.deployCOA" FVMEVMRun SpanName = "fvm.evm.run" FVMEVMDryRun SpanName = "fvm.evm.dryRun" FVMEVMBatchRun SpanName = "fvm.evm.batchRun" FVMEVMDeposit SpanName = "fvm.evm.deposit" FVMEVMWithdraw SpanName = "fvm.evm.withdraw" FVMEVMDeploy SpanName = "fvm.evm.deploy" FVMEVMCall SpanName = "fvm.evm.call" FVMCadenceTrace SpanName = "fvm.cadence.trace" )
Span names
type Tracer ¶ added in v0.27.0
type Tracer struct {
// contains filtered or unexported fields
}
Tracer is the implementation of the Tracer interface TODO(rbtz): make private
func NewTracer ¶
func NewTracer( log zerolog.Logger, serviceName string, chainID string, sensitivity uint, ) ( *Tracer, error, )
NewTracer creates a new OpenTelemetry-based tracer.
func (*Tracer) BlockRootSpan ¶ added in v0.30.0
func (t *Tracer) BlockRootSpan(blockID flow.Identifier) trace.Span
func (*Tracer) Done ¶ added in v0.27.0
func (t *Tracer) Done() <-chan struct{}
Done returns a channel that will close when shutdown is complete.
func (*Tracer) Ready ¶ added in v0.27.0
func (t *Tracer) Ready() <-chan struct{}
Ready returns a channel that will close when the network stack is ready.
func (*Tracer) RecordSpanFromParent ¶ added in v0.27.0
func (*Tracer) ShouldSample ¶ added in v0.30.0
func (t *Tracer) ShouldSample(entityID flow.Identifier) bool
func (*Tracer) StartBlockSpan ¶ added in v0.27.0
func (*Tracer) StartCollectionSpan ¶ added in v0.27.0
func (*Tracer) StartSampledSpanFromParent ¶ added in v0.30.0
func (t *Tracer) StartSampledSpanFromParent( parentSpan trace.Span, entityID flow.Identifier, operationName SpanName, opts ...trace.SpanStartOption, ) trace.Span
func (*Tracer) StartSpanFromContext ¶ added in v0.27.0
func (*Tracer) StartSpanFromParent ¶ added in v0.27.0
func (*Tracer) WithSpanFromContext ¶ added in v0.27.0
func (t *Tracer) WithSpanFromContext(ctx context.Context, operationName SpanName, f func(), opts ...trace.SpanStartOption, )
WithSpanFromContext encapsulates executing a function within an span, i.e., it starts a span with the specified SpanName from the context, executes the function f, and finishes the span once the function returns.