mirror of
				https://github.com/langhuihui/monibuca.git
				synced 2025-10-31 16:16:19 +08:00 
			
		
		
		
	 8a9fffb987
			
		
	
	8a9fffb987
	
	
	
		
			
			- Refactor frame converter implementation - Update mp4 track to use ICodex - General refactoring and code improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			86 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package m7s
 | |
| 
 | |
| import "github.com/prometheus/client_golang/prometheus"
 | |
| 
 | |
| type prometheusDesc struct {
 | |
| 	CPUUsage *prometheus.Desc
 | |
| 	Memory   struct {
 | |
| 		Total, Used, Usage, Free *prometheus.Desc
 | |
| 	}
 | |
| 	Disk struct {
 | |
| 		Total, Used, Usage, Free *prometheus.Desc
 | |
| 	}
 | |
| 	Net struct {
 | |
| 		SendSpeed, ReceiveSpeed *prometheus.Desc
 | |
| 	}
 | |
| 	BPS, FPS, StreamCount, SubscribeCount, PullCount, PushCount, RecordCount, TransformCount *prometheus.Desc
 | |
| }
 | |
| 
 | |
| func (d *prometheusDesc) init() {
 | |
| 	d.CPUUsage = prometheus.NewDesc("cpu_usage", "CPU usage", nil, nil)
 | |
| 	d.Memory.Total = prometheus.NewDesc("memory_total", "Memory total", nil, nil)
 | |
| 	d.Memory.Used = prometheus.NewDesc("memory_used", "Memory used", nil, nil)
 | |
| 	d.Memory.Usage = prometheus.NewDesc("memory_usage", "Memory usage", nil, nil)
 | |
| 	d.Memory.Free = prometheus.NewDesc("memory_free", "Memory free", nil, nil)
 | |
| 	d.Disk.Total = prometheus.NewDesc("disk_total", "Disk total", nil, nil)
 | |
| 	d.Disk.Used = prometheus.NewDesc("disk_used", "Disk used", nil, nil)
 | |
| 	d.Disk.Usage = prometheus.NewDesc("disk_usage", "Disk usage", nil, nil)
 | |
| 	d.Disk.Free = prometheus.NewDesc("disk_free", "Disk free", nil, nil)
 | |
| 	d.Net.SendSpeed = prometheus.NewDesc("net_send_speed", "Net send speed", []string{"name"}, nil)
 | |
| 	d.Net.ReceiveSpeed = prometheus.NewDesc("net_receive_speed", "Net receive speed", []string{"name"}, nil)
 | |
| 	d.BPS = prometheus.NewDesc("bps", "Bytes Per Second", []string{"streamPath", "pluginName", "trackType"}, nil)
 | |
| 	d.FPS = prometheus.NewDesc("fps", "Frames Per Second", []string{"streamPath", "pluginName", "trackType"}, nil)
 | |
| 	d.StreamCount = prometheus.NewDesc("stream_count", "Stream count", nil, nil)
 | |
| 	d.SubscribeCount = prometheus.NewDesc("subscribe_count", "Subscribe count", nil, nil)
 | |
| 	d.PullCount = prometheus.NewDesc("pull_count", "Pull count", nil, nil)
 | |
| 	d.PushCount = prometheus.NewDesc("push_count", "Push count", nil, nil)
 | |
| 	d.RecordCount = prometheus.NewDesc("record_count", "Record count", nil, nil)
 | |
| 	d.TransformCount = prometheus.NewDesc("transform_count", "Transform count", nil, nil)
 | |
| }
 | |
| 
 | |
| func (s *Server) Describe(ch chan<- *prometheus.Desc) {
 | |
| 	desc := s.prometheusDesc
 | |
| 	ch <- desc.BPS
 | |
| 	ch <- desc.FPS
 | |
| 	ch <- desc.CPUUsage
 | |
| 	ch <- desc.Memory.Total
 | |
| 	ch <- desc.Memory.Used
 | |
| 	ch <- desc.Memory.Usage
 | |
| 	ch <- desc.Memory.Free
 | |
| 	ch <- desc.Disk.Total
 | |
| 	ch <- desc.Disk.Used
 | |
| 	ch <- desc.Disk.Usage
 | |
| 	ch <- desc.Disk.Free
 | |
| 	ch <- desc.Net.SendSpeed
 | |
| 	ch <- desc.StreamCount
 | |
| 	ch <- desc.SubscribeCount
 | |
| 	ch <- desc.PullCount
 | |
| 	ch <- desc.PushCount
 | |
| 	ch <- desc.RecordCount
 | |
| 	ch <- desc.TransformCount
 | |
| }
 | |
| 
 | |
| func (s *Server) Collect(ch chan<- prometheus.Metric) {
 | |
| 	if s.lastSummary != nil {
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.CPUUsage, prometheus.GaugeValue, float64(s.lastSummary.CpuUsage))
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Memory.Total, prometheus.GaugeValue, float64(s.lastSummary.Memory.Total))
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Memory.Used, prometheus.GaugeValue, float64(s.lastSummary.Memory.Used))
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Memory.Usage, prometheus.GaugeValue, float64(s.lastSummary.Memory.Usage))
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Memory.Free, prometheus.GaugeValue, float64(s.lastSummary.Memory.Free))
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Disk.Total, prometheus.GaugeValue, float64(s.lastSummary.HardDisk.Total))
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Disk.Used, prometheus.GaugeValue, float64(s.lastSummary.HardDisk.Used))
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Disk.Usage, prometheus.GaugeValue, float64(s.lastSummary.HardDisk.Usage))
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Disk.Free, prometheus.GaugeValue, float64(s.lastSummary.HardDisk.Free))
 | |
| 		for _, net := range s.lastSummary.NetWork {
 | |
| 			ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Net.SendSpeed, prometheus.GaugeValue, float64(net.SentSpeed), net.Name)
 | |
| 			ch <- prometheus.MustNewConstMetric(s.prometheusDesc.Net.ReceiveSpeed, prometheus.GaugeValue, float64(net.ReceiveSpeed), net.Name)
 | |
| 		}
 | |
| 	}
 | |
| 	for stream := range s.Streams.Range {
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.BPS, prometheus.GaugeValue, float64(stream.VideoTrack.AVTrack.BPS), stream.StreamPath, stream.Plugin.Meta.Name, "video")
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.FPS, prometheus.GaugeValue, float64(stream.VideoTrack.AVTrack.FPS), stream.StreamPath, stream.Plugin.Meta.Name, "video")
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.BPS, prometheus.GaugeValue, float64(stream.AudioTrack.AVTrack.BPS), stream.StreamPath, stream.Plugin.Meta.Name, "audio")
 | |
| 		ch <- prometheus.MustNewConstMetric(s.prometheusDesc.FPS, prometheus.GaugeValue, float64(stream.AudioTrack.AVTrack.FPS), stream.StreamPath, stream.Plugin.Meta.Name, "audio")
 | |
| 	}
 | |
| }
 |