代码拉取完成,页面将自动刷新
/*
Copyright State Street Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package endorser
import "github.com/hyperledger/fabric/common/metrics"
var (
proposalDurationHistogramOpts = metrics.HistogramOpts{
Namespace: "endorser",
Name: "proposal_duration",
Help: "The time to complete a proposal.",
LabelNames: []string{"channel", "chaincode", "success"},
StatsdFormat: "%{#fqname}.%{channel}.%{chaincode}.%{success}",
}
receivedProposalsCounterOpts = metrics.CounterOpts{
Namespace: "endorser",
Name: "proposals_received",
Help: "The number of proposals received.",
}
successfulProposalsCounterOpts = metrics.CounterOpts{
Namespace: "endorser",
Name: "successful_proposals",
Help: "The number of successful proposals.",
}
proposalValidationFailureCounterOpts = metrics.CounterOpts{
Namespace: "endorser",
Name: "proposal_validation_failures",
Help: "The number of proposals that have failed initial validation.",
}
proposalChannelACLFailureOpts = metrics.CounterOpts{
Namespace: "endorser",
Name: "proposal_acl_failures",
Help: "The number of proposals that failed ACL checks.",
LabelNames: []string{"channel", "chaincode"},
StatsdFormat: "%{#fqname}.%{channel}.%{chaincode}",
}
initFailureCounterOpts = metrics.CounterOpts{
Namespace: "endorser",
Name: "chaincode_instantiation_failures",
Help: "The number of chaincode instantiations or upgrade that have failed.",
LabelNames: []string{"channel", "chaincode"},
StatsdFormat: "%{#fqname}.%{channel}.%{chaincode}",
}
endorsementFailureCounterOpts = metrics.CounterOpts{
Namespace: "endorser",
Name: "endorsement_failures",
Help: "The number of failed endorsements.",
LabelNames: []string{"channel", "chaincode", "chaincodeerror"},
StatsdFormat: "%{#fqname}.%{channel}.%{chaincode}.%{chaincodeerror}",
}
duplicateTxsFailureCounterOpts = metrics.CounterOpts{
Namespace: "endorser",
Name: "duplicate_transaction_failures",
Help: "The number of failed proposals due to duplicate transaction ID.",
LabelNames: []string{"channel", "chaincode"},
StatsdFormat: "%{#fqname}.%{channel}.%{chaincode}",
}
)
type EndorserMetrics struct {
ProposalDuration metrics.Histogram
ProposalsReceived metrics.Counter
SuccessfulProposals metrics.Counter
ProposalValidationFailed metrics.Counter
ProposalACLCheckFailed metrics.Counter
InitFailed metrics.Counter
EndorsementsFailed metrics.Counter
DuplicateTxsFailure metrics.Counter
}
func NewEndorserMetrics(p metrics.Provider) *EndorserMetrics {
return &EndorserMetrics{
ProposalDuration: p.NewHistogram(proposalDurationHistogramOpts),
ProposalsReceived: p.NewCounter(receivedProposalsCounterOpts),
SuccessfulProposals: p.NewCounter(successfulProposalsCounterOpts),
ProposalValidationFailed: p.NewCounter(proposalValidationFailureCounterOpts),
ProposalACLCheckFailed: p.NewCounter(proposalChannelACLFailureOpts),
InitFailed: p.NewCounter(initFailureCounterOpts),
EndorsementsFailed: p.NewCounter(endorsementFailureCounterOpts),
DuplicateTxsFailure: p.NewCounter(duplicateTxsFailureCounterOpts),
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。