mirror of
				https://github.com/ClusterCockpit/cc-metric-collector.git
				synced 2025-10-31 00:55:06 +01:00 
			
		
		
		
	Add markdown documentation for metric collector ibstat_perfquery
This commit is contained in:
		| @@ -20,7 +20,7 @@ type InfinibandCollectorInfo struct { | |||||||
| 	LID              string            // IB local Identifier (LID) | 	LID              string            // IB local Identifier (LID) | ||||||
| 	device           string            // IB device | 	device           string            // IB device | ||||||
| 	port             string            // IB device port | 	port             string            // IB device port | ||||||
| 	portCounterFiles map[string]string // mapping counter name -> file | 	portCounterFiles map[string]string // mapping counter name -> sysfs file | ||||||
| 	tagSet           map[string]string // corresponding tag list | 	tagSet           map[string]string // corresponding tag list | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -34,6 +34,12 @@ type InfinibandCollector struct { | |||||||
|  |  | ||||||
| // Init initializes the Infiniband collector by walking through files below IB_BASEPATH | // Init initializes the Infiniband collector by walking through files below IB_BASEPATH | ||||||
| func (m *InfinibandCollector) Init(config json.RawMessage) error { | func (m *InfinibandCollector) Init(config json.RawMessage) error { | ||||||
|  |  | ||||||
|  | 	// Check if already initialized | ||||||
|  | 	if !m.init { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	var err error | 	var err error | ||||||
| 	m.name = "InfinibandCollector" | 	m.name = "InfinibandCollector" | ||||||
| 	m.setup() | 	m.setup() | ||||||
|   | |||||||
| @@ -9,10 +9,13 @@ | |||||||
|   } |   } | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| The `ibstat` includes all devices that can be found below `/sys/class/infiniband/` | The `ibstat` collector includes all Infiniband devices that can be | ||||||
| and where any of the ports provides a `lid` file (`/sys/class/infiniband/<dev>/ports/<port>/lid`) | found below `/sys/class/infiniband/` and where any of the ports provides a | ||||||
|  | LID file (`/sys/class/infiniband/<dev>/ports/<port>/lid`) | ||||||
|  |  | ||||||
| The devices can be filtered with the `exclude_devices` option in the configuration. | The devices can be filtered with the `exclude_devices` option in the configuration. | ||||||
| The collector reads data through the sysfs files below `/sys/class/infiniband/<device>`. |  | ||||||
|  | For each found LID the collector reads data through the sysfs files below `/sys/class/infiniband/<device>`. | ||||||
|  |  | ||||||
| Metrics: | Metrics: | ||||||
| * `ib_recv` | * `ib_recv` | ||||||
|   | |||||||
| @@ -29,27 +29,6 @@ type InfinibandPerfQueryCollector struct { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| func (m *InfinibandPerfQueryCollector) Help() { |  | ||||||
| 	fmt.Println("This collector includes all devices that can be found below ", IB_BASEPATH) |  | ||||||
| 	fmt.Println("and where any of the ports provides a 'lid' file (glob ", IB_BASEPATH, "/<dev>/ports/<port>/lid).") |  | ||||||
| 	fmt.Println("The devices can be filtered with the 'exclude_devices' option in the configuration.") |  | ||||||
| 	fmt.Println("For each found LIDs the collector calls the 'perfquery' command") |  | ||||||
| 	fmt.Println("The path to the 'perfquery' command can be configured with the 'perfquery_path' option") |  | ||||||
| 	fmt.Println("in the configuration") |  | ||||||
| 	fmt.Println("") |  | ||||||
| 	fmt.Println("Full configuration object:") |  | ||||||
| 	fmt.Println("\"ibstat\" : {") |  | ||||||
| 	fmt.Println("  \"perfquery_path\" : \"path/to/perfquery\"  # if omitted, it searches in $PATH") |  | ||||||
| 	fmt.Println("  \"exclude_devices\" : [\"dev1\"]") |  | ||||||
| 	fmt.Println("}") |  | ||||||
| 	fmt.Println("") |  | ||||||
| 	fmt.Println("Metrics:") |  | ||||||
| 	fmt.Println("- ib_recv") |  | ||||||
| 	fmt.Println("- ib_xmit") |  | ||||||
| 	fmt.Println("- ib_recv_pkts") |  | ||||||
| 	fmt.Println("- ib_xmit_pkts") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (m *InfinibandPerfQueryCollector) Init(config json.RawMessage) error { | func (m *InfinibandPerfQueryCollector) Init(config json.RawMessage) error { | ||||||
| 	var err error | 	var err error | ||||||
| 	m.name = "InfinibandCollectorPerfQuery" | 	m.name = "InfinibandCollectorPerfQuery" | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								collectors/infinibandPerfQueryMetric.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								collectors/infinibandPerfQueryMetric.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  |  | ||||||
|  | ## `ibstat_perfquery` collector | ||||||
|  |  | ||||||
|  | ```json | ||||||
|  |   "ibstat_perfquery": { | ||||||
|  |     "perfquery_path": "/path/to/perfquery", | ||||||
|  |     "exclude_devices": [ | ||||||
|  |       "mlx4" | ||||||
|  |     ] | ||||||
|  |   } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | The `ibstat_perfquery` collector includes all Infiniband devices that can be | ||||||
|  | found below `/sys/class/infiniband/` and where any of the ports provides a | ||||||
|  | LID file (`/sys/class/infiniband/<dev>/ports/<port>/lid`) | ||||||
|  |  | ||||||
|  | The devices can be filtered with the `exclude_devices` option in the configuration. | ||||||
|  |  | ||||||
|  | For each found LID the collector calls the `perfquery` command. The path to the | ||||||
|  | `perfquery` command can be configured with the `perfquery_path` option in the configuration | ||||||
|  |  | ||||||
|  | Metrics: | ||||||
|  | * `ib_recv` | ||||||
|  | * `ib_xmit` | ||||||
|  | * `ib_recv_pkts` | ||||||
|  | * `ib_xmit_pkts` | ||||||
|  |  | ||||||
|  | The collector adds a `device` tag to all metrics | ||||||
		Reference in New Issue
	
	Block a user