Commit Graph

74 Commits

Author SHA1 Message Date
Alexander A. Klimov a5aef627f8 RedisWriter: use __name as object key 2019-11-02 14:00:23 +01:00
Alexander A. Klimov 3ea3b2ba27 RedisWriter: checksum package, source_location and templates separately in metadata_checksum 2019-11-02 14:00:23 +01:00
Alexander A. Klimov e980485e23 RedisWriter: Explicitly checksum Zone#endpoints 2019-11-02 14:00:23 +01:00
Alexander A. Klimov dcdf6b8a44 RedisWriter: Exclude explicitly checksummed properties from properties_checksum 2019-11-02 14:00:23 +01:00
Alexander A. Klimov dc73db01b8 RedisWriter: use one checksum algo for everything 2019-11-02 14:00:23 +01:00
Alexander A. Klimov b32b81d957 RedisWriter: Pack objects consistently for hashing 2019-11-02 14:00:23 +01:00
Michael Friedrich 60a5a14aa2 Checksums 2019-11-02 14:00:23 +01:00
Michael Friedrich 79f06a90d4 WIP 2019-11-02 14:00:23 +01:00
Michael Friedrich 782486ce9c Ensure that arrays are sorted for checksum calculation 2019-11-02 14:00:23 +01:00
Michael Friedrich 26a2095426 Implement config object check sums, shot one 2019-11-02 14:00:23 +01:00
Michael Friedrich 8c38c7eddc Ensure that type names are lower cases for Redis lookups 2019-11-02 14:00:23 +01:00
Michael Friedrich 33a00e4b5a Move UpdateObjectAttrs into the objects scope 2019-11-02 14:00:23 +01:00
Michael Friedrich f715d479e7 Rename source file 2019-11-02 14:00:23 +01:00
Michael Friedrich ddf2aea065 Compile redis into the icinga2 binary; apply more C++11 code changes 2019-11-02 14:00:23 +01:00
Michael Friedrich 61edfcb68d Apply code style 2019-11-02 14:00:23 +01:00
Jean Flach 5eab856673 Publish events to one enpoint 2019-11-02 14:00:23 +01:00
Jean Flach c8561676ec Add limit for subscriptions 2019-11-02 14:00:23 +01:00
Gunnar Beutner f631bf8cb5 Use sets for subscriptions
refs #5656
2019-11-02 14:00:23 +01:00
Gunnar Beutner 06211c3ac7 Implement support for the new config/state schema
fixes #5671
2019-11-02 14:00:23 +01:00
Gunnar Beutner 1725038ca8 Implement pipelining support for Redis queries
fixes #5670
2019-11-02 14:00:23 +01:00
Jean Flach 7c8412928e Subscriptions
fixes #5656
2019-11-02 14:00:23 +01:00
Jean Flach 1ada53dd57 Trim event queue
TODO: make configurable

refs #5119
2019-11-02 14:00:23 +01:00
Gunnar Beutner b6c86f98ec Clean up the code a bit 2019-11-02 14:00:23 +01:00
Gunnar Beutner fff1049ba0 Ensure that the WorkQueue name is set 2019-11-02 14:00:23 +01:00
Gunnar Beutner b75e21a998 Redis support (WIP) 2019-11-02 14:00:23 +01:00
Michael Friedrich 6397fedc3d Remove experimental redis feature before 2.7 release 2017-06-20 11:52:24 +02:00
Michael Friedrich d7b939d99b Redis: Dump severity field to icinga:{host,service}state
refs #5117
2017-04-20 16:48:00 +02:00
Michael Friedrich 17615ac444 Redis: Dump host and service state events
fixes #5163
2017-04-12 16:58:08 +02:00
Thomas Gelf ed2ebdf0d0 RedisWriter: publish Icinga 2 stats as a simple "keepalive"
Use case: a reader subscribes to config changes. As they happen rarely, chances
are good that the connection will time out in the meantime. Now, a reconnect is
easy - but you wouldn't know whether you missed any config changes. So you are
required to issue a new sync to be on the safe side. Given a 60sec connection
timeout (think: SSL layer, firewalls etc) when no traffic happens this would be
too expensive.

Some kind of a heartbeat available for subscription would allow subscribers to
artificially keep the connection alive. As a first simple solution to this I'd
suggest to publish CIB data, that might be useful anyways.

refs #4991
fixes #5098

Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
2017-03-29 10:17:03 +02:00
Michael Friedrich 2f84ff84b2 Fix object deletion on restart
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich f76f655dc1 Rename source file
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich af3e2c429f Add exception handler for Redis WorkQueue
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich a5556cbaae Add log message for config/status dump end for Redis
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich 91b8decaac Fix possible crash on startup status updates in Redis
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich 3310cc30ae Fix hash value for empty custom attributes
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 9de4c8bc58 Fix memory leak in RedisWriter::ExecuteQuery
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner dac9775b93 Add COUNT parameter for SCAN
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 28b2345a3b Updated remaining queries to use ExecuteQuery()
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 844e2bf68c Replace existing queries with ExecuteQuery() calls
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich fcd9e3666d Implement config dump/update/delete publishing; fix runtime created object creation
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 75bfd775b9 Implement RedisWriter::ExecuteQuery
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich f29a82bcfe Add properties and vars config checksums
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 6178ca3886 Use GetHostService() instead of casts
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 6b48a36192 Implement the db_index property for the RedisWriter class
fixes #5081
2017-03-29 10:17:03 +02:00
Gunnar Beutner 1bbdd082b0 Use transactions for the initial config and status updates
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner c64d296edb Make sure to use pretty-printed checksums in JSON blobs; remove semicolons
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 2d9be77260 Clean up the code a bit
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 2773d93d40 Update log message
refs #4991
2017-03-29 10:17:03 +02:00
Michael Friedrich 0b466aabc0 Start working on checksum config dump
refs #4991
2017-03-29 10:17:03 +02:00
Gunnar Beutner 94aeaa2e5c Don't use raw pointers in boost::bind
refs #4991
2017-03-16 15:33:59 +01:00