mirror of
				https://github.com/ClusterCockpit/cc-metric-collector.git
				synced 2025-11-04 10:45:06 +01:00 
			
		
		
		
	Send all metrics with same time stamp
calcGlobalMetrics does only computiation, counter measurement is done before
This commit is contained in:
		@@ -554,14 +554,16 @@ func (m *LikwidCollector) calcEventsetMetrics(evset LikwidEventsetConfig, interv
 | 
			
		||||
				// Now we have the result, send it with the proper tags
 | 
			
		||||
				if !math.IsNaN(value) && metric.Publish {
 | 
			
		||||
					fields := map[string]interface{}{"value": value}
 | 
			
		||||
					y, err := lp.New(
 | 
			
		||||
						metric.Name,
 | 
			
		||||
						map[string]string{
 | 
			
		||||
							"type": metric.Type,
 | 
			
		||||
						},
 | 
			
		||||
						m.meta,
 | 
			
		||||
						fields,
 | 
			
		||||
						now)
 | 
			
		||||
					y, err :=
 | 
			
		||||
						lp.New(
 | 
			
		||||
							metric.Name,
 | 
			
		||||
							map[string]string{
 | 
			
		||||
								"type": metric.Type,
 | 
			
		||||
							},
 | 
			
		||||
							m.meta,
 | 
			
		||||
							fields,
 | 
			
		||||
							now,
 | 
			
		||||
						)
 | 
			
		||||
					if err == nil {
 | 
			
		||||
						if metric.Type != "node" {
 | 
			
		||||
							y.AddTag("type-id", fmt.Sprintf("%d", domain))
 | 
			
		||||
@@ -589,18 +591,19 @@ func (m *LikwidCollector) calcEventsetMetrics(evset LikwidEventsetConfig, interv
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			for coreID, value := range totalCoreValues {
 | 
			
		||||
				y, err := lp.New(
 | 
			
		||||
					metric.Name,
 | 
			
		||||
					map[string]string{
 | 
			
		||||
						"type":    "core",
 | 
			
		||||
						"type-id": fmt.Sprintf("%d", coreID),
 | 
			
		||||
					},
 | 
			
		||||
					m.meta,
 | 
			
		||||
					map[string]interface{}{
 | 
			
		||||
						"value": value,
 | 
			
		||||
					},
 | 
			
		||||
					now,
 | 
			
		||||
				)
 | 
			
		||||
				y, err :=
 | 
			
		||||
					lp.New(
 | 
			
		||||
						metric.Name,
 | 
			
		||||
						map[string]string{
 | 
			
		||||
							"type":    "core",
 | 
			
		||||
							"type-id": fmt.Sprintf("%d", coreID),
 | 
			
		||||
						},
 | 
			
		||||
						m.meta,
 | 
			
		||||
						map[string]interface{}{
 | 
			
		||||
							"value": value,
 | 
			
		||||
						},
 | 
			
		||||
						now,
 | 
			
		||||
					)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					continue
 | 
			
		||||
				}
 | 
			
		||||
@@ -625,18 +628,19 @@ func (m *LikwidCollector) calcEventsetMetrics(evset LikwidEventsetConfig, interv
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			for socketID, value := range totalSocketValues {
 | 
			
		||||
				y, err := lp.New(
 | 
			
		||||
					metric.Name,
 | 
			
		||||
					map[string]string{
 | 
			
		||||
						"type":    "socket",
 | 
			
		||||
						"type-id": fmt.Sprintf("%d", socketID),
 | 
			
		||||
					},
 | 
			
		||||
					m.meta,
 | 
			
		||||
					map[string]interface{}{
 | 
			
		||||
						"value": value,
 | 
			
		||||
					},
 | 
			
		||||
					now,
 | 
			
		||||
				)
 | 
			
		||||
				y, err :=
 | 
			
		||||
					lp.New(
 | 
			
		||||
						metric.Name,
 | 
			
		||||
						map[string]string{
 | 
			
		||||
							"type":    "socket",
 | 
			
		||||
							"type-id": fmt.Sprintf("%d", socketID),
 | 
			
		||||
						},
 | 
			
		||||
						m.meta,
 | 
			
		||||
						map[string]interface{}{
 | 
			
		||||
							"value": value,
 | 
			
		||||
						},
 | 
			
		||||
						now,
 | 
			
		||||
					)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					continue
 | 
			
		||||
				}
 | 
			
		||||
@@ -659,17 +663,18 @@ func (m *LikwidCollector) calcEventsetMetrics(evset LikwidEventsetConfig, interv
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			y, err := lp.New(
 | 
			
		||||
				metric.Name,
 | 
			
		||||
				map[string]string{
 | 
			
		||||
					"type": "node",
 | 
			
		||||
				},
 | 
			
		||||
				m.meta,
 | 
			
		||||
				map[string]interface{}{
 | 
			
		||||
					"value": totalNodeValue,
 | 
			
		||||
				},
 | 
			
		||||
				now,
 | 
			
		||||
			)
 | 
			
		||||
			y, err :=
 | 
			
		||||
				lp.New(
 | 
			
		||||
					metric.Name,
 | 
			
		||||
					map[string]string{
 | 
			
		||||
						"type": "node",
 | 
			
		||||
					},
 | 
			
		||||
					m.meta,
 | 
			
		||||
					map[string]interface{}{
 | 
			
		||||
						"value": totalNodeValue,
 | 
			
		||||
					},
 | 
			
		||||
					now,
 | 
			
		||||
				)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
@@ -685,7 +690,13 @@ func (m *LikwidCollector) calcEventsetMetrics(evset LikwidEventsetConfig, interv
 | 
			
		||||
 | 
			
		||||
// Go over the global metrics, derive the value out of the event sets' metric values and send it
 | 
			
		||||
func (m *LikwidCollector) calcGlobalMetrics(groups []LikwidEventsetConfig, interval time.Duration, output chan lp.CCMetric) error {
 | 
			
		||||
	// Send all metrics with same time stamp
 | 
			
		||||
	// This function does only computiation, counter measurement is done before
 | 
			
		||||
	now := time.Now()
 | 
			
		||||
 | 
			
		||||
	for _, metric := range m.config.Metrics {
 | 
			
		||||
		// The metric scope is determined in the Init() function
 | 
			
		||||
		// Get the map scope-id -> tids
 | 
			
		||||
		scopemap := m.cpu2tid
 | 
			
		||||
		if metric.Type == "socket" {
 | 
			
		||||
			scopemap = m.sock2tid
 | 
			
		||||
@@ -712,9 +723,18 @@ func (m *LikwidCollector) calcGlobalMetrics(groups []LikwidEventsetConfig, inter
 | 
			
		||||
				// Now we have the result, send it with the proper tags
 | 
			
		||||
				if !math.IsNaN(value) {
 | 
			
		||||
					if metric.Publish {
 | 
			
		||||
						tags := map[string]string{"type": metric.Type}
 | 
			
		||||
						fields := map[string]interface{}{"value": value}
 | 
			
		||||
						y, err := lp.New(metric.Name, tags, m.meta, fields, time.Now())
 | 
			
		||||
						y, err :=
 | 
			
		||||
							lp.New(
 | 
			
		||||
								metric.Name,
 | 
			
		||||
								map[string]string{
 | 
			
		||||
									"type": metric.Type,
 | 
			
		||||
								},
 | 
			
		||||
								m.meta,
 | 
			
		||||
								map[string]interface{}{
 | 
			
		||||
									"value": value,
 | 
			
		||||
								},
 | 
			
		||||
								now,
 | 
			
		||||
							)
 | 
			
		||||
						if err == nil {
 | 
			
		||||
							if metric.Type != "node" {
 | 
			
		||||
								y.AddTag("type-id", fmt.Sprintf("%d", domain))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user