* 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
* Update configuration.md
Add an additional receiver to have better alignment of components
* Change default GpfsCollector command to `mmpmon` (#53)
* Set default cmd to 'mmpmon'
* Reuse looked up path
* Cast const to string
* Just download LIKWID to get the headers (#54)
* Just download LIKWID to get the headers
* Remove perl-Data-Dumper from BuildRequires, only required by LIKWID build
* Add HttpReceiver as counterpart to the HttpSink (#49)
* Use GBytes as unit for large memory numbers
* Make maxForward configurable, save old name in meta in rename metrics and make the hostname tag key configurable
* Single release action (#55)
Building all RPMs and releasing in a single workflow
* Makefile target to build binary-only Debian packages (#61)
* Add 'install' and 'DEB' make targets to build binary-only Debian packages
* Add control file for DEB builds
* Use a single line for bash loop in make clean
* Add config options for retry intervals of InfluxDB clients (#59)
* Refactoring of LikwidCollector and metric units (#62)
* Reduce complexity of LikwidCollector and allow metric units
* Add unit to LikwidCollector docu and fix some typos
* Make library path configurable
* Use old metric name in Ganglia if rename has happened in the router (#60)
* Use old metric name if rename has happened in the router
* Also check for Ganglia renames for the oldname
* Derived metrics (#57)
* Add time-based derivatived (e.g. bandwidth) to some collectors
* Add documentation
* Add comments
* Fix: Only compute rates with a valid previous state
* Only compute rates with a valid previous state
* Define const values for net/dev fields
* Set default config values
* Add comments
* Refactor: Consolidate data structures
* Refactor: Consolidate data structures
* Refactor: Avoid struct deep copy
* Refactor: Avoid redundant tag maps
* Refactor: Use int64 type for absolut values
Co-authored-by: Holger Obermaier <40787752+ho-ob@users.noreply.github.com>
* Simplified iota usage
* Move unit tag to meta data tags
* Derived metrics (#65)
* Add time-based derivatived (e.g. bandwidth) to some collectors
* Add documentation
* Add comments
* Fix: Only compute rates with a valid previous state
* Only compute rates with a valid previous state
* Define const values for net/dev fields
* Set default config values
* Add comments
* Refactor: Consolidate data structures
* Refactor: Consolidate data structures
* Refactor: Avoid struct deep copy
* Refactor: Avoid redundant tag maps
* Refactor: Use int64 type for absolut values
* Update LustreCollector
Co-authored-by: Holger Obermaier <40787752+ho-ob@users.noreply.github.com>
* Meta to tags list and map for sinks (#63)
* Change ccMetric->Influx functions
* Use a meta_as_tags string list in config but create a lookup map afterwards
* Add meta as tag logic to sampleSink
* Fix staticcheck warnings (#66)
Co-authored-by: Holger Obermaier <40787752+ho-ob@users.noreply.github.com>
* DiskstatCollector: cast part_max_used metric to int
* Add uint types to GangliaSink and LibgangliaSink
* Use new sink instances to allow multiple of same sink type
* Update sink README and SampleSink
* Use new receiver instances to allow multiple of same receiver type
* Fix metric scope in likwid configuration script
* Mention likwid config script in LikwidCollector README
* Refactor: Embed Init() into New() function
* Refactor: Embed Init() into New() function
* Fix: MetricReceiver uses uninitialized values, when initialization fails
* Use Ganglia configuration (#44)
* Copy all metric configurations from original Ganglia code
* Use metric configurations from Ganglia for some metrics
* Format value string also for known metrics
* Numa-aware memstat collector (#45)
* Add samples for collectors, sinks and receivers
* Ping InfluxDB server after connecting to recognize faulty connections
* Add sink for Prometheus monitoring system (#46)
* Add sink for Prometheus monitoring system
* Add prometheus sink to README
* Add scraper for Prometheus clients (#47)
Co-authored-by: Holger Obermaier <holgerob@gmx.de>
Co-authored-by: Holger Obermaier <40787752+ho-ob@users.noreply.github.com>
* Use sink-specific configurations to have more flexibility. Adjust sample sink configuration files
* Add documentation
* Add links to individual sink readmes
* Fix link in README
* HTTPS for HttpSink
* If no CPU die id available, use the socket id instead
* Use channels, add a metric router, split up configuration and use extended version of Influx line protocol internally
* Use central timer for collectors and router. Add expressions to router
* Add expression to router config
* Update entry points
* Start with README
* Update README for CCMetric
* Formatting
* Update README.md
* Add README for MultiChanTicker
* Add README for MultiChanTicker
* Update README.md
* Add README to metric router
* Update main README
* Remove SinkEntity type
* Update README for sinks
* Update go files
* Update README for receivers
* Update collectors README
* Update collectors README
* Use seperate page per collector
* Fix for tempstat page
* Add docs for customcmd collector
* Add docs for ipmistat collector
* Add docs for topprocs collector
* Update customCmdMetric.md
* Use seconds when calculating LIKWID metrics
* Add IB metrics ib_recv_pkts and ib_xmit_pkts
* Drop domain part of host name
* Updated to latest stable version of likwid
* Define source code dependencies in Makefile
* Add GPFS / IBM Spectrum Scale collector
* Add vet and staticcheck make targets
* Add vet and staticcheck make targets
* Avoid go vet warning:
struct field tag `json:"..., omitempty"` not compatible with reflect.StructTag.Get: suspicious space in struct tag value
struct field tag `json:"...", omitempty` not compatible with reflect.StructTag.Get: key:"value" pairs not separated by spaces
* Add sample collector to README.md
* Add CPU frequency collector
* Avoid staticcheck warning: redundant return statement
* Avoid staticcheck warning: unnecessary assignment to the blank identifier
* Simplified code
* Add CPUFreqCollectorCpuinfo
a metric collector to measure the current frequency of the CPUs
as obtained from /proc/cpuinfo
Only measure on the first hyperthread
* Add collector for NFS clients
* Move publication of metrics into Flush() for NatsSink
* Update GitHub actions
* Refactoring
* Avoid vet warning: Println arg list ends with redundant newline
* Avoid vet warning struct field commands has json tag but is not exported
* Avoid vet warning: return copies lock value.
* Corrected typo
* Refactoring
* Add go sources in internal/...
* Bad separator in Makefile
* Fix Infiniband collector
Co-authored-by: Holger Obermaier <40787752+ho-ob@users.noreply.github.com>