mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
app/vmstorage: export vm_composite_filter_success_conversions_total and vm_composite_filter_missing_conversions_total metrics
This commit is contained in:
parent
0c5bb2a397
commit
83da939947
3 changed files with 19 additions and 1 deletions
|
@ -332,6 +332,12 @@ func registerStorageMetrics(strg *storage.Storage) {
|
||||||
metrics.NewGauge(`vm_composite_index_min_timestamp`, func() float64 {
|
metrics.NewGauge(`vm_composite_index_min_timestamp`, func() float64 {
|
||||||
return float64(idbm().MinTimestampForCompositeIndex) / 1e3
|
return float64(idbm().MinTimestampForCompositeIndex) / 1e3
|
||||||
})
|
})
|
||||||
|
metrics.NewGauge(`vm_composite_filter_success_conversions_total`, func() float64 {
|
||||||
|
return float64(idbm().CompositeFilterSuccessConversions)
|
||||||
|
})
|
||||||
|
metrics.NewGauge(`vm_composite_filter_missing_conversions_total`, func() float64 {
|
||||||
|
return float64(idbm().CompositeFilterMissingConversions)
|
||||||
|
})
|
||||||
|
|
||||||
metrics.NewGauge(`vm_assisted_merges_total{type="storage/small"}`, func() float64 {
|
metrics.NewGauge(`vm_assisted_merges_total{type="storage/small"}`, func() float64 {
|
||||||
return float64(tm().SmallAssistedMerges)
|
return float64(tm().SmallAssistedMerges)
|
||||||
|
|
|
@ -205,7 +205,9 @@ type IndexDBMetrics struct {
|
||||||
IndexBlocksWithMetricIDsProcessed uint64
|
IndexBlocksWithMetricIDsProcessed uint64
|
||||||
IndexBlocksWithMetricIDsIncorrectOrder uint64
|
IndexBlocksWithMetricIDsIncorrectOrder uint64
|
||||||
|
|
||||||
MinTimestampForCompositeIndex uint64
|
MinTimestampForCompositeIndex uint64
|
||||||
|
CompositeFilterSuccessConversions uint64
|
||||||
|
CompositeFilterMissingConversions uint64
|
||||||
|
|
||||||
mergeset.TableMetrics
|
mergeset.TableMetrics
|
||||||
}
|
}
|
||||||
|
@ -249,6 +251,8 @@ func (db *indexDB) UpdateMetrics(m *IndexDBMetrics) {
|
||||||
m.IndexBlocksWithMetricIDsIncorrectOrder = atomic.LoadUint64(&indexBlocksWithMetricIDsIncorrectOrder)
|
m.IndexBlocksWithMetricIDsIncorrectOrder = atomic.LoadUint64(&indexBlocksWithMetricIDsIncorrectOrder)
|
||||||
|
|
||||||
m.MinTimestampForCompositeIndex = uint64(db.minTimestampForCompositeIndex)
|
m.MinTimestampForCompositeIndex = uint64(db.minTimestampForCompositeIndex)
|
||||||
|
m.CompositeFilterSuccessConversions = atomic.LoadUint64(&compositeFilterSuccessConversions)
|
||||||
|
m.CompositeFilterMissingConversions = atomic.LoadUint64(&compositeFilterMissingConversions)
|
||||||
|
|
||||||
db.tb.UpdateMetrics(&m.TableMetrics)
|
db.tb.UpdateMetrics(&m.TableMetrics)
|
||||||
db.doExtDB(func(extDB *indexDB) {
|
db.doExtDB(func(extDB *indexDB) {
|
||||||
|
|
|
@ -37,6 +37,7 @@ func convertToCompositeTagFilters(tfs *TagFilters) *TagFilters {
|
||||||
}
|
}
|
||||||
if len(name) == 0 {
|
if len(name) == 0 {
|
||||||
// There is no metric name filter, so composite filters cannot be created.
|
// There is no metric name filter, so composite filters cannot be created.
|
||||||
|
atomic.AddUint64(&compositeFilterMissingConversions, 1)
|
||||||
return tfs
|
return tfs
|
||||||
}
|
}
|
||||||
tfsNew := make([]tagFilter, 0, len(tfs.tfs))
|
tfsNew := make([]tagFilter, 0, len(tfs.tfs))
|
||||||
|
@ -62,13 +63,20 @@ func convertToCompositeTagFilters(tfs *TagFilters) *TagFilters {
|
||||||
compositeFilters++
|
compositeFilters++
|
||||||
}
|
}
|
||||||
if compositeFilters == 0 {
|
if compositeFilters == 0 {
|
||||||
|
atomic.AddUint64(&compositeFilterMissingConversions, 1)
|
||||||
return tfs
|
return tfs
|
||||||
}
|
}
|
||||||
tfsCompiled := NewTagFilters(tfs.accountID, tfs.projectID)
|
tfsCompiled := NewTagFilters(tfs.accountID, tfs.projectID)
|
||||||
tfsCompiled.tfs = tfsNew
|
tfsCompiled.tfs = tfsNew
|
||||||
|
atomic.AddUint64(&compositeFilterSuccessConversions, 1)
|
||||||
return tfsCompiled
|
return tfsCompiled
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
compositeFilterSuccessConversions uint64
|
||||||
|
compositeFilterMissingConversions uint64
|
||||||
|
)
|
||||||
|
|
||||||
// TagFilters represents filters used for filtering tags.
|
// TagFilters represents filters used for filtering tags.
|
||||||
type TagFilters struct {
|
type TagFilters struct {
|
||||||
accountID uint32
|
accountID uint32
|
||||||
|
|
Loading…
Reference in a new issue