mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-05 13:05:09 +00:00
This pull request completes the change to the `metricsgen` metrics. It adds `go generate` directives to all of the files containing the `Metrics` structs.
Using the outputs of `metricsdiff` between these generated metrics and `main`, we can see that there is a minimal diff between the two sets of metrics when run locally. The diff here stems from removal of the word 'message' which was done in v0.36+ and is ultimately a better phrasing. This metric has not yet been released, so this phrasing is preferred.
```
./metricsdiff old new
Metric changes:
+++ tendermint_consensus_full_prevote_delay
+++ tendermint_consensus_quorum_prevote_delay
--- tendermint_consensus_full_prevote_message_delay
--- tendermint_consensus_quorum_prevote_message_delay
```
This change also adds parsing for a `metrics:` key in a field comment. If a comment line begins with `//metrics:` the rest of the line is interpreted to be the metric help text. Additionally, a bug where lists of labels were not properly quoted in the `metricsgen` rendered output was fixed.
In my view, docs and tests are not needed for this internal only change.
---
#### PR checklist
- [ ] Tests written/updated, or no tests needed
- [ ] `CHANGELOG_PENDING.md` updated, or no changelog entry needed
- [ ] Updated relevant documentation (`docs/`) and code comments, or no
documentation updates needed
Ports #8488 to main
44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package mempool
|
|
|
|
import (
|
|
"github.com/go-kit/kit/metrics"
|
|
)
|
|
|
|
const (
|
|
// MetricsSubsystem is a subsystem shared by all metrics exposed by this
|
|
// package.
|
|
MetricsSubsystem = "mempool"
|
|
)
|
|
|
|
//go:generate go run ../scripts/metricsgen -struct=Metrics
|
|
|
|
// Metrics contains metrics exposed by this package.
|
|
// see MetricsProvider for descriptions.
|
|
type Metrics struct {
|
|
// Number of uncommitted transactions in the mempool.
|
|
Size metrics.Gauge
|
|
|
|
// Histogram of transaction sizes in bytes.
|
|
TxSizeBytes metrics.Histogram `metrics_buckettype:"exp" metrics_bucketsizes:"1,3,7"`
|
|
|
|
// Number of failed transactions.
|
|
FailedTxs metrics.Counter
|
|
|
|
// RejectedTxs defines the number of rejected transactions. These are
|
|
// transactions that passed CheckTx but failed to make it into the mempool
|
|
// due to resource limits, e.g. mempool is full and no lower priority
|
|
// transactions exist in the mempool.
|
|
//metrics:Number of rejected transactions.
|
|
RejectedTxs metrics.Counter
|
|
|
|
// EvictedTxs defines the number of evicted transactions. These are valid
|
|
// transactions that passed CheckTx and existed in the mempool but were later
|
|
// evicted to make room for higher priority valid transactions that passed
|
|
// CheckTx.
|
|
//metrics:Number of evicted transactions.
|
|
EvictedTxs metrics.Counter
|
|
|
|
// Number of times transactions are rechecked in the mempool.
|
|
RecheckTimes metrics.Counter
|
|
}
|