github.com/weaviate/weaviate@v1.24.6/usecases/monitoring/shards.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 monitoring 13 14 import ( 15 "github.com/prometheus/client_golang/prometheus" 16 ) 17 18 // Move the shard from unloaded to in progress 19 func (pm *PrometheusMetrics) StartLoadingShard(className string) error { 20 if pm == nil { 21 return nil 22 } 23 24 labels := prometheus.Labels{ 25 "class_name": className, 26 } 27 suld, err := pm.ShardsUnloaded.GetMetricWith(labels) 28 if err != nil { 29 return err 30 } 31 suld.Dec() 32 33 slding, err := pm.ShardsLoading.GetMetricWith(labels) 34 if err != nil { 35 return err 36 } 37 38 slding.Inc() 39 return nil 40 } 41 42 // Move the shard from in progress to loaded 43 func (pm *PrometheusMetrics) FinishLoadingShard(className string) error { 44 if pm == nil { 45 return nil 46 } 47 48 labels := prometheus.Labels{ 49 "class_name": className, 50 } 51 52 slding, err := pm.ShardsLoading.GetMetricWith(labels) 53 if err != nil { 54 return err 55 } 56 57 slding.Dec() 58 59 sldd, err := pm.ShardsLoaded.GetMetricWith(labels) 60 if err != nil { 61 return err 62 } 63 64 sldd.Inc() 65 return nil 66 } 67 68 // Move the shard from loaded to in progress 69 func (pm *PrometheusMetrics) StartUnloadingShard(className string) error { 70 if pm == nil { 71 return nil 72 } 73 74 labels := prometheus.Labels{ 75 "class_name": className, 76 } 77 78 sldd, err := pm.ShardsLoaded.GetMetricWith(labels) 79 if err != nil { 80 return err 81 } 82 83 sldd.Dec() 84 85 suld, err := pm.ShardsUnloaded.GetMetricWith(labels) 86 if err != nil { 87 return err 88 } 89 90 suld.Inc() 91 return nil 92 } 93 94 // Move the shard from in progress to unloaded 95 func (pm *PrometheusMetrics) FinishUnloadingShard(className string) error { 96 if pm == nil { 97 return nil 98 } 99 100 labels := prometheus.Labels{ 101 "class_name": className, 102 } 103 104 sulding, err := pm.ShardsUnloading.GetMetricWith(labels) 105 if err != nil { 106 return err 107 } 108 109 sulding.Dec() 110 111 suld, err := pm.ShardsUnloaded.GetMetricWith(labels) 112 if err != nil { 113 return err 114 } 115 116 suld.Inc() 117 118 return nil 119 } 120 121 // Register a new, unloaded shard 122 func (pm *PrometheusMetrics) NewUnloadedshard(className string) error { 123 if pm == nil { 124 return nil 125 } 126 127 labels := prometheus.Labels{ 128 "class_name": className, 129 } 130 131 suld, err := pm.ShardsUnloaded.GetMetricWith(labels) 132 if err != nil { 133 return err 134 } 135 136 suld.Inc() 137 return nil 138 }