mirror of
https://github.com/ClusterCockpit/cc-metric-collector.git
synced 2024-11-12 21:17:25 +01:00
162cce0fda
* InfiniBandCollector: Scale raw readings from octets to bytes * Fix clock frequency coming from LikwidCollector and update docs * Build DEB package for Ubuntu 20.04 for releases * Fix memstat collector with numa_stats option * Remove useless prints from MemstatCollector * Replace ioutils with os and io (#87) * Use lower case for error strings in RocmSmiCollector * move maybe-usable-by-other-cc-components to pkg. Fix all files to use the new paths (#88) * Add collector for monitoring the execution of cc-metric-collector itself (#81) * Add collector to monitor execution of cc-metric-collector itself * Register SelfCollector * Fix import paths for moved packages * Check if at least one CPU with frequency information was detected * Correct type: /proc/stats -> /proc/stat * Update README.md * Run ipmitool asynchron. Improved error handling. * Corrected some typos * Add running average power limit (RAPL) metric collector * Add running average power limit (RAPL) metric collector * Do not mess up with the orignal configuration * * Corrected json config in numastatsMetric.md * Added some debug output to numastatsMetric.go * Fixed computing number of physical packages for non continous physical package IDs (e.g. on Ampere Altra Q80-30) * Fix kernel panic for receiver config with missing receiver type * Add receiver to gather remote IPMI sensor metrics * Added config option to add ipmi-sensors command line options * Add documentaion for IPMI receiver * Update to latest version of included go modules * Add go.mod to App dependency * Try to use common metric tags across hardware vendors * Add IPMI metric: current * remove prefix enumeration like 01-... * Add IPMI receiver example configuration to receivers.json * Minimal formating changes * Add hostlist package * Added tests for hostlist Expand() * Use package hostlist to expand a host list * Use package hostlist to expand a host list * Some servers return "ConsumedPowerWatt":65535 instead of "ConsumedPowerWatt":null * Updated to latest package versions * Do not allow unknown fields in JSON configuration file * Add workflow to customize packages to docs * NFS I/O Stats Collector (#91) * Initial version * Delete values for vanished mount points and comments * Fix for Likwid collector (#95) * Run LIKWID in separate thread and check metric type * Change LIKWID collector documentation to use 'type' instead of 'scope' * Re-initialize LIKWID after one read is missing due to lock toggle * Register cc-metric-collector at Zenodo (#93) * Add initial version of Zenodo project file * Orcid ID added * Update .zenodo.json Co-authored-by: Holger Obermaier <holger.obermaier@kit.edu> * Update ipmiMetric.go Co-authored-by: Holger Obermaier <40787752+ho-ob@users.noreply.github.com> Co-authored-by: Holger Obermaier <Holger.Obermaier@kit.edu>
75 lines
3.0 KiB
Markdown
75 lines
3.0 KiB
Markdown
# Building the cc-metric-collector
|
|
|
|
In most cases, a simple `make` in the main folder is enough to get a `cc-metric-collector` binary. It is basically a `go build` but some collectors require additional tasks. There is currently no Golang interface to LIKWID, so it uses `cgo` to create bindings but `cgo` requires the LIKWID header files. Therefore, it checks whether LIKWID is installed and if not it downloads LIKWID and copies the headers.
|
|
|
|
## System integration
|
|
|
|
The main configuration settings for system integration are pre-defined in `scripts/cc-metric-collector.config`. The file contains the UNIX user and group used for execution, the PID file location and other settings. Adjust it accordingly and copy it to `/etc/default/cc-metric-collector`
|
|
|
|
```bash
|
|
$ install --mode 644 \
|
|
--owner $CC_USER \
|
|
--group $CC_GROUP \
|
|
scripts/cc-metric-collector.config /etc/default/cc-metric-collector
|
|
$ edit /etc/default/cc-metric-collector
|
|
```
|
|
|
|
### SysVinit and similar
|
|
|
|
If you are using a init system based in `/etc/init.d` daemons, you can use the sample `scripts/cc-metric-collector.init`. It reads the basic configuration from `/etc/default/cc-metric-collector`
|
|
|
|
```bash
|
|
$ install --mode 755 \
|
|
--owner $CC_USER \
|
|
--group $CC_GROUP \
|
|
scripts/cc-metric-collector.init /etc/init.d/cc-metric-collector
|
|
```
|
|
|
|
### Systemd
|
|
|
|
If you are using `systemd` as init system, you can use the sample systemd service file `scripts/cc-metric-collector.service`, the configuration file `scripts/cc-metric-collector.config`.
|
|
|
|
```bash
|
|
$ install --mode 644 \
|
|
--owner $CC_USER \
|
|
--group $CC_GROUP \
|
|
scripts/cc-metric-collector.service /etc/systemd/system/cc-metric-collector.service
|
|
$ systemctl enable cc-metric-collector
|
|
```
|
|
|
|
## Packaging
|
|
|
|
### RPM
|
|
|
|
In order to get a RPM packages for cc-metric-collector, just use:
|
|
|
|
```bash
|
|
$ make RPM
|
|
```
|
|
|
|
It uses the RPM SPEC file `scripts/cc-metric-collector.spec` and requires the RPM tools (`rpm` and `rpmspec`) and `git`.
|
|
|
|
### DEB
|
|
|
|
In order to get very simple Debian packages for cc-metric-collector, just use:
|
|
|
|
```bash
|
|
$ make DEB
|
|
```
|
|
|
|
It uses the DEB control file `scripts/cc-metric-collector.control` and requires `dpkg-deb`, `awk`, `sed` and `git`. It creates only a binary deb package.
|
|
|
|
_This option is not well tested and therefore experimental_
|
|
|
|
### Customizing RPMs or DEB packages
|
|
|
|
If you want to customize the RPMs or DEB packages for your local system, use the following workflow.
|
|
|
|
- (if there is already a fork in the private account, delete it and wait until Github realizes the deletion)
|
|
- Fork the cc-metric-collector repository (if Github hasn't realized it, it creates a fork named cc-metric-collector2)
|
|
- Go to private cc-metric-collector repository and enable Github Actions
|
|
- Do changes to the scripts, code, ... Commit and push your changes.
|
|
- Tag the new commit with `v0.x.y-<myversion>` (`git tag v0.x.y-<myversion>`)
|
|
- Push tags to repository (`git push --tags`)
|
|
- Wait until the Release action finishes. It creates fresh RPMs and DEBs in your private repository on the Releases page.
|