13465 Commits

Author SHA1 Message Date
Alexander A. Klimov
145ee890df Just get paths from existing objects for modification and deletion
instead of computing from scratch if they're in the _api package.

For now this changes literally nothing as paths of existing objects still follow
the scheme of paths of new objects which didn't change. Now Icinga only doesn't expect
existing objects at particular paths. However, with the latter in v2.14+ (agent,
satellite) we can just change the path scheme of new objects in v2.16+ (master)
as we wish. The child nodes will just follow the new scheme of paths of new objects.
2022-11-28 16:39:16 +01:00
Yonas Habteab
c1f73fbc1d FilterUtility: Replace some nested raw pointers by our unique_ptr<X>* 2022-11-28 14:50:54 +01:00
Yonas Habteab
834709543a ApplyRule: Make m_HasMatches atomic
This prevents the `m_HasMatches` property from being altered simultaneously.
This might seem harmless (since this property can only be set to true by any calling thread),
however, from a technical (C++) point of view, this constitutes a data race.
2022-11-28 14:13:58 +01:00
Alexander A. Klimov
eaa3cd83ad Influx DB: don't unneccessarily truncate timestamps to whole seconds
Instead send timestamps with the highest possible precision (ns).
Useful for check intervals <1s.
2022-11-28 12:27:01 +01:00
Julian Brost
ae32b3cbbd
Merge pull request #9586 from Icinga/9363
icinga2 daemon: write icinga2.debug only if --dump-objects given
2022-11-24 16:03:42 +01:00
Julian Brost
63199057d2
Merge pull request #9584 from Icinga/probot/sync-changelog/master/ea6cbb85afc20e5846eabcd17a93267ec4599aa9
CHANGELOG.md: add v2.13.6
2022-11-24 14:06:16 +01:00
Alexander A. Klimov
f71612d8f3 icinga2 object list: warn on possibly outdated config 2022-11-24 10:50:17 +01:00
Alexander Aleksandrovič Klimov
f855cfa155
Merge pull request #9593 from theFeu/patch-1
Change apt-get to apt
2022-11-23 14:59:46 +01:00
Alexander A. Klimov
0767c6ef87 icinga2 daemon -C: write icinga2.debug only if --dump-objects given
to save config (re)load time.
2022-11-23 12:54:33 +01:00
Julian Brost
dd99a5ace9
Merge pull request #9577 from Icinga/ConfigItem-CommitNewItems
ConfigItem::CommitNewItems(): allow fast search of pending items by type
2022-11-23 12:34:51 +01:00
Feu Mourek
76edd00ec2
Change apt-get to apt 2022-11-23 11:09:36 +01:00
Alexander A. Klimov
ae693cb7e1 ConfigItem::CommitNewItems(): allow fast search of pending items by type 2022-11-21 15:07:39 +01:00
Alexander A. Klimov
33e609d791 Type#GetLoadDependencies(): avoid malloc()
- cache result
- return it by const ref
- do Type::GetByName() for the callers
2022-11-21 15:07:39 +01:00
Alexander A. Klimov
d6ad137aac Doc: Troubleshooting: Optimise apply rules and group assign conditions 2022-11-17 11:53:28 +01:00
Julian Brost
a958a735d7
Merge pull request #9555 from Icinga/ApplyRule-GetDebugInfo
ApplyRule#GetDebugInfo(): return by const ref to avoid malloc()
2022-11-16 13:35:04 +01:00
Julian Brost
e713eb5c1c
Merge pull request #9572 from Icinga/ApplyRule-getters
ApplyRule#GetF*Var(): return by const ref
2022-11-16 13:00:59 +01:00
Julian Brost
18ab672565 CHANGELOG.md: add v2.13.6 2022-11-16 11:51:21 +00:00
Julian Brost
ea6cbb85af
Merge pull request #9570 from Icinga/jemalloc-doc
Recommend to try libjemalloc to speed up reload
2022-11-16 12:51:05 +01:00
Alexander A. Klimov
0230883a51 Recommend to try libjemalloc to speed up reload 2022-11-16 12:36:31 +01:00
Alexander A. Klimov
e97a5d59e0 ApplyRule#GetFVVar(): return by const ref
to avoid malloc().
2022-11-08 12:48:13 +01:00
Alexander A. Klimov
738662338f ApplyRule#GetFKVar(): return by const ref
to avoid malloc().
2022-11-08 12:45:21 +01:00
Julian Brost
a6b05059ab
Merge pull request #9566 from Icinga/bugfix/openssl-1.1.1s
Windows: update bundled OpenSSL to version 1.1.1s
2022-11-07 13:38:27 +01:00
Julian Brost
98902b2ff0
Merge pull request #9545 from Icinga/targeted-apply-rules
Separately handle apply rules targetting only specific parent objects
2022-11-04 14:06:15 +01:00
Julian Brost
c501229f84 Windows: update bundled OpenSSL to version 1.1.1s 2022-11-04 13:35:38 +01:00
Yonas Habteab
a8d46e6d47 Use service short name for evaluating targeted service rules 2022-11-04 10:19:26 +01:00
Yonas Habteab
2610fb1285 Avoid evaluating the same filter twice for the same target 2022-11-04 10:15:22 +01:00
Alexander A. Klimov
27a559c5fe ApplyRule#GetDebugInfo(): return by const ref to avoid malloc() 2022-10-28 15:33:44 +02:00
Alexander A. Klimov
a698b9c3da ApplyRule::RuleMap: reduce complexity, save unnecessary lookups 2022-10-28 14:27:53 +02:00
Alexander A. Klimov
a907c2ac9a Targeted apply rules: don't unnecessarily eval filter 2022-10-28 14:27:53 +02:00
Alexander A. Klimov
dacd6a206d VariableExpression#GetVariable(): return by const ref not to unnecessarily malloc() 2022-10-28 14:27:53 +02:00
Alexander A. Klimov
038a5e8ef6 Unify storages of regular/targeted apply rules: std::vector<ApplyRule::Ptr> 2022-10-28 14:27:53 +02:00
Alexander A. Klimov
a56ad38ad3 Separately handle apply rules targetting only specific parent objects
not to unnecessarily run e.g. the filter assign where host.name=="example.com"
for all hosts being not example.com.
2022-10-28 14:27:53 +02:00
Julian Brost
08324f8f20
Merge pull request #9549 from Icinga/boost180
Bump Boost v1.79 -> v1.80
2022-10-26 16:44:37 +02:00
Alexander A. Klimov
24b24da8e9 Bump Boost v1.79 -> v1.80 2022-10-26 11:43:32 +02:00
Alexander Aleksandrovič Klimov
c0fd00c337
Merge pull request #9548 from Icinga/Al2Klimov-patch-3
Fix wrong operator precedence in documentation
2022-10-25 18:07:30 +02:00
Alexander Aleksandrovič Klimov
247e41309a
Fix wrong operator precedence in documentation
<1> => (1 || 0) && 0
0.000000
<2> => 1 || (0 && 0)
1.000000
<3> => 1 || 0 && 0
1.000000
<4> =>
2022-10-25 12:01:01 +02:00
Alexander A. Klimov
fd7ac4e5ca Allow hashmaps of String 2022-10-21 10:28:41 +02:00
Alexander A. Klimov
449a3c14cf Allow intrusive pointers to ApplyRule 2022-10-21 10:28:41 +02:00
Julian Brost
987bb22397
Merge pull request #9543 from Icinga/apply-rules-lookup
Lookup apply rules faster by Type*, not String and by map instead of ==/!=
2022-10-21 09:53:35 +02:00
Alexander A. Klimov
c7d656716f Remove unused ApplyRule#m_TargetType 2022-10-19 13:43:51 +02:00
Alexander A. Klimov
d468d7993c Lookup apply rules faster by Type*, not String and by map instead of ==/!=
1. The lookup of apply rules per source type now implies
   no String(const char*) (no malloc()) and just pointer (uint64) comparisions
2. Apply rules are now also grouped by target type via a nested map, that obsoletes
   checking the target type while iterating over all rules per source type
2022-10-19 13:43:51 +02:00
Alexander A. Klimov
90fe4e5bea ApplyRule::GetTargetTypes(): return by const ref not to malloc() 2022-10-19 13:43:51 +02:00
Julian Brost
f2563cc890
Merge pull request #9542 from Icinga/context-evaluating-apply-rules-for-host
Construct string once, not unnecessarily N times
2022-10-17 19:57:09 +02:00
Alexander A. Klimov
ce1a122618 Construct string once, not unnecessarily N times 2022-10-17 15:54:02 +02:00
Julian Brost
dd7009dc63
Merge pull request #9406 from Icinga/bugfix/handle-ignore-on-error-uses-cases-properly
ConfigItem: Fix infinite recursion caused by `ignore_on_error` when …
2022-10-13 09:56:43 +02:00
Yonas Habteab
400117e2f6 ConfigItem: Don't add items to the new items vector before committing
This also improves the performance a bit, as we longer have to iterate over the items
and copy them into the new items vector.
2022-10-12 13:27:41 +02:00
Yonas Habteab
f7298e85d2 ConfigItem: Fix infinite recursion caused by ignore_on_error when committing an item
When committing an item with `ignore_on_error` flag set fails, the `Commit()` method only returns `nullptr`
and the current item is not being dropped from `m_Items`. `CommittNewItems()` also doesn't check the return
value of `Commit()` but just continues and tries to commit all items from `m_Items` in recursive call. Since
this corrupt item is never removed from `m_Items`, it ends up in an endless recursion till it finally crashes.
2022-10-12 13:15:09 +02:00
Julian Brost
91cbb856fe
Merge pull request #9521 from Icinga/noop-log-msgs
Logger: don't render log messages which will be disposed anyway
2022-10-11 19:05:03 +02:00
Alexander Aleksandrovič Klimov
363f4d3fde
Merge pull request #9408 from Icinga/bugfix/match-api-permissions-against-join-relations
ObjectQueryHandler: Check user permissions on joined relations
2022-10-11 13:42:27 +02:00
Yonas Habteab
a656444d78 RedisConnection: Don't log queries that are going to be discarded 2022-10-11 13:28:08 +02:00