Commit Graph

43 Commits

Author SHA1 Message Date
Holger Obermaier
aea3e2c6b1 Place wait group Add() and Done() near to each other 2022-01-27 20:45:22 +01:00
Holger Obermaier
b9236dcc31 Handle shutdown sequentially 2022-01-27 17:43:00 +01:00
Thomas Roehl
5600cf1f5f Use two separate inputs for metric router to simplify management. Activate --logfile option and close MultiChanTicker explicitly 2022-01-26 17:08:53 +01:00
Thomas Roehl
7f77cad056 Don't wait too long in case of --once 2022-01-25 17:49:15 +01:00
Thomas Roehl
2925ad9f40 Use ccLogger anywhere 2022-01-25 17:43:10 +01:00
Thomas Roehl
8f9bff7efd Merge branch 'develop' of github.com:ClusterCockpit/cc-metric-collector into develop 2022-01-25 16:41:54 +01:00
Thomas Roehl
bafc6322e6 Change to own Logger 2022-01-25 16:40:02 +01:00
Holger Obermaier
a40d1c954b Fix data type mismatch 2022-01-25 16:33:23 +01:00
Thomas Roehl
99aaece6c2 Activate --once option and return proper exit Code with os.Exit() 2022-01-25 15:46:41 +01:00
Thomas Gruber
200af84c54
Modularize the whole thing (#16)
* 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>
2022-01-25 15:37:43 +01:00
Holger Obermaier
8d314ecb19 Add CPUFreqCollectorCpuinfo
a metric collector to measure the current frequency of the CPUs
as obtained from /proc/cpuinfo
Only measure on the first hyperthread
2022-01-24 13:10:33 +01:00
Holger Obermaier
83b784e6f0 Add CPU frequency collector 2022-01-21 09:59:57 +01:00
Holger Obermaier
7b29a14e1a Drop domain part of host name 2022-01-19 15:35:40 +01:00
Holger Obermaier
b97c588660 Add GPFS / IBM Spectrum Scale collector 2022-01-19 14:25:58 +01:00
Thomas Roehl
43a8ea683d Cast collector measurement duration to seconds. Thanks to KIT 2022-01-06 15:25:51 +01:00
Thomas Roehl
28163f5d2e Format fixes 2021-11-29 15:32:58 +01:00
Thomas Roehl
7a7ce0c1b3 Catch panicing collectors (hello Nvidia Go Bindings) late. 2021-11-26 19:01:12 +01:00
Thomas Gruber
3997984714
Temp collector from sysfs hwmon (#8)
* Add collector for hwmon temperature

* Comment out local tag overrides

* Add temperature collector to README

* Update temperature collector with own config parser
2021-11-25 18:19:09 +01:00
Thomas Gruber
1e7a75598e
Add collector to read data from ipmitool or ipmi-sensors (fallback) (#9)
* Add collector to read data from ipmitool or ipmi-sensors

* Update IPMI collector to use own config

* Add 'ipmitool sensor' parser
2021-11-25 18:15:56 +01:00
Thomas Roehl
9232dd9732 Formatting 2021-11-25 15:11:39 +01:00
Thomas Roehl
51b8c62d4d Collector-specific configuration. LIKWID collector derives metrics itself, Run once CLI option 2021-11-25 14:04:03 +01:00
Lou Knauer
485223c590 Add new httpSink
This sink is compatible with the HTTP API of cc-metric-store.
Example config.json section:

```
"sink": {
    "type": "http",
    "host": "localhost",
    "port": "8080",
    "database": "api/write",
    "password": "<JWT>"
},
```

The password/JWT can be omitted.
2021-10-12 13:44:38 +02:00
Lou Knauer
cdc1811576 Add Flush method to sink interface 2021-10-12 13:43:58 +02:00
Thomas Roehl
dc4b8d13c2 Add collectors for custom commands and /proc/diskstat. Per default add a hostname tag to all measurements 2021-10-08 13:29:57 +02:00
Thomas Roehl
558bbaba59 Change storage format 2021-10-04 15:23:43 +02:00
Thomas Roehl
8956ce7ad5 CLI option for PID file and fix for DefaultTags 2021-05-29 03:40:12 +02:00
Thomas Roehl
39c96da409 Add config option for default tags like cluster name 2021-05-19 01:34:30 +02:00
Thomas Roehl
7106e465ad Check length of receiver type configuration 2021-05-18 15:44:32 +02:00
Thomas Roehl
1b9cb8955c Hand over full config to Sink and Receiver 2021-05-18 15:16:10 +02:00
Thomas Roehl
1da906470d Skip collectors that fail at init. Only write metrics with fields 2021-05-14 19:22:42 +02:00
Thomas Roehl
14bc29f766 Add collector for the top5 processes in %cpu 2021-05-12 17:47:12 +02:00
Thomas Roehl
e35a9f6b86 Add Cpustat collector for /proc/stat 2021-05-12 16:57:18 +02:00
Thomas Roehl
47510099cf Add logfile command line option 2021-05-11 13:16:35 +02:00
Thomas Roehl
4ee4e617b2 Read config file path from commandline 2021-05-11 12:41:29 +02:00
Thomas Roehl
0a70ca1f13 Add NatsSink to send data via the NATS messaging system 2021-03-29 14:14:38 +02:00
Thomas Roehl
913c3719a9 Add StdoutSink for debugging purposes 2021-03-26 17:03:46 +01:00
Thomas Roehl
f822f00cdc Add sink for InfluxDB (with the original InfluxDB client) 2021-03-26 16:48:09 +01:00
Thomas Roehl
e92f54b411 Some more config file checks and some comments 2021-03-26 13:08:44 +01:00
Jan Eitzinger
e7d933e60f Reformat. Cosmetic changes in structure 2021-03-26 10:19:54 +01:00
Thomas Roehl
f32ff9d006 Fixing format with gofmt 2021-03-25 17:47:08 +01:00
Thomas Roehl
e9a74a4c9c Add LustreCollector 2021-03-25 16:52:28 +01:00
Thomas Roehl
642314c102 Add InfinibandCollector 2021-03-25 15:55:06 +01:00
Thomas Roehl
4fddcb9741 Add main with ticker 2021-03-25 14:46:25 +01:00