github.com/weaviate/weaviate@v1.24.6/adapters/repos/db/lsmkv/memtable_metrics.go (about)

     1  //                           _       _
     2  // __      _____  __ ___   ___  __ _| |_ ___
     3  // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
     4  //  \ V  V /  __/ (_| |\ V /| | (_| | ||  __/
     5  //   \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
     6  //
     7  //  Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
     8  //
     9  //  CONTACT: hello@weaviate.io
    10  //
    11  
    12  package lsmkv
    13  
    14  type memtableMetrics struct {
    15  	put             NsObserver
    16  	setTombstone    NsObserver
    17  	append          NsObserver
    18  	appendMapSorted NsObserver
    19  	get             NsObserver
    20  	getBySecondary  NsObserver
    21  	getMap          NsObserver
    22  	getCollection   NsObserver
    23  	size            Setter
    24  }
    25  
    26  // newMemtableMetrics curries the prometheus-functions just once to make sure
    27  // they don't have to be curried on the hotpath where we this would lead to a
    28  // lot of allocations.
    29  func newMemtableMetrics(metrics *Metrics, path, strategy string) *memtableMetrics {
    30  	return &memtableMetrics{
    31  		put:             metrics.MemtableOpObserver(path, strategy, "put"),
    32  		setTombstone:    metrics.MemtableOpObserver(path, strategy, "setTombstone"),
    33  		append:          metrics.MemtableOpObserver(path, strategy, "append"),
    34  		appendMapSorted: metrics.MemtableOpObserver(path, strategy, "appendMapSorted"),
    35  		get:             metrics.MemtableOpObserver(path, strategy, "get"),
    36  		getBySecondary:  metrics.MemtableOpObserver(path, strategy, "getBySecondary"),
    37  		getMap:          metrics.MemtableOpObserver(path, strategy, "getMap"),
    38  		getCollection:   metrics.MemtableOpObserver(path, strategy, "getCollection"),
    39  		size:            metrics.MemtableSizeSetter(path, strategy),
    40  	}
    41  }