Alexander A. Klimov
1eb274b550
Perfdata writers: disconnect handlers from signals in Pause()
...
as they would be re-connected in Resume() (HA).
Before they were still connected during pause and connected X+1 times
after X split-brains (the same data was written X+1 times).
2022-04-07 13:00:27 +02:00
Julian Brost
4d28a01b84
InfluxdbWriter: use atomic_size_t to data buffer size from stats function
...
m_DataBuffer may be modified concurrently while StatsFunc() is called, thus
it's unsafe to call size() on it. As write access to m_DataBuffer is already
synchronized by only modifying it from the single work queue thread, instead of
adding a mutex, this commit adds a new std::atomic_size_t which is additionally
updated when modifying m_DataBuffer and can safely be accessed in StatsFunc().
2022-02-28 17:39:18 +01:00
Julian Brost
a2a5c3f28d
InfluxdbWriter: only flush from work queue
...
There is no explicit synchronization of access to m_DataBuffer which is fine if
it is only accessed from the single-threaded work queue. However, Stop() also
called Flush() in another thread, leading to concurrent write access to
m_DataBuffer which can result in a crash due to use after free/double free.
Changes in this commit:
* Flush() is renamed to FlushWQ() to show that it should only be called from
the work queue. Additionally, it now asserts that it is running on the work
queue.
* Visibility of some data members is changed from protected to private. No
other classes have to access these at the moment. By this change, accidental
concurrent access from derived classes in the future is prevented.
* Stop() now flushes by posting FlushWQ() to the work queue and joining it.
2022-02-23 15:08:57 +01:00
Julian Brost
b7dd909a30
GelfWriter: show error message of exceptions
2021-08-17 16:38:54 +02:00
Julian Brost
6db8795ca4
InfluxdbWriter: actually verify TLS server certificates
...
And add a new option ssl_insecure_noverify to explicitly disable it if desired.
2021-08-17 16:38:39 +02:00
Julian Brost
d7133ae429
GelfWriter: actually verify TLS server certificates
...
And add a new option insecure_noverify to explicitly disable it if desired.
2021-08-17 16:33:18 +02:00
Julian Brost
bf535969ac
ElasticsearchWriter: actually verify TLS server certificates
...
And add a new option insecure_noverify to explicitly disable it if desired.
2021-08-17 16:33:18 +02:00
Julian Brost
843353ab69
Remove passwords from API
...
IdoMysqlConnection, IdoPgsqlConnection, IcingaDB, and ElasticsearchWriter
require passwords in their configuration to authenticate against external
services. This commit ensures that these can no longer be accessed using the
API.
2021-07-09 09:05:05 +02:00
Julian Brost
58416c3c61
Use content_length method for setting the Content-Length header
...
Boost.Beast changed the signature of the previously used generic `set`
method so that it no longer accepts integer types, however there is
alreay a more specific method for setting the Content-Length header, so
use this one instead.
2021-05-20 16:27:51 +02:00
Michael Friedrich
3533ddd010
Graphite/OpenTSDB: Ensure that Reconnect failure is detected
...
fixes #7729
2020-01-18 17:09:09 +01:00
Michael Friedrich
d242b41704
Revert "Make NotificationResult available for events: Cluster and Features"
...
This reverts commit 566e59bbfa385ec1a023c32a1feb895791950032.
2020-01-07 14:20:59 +01:00
Michael Friedrich
ee72791f25
Metrics: Always send '0' as value for thresholds
...
fixes #7666
2019-12-05 13:05:59 +01:00
Ant1x
166e79fee1
Added OpenTSDB Metric prefix naming support
...
Added OpenTSDB Generic Metric functionality
2019-10-24 00:04:12 +11:00
Ant1x
0b8fdfd7f2
Removed dictionary cloning behaviour.
...
Added configuration caching on instantiation.
2019-10-24 00:04:12 +11:00
Ant1x
c2c4b97ea5
Adjusted explicit String cast
2019-10-24 00:04:12 +11:00
Ant1x
619a487733
Added validation function comments
2019-10-24 00:04:12 +11:00
Ant1x
90c42e1bbc
Re-worded debug log message
2019-10-24 00:04:12 +11:00
Ant1x
3cd6b66cd4
Initial commit, add custom tag functionality
2019-10-24 00:04:12 +11:00
Alexander A. Klimov
ba1ce9c853
Replace std::shared_ptr<boost::asio::ssl::context> with Shared<boost::asio::ssl::context>::Ptr
2019-10-21 16:12:46 +02:00
Alexander A. Klimov
26ce2cfb73
Replace std::shared_ptr<AsioTcpStream> with Shared<AsioTcpStream>::Ptr
2019-10-21 16:12:46 +02:00
Alexander A. Klimov
a1683568a1
Replace std::shared_ptr<AsioTlsStream> with Shared<AsioTlsStream>::Ptr
2019-10-21 16:12:35 +02:00
Michael Friedrich
5fa7331cc9
Quality: Replace deprecated Boost IO service code
...
https://github.com/boostorg/asio/issues/110
https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio/example/cpp03/services/logger_service.hpp
2019-09-09 15:27:57 +02:00
Alexander A. Klimov
2acdbd81ff
InfluxdbWriter: clone less
2019-07-24 10:43:45 +02:00
Alexander A. Klimov
d7b1127730
InfluxdbWriter: skip non-resolvable tags
...
refs #7341
2019-07-23 18:21:38 +02:00
Michael Friedrich
8098f4d54d
Improve type logging for notifications
2019-07-16 13:46:16 +02:00
Michael Friedrich
99bb7fa99c
Merge pull request #7196 from Icinga/feature/network-cleanup
...
Cleanup old code (HTTP, Cluster)
2019-05-29 14:50:40 +02:00
Michael Friedrich
efd4e8ad40
Quality: Use Boost ASIO/IO engine in Graphite feature
...
This commit changes the reconnect priority to high.
Also add function docs.
2019-05-27 16:49:51 +02:00
Michael Friedrich
0466316019
Quality: Rewrite OpenTSDB to use Boost ASIO and I/O engine
...
The connection handling and code isn't really good, but not
really actively maintained either.
Besides that, the "telnet" method doesn't allow for TLS,
this needs a general rewrite against their HTTP API.
I've also added function documentation where applicable.
2019-05-27 15:09:26 +02:00
Michael Insel
a6a0631e99
Unify copyright headers
...
Update (left over) copyright headers to generic copyright headers.
2019-05-24 16:25:32 +02:00
Michael Friedrich
f933aafd29
Quality: Purge old HTTP code in lib/remote
2019-05-24 15:50:43 +02:00
Michael Friedrich
5d0af5c879
Merge pull request #6813 from Icinga/feature/gelfwriter-tls-support
...
Implement TLS support for the GelfWriter feature
2019-05-24 15:50:18 +02:00
Michael Insel
bb70613ed1
Fix wrong facility in GelfWriter log message
...
This fixes a wrong facility in GelfWriter log message (paused message).
2019-05-16 19:50:40 +02:00
Michael Insel
bc0ab93e44
Use new I/O engine in GelfWriter
2019-05-16 19:39:06 +02:00
Michael Insel
90bb423226
Implement TLS support for the GelfWriter
...
This implements TLS support for the GelfWriter.
2019-05-16 17:48:47 +02:00
Michael Friedrich
a630d0185f
Merge pull request #6722 from Icinga/feature/notification-result
...
Add notification result store/sync
2019-04-25 15:56:14 +02:00
Alexander A. Klimov
5a17722c1f
Replace _unlink() + rename() with boost::filesystem::rename()
...
refs #7101
2019-04-25 09:53:02 +02:00
Alexander A. Klimov
3f0066e33b
Use new I/O engine in ElasticsearchWriter
2019-04-23 14:33:19 +02:00
Alexander A. Klimov
14fdfff770
Use new I/O engine in InfluxdbWriter
2019-04-23 11:59:37 +02:00
Michael Friedrich
566e59bbfa
Make NotificationResult available for events: Cluster and Features
2019-03-28 11:42:28 +01:00
Michael Friedrich
c2bf4cca9f
Disable feature HA by default (InfluxDB, Graphite, Gelf, Elasticsearch, OpenTSDB, Perfdata)
2019-03-27 15:29:47 +01:00
Michael Friedrich
06eacd13ab
Also apply buffer flush fix for Elasticsearch feature
2019-03-27 11:35:41 +01:00
Michael Friedrich
cb3729bc6a
InfluxDB: Flush only if there's data in the buffer
...
Regression from 2.10.4
2019-03-27 11:26:00 +01:00
Michael Friedrich
27a41804fc
Elasticsearch: Change Content-Type header to 'application/x-ndjson' for bulk streams
...
fixes #6609
2019-03-20 10:13:38 +01:00
Michael Friedrich
424929e66a
Improve logging of OpenTsdbWriter
2019-03-19 09:39:14 +01:00
Michael Friedrich
acf62d487e
Improve logging of GelfWriter
2019-03-19 09:39:14 +01:00
Michael Friedrich
783a4c832c
Improve logging of ElasticsearchWriter
2019-03-19 09:39:14 +01:00
Michael Friedrich
aa93c382e1
Improve logging of InfluxdbWriter
2019-03-19 09:39:14 +01:00
Michael Friedrich
82dcb3965b
Improve logging of GraphiteWriter
2019-03-19 09:39:09 +01:00
Michael Friedrich
816a935b3d
Elasticsearch: Improve error handling/logging
...
- Missing content-type
- Wrong content-type shouldn't hide the error message
- Error message should include more details (request URL, etc.)
2019-03-18 16:41:01 +01:00
Alexander A. Klimov
b2e2b587da
ElasticsearchWriter: don't leak sockets
...
refs #7018
2019-03-18 15:09:07 +01:00