|
59 | 59 | []string{"guardian", "chain"},
|
60 | 60 | )
|
61 | 61 |
|
| 62 | + guardianHeartbeats = promauto.NewGaugeVec( |
| 63 | + prometheus.GaugeOpts{ |
| 64 | + Name: "guardian_heartbeats", |
| 65 | + Help: "Heartbeat count of each guardian on each chain over time", |
| 66 | + }, |
| 67 | + []string{"guardian"}, |
| 68 | + ) |
| 69 | + |
62 | 70 | guardianMissedObservations = promauto.NewCounterVec(
|
63 | 71 | prometheus.CounterOpts{
|
64 | 72 | Name: "guardian_missed_observations_total",
|
@@ -309,20 +317,28 @@ func main() {
|
309 | 317 | case <-rootCtx.Done():
|
310 | 318 | return
|
311 | 319 | case hb := <-heartbeatC:
|
312 |
| - for _, network := range hb.Networks { |
313 |
| - guardianName, ok := common.GetGuardianName(hb.GuardianAddr) |
314 |
| - if !ok { |
315 |
| - logger.Error("guardian name not found", zap.String("guardian", hb.GuardianAddr)) |
316 |
| - continue // Skip setting the metric if guardianName is not found |
317 |
| - } |
| 320 | + guardianName, ok := common.GetGuardianName(hb.GuardianAddr) |
| 321 | + if !ok { |
| 322 | + logger.Error("guardian name not found", zap.String("guardian", hb.GuardianAddr)) |
| 323 | + continue // Skip setting the metric if guardianName is not found |
| 324 | + } |
318 | 325 |
|
| 326 | + for _, network := range hb.Networks { |
319 | 327 | guardianChainHeight.With(
|
320 | 328 | prometheus.Labels{
|
321 | 329 | "guardian": guardianName,
|
322 | 330 | "chain": vaa.ChainID(network.Id).String(),
|
323 | 331 | },
|
324 | 332 | ).Set(float64(network.Height))
|
325 | 333 | }
|
| 334 | + |
| 335 | + guardianHeartbeats.With( |
| 336 | + prometheus.Labels{ |
| 337 | + "guardian": guardianName, |
| 338 | + }, |
| 339 | + ).Set(float64(hb.Counter)) |
| 340 | + |
| 341 | + |
326 | 342 | }
|
327 | 343 | }
|
328 | 344 | }()
|
|
0 commit comments