Commit Graph

24 Commits

Author SHA1 Message Date
Alexander Aleksandrovič Klimov b2c3ff6b27
Merge pull request #8638 from Icinga/feature/icingadb-multi-conns
Icinga DB: use one Redis connection per config object type
2021-06-23 18:01:04 +02:00
Alexander A. Klimov d1e15a220c Icinga DB: use one Redis connection per config object type 2021-06-08 17:52:04 +02:00
Julian Brost 9f6cbc38f2
Merge pull request #8754 from Icinga/feature/icingadb-replace-lua-with-xadd-maxlen
Icinga DB: Use XADD ... MAXLEN 1 instead of a custom Lua script
2021-06-04 13:52:30 +02:00
Noah Hilverling 4005d81a43 Icinga DB: Sync state using runtime updates 2021-05-07 08:41:38 +02:00
Julian Brost a5dc52dea5 IcingaDB: use XADD MAXLEN instead of custom Lua script for heartbeats
The existing Lua script adds a new entry to a stream and then deletes all older
entries. The same can be achieved by using `XADD ... MAXLEN 1`.
2021-05-03 17:21:11 +02:00
Noah Hilverling aca8d063dc Icinga DB: Change redis key prefix to 'icinga:*' 2021-04-27 21:27:46 +02:00
Julian Brost 41f7124692 Icinga DB: cache environment ID instead of recomputing it every time 2021-03-23 17:09:32 +01:00
Alexander A. Klimov ed57d31400 Icinga DB: HMSET the same fields only once 2021-02-24 13:37:36 +01:00
Julian Brost 2d080f14eb IcingaDB: start initial dump in callback instead of timer
Previously, the initial config dump was started in a timer executed
every 15 seconds. During the first execution of the timer, the Redis
connection is typically not established yet. Therefore, this delayed the
initial sync by up to 15 seconds.

This commit instead triggers the sync from a callback that is executed
after the connection is successfully established.

The timer is removed completely. On first glance, it looks like it would
ensure that a lost connection is reestablished, but this is handled
internally by RedisConnection. After the config has been dumped once,
that timer wouldn't ever attempt a reconnect anyways.
2021-01-20 09:31:27 +01:00
Alexander A. Klimov fc72cca70e Icinga DB: don't use the work queue for publishing stats 2020-05-15 11:17:25 +02:00
Alexander A. Klimov ff0efbc2a2 Drop IcingaDB#HandleEvents() 2020-03-04 14:37:17 +01:00
Alexander A. Klimov 54d555bd92 Drop IcingaDB#SendEvent() 2020-03-04 14:36:43 +01:00
Alexander A. Klimov 867481de7c Connect IcingaDB::StateChangeHandler to Checkable::OnAcknowledgementSet instead of calling it in IcingaDB#SendEvent() 2020-03-04 14:36:07 +01:00
Alexander A. Klimov efa548fbdf Connect IcingaDB::UpdateState to Checkable::OnNewCheckResult instead of calling it in IcingaDB#SendEvent() 2020-03-04 14:34:43 +01:00
Alexander A. Klimov f6f7d9b635 IcingaDB: suppress state sync until config sync finished 2019-12-18 13:41:56 +01:00
Noah Hilverling 5b8b777691 IcingaDB: Add timestamp to stats stream 2019-12-05 10:34:41 +01:00
Alexander A. Klimov 416e1d72bf IcingaDB#PublishStats(): make icinga:stats a stream 2019-12-03 12:01:13 +01:00
Alexander A. Klimov e391c0e7b5 RedisConnection: introduce extensible priorities 2019-12-02 17:21:00 +01:00
Alexander A. Klimov ba6550dc58 IcingaDB: get rid of icinga:{subscription,event}* 2019-11-27 11:42:09 +01:00
Michael Friedrich 9d9804d50a Styleguide for IcingaDB 2019-11-02 18:01:31 +01:00
Michael Friedrich 904f2ce7d4 IcingaDB: Silence some developer logging 2019-11-02 15:47:51 +01:00
Michael Friedrich 61d9130dd0 Fix Copyright headers 2019-11-02 14:00:24 +01:00
Alexander A. Klimov 071a1489aa PUBLISH to icinga:stats with high priority
refs #57
2019-11-02 14:00:24 +01:00
Alexander Aleksandrovič Klimov 13ab7eb609 Rename redis to icingadb 2019-11-02 14:00:24 +01:00