MCPcopy
hub / github.com/seaweedfs/seaweedfs / GetMetrics

Method GetMetrics

telemetry/server/storage/prometheus.go:146–174  ·  view source on GitHub ↗
(days int)

Source from the content-addressed store, hash-verified

144}
145
146func (s *PrometheusStorage) GetMetrics(days int) (map[string]interface{}, error) {
147 s.mu.RLock()
148 defer s.mu.RUnlock()
149
150 // Return current metrics from in-memory storage
151 // Historical data should be queried from Prometheus directly
152 cutoff := time.Now().AddDate(0, 0, -days)
153
154 var volumeServers []map[string]interface{}
155 var diskUsage []map[string]interface{}
156
157 for _, instance := range s.instances {
158 if instance.ReceivedAt.After(cutoff) {
159 volumeServers = append(volumeServers, map[string]interface{}{
160 "date": instance.ReceivedAt.Format("2006-01-02"),
161 "value": instance.TelemetryData.VolumeServerCount,
162 })
163 diskUsage = append(diskUsage, map[string]interface{}{
164 "date": instance.ReceivedAt.Format("2006-01-02"),
165 "value": instance.TelemetryData.TotalDiskBytes,
166 })
167 }
168 }
169
170 return map[string]interface{}{
171 "volume_servers": volumeServers,
172 "disk_usage": diskUsage,
173 }, nil
174}
175
176func (s *PrometheusStorage) updateStats() {
177 now := time.Now()

Callers

nothing calls this directly

Calls 1

NowMethod · 0.80

Tested by

no test coverage detected