110 Commits

Author SHA1 Message Date
Noah Hilverling
07145d2e61
Merge pull request #8913 from Icinga/feature/remove-child-downtimes
API Action "remove-downtime": Also remove child downtimes
2021-07-27 18:02:15 +02:00
Noah Hilverling
7217959206 API Action 'remove-downtime': Also remove child downtimes 2021-07-23 13:53:44 +02:00
Alexander A. Klimov
50bc7a7f3d Icinga DB: HDEL also icinga:checksum:*, not only icinga:* 2021-07-22 14:13:12 +02:00
Alexander A. Klimov
e6a9631a02 Icinga DB: silence WorkQueue performance 2021-07-16 18:50:41 +02:00
Alexander Aleksandrovič Klimov
bad8059969
Merge pull request #8761 from Icinga/feature/icingadb-perfdata
Icinga DB: introduce icinga:*:state#normalized_performance_data
2021-07-07 12:29:21 +02:00
Noah Hilverling
ef73136076
Merge pull request #8830 from Icinga/feature/idb-passive-overdue
Icinga DB: no active checks? Not overdue!
2021-07-07 11:15:04 +02:00
Alexander A. Klimov
9d1a112edf Icinga DB: introduce icinga:*:state#normalized_performance_data 2021-07-05 19:05:32 +02:00
Alexander Aleksandrovič Klimov
b07d181c4a
Merge pull request #8631 from Icinga/feature/icingadb-scheduleddowntime
Icinga DB: introduce icinga:downtime#scheduled_by
2021-06-30 19:03:53 +02:00
Alexander Aleksandrovič Klimov
00af435c13
Merge pull request #8725 from Icinga/bugfix/icingadb-serialize-leaves
Icinga DB: serialize icinga:config:checkcommand:argument#value and #set_if as expected
2021-06-29 17:51:41 +02:00
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
190e2f8fd9 Icinga DB: introduce icinga:downtime#scheduled_by 2021-06-23 16:49:19 +02:00
Julian Brost
b8218a3c0e IcingaDB::UpdateAllConfigObjects: explicitly capture variables in lambda 2021-06-15 11:52:53 +02:00
Alexander A. Klimov
9c567c0bde Icinga DB: no active checks? Not overdue! 2021-06-08 19:17:03 +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
8150b0656e
Merge pull request #8764 from Icinga/bugfix/icingadb-change-id-fields-to-match-sql-schema
Icinga DB: Change ID fields to match SQL schema
2021-05-20 10:44:55 +02:00
Noah Hilverling
898e7fdf35 Icinga DB: Change ID fields to match SQL schema 2021-05-19 17:01:08 +02:00
Noah Hilverling
fb89c88ca9 Icinga DB: Replace global keys spacer '_' with ':' to fit new schema 2021-05-18 08:58:52 +02:00
Eric Lippmann
c0cbc4533c Fix group member keys 2021-05-07 08:41:38 +02:00
Noah Hilverling
4005d81a43 Icinga DB: Sync state using runtime updates 2021-05-07 08:41:38 +02:00
Noah Hilverling
ab04a4ee98 Icinga DB: Sync runtime updates using streams 2021-05-07 08:41:38 +02:00
Julian Brost
9dd210df84 IcingaDB: use XADD MAXLEN instead of custom Lua script for dump signals
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:01 +02:00
Alexander A. Klimov
f5abec20cf Icinga DB: serialize icinga:config:checkcommand:argument#value and #set_if as expected
I.e. keep the serializations as simple as possible:

null     => null
true     => true
42.0     => 42
"foobar" => foobar
{{42}}   => Object of type 'Function'

(["foobar"] and {"foo"="bar"} can't occur there.)
2021-04-30 15:48:47 +02:00
Eric Lippmann
b08b30ee80
Merge pull request #8684 from Icinga/feature/icingadb-signals-for-all-types
IcingaDB: Add dump signals for type dependencies and global keys and change signal pattern
2021-04-27 21:26:52 +02:00
Noah Hilverling
60412dd991 Icinga DB: Add dump signals for type dependencies and global keys 2021-04-27 12:32:14 +02:00
Alexander Aleksandrovič Klimov
7f5225ecaa
Merge pull request #8706 from Icinga/bugfix/icingadb-endpoint-zone
Icinga DB: dump the correct icinga:config:endpoint#zone_id
2021-04-26 11:31:51 +02:00
Alexander A. Klimov
7dcf48f707 Icinga DB: dump the correct icinga:config:endpoint#zone_id 2021-03-26 13:53:31 +01: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
31dacb8390 IcingaDB#UpdateAllConfigObjects(): don't modify map concurrently 2021-03-08 18:11:24 +01:00
Julian Brost
a4cf81194a
Merge pull request #8650 from Icinga/feature/icingadb-delta
Icinga DB: re-insert only changed object attributes
2021-03-08 15:11:21 +01:00
Alexander A. Klimov
4eddac0e64 Icinga DB: re-insert only changed object attributes 2021-03-04 17:29:39 +01:00
Alexander Aleksandrovič Klimov
618c778430
Merge pull request #8649 from Icinga/bugfix/icingadb-deduplicate-cvs
Icinga DB: HMSET the same fields only once
2021-03-03 16:57:27 +01:00
Alexander A. Klimov
ed57d31400 Icinga DB: HMSET the same fields only once 2021-02-24 13:37:36 +01:00
Alexander A. Klimov
d4a91ec50d Icinga DB: don't write all types 2021-02-17 12:41:45 +01:00
Alexander Aleksandrovič Klimov
b1719883a3
Merge pull request #8604 from Icinga/bugfix/icingadb-initial-sync-delay
IcingaDB: start initial dump in callback instead of timer
2021-01-21 13:47:12 +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
Julian Brost
174f7f75a8 IcingaDB: wait for queries to be executed in inital sync
This delays the log message stating that the initial dump is done until
all queries are actually done and now logs a meaningful duration. In
addition, this delays the return of the function and therefore when
state variables are updated by the caller.
2021-01-19 17:14:42 +01:00
Yonas Habteab
5b0bbd6351 IcingaDB: Check whether or not cr is nullptr 2021-01-18 11:38:31 +01:00
Alexander A. Klimov
35f25e99b4 IcingaDB::SerializeState(): include whether an ack is sticky 2020-04-20 14:53:55 +02:00
Noah Hilverling
595ffc438e Icinga DB - Flapping history: Add percent_state_change_start/end 2020-03-10 14:44:08 +01:00
Noah Hilverling
5ec31aed14 Downtime, Comment, Notification: Add host_id, if object_type is service 2020-03-09 10:50:02 +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
0d58f87b37 IcingaDB: make signal handlers synchronous
refs #7885
2020-03-04 11:09:35 +01:00
Michael Insel
5930d640e4 IcingaDB: Fix enumeral mismatch compiler warnings
This fixes 3 enumeral mismatch compiler warnings when building the
IcingaDB target.
2020-02-10 18:56:11 +01:00
Noah Hilverling
b77bc7b963 IcingaDB: Fix last_update 2020-01-29 14:43:29 +01:00
Noah Hilverling
0d28ef5abe IcingaDB::UpdateState: Check for Redis connection before calling FireAndForgetQuery() 2020-01-17 13:53:05 +01:00
Noah Hilverling
cbe1c181a1 IcingaDB: Fix rescheduling check not always updating state in Redis
fixes #7707
2020-01-16 10:51:56 +01:00
Noah Hilverling
6575ce920e
Merge pull request #7721 from Icinga/bugfix/icingadb-pending
IcingaDB: suppress state sync until config sync finished
2020-01-08 17:30:22 +01:00
Noah Hilverling
275ab08303 IcingaDB - Runtime updates: Use one pub/sub channel per config object type 2020-01-07 16:40:29 +01:00