Commit graph

1972 commits

Author SHA1 Message Date
dependabot[bot]
dc36e7619a
Bump github.com/stretchr/testify from 1.7.2 to 1.8.0
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.2 to 1.8.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.2...v1.8.0)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 10:01:01 +00:00
Alexander Aleksandrovič Klimov
0061888c40
Merge pull request #509 from Icinga/feature/release-1.0.0
Release 1.0.0
2022-06-29 19:33:13 +02:00
Julian Brost
3e77e0306b Changelog for 1.0.0 2022-06-29 17:49:40 +02:00
Julian Brost
c8a17ed048 Update internal/version.go for 1.0.0 2022-06-29 17:48:46 +02:00
Julian Brost
e68e72abcb Update AUTHORS and .mailmap 2022-06-29 17:48:46 +02:00
Julian Brost
85a7b6ab0c
Merge pull request #497 from Icinga/example-config-and-docs
Update example config and docs
2022-06-29 17:47:36 +02:00
Eric Lippmann
46d0e2b893 Add issue template for releasing a version 2022-06-29 15:42:04 +02:00
Eric Lippmann
5d4167c15d Docs: Add Distributed Setups 2022-06-29 15:42:04 +02:00
Eric Lippmann
76b9b93206 Docs: Update Upgrading 2022-06-29 15:42:04 +02:00
Eric Lippmann
8544878695 CI: Check version 2022-06-29 15:42:04 +02:00
Eric Lippmann
bc1d771104 Docs: Update Configuration 2022-06-29 15:42:04 +02:00
Eric Lippmann
782fbeac42 Docs: Update Installation 2022-06-29 15:42:04 +02:00
Eric Lippmann
773923f582 Example config: Add Redis password 2022-06-29 15:42:04 +02:00
Eric Lippmann
cf8e12f391 Set Redis server port to 6380 by default
All Icinga DB components use 6380 as default Redis port.
2022-06-29 15:42:04 +02:00
Eric Lippmann
5eea4faffa Remove RELEASE.md
The information is the same for all our products and there is no point
in having it public at all.
2022-06-29 15:42:04 +02:00
Eric Lippmann
9ae563e7a9 Update CHANGELOG.md 2022-06-29 15:42:04 +02:00
Eric Lippmann
195db09f2e Update README.md 2022-06-29 15:42:04 +02:00
Eric Lippmann
96dd818cda Docs: Update About 2022-06-29 15:42:04 +02:00
Eric Lippmann
306a4a1f27 Docs: Remove Redis installation
Should be part of the Icinga docs.
2022-06-29 14:37:36 +02:00
Eric Lippmann
e71f8b89b1 Example config: Document retention 2022-06-29 14:37:36 +02:00
Eric Lippmann
a4e8df6b3f Example config: Document logging 2022-06-29 14:37:36 +02:00
Eric Lippmann
44722df309 Docs: Fix table borders
For compatibility reasons all table rows should have borders at the
start and at the end.
2022-06-29 14:37:36 +02:00
Eric Lippmann
0ce84f2c5b Example config: retention.options override history-days, not days 2022-06-29 14:37:36 +02:00
Eric Lippmann
ed6e352320 Docs: Don't require database password 2022-06-29 14:37:36 +02:00
Eric Lippmann
28df688986 Docs: Don't require database port 2022-06-29 14:37:36 +02:00
Eric Lippmann
69d7845a6f Docs: Use 'Database name' instead of 'Database database' 2022-06-29 14:37:36 +02:00
Eric Lippmann
e91b165df4 Example config: Add newlines between history- and sla-days 2022-06-29 14:37:36 +02:00
Eric Lippmann
10677256cf Example config: Document database section 2022-06-29 14:37:36 +02:00
Eric Lippmann
406ab0fd89 Example config: Don't specify database type
Database type has a default value.
2022-06-29 14:37:36 +02:00
Eric Lippmann
19e1f49a1a Example config: Don't specify database port
With recent changes, the database port now has reasonable default
values, so it is no longer necessary to specify a port here.
2022-06-29 14:37:36 +02:00
Eric Lippmann
067d8ea1cf Docs: Use CHANGEME as database password
icingadb is not a good default password and CHANGEME gives a clear hint
to set a proper password here.
2022-06-29 14:37:36 +02:00
Julian Brost
5d25d81922
Merge pull request #508 from Icinga/state-soft_state
icinga:*:state: rename state to soft_state
2022-06-29 13:25:11 +02:00
Alexander A. Klimov
ae2c40e998 icinga:*:state: rename state to soft_state 2022-06-29 11:56:29 +02:00
Julian Brost
c3ecbe3657
Merge pull request #499 from Icinga/bugfix/add-environmentid-indices-for-history-retention
Add environment_id to indices for history retention
2022-06-29 10:53:44 +02:00
Julian Brost
924d455348
Merge pull request #504 from Icinga/retry
Fixes related to the retry functionality
2022-06-29 10:41:31 +02:00
Yonas Habteab
81e313e2db Schema: Include environment_id as part of the history retention indices
When UPSERT and DELETE statements are executed at the same time, a
deadlock can occur if both want to get an exclusive lock on one of the
PRIMARY KEY index pages. This happens with DELETE statements when there
is no suitable index for the columns used in the WHERE clause, which is
true for our history retention queries since commit eccac78. This PR
fixes the problem by adding a suitable index for the columns used in
these queries.
2022-06-29 10:05:08 +02:00
Eric Lippmann
df72c81708 Retry down and unreachable host or network errors 2022-06-29 09:59:12 +02:00
Eric Lippmann
9cb8bf36a6 Fix comment 2022-06-28 21:14:28 +02:00
Eric Lippmann
444332a682 Retry ECONNRESET
ECONNRESET is treated as a temporary error by Go only if it comes from
calling accept.
2022-06-28 19:58:02 +02:00
Julian Brost
e8f611ddc6
Merge pull request #505 from Icinga/make-json-keys-and-db-columns-consistent
Make json keys and DB columns consistent
2022-06-28 16:45:52 +02:00
Eric Lippmann
6a5db1ca94 Retry: Detect ECONNREFUSED properly
Also the order of the checks has been adjusted and the documentation has
been adapted to it. In addition, EAGAIN is no longer checked, since this
is already done via Timeout().
2022-06-28 16:09:32 +02:00
Eric Lippmann
cd96f0de6f Block XREADs for a maxium of one second
I just had the observation that blocking XREADs without timeouts (BLOCK
0) on multiple consecutive Redis restarts and I/O timeouts exceeds Redis
internal retries and eventually leads to fatal errors. @julianbrost
looked at this for clarification, here is his finding:

go-redis only considers a command successful when it returned something,
so a successfully started blocking XREAD consumes a retry attempt each
time the underlying Redis connection is terminated. If this happens
often before any element appears in the stream, this error is
propagated. (This also means that even with this PR, when restarting
Redis often enough so that a query never reaches the BLOCK 1sec, this
would still happen.)

https://github.com/Icinga/icingadb/pull/504#issuecomment-1164589244
2022-06-28 16:09:29 +02:00
Eric Lippmann
d9e876905f Fix Redis MaxRetries
Previously, we set the maximum number of retries to the pool size + 1,
but increased the pool size immediately after this assignment, so the
maximum number of retries was always too low for systems with less than
4 cores. Now it is set the other way around.
2022-06-28 16:09:04 +02:00
Eric Lippmann
5f29caecbe
Merge pull request #464 from Icinga/OwnHeartbeat
Write own status into Redis
2022-06-28 15:21:03 +02:00
Julian Brost
061660b023 Telemetry: use mutex for synchronizing last database error
The old CompareAndSwap based code tended to end up in an endless loop. Replace
it by simple syncrhonization mechanisms where this can't happen.
2022-06-28 13:30:00 +02:00
Julian Brost
def7c5f22c Telemetry: change stats names in Redis
The same names are used in perfdata names and config_sync sounds more natural
than sync_config.
2022-06-28 13:30:00 +02:00
Julian Brost
741460c935 Telemetry: rename keys in heartbeat stream
In both C++ and Go, the keys are only used as constant strings, so namespacing
them just adds clutter for the `general:*` keys, therefore remove it.
2022-06-28 13:30:00 +02:00
Julian Brost
36d5f7b33c Telemetry: send Go metrics as performance data string
Rather than using a JSON structure to convey these values, simply use the
existing format to communicate performance data to Icinga 2.

Also removes the reference to Go in the Redis structure, allowing this string
to be extended with more metrics in the future without running into naming
issues.
2022-06-28 13:30:00 +02:00
Yonas Habteab
fa6c23d634 Make json keys and DB columns consistent 2022-06-24 16:00:11 +02:00
Alexander A. Klimov
e1ff704aff Write own heartbeat into icingadb:telemetry:heartbeat
including version, current DB error and HA status quo.
2022-06-23 18:31:45 +02:00