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
Gunnar Beutner
dd7862f08a
Add missing freeReplyObject calls
...
refs #4991
2017-03-16 15:09:41 +01:00
Gunnar Beutner
62c1a64788
Merge DEL queries into one query
...
refs #4991
2017-03-16 15:09:41 +01:00
Gunnar Beutner
00eba25ad7
Add ASSERTs for the Redis queries
...
refs #4991
2017-03-16 15:09:41 +01:00
Gunnar Beutner
f862923dc7
Remove some log messages
...
refs #4991
2017-03-16 15:09:41 +01:00
Gunnar Beutner
18e6474f1e
Make sure all Redis tasks are executed on the WQ threads
...
refs #4991
2017-03-16 14:23:31 +01:00
Gunnar Beutner
3a5caf15eb
Remove redundant check
...
refs #4991
2017-03-16 13:58:35 +01:00
Gunnar Beutner
04be7a1f1e
Implement event handlers for config and status updates
...
fixes #5072
fixes #5073
refs #4991
2017-03-16 13:58:31 +01:00
Gunnar Beutner
df05e24d52
Fix attribute type filter
...
refs #4991
2017-03-16 13:58:28 +01:00
Gunnar Beutner
0eada26b04
Only export config objects to Redis
...
refs #4991
2017-03-16 13:58:23 +01:00
Michael Friedrich
e5c0295c9e
Redis: First attempt of a reconnect config dump
...
refs #5072
refs #4991
2017-03-16 13:58:18 +01:00
Gunnar Beutner
96b3c7d90b
Get rid of event IDs for Redis
...
fixes #5067
2017-03-15 15:10:58 +01:00
Gunnar Beutner
1cab2d7b16
Fix incorrect handling for SCAN results
...
fixes #5065
2017-03-15 14:55:41 +01:00
Gunnar Beutner
4da5f7d52c
Add another log message
...
refs #4991
2017-03-15 14:55:37 +01:00
Gunnar Beutner
a21da31ef6
Add missing free call
...
refs #4991
2017-03-15 14:55:19 +01:00
Gunnar Beutner
34c69d9556
Only send events to Redis when there is at least one subscriber
...
refs #4991
2017-03-14 15:19:02 +01:00
Gunnar Beutner
10ddcbe4d3
Implement support for expiring subscriptions
...
refs #4991
2017-03-14 15:19:02 +01:00
Michael Friedrich
3e98e3fb2c
Better error handling and fixes
...
refs #4991
2017-03-14 15:18:39 +01:00
Michael Friedrich
d3e3159e6b
Implement event subscriptions
...
refs #4991
2017-03-14 14:47:06 +01:00
Michael Friedrich
a8587f5697
Ensure to check the auth command return value
...
refs #4991
2017-03-14 14:46:58 +01:00
Gunnar Beutner
b3e727e1e7
Fix spelling mistake
...
refs #4991
2017-02-21 11:38:50 +01:00
Rune Darrud
e6ae582104
Add a log message for RedisWriter on start and stop
...
fixes #5006
Signed-off-by: Gunnar Beutner <gunnar.beutner@icinga.com>
2017-02-15 14:33:04 +01:00
Gunnar Beutner
6d620e75ed
Improve reconnect behavior for the RedisWriter class
...
refs #4991
2017-02-13 14:21:13 +01:00
Gunnar Beutner
8ad567ce99
Implement UNIX domain socket support for the RedisWriter class
...
refs #4991
2017-02-13 14:21:13 +01:00
Gunnar Beutner
31650b0beb
Add RedisWriter class
...
refs #4991
2017-02-09 16:40:11 +01:00