92 Commits

Author SHA1 Message Date
Michael Friedrich
3ce8f5599e Fix missing object locks 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
413e351805 RedisWriter: dump custom vars verbosely 2019-11-02 14:00:23 +01:00
Michael Friedrich
e4355f27c9 Send zone_checksum globally, if 'zone' attribute is set 2019-11-02 14:00:23 +01:00
Jean Flach
a4b0f9125e Only sync zone_checksum when object in zone 2019-11-02 14:00:23 +01:00
Jean Flach
85f621cb90 Add zone checksum for redis to checkables 2019-11-02 14:00:23 +01:00
Michael Friedrich
c5e913dfd4 Fix error handling for GetSubscriptionTypes() 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
50d83e850f RedisWriter: dump endpoints' zones' identifiers (zone_checksum) 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
550e385b9e RedisWriter: fix checksums of disappeared config objects not being deleted 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
d15769fa34 RedisWriter: fix disappeared config objects not being deleted 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
e7411ea158 RedisWriter#UpdateAllConfigObjects(): use one transaction per config object type 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
1ad9c80143 RedisWriter: sync all config objects atomically 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
c92827fa5e RedisWriter: dump monitored objects' groups' identifiers (group_checksums) 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
724ce1f172 RedisWriter: dump also environment_checksum (per config object) 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
4eee9572ab RedisWriter: identify config objects by SHA1(PackObject([Environment, __name])) 2019-11-02 14:00:23 +01:00
Michael Friedrich
fae5b88e48 Add all stats similar to /v1/status 2019-11-02 14:00:23 +01:00
Michael Friedrich
d7f6d7994b Move stats into a separate file 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
3229982bee RedisWriter: compute name_checksum as expected 2019-11-02 14:00:23 +01:00
Alexander A. Klimov
f05a5eecc2 Centralize identifier computation 2019-11-02 14:00:23 +01:00
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