Commit Graph

33 Commits

Author SHA1 Message Date
Christoph Petrausch
25115cf80a Fix struct tags 2021-12-25 08:34:56 +01:00
michey
4f1b56fe2f Add way to change default separator for json pathes 2021-12-24 23:39:43 +03:00
Christoph Petrausch
3b436b2d81 Merge pull request #54 from chr4/chore/strict-yaml-unmarshal
Use UnmarshalStrict for config file to catch config errors
2021-03-14 20:54:22 +01:00
Chris Aumann
366c38c791 Use UnmarshalStrict for config file to catch config errors 2021-03-14 14:09:53 +01:00
Chris Aumann
6ab535ebe1 Use upstream DefaultExpiration for go-cache 2021-03-14 13:26:10 +01:00
Christoph Petrausch
30a2180cfa Add mqtt2prometheus_connected gauge to represent connection state 2021-03-12 21:22:27 +01:00
weboo
d5ee3e68f9 support for TLS client certificates 2021-03-12 21:51:57 +09:00
Christoph Petrausch
3bd83c1d9b Add more tests 2021-03-08 20:44:53 +01:00
Chris Aumann
5b0603c32d Make GroupValue() more resilient 2021-03-06 18:39:02 +01:00
Christoph Petrausch
24df81ed32 Add fuzzing 2021-02-14 20:47:41 +01:00
Christoph Petrausch
e5cc73f9b2 Refactor cache datastructure to use a key per metric instead of a key per device
This should resolve #26
2021-01-23 22:09:33 +01:00
Christoph Petrausch
ab0f600bfd Add unittests for parser 2020-11-08 22:50:07 +01:00
Christoph Petrausch
be4af9ff5e Refactor metric extraction from MQTT
This commit allows to extract the metric name from the topic path. Now
it can be configured if all metrics are in a object in a certain topic
or if every topic contains exactly one metric. However, currently these
modes can not be mixed.

This should solve !26

TODO:
* Update documentation
* Add unit tests
2020-11-08 22:01:36 +01:00
Christoph Petrausch
126e13428b Use go.uber.org/zap for logging
As mentioned in https://github.com/hikhvar/mqtt2prometheus/issues/23, we
do not use any logging framework at all. This was fine for getting the
exporter startet. However, with inreasing load the logging must be
configureable. This PR is a start to replace all instances of
"log.Printf" with the zap logger. The current configuration parameters
are the log level and the log format (console, json). We might expose
the log configuration to the config file. But I think this is overkill
for the current state of the exporter.
2020-10-29 20:58:28 +01:00
Christoph Petrausch
800b8c0cc5 Append source topic to metrics 2020-07-18 18:28:52 +02:00
Christoph Petrausch
f13c36ab4a Breaking: Don't append + automatically to the topic 2020-07-18 18:17:29 +02:00
Christoph Petrausch
29eb9250f6 Moved to gojsonq to support nested paths 2020-07-18 18:03:49 +02:00
Christoph Petrausch
5680206095 Support arbitrary position of device id in topic
The device firmware tasmota places the device ID in the middle of the
topic path. To support those devices to this commit introduce the
device_id_regex configuration. The old behavior of the last element of
the topic path is unchanged.
2020-07-18 18:02:17 +02:00
Christoph Petrausch
ec23d61881 Rename RegexpFilter to use it for device id extraction too 2020-07-18 18:02:17 +02:00
Christoph Petrausch
627c52669a Update hack config 2020-07-16 14:42:38 +02:00
Mansour Behabadi
7b5796b042 Add sensor name filter config 2020-05-22 00:42:49 +10:00
Mansour Behabadi
1ac6f71fa3 Fix typo 2020-05-03 18:29:15 +10:00
Mansour Behabadi
6e6113efba Remove unused regex 2020-05-03 18:15:31 +10:00
Mansour Behabadi
13c47b498d Parse more value types
* Parse bools as 0 for false and 1 for true
* Allow mapping between string and float values
2020-05-03 18:11:09 +10:00
Christoph Petrausch
77f0cbcc30 Merge pull request #3 from AchMenz/master
fixed wrong cache behavior (was always 2 minutes)
2020-03-17 20:36:51 +01:00
AchMenz
550dec1c42 fixed default time 2020-03-17 17:43:55 +01:00
AchMenz
0953fbf647 fixed default time 2020-03-17 17:41:04 +01:00
Paul Rogalinski-Pinter
1f5ee67214 make an attempt to parse string floats 2020-03-11 22:51:45 +01:00
AchMenz
0d884b7d34 removed debug artifacts
- falsely committed some debug code -> removed it
2020-02-28 23:48:12 +01:00
AchMenz
fe7da9fcc8 fixed always loads CacheConfigDefaults bug
- previous code always loaded the cache default
- the time format in cache default should be plain integer
2020-02-28 23:30:18 +01:00
Paul Rogalinski-Pinter
e0e3cbf744 less strict json payload type validation
json properties without explicit metric mapping are no longer required
to be of float64 type and will be ignored.
2020-02-03 13:35:05 +01:00
Paul Rogalinski-Pinter
e2c1e26d3e auth config for mqtt, fixed error handling 2020-02-03 13:34:20 +01:00
Christoph Petrausch
7d41c58d70 Initial commit 2018-03-18 13:20:49 +01:00