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
Noah Hilverling
aca8d063dc
Icinga DB: Change redis key prefix to 'icinga:*'
2021-04-27 21:27:46 +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 Aleksandrovič Klimov
ca9ce92b69
Merge pull request #8698 from Icinga/feature/icingadb-cache-environment-id
...
Icinga DB: cache environment ID instead of recomputing it every time
2021-03-26 17:16:42 +01:00
Alexander A. Klimov
7dcf48f707
Icinga DB: dump the correct icinga:config:endpoint#zone_id
2021-03-26 13:53:31 +01:00
Noah Hilverling
5c8b32618c
RedisConnection::WriteRESP: Use one asio::async_write instead of many
2021-03-24 13:14:01 +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
ca52366a61
Merge pull request #8602 from Icinga/bugfix/icingadb-activation-priority
...
Delay start of IcingaDB until most config objects are activated
2021-01-28 10:01:37 +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
Julian Brost
509db4ab94
Delay start of IcingaDB until most config objects are activated
...
This commit sets the activation priority if IcingaDB objects to 100 (the
same value as IDO uses) so that it get's activated after most regular
config objects (hosts, services, ...).
Before (note how Icinga 2 continues to active objects for over a minute
after IcingaDB is started and thinks the initial dump is done):
[2021-01-19 08:33:19 +0000] information/IcingaDB: 'icingadb' started.
[2021-01-19 08:34:02 +0000] information/IcingaDB: Initial config/status dump finished in 28.247 seconds.
[2021-01-19 08:35:49 +0000] information/ConfigItem: Activated all objects.
After (now activation of objects is done right after IcingaDB is
started, as it's one of the last objects to be activated):
[2021-01-19 08:39:01 +0000] information/IcingaDB: 'icingadb' started.
[2021-01-19 08:39:02 +0000] information/ConfigItem: Activated all objects.
[2021-01-19 08:39:38 +0000] information/IcingaDB: Initial config/status dump finished in 21.6606 seconds.
2021-01-19 09:45:47 +01:00
Yonas Habteab
5b0bbd6351
IcingaDB: Check whether or not cr is nullptr
2021-01-18 11:38:31 +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
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
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
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
Alexander Aleksandrovič Klimov
f11cccf874
Merge pull request #7760 from Icinga/bugfix/icingadb-manually-rescheduling-a-check-does-not-update-next_update-and-next_check-7707
...
IcingaDB: Fix rescheduling a check not always updating state in Redis
2020-01-16 11:58:28 +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
Michael Friedrich
8f5375d2bb
Use IoEngine::Spawn wrapper in RedisConnection class
...
This avoids multiple locations for `asio::spawn` calls.
2020-01-16 09:53:24 +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
Alexander A. Klimov
f6f7d9b635
IcingaDB: suppress state sync until config sync finished
2019-12-18 13:41:56 +01:00
Michael Friedrich
387c2c8b79
Merge pull request #7717 from Icinga/bugfix/redisconnection-shared_ptr
...
RedisConnection: replace std::shared_ptr<T> with Shared<T>::Ptr
2019-12-18 13:32:16 +01:00
Michael Friedrich
cbbff6b37d
Merge pull request #7716 from Icinga/bugfix/redisconnection-long-logs
...
RedisConnection: shorten log messages
2019-12-18 13:31:51 +01:00
Alexander A. Klimov
de5b3eb2c7
RedisConnection: replace std::shared_ptr<T> with Shared<T>::Ptr
2019-12-17 12:13:30 +01:00
Alexander A. Klimov
955b612703
RedisConnection: shorten log messages
2019-12-17 11:49:54 +01:00
Alexander A. Klimov
b1cc0cd767
Document RedisConnection
2019-12-17 11:44:00 +01:00
Alexander A. Klimov
c6ea9bc7fe
IcingaDB: update icinga:nextupdate:* on Checkable#next_check changes
...
refs #7707
2019-12-10 16:11:51 +01:00
Noah Hilverling
77e02031f9
Merge pull request #7690 from Icinga/feature/flapping-acknowledgement-start-time-7689
...
IcingaDB: include consistent IDs, start time and end time in icinga:history:stream:{flapping,acknowledgement}
2019-12-10 14:49:17 +01:00
Noah Hilverling
ee40fedb2a
Merge pull request #7700 from Icinga/bugfix/icingadb-don-t-hash-hashes-7692
...
IcingaDB: don't hash hashes
2019-12-10 13:39:12 +01:00
Alexander A. Klimov
78189d70ef
IcingaDB: don't hash hashes
...
refs #7692
2019-12-10 11:23:05 +01:00
Alexander A. Klimov
d69cb676a7
Introduce IcingaDB#GetObjectIdentifiersWithoutEnv()
...
refs #7692
2019-12-10 11:22:35 +01:00
Alexander A. Klimov
4f68cfd299
IcingaDB: include consistent IDs, start time and end time in icinga:history:stream:{flapping,acknowledgement}
...
refs #7689
2019-12-10 10:44:26 +01:00
Alexander A. Klimov
829d07aefe
Introduce Checkable#acknowledgement_last_change
...
refs #7689
2019-12-10 10:44:23 +01:00
Noah Hilverling
e8f352f4d7
IcingaDB history: Add cancelled_by & removed_by to downtime & comment history
2019-12-09 10:30:52 +01:00
Noah Hilverling
f0b8892e4a
Merge pull request #7676 from Icinga/feature/icingadb-localendpoint-id
...
IcingaDB#GetStats(): add endpoint_id to IcingaApplication
2019-12-06 16:59:36 +01:00
Noah Hilverling
5e23414197
Merge pull request #7699 from Icinga/bugfix/icingadb-hash-arrays-7691
...
Get rid of IcingaDB#CalculateCheckSum*()
2019-12-06 16:37:24 +01:00
Alexander A. Klimov
e109063333
IcingaDB#GetStats(): add endpoint_id to IcingaApplication
2019-12-06 15:52:47 +01:00
Alexander A. Klimov
783586978f
Get rid of IcingaDB#CalculateCheckSumProperties()
...
refs #7691
2019-12-06 11:25:41 +01:00
Alexander A. Klimov
9a678dce8e
Get rid of IcingaDB#CalculateCheckSumVars()
...
refs #7691
2019-12-06 11:24:33 +01:00
Alexander A. Klimov
b5ada44330
Get rid of IcingaDB#CalculateCheckSumMetadata()
...
refs #7691
2019-12-06 11:23:13 +01:00
Alexander A. Klimov
c91154a14c
Get rid of IcingaDB#CalculateCheckSumString()
...
refs #7691
2019-12-06 10:54:11 +01:00
Alexander A. Klimov
6fc4efccc7
Get rid of IcingaDB#CalculateCheckSumArray()
...
refs #7691
2019-12-06 10:47:48 +01:00
Alexander Aleksandrovič Klimov
202e90b626
Merge pull request #7693 from Icinga/feature/icingadb-remove-unnecessar-service-host-ids
...
IcingaDB: Remove unnecessary service_/host_ids
2019-12-05 15:04:52 +01:00
Noah Hilverling
5b8b777691
IcingaDB: Add timestamp to stats stream
2019-12-05 10:34:41 +01:00
Noah Hilverling
71ef1de964
Merge pull request #7667 from Icinga/feature/icingadb-acks-history
...
IcingaDB: populate icinga:history:stream:acknowledgement
2019-12-05 09:20:36 +01:00
Noah Hilverling
3e832900f6
IcingaDB: Remove unnecessary service_/host_ids
2019-12-05 07:35:05 +01:00
Alexander A. Klimov
04e13e784d
IcingaDB: populate icinga:history:stream:acknowledgement
2019-12-04 15:02:14 +01:00
Noah Hilverling
92e51a3f87
Merge pull request #7684 from Icinga/bugfix/is_handled-host-down-7673
...
IcingaDB: update service state on Host#problem change
2019-12-04 14:43:09 +01:00
Alexander Aleksandrovič Klimov
5d40a71f8b
Merge pull request #7669 from Icinga/feature/icingadb-notification-recipients
...
IcingaDB: Add notification recipients
2019-12-04 11:00:53 +01:00
Noah Hilverling
ea6e937760
IcingaDB: Add notification recipients
2019-12-04 10:10:36 +01:00
Alexander A. Klimov
5c45c198ff
IcingaDB#SerializeState(): correct Checkable#is_{problem,handled}
...
refs #7673
2019-12-03 17:44:48 +01:00
Alexander A. Klimov
798c56b809
IcingaDB: update service state on Host#problem change
...
refs #7673
2019-12-03 17:37:51 +01:00
Alexander A. Klimov
ea5403a55c
Extend Checkable::OnAcknowledgementCleared by removedBy
2019-12-03 17:00:54 +01:00
Noah Hilverling
b84ceccfb7
Merge pull request #7662 from Icinga/feature/icingadb-overdue
...
IcingaDB: populate icinga:nextupdate:*
2019-12-03 15:38:17 +01:00
Noah Hilverling
2af6f24fc4
Merge pull request #7678 from Icinga/feature/icingadb-stats-stream
...
IcingaDB#PublishStats(): make icinga:stats a stream
2019-12-03 12:53:40 +01:00
Noah Hilverling
355973d600
Merge pull request #7656 from Icinga/bugfix/icingadb-command-arg-value-null
...
IcingaDB: don't always set icinga:config:*command:{argument,envvar}#value
2019-12-03 12:53:03 +01:00
Alexander A. Klimov
416e1d72bf
IcingaDB#PublishStats(): make icinga:stats a stream
2019-12-03 12:01:13 +01:00
Alexander A. Klimov
c01c22ae76
IcingaDB: don't always set icinga:config:*command:{argument,envvar}#value
2019-12-03 11:57:21 +01:00
Alexander A. Klimov
df7184ad64
IcingaDB: populate icinga:nextupdate:*
2019-12-02 17:21:03 +01:00
Alexander A. Klimov
e391c0e7b5
RedisConnection: introduce extensible priorities
2019-12-02 17:21:00 +01:00
Alexander Aleksandrovič Klimov
d2d48a2120
Merge pull request #7674 from Icinga/feature/icingadb-remove-unused-checksums
...
IcingaDB: Remove unused checksums
2019-12-02 16:38:28 +01:00
Noah Hilverling
1b60419a1b
Merge pull request #7677 from Icinga/bugfix/icingadb-add-ack-comment
...
IcingaDB#SendAddedComment(): suppress ack comments
2019-12-02 16:09:25 +01:00
Alexander A. Klimov
e7aa021bd8
IcingaDB#SendAddedComment(): suppress ack comments
2019-12-02 16:06:11 +01:00
Noah Hilverling
8b6c3bdc92
Merge pull request #7660 from Icinga/bugfix/icingadb-subscription
...
IcingaDB: get rid of icinga:{subscription,event}*
2019-12-02 10:31:53 +01:00
Noah Hilverling
66eafd6ad2
IcingaDB: Remove unused checksums
2019-12-02 09:28:04 +01:00
Alexander A. Klimov
10c1d0e4c8
IcingaDB: don't always set Comment#expire_time
2019-11-27 15:58:19 +01:00
Noah Hilverling
ce4409d1d2
Merge pull request #7657 from Icinga/feature/icingadb-host_id
...
IcingaDB: always set *#host_id
2019-11-27 14:38:22 +01:00
Noah Hilverling
0652aa0a6f
Merge pull request #7652 from Icinga/bugfix/icingadb-output-null
...
IcingaDB#SendStatusUpdate(): don't always set icinga:history:stream:state#{,long_}output
2019-11-27 14:29:26 +01:00
Alexander A. Klimov
ba6550dc58
IcingaDB: get rid of icinga:{subscription,event}*
2019-11-27 11:42:09 +01:00
Alexander A. Klimov
0671d19e12
Notification_history: Rename event_time to send_time
2019-11-26 18:13:31 +01:00
Alexander A. Klimov
1bee5425b9
IcingaDB: always set icinga:history:stream:*#host_id
2019-11-26 17:36:14 +01:00
Noah Hilverling
ed1cede0a7
Merge pull request #7646 from Icinga/feature/remove-comment-author
...
/v1/actions/remove-comment: let users specify themselves
2019-11-26 16:07:09 +01:00
Noah Hilverling
8a14f0e6f7
Merge pull request #7643 from Icinga/bugfix/icingadb-recover
...
IcingaDB: handle Redis restarts
2019-11-26 16:05:04 +01:00
Noah Hilverling
a98c5e965c
Merge pull request #7645 from Icinga/feature/remove-downtime-author
...
/v1/actions/remove-downtime: let users specify themselves
2019-11-26 15:41:44 +01:00
Alexander A. Klimov
95f13d864f
IcingaDB#SendStatusUpdate(): don't always set icinga:history:stream:state#{,long_}output
2019-11-26 14:28:14 +01:00
Alexander A. Klimov
e522db20b1
RedisConnection#Connect(): don't give up
2019-11-26 14:16:39 +01:00
Alexander A. Klimov
407d6c0219
IcingaDB#SendStatusUpdate(): avoid CheckResult::Ptr(nullptr)->GetCheckSource()
2019-11-25 17:15:47 +01:00
Alexander A. Klimov
d84efecb62
/v1/actions/remove-comment: let users specify themselves
2019-11-21 15:53:40 +01:00
Alexander A. Klimov
a361bf716e
/v1/actions/remove-downtime: let users specify themselves
2019-11-21 15:48:55 +01:00
Alexander A. Klimov
e7ce71095a
IcingaDB: handle Redis restarts
2019-11-21 12:55:01 +01:00
Noah Hilverling
c8935bf14f
IcingaDB: Update Redis port to use Icinga-Redis
2019-11-21 09:59:21 +01:00
Noah Hilverling
b6db34747a
IcingaDB: Remove redundant last_{hard/soft}_state
2019-11-14 10:57:11 +01:00
Noah Hilverling
fa892b613d
Merge pull request #7608 from Icinga/bugfix/icinga-history-stream-downtime
...
IcingaDB: avoid duplicates in icinga:history:stream:downtime
2019-11-12 11:40:45 +01:00
Noah Hilverling
4ea236aa64
IcingaDB: Fix state on unchecked objects
2019-11-11 15:28:16 +01:00
Alexander A. Klimov
1e2739aed6
IcingaDB::NotificationSentToAllUsersHandler(): copy set once, not N*(1+M) times
2019-11-07 17:23:48 +01:00
Noah Hilverling
42f959874e
IcingaDB: Add user notification history
2019-11-07 15:57:31 +01:00
Alexander A. Klimov
592872a6c3
IcingaDB: avoid duplicates in icinga:history:stream:downtime
2019-11-06 10:41:54 +01:00
Alexander A. Klimov
4e8584ee9e
IcingaDB: correct icinga:history:stream:state#{,last_}soft_state and icinga:history:stream:notification#state for hosts
2019-11-04 16:40:04 +01:00
Alexander A. Klimov
6c7a9eb651
IcingaDB#SendStatusUpdate(): add icinga:history:stream:state#previous_soft_state
2019-11-04 12:59:57 +01:00
Michael Friedrich
9d9804d50a
Styleguide for IcingaDB
2019-11-02 18:01:31 +01:00
Michael Friedrich
631a4ee9fa
Fix header guards
2019-11-02 17:24:34 +01:00
Michael Friedrich
904f2ce7d4
IcingaDB: Silence some developer logging
2019-11-02 15:47:51 +01:00
Michael Friedrich
36d18ed23a
IcingaDB: Log where we are connecting to
2019-11-02 15:47:46 +01:00
Michael Friedrich
9235246985
Fix rebase against master branch
2019-11-02 14:18:20 +01:00
Michael Friedrich
61d9130dd0
Fix Copyright headers
2019-11-02 14:00:24 +01:00
Michael Friedrich
f9b3e88bbb
Fix non-unity builds
2019-11-02 14:00:24 +01:00
Noah Hilverling
b65e5f5547
IcingaDB/Comment: Add is_sticky
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 A. Klimov
67909210a6
RedisConnection: introduce high-priority queue
...
refs #57
2019-11-02 14:00:24 +01:00
Noah Hilverling
91ecfc35cf
Ensure that execution_time never goes below 0
2019-11-02 14:00:24 +01:00
Noah Hilverling
4e43c766ca
Improve CommentHistory
2019-11-02 14:00:24 +01:00
Noah Hilverling
6a7e83a5e6
Improve Downtime & DowntimeHistory
2019-11-02 14:00:24 +01:00
Noah Hilverling
0aa885573d
Fix notification history not setting text if notification is triggered by checkresult
2019-11-02 14:00:24 +01:00
Noah Hilverling
4a43dd1ce6
Rename event_type state to state_change
2019-11-02 14:00:24 +01:00
Noah Hilverling
5eb1c42a28
History: Use same names for event_time and event_type
2019-11-02 14:00:24 +01:00
Alexander Aleksandrovič Klimov
13ab7eb609
Rename redis to icingadb
2019-11-02 14:00:24 +01:00