github.com/MetalBlockchain/metalgo@v1.11.9/utils/resource/metrics.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package resource
     5  
     6  import (
     7  	"errors"
     8  
     9  	"github.com/prometheus/client_golang/prometheus"
    10  )
    11  
    12  type metrics struct {
    13  	numCPUCycles       *prometheus.GaugeVec
    14  	numDiskReads       *prometheus.GaugeVec
    15  	numDiskReadBytes   *prometheus.GaugeVec
    16  	numDiskWrites      *prometheus.GaugeVec
    17  	numDiskWritesBytes *prometheus.GaugeVec
    18  }
    19  
    20  func newMetrics(registerer prometheus.Registerer) (*metrics, error) {
    21  	m := &metrics{
    22  		numCPUCycles: prometheus.NewGaugeVec(
    23  			prometheus.GaugeOpts{
    24  				Name: "num_cpu_cycles",
    25  				Help: "Total number of CPU cycles",
    26  			},
    27  			[]string{"processID"},
    28  		),
    29  		numDiskReads: prometheus.NewGaugeVec(
    30  			prometheus.GaugeOpts{
    31  				Name: "num_disk_reads",
    32  				Help: "Total number of disk reads",
    33  			},
    34  			[]string{"processID"},
    35  		),
    36  		numDiskReadBytes: prometheus.NewGaugeVec(
    37  			prometheus.GaugeOpts{
    38  				Name: "num_disk_read_bytes",
    39  				Help: "Total number of disk read bytes",
    40  			},
    41  			[]string{"processID"},
    42  		),
    43  		numDiskWrites: prometheus.NewGaugeVec(
    44  			prometheus.GaugeOpts{
    45  				Name: "num_disk_writes",
    46  				Help: "Total number of disk writes",
    47  			},
    48  			[]string{"processID"},
    49  		),
    50  		numDiskWritesBytes: prometheus.NewGaugeVec(
    51  			prometheus.GaugeOpts{
    52  				Name: "num_disk_write_bytes",
    53  				Help: "Total number of disk write bytes",
    54  			},
    55  			[]string{"processID"},
    56  		),
    57  	}
    58  	err := errors.Join(
    59  		registerer.Register(m.numCPUCycles),
    60  		registerer.Register(m.numDiskReads),
    61  		registerer.Register(m.numDiskReadBytes),
    62  		registerer.Register(m.numDiskWrites),
    63  		registerer.Register(m.numDiskWritesBytes),
    64  	)
    65  	return m, err
    66  }