Files
icingadb/icingadb.changes
Eric Schirra c3b1a4f7b8 - Update to version 1.2.1:
* Release Icinga DB Version 1.2.1
  * Update AUTHORS and .mailmap
  * schema/pgsql: Drop checkcommand_argument.argument_key storage mode
  * HA: Limit max open database connections to `1`
  * HA: Use Transaction for each query
  * build(deps): bump github.com/icinga/icinga-go-library from 0.3.1 to 0.4.0
  * Docs: Redis ACL Username and Database
  * test: Rebind Log Output Query for PostgreSQL
  * schema: Fix broken upgrade script `1.3.0`
  * build(deps): bump golang.org/x/sync from 0.9.0 to 0.10.0 in /tests
  * build(deps): bump golang.org/x/sync from 0.9.0 to 0.10.0
  * Fix typo
  * build(deps): bump github.com/stretchr/testify in /tests
  * build(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0
  * build(deps): bump golang.org/x/sync from 0.8.0 to 0.9.0
  * build(deps): bump golang.org/x/sync from 0.8.0 to 0.9.0 in /tests
  * HA State: ensure not this and another instance can be responsible
  * HA: Use `... FOR UPDATE` lock clause unconditionally
  * HA: Reduce deadlocks via exclusive locking (`SELECT ... FOR UPDATE`)
  * HA: Abort Transaction Commit after Timeout
  * HA/Heartbeat: Use last message's timestamp
  * HA: Insert environment within retryable function
  * HA: Deferred SQL Transaction Rollback
  * HA: Increase log level for heartbeats from the future
  * icingadb: Unify select cases for derived contexts
  * Replace `int64` with `atomic.Int64` where applicable
  * `telemetry`: Fix `atomic.Pointer` initialisation responsibility
  * `telemetry`: Use `sync/atomic#Pointer` instead of our own wrapper
  * `HA`: Use `sync/atomic#Pointer` instead of our own wrapper

OBS-URL: https://build.opensuse.org/package/show/home:ecsos:monitoring/icingadb?expand=0&rev=8
2025-03-26 17:35:34 +00:00

1127 lines
52 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-------------------------------------------------------------------
Wed Mar 26 17:34:47 UTC 2025 - ecsos <ecsos@opensuse.org>
- Update to version 1.2.1:
* Release Icinga DB Version 1.2.1
* Update AUTHORS and .mailmap
* schema/pgsql: Drop checkcommand_argument.argument_key storage mode
* HA: Limit max open database connections to `1`
* HA: Use Transaction for each query
* build(deps): bump github.com/icinga/icinga-go-library from 0.3.1 to 0.4.0
* Docs: Redis ACL Username and Database
* test: Rebind Log Output Query for PostgreSQL
* schema: Fix broken upgrade script `1.3.0`
* build(deps): bump golang.org/x/sync from 0.9.0 to 0.10.0 in /tests
* build(deps): bump golang.org/x/sync from 0.9.0 to 0.10.0
* Fix typo
* build(deps): bump github.com/stretchr/testify in /tests
* build(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0
* build(deps): bump golang.org/x/sync from 0.8.0 to 0.9.0
* build(deps): bump golang.org/x/sync from 0.8.0 to 0.9.0 in /tests
* HA State: ensure not this and another instance can be responsible
* HA: Use `... FOR UPDATE` lock clause unconditionally
* HA: Reduce deadlocks via exclusive locking (`SELECT ... FOR UPDATE`)
* HA: Abort Transaction Commit after Timeout
* HA/Heartbeat: Use last message's timestamp
* HA: Insert environment within retryable function
* HA: Deferred SQL Transaction Rollback
* HA: Increase log level for heartbeats from the future
* icingadb: Unify select cases for derived contexts
* Replace `int64` with `atomic.Int64` where applicable
* `telemetry`: Fix `atomic.Pointer` initialisation responsibility
* `telemetry`: Use `sync/atomic#Pointer` instead of our own wrapper
* `HA`: Use `sync/atomic#Pointer` instead of our own wrapper
* Make structifyStream() channel types more explicit, e.g. input only
* build(deps): bump github.com/redis/go-redis/v9 in /tests
* GHA: introduce golangci-lint
* gosec: handle integer conversions and potential overflows
* gosec: justify SHA1 usage with #nosec annotations
* errcheck: discard not used error return values
* RetentionConfig: restrict days to uint16
* Shorten CommentType#UnmarshalText()
* Adjust installation docs for centralized icinga.com doc injection
* Add `From Source` section to installation docs
* build(deps): bump github.com/mattn/go-sqlite3 from 1.14.22 to 1.14.24
* pkg/icingaredis/: check context termination while looping over channel
* build(deps): bump actions/checkout from 2 to 4
* build(deps): bump dominikh/staticcheck-action from 1.1.0 to 1.3.1
* build(deps): bump actions/setup-go from 4 to 5
* build(deps): bump actions/upload-artifact from 2 to 4
* Update GHA dependencies via dependabot
* GHA: Remove -gcflags="-m" from go build
* .deb: let user install icinga-archive-keyring package
* Test history.SlaDowntimeEndTime#Value()
* Test history.DowntimeEventTime#Value()
* Test history.FlappingEventTime#Value()
* Test icingadb/v1.EnvironmentFromContext()
* Test icingadb/v1.Environment#NewContext()
* Shorten icingadb/v1.EnvironmentFromContext()
* Shorten icingadb/v1.AddressBin#Value()
* Test icingadb/v1.Address6Bin#Value()
* Test icingadb/v1.AddressBin#Value()
* Docs: Fix whitespaces
* schema: Enlarge Command Argument and Environment Key
* build(deps): bump github.com/creasty/defaults from 1.7.0 to 1.8.0
* build(deps): bump golang.org/x/sync from 0.7.0 to 0.8.0
* build(deps): bump golang.org/x/sync from 0.7.0 to 0.8.0 in /tests
* Test icingaredis.CreateEntities()
* doc/03-Configuration.md: Logging Fields in Journald
* build(deps): bump github.com/docker/docker in /tests
* build(deps): bump github.com/icinga/icinga-go-library
* build(deps): bump github.com/goccy/go-yaml in /tests
* schema: Fix values to fit by increasing type sizes
* build(deps): bump github.com/goccy/go-yaml from 1.11.3 to 1.12.0
* build(deps): bump github.com/jessevdk/go-flags from 1.5.0 to 1.6.1
* build(deps): bump github.com/redis/go-redis/v9 in /tests
* build(deps): bump github.com/icinga/icinga-go-library
* GHA: also test MySQL 8
* cmd/icingadb-migrate: replace magic number 20 with sha1.Size
* icingadb-migrate: Verify env ID length
* icingadb-migrate: Mitigate NULL names in {comment,downtime}_query
* build(deps): bump github.com/icinga/icinga-go-library
* doc/02-Installation.md: Fix installing-icingadb-db-packages anchor
* Remove library code
* Use `icinga-go-library`
* Allow to dynamically define type constraint name
* database: Introduce `ColumnMap`
* Introduce `GetAddr()` for `database#DB` and `redis#Client`
* `config#FromYAMLFile()`: Parse result into value pointed to by the passed argument
* `config#ParseFlags()`: Parse result into value pointed to by the passed argument
* Replace `utils.Fatal()` with `utils.PrintErrorThenExit()`
* Refine `types#UnixMilli` tests
* `types#UnixMilli.Scan()`: Support `uint64`
* `types#UnixMilli.Scan()`: Support `[]byte`
* Fix `types#UnixMilli.UnmarshalText()` crashing on empty strings
* Introduce `contracts#SafeInit()`
* Decouple `structify` from `contracts`
* Introduce `logging#NewLoggingFromConfig()`
* Don't set default port in `redis`
* Move Redis related code to `redis`
* Move `internal/config#Retention` to `internal/config#RetentionConfig`
* Move `internal/config#FromYAMLFile()` to `config#FromYAMLFile()`
* Move `internal/config#ParseFlags()` to `config#ParseFlags()`
* Move database related code from `internal` to `database`
* Move `TLS` config options to `config#TLS`
* Add `logging#Config`
* Add `utils#IsUnixAddr()`
* Move special types to `icingadb/types`
* `icingadb-migrate`: Don't alias `types` import
* Move `icingadb#DB` to `database#DB`
* Move `contracts#Waiter{,Func}` to `com#Waiter{,Func}`
* Move `com#SplitOnDupId()` to `database#SplitOnDupId()`
* Make `com#CopyFirst()` generic
* Move `database#DB.CheckSchema()` to `icingadb#CheckSchema()`
* Introduce `icingadb#RetryConnectorCallbacks`
* Use `google/go-cmp` to determine equality of checksums
* Move type related utility functions from `internal` to `types`
* Move `utils#Name()` to `types#Name()`
* `types#Binary`: Assert `fmt.Stringer` interface compliance
* Move `utils#TableName()` to `database#TableName()`
* Introduce `strcase` for converting string cases
* Move database related contracts to `database/contracts`
* Move `internal#CantPerformQuery()` to `database#CantPerformQuery()`
* Move `icingadb/objectpacker` to `objectpacker`
* Move `config` to `internal/config`
* build(deps): bump github.com/jmoiron/sqlx from 1.3.5 to 1.4.0 in /tests
* build(deps): bump github.com/jmoiron/sqlx from 1.3.5 to 1.4.0
-------------------------------------------------------------------
Wed Mar 26 17:34:02 UTC 2025 - ecsos <ecsos@opensuse.org>
- Update to version 1.2.0:
* Bump version to 1.2.0
* Unify notation of `n * time.Duration`
* Update AUTHORS and .mailmap
* icingadb.DB: Retry Schema Checks
* icingadb: Remove shouldRetry
* Retry `io.EOF` error
* Docs: Account Redis' trademark policy
* Increment go.mod Go version to 1.22
* `retry`: Mitigate timing issues
* `retry`: Set `attempt`'s initial value to `1`
* `HA`: Don't log retry count
* `retry`: Explicitly check context for error
* `retry`: Execute on error callbacks for retryable errors only
* Consolidate default retry timeout and settings
* `HA`: Give up retrying after 5 minutes
* `HA.retry()`: Always use context with a deadline
* `retry`: Reduce `nil` checks for errors
* `retry`: `return` immediately after context errors
* Revert "retry: if stopped due to outer context, return that error"
* `retry`: Don't cancel `RetryableFunc` if it exceeds `Timeout`
* Retention: Also retry `DELETE` statements
* Retry **every** database error
* `db`: Log retried queries and give up after 5 minutes
* Register mysql default logger prior to 'mysql#NewConfig()'
* Upgrading docs for state_history schema migration
* Unify check attempt data type to uint32 already used somewhere
* Remove deprecated io/ioutil package references
* config.example.yml: Comment out unmodified blocks
* Add upgrading hints/warnings
* Add a correct composite `INDEX` for the history table
* build(deps): bump golang.org/x/sync from 0.6.0 to 0.7.0 in /tests
* build(deps): bump golang.org/x/sync from 0.6.0 to 0.7.0
* Enhance HA "Taking over", "Handing over" logging
* `history.Sync`: Don't operate on closed channel
* Validate `wsrep_sync_wait` database option
* Document `wsrep_sync_wait` database option
* Drop `icingadb#Register()` & make `mysqlLogger` exportable
* Database: Drop `registerDriverOnce` variable
* Move `pkg/driver` to `pkg/icingadb/driver.go`
* driver: Move `timeout` from package level to a function scope
* MySQL driver: on connect try setting wsrep_sync_wait, swallow error 1193
* Driver: Allow to post initialize database connections
* Drop superfluous custom driver registration
* Make value for SET SESSION `wsrep_sync_wait` configurable
* Document `database.options` properly
* build(deps): bump github.com/go-sql-driver/mysql in /tests
* build(deps): bump github.com/go-sql-driver/mysql from 1.8.0 to 1.8.1
* Document `retention.count` & `retention.interval` options
* Flatten(): render even large numbers as-is, not using scientific notation
* Flatten(): type-check input only once
* Use types.MakeString() instead of manual initialization (refactor)
* Test Flatten()
* Introduce types.MakeString()
* Upgrade `go-redis` to `v9`
* build(deps): bump github.com/docker/docker in /tests
* PostgreSQL: get_sla_ok_percent to return decimal
* build(deps): bump go.uber.org/zap from 1.26.0 to 1.27.0 in /tests
* build(deps): bump github.com/goccy/go-yaml in /tests
* build(deps): bump github.com/jmoiron/sqlx from 1.3.4 to 1.3.5 in /tests
* build(deps): bump github.com/google/uuid from 1.3.0 to 1.6.0 in /tests
* MySQL/MariaDB: Use strict SQL mode
* Integration tests: don't hard-code MySQL in some tests
* `schmema/mysql/1.1.2`: Fix timestamp is not UNIX time
* build(deps): bump github.com/go-sql-driver/mysql in /tests
* build(deps): bump github.com/stretchr/testify in /tests
* `schema/mysql`: Use `UNIX_TIMESTAMP()` instead of `CURRENT_TIMESTMAP()`
* tests/go.mod: bump github.com/icinga/icinga-testing "version"
* dependabot: enable go mod updates for /tests
* dependabot: run daily
* dependabot: remove reviewers
* build(deps): bump github.com/goccy/go-yaml from 1.11.2 to 1.11.3
* Retry broken pipe errors (`EPIPE`)
* build(deps): bump go.uber.org/zap from 1.26.0 to 1.27.0
* docs: Fix link to `Icinga DB Web`
* cmd/icingadb: Log Icinga DB version during startup
* build(deps): bump github.com/go-sql-driver/mysql from 1.7.1 to 1.8.0
* build(deps): bump github.com/google/uuid from 1.4.0 to 1.6.0
* build(deps): bump golang.org/x/sync from 0.5.0 to 0.6.0
* Remove redundant closure
* build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0
* build(deps): bump github.com/mattn/go-sqlite3 from 1.14.18 to 1.14.22
* build(deps): bump golang.org/x/sync from 0.3.0 to 0.5.0
* build(deps): bump github.com/mattn/go-sqlite3 from 1.14.17 to 1.14.18
* build(deps): bump github.com/docker/docker in /tests
* build(deps): bump github.com/google/uuid from 1.3.0 to 1.4.0
* build(deps): bump golang.org/x/net from 0.7.0 to 0.17.0 in /tests
* build(deps): bump go.uber.org/zap from 1.25.0 to 1.26.0
* build(deps): bump github.com/goccy/go-yaml from 1.11.0 to 1.11.2
-------------------------------------------------------------------
Wed Mar 26 17:33:04 UTC 2025 - ecsos <ecsos@opensuse.org>
- Update to version 1.1.1:
* GitHub Actions: remove version check
* doc/04-Upgrading.md: Fix path for schema upgrades
* GitHub Actions: also run on support branches
* cmd/icingadb: warn about unknown config options instead of rejecting them
* Upgrading docs for v1.1.1
* Add changelog for v1.1.1
* Update version number to 1.1.1
* Update AUTHORS
* GitHub Actions: change master to main
* Increase database schema version
* Schema: merge 1.2.0.sql upgrades into 1.1.1.sql
* Schema: change sort order of history event type enum
* build(deps): bump go.uber.org/zap from 1.24.0 to 1.25.0
* Run `go fmt ./...`
* GitHub Actions: use actions/setup-go@v4 and go-version: 1.x
* schema/pgsql: Add missing indices to `hostgroup` and `servicegroup`
* schema/mysql: Add missing indices to `hostgroup` and `servicegroup`
* schema/pgsql: Add new index for `customvar_flat`
* schema/mysql: Add new index for `customvar_flat`
* Migration: refactor output/processing of converted entities
* cmd/icingadb-migrate: ignore icinga_downtimehistory#was_started=0 rows
* Make integration tests work with Go 1.20.6
* Config parsing: unit test failure due to unknown fields
* Test UnixMilli#MarshalJSON()
* Test Bool#MarshalJSON()
* Test Binary#MarshalJSON()
* {Bool,Binary,UnixMilli}#MarshalJSON(): return valid JSON, not empty string
* Add empty custom vars test cases
* Flatten empty custom vars of type `array` & `map` correctly
* Support Percona XtraDB Cluster by not using SERIALIZABLE transactions directly
* icingadb-migrate: document TLS support
* Config parsing: fail on unknown fields and print them
* build(deps): bump golang.org/x/sync from 0.2.0 to 0.3.0
* build(deps): bump github.com/mattn/go-sqlite3 from 1.14.16 to 1.14.17
* build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4
* retry.Retryable(): treat ENOENT (AF_UNIX) like ECONNREFUSED, i.e. also retry
* build(deps): bump github.com/creasty/defaults from 1.6.0 to 1.7.0
* build(deps): bump github.com/go-sql-driver/mysql from 1.7.0 to 1.7.1
* build(deps): bump github.com/lib/pq from 1.10.7 to 1.10.9
* icingadb-migrate: handle NULL event time columns
* Merge network and database error retryability detection functions
* build(deps): bump github.com/goccy/go-yaml from 1.9.6 to 1.11.0
* build(deps): bump github.com/opencontainers/image-spec in /tests
* build(deps): bump github.com/docker/distribution in /tests
* build(deps): bump golang.org/x/net in /tests
* build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.3
* build(deps): bump golang.org/x/sync
* build(deps): bump github.com/docker/docker in /tests
* schema: notification: enlarge name and name_ci 255 -> 767
* GitHub Actions: run Go lint job with at least 1.19
* GHA: handle changed interface of Icinga/docker-icingadb
* Heartbeat#sendEvent(m): nil-check m before dereferencing it
* convertFlappingRows(): fix foreign key error history -> flapping_history
* migrateOneType(): allow multiple stages of INSERT IGNORE, UPSERT
* build(deps): bump go.uber.org/zap from 1.23.0 to 1.24.0
* build(deps): bump github.com/go-sql-driver/mysql from 1.6.0 to 1.7.0
* Replace apt-get with apt
* Log UNIX socket address w/o port number
-------------------------------------------------------------------
Wed May 10 11:06:11 UTC 2023 - ecsos@opensuse.org
- Update to version 1.1.0:
* Release 1.1.0
* Improve documentation for migration tool
* build(deps): bump github.com/mattn/go-sqlite3 from 1.14.6 to 1.14.16
* go mod tidy
* go get -u github.com/goccy/go-yaml
* cmd/icingadb-migrate: avoid unnecessary config option
* Fix release issue template
* Bump github.com/stretchr/testify from 1.8.0 to 1.8.1
* Bump go.uber.org/zap from 1.21.0 to 1.23.0
* Bump github.com/lib/pq from 1.10.6 to 1.10.7
* Migration: docs enhancements
* cmd/: rename ido2icingadb/ to icingadb-migrate/
* cmd/ido2icingadb: move docs to the main tree
* cmd/ido2icingadb: use built-in decorators for the progress bar
* cmd/ido2icingadb: build cache from [0,toId], not just [fromId,toId]
* Fix tests for new icinga2 master
* Increase Go version for integration tests to 1.18
* cmd/ido2icingadb: don't tell how to mess up everything
* cmd/ido2icingadb: Keep It Simple Stupid
* cmd/ido2icingadb: assert schema
* Make checkDbSchema() reusable as DB#CheckSchema()
* cmd/ido2icingadb: handle custom input data time range changes
* cmd/ido2icingadb: allow custom input data time range
* cmd/ido2icingadb: make sure not to return false-positive nil (i.e. EOF) checkpoints
* cmd/ido2icingadb: show ops/s
* cmd/ido2icingadb: remove unused code
* cmd/ido2icingadb: increase parallelism
* Introduce DB#CreateIgnoreStreamed()
* cmd/ido2icingadb: remove unnecessary transactions
* cmd/ido2icingadb: chunkCacheTx(): commit less often
* cmd/ido2icingadb: remove unnecessary mutex
* cmd/ido2icingadb: rename to Icinga DB Migration
* cmd/ido2icingadb: add docs
* cmd/ido2icingadb: make cache filling fast again
* cmd/ido2icingadb: allow to migrate multiple IDO databases
* cmd/ido2icingadb: reduce bulk size
* cmd/ido2icingadb: remove unused code
* cmd/ido2icingadb: upsert, not update, to make bulk statements
* cmd/ido2icingadb: allow converters to upsert
* cmd/ido2icingadb: centralise notification type conversion
* DB#BuildInsertIgnoreStmt(): handle primary key being not "id"
* cmd/ido2icingadb: clean up cache
* cmd/ido2icingadb: fix duplicate comment
* cmd/ido2icingadb: fix missing flapping_history#percent_state_change_end
* cmd/ido2icingadb: don't unnecessarily overwrite already written/migrated history
* cmd/ido2icingadb: fix missing ack clearings
* cmd/ido2icingadb: indicate no notification author as "", not "-"
* cmd/ido2icingadb: fix missing flapping end events
* cmd/ido2icingadb: build fix
* cmd/ido2icingadb: fix missing config defaults
* cmd/ido2icingadb: bulk, not prepare, upserts
* cmd/ido2icingadb: fix downtime SLA end time
* cmd/ido2icingadb: improve code docs
* cmd/ido2icingadb: don't unnecessarily pre-fill ido_migration_progress
* cmd/ido2icingadb: rename onNewUncommittedDml to commitPeriodically
* cmd/ido2icingadb: remove obsolete code
* cmd/ido2icingadb: let SQLite VACUUM automatically
* cmd/ido2icingadb: write SLA
* cmd/ido2icingadb: avoid &(*ht)[i]
* cmd/ido2icingadb: improve comments
* cmd/ido2icingadb: go:embed large queries
* cmd/ido2icingadb: go:embed schemata
* cmd/ido2icingadb: build fix
* cmd/ido2icingadb: better ETA
* cmd/ido2icingadb: prefer generics over reflection
* cmd/ido2icingadb: support Postgres
* cmd/ido2icingadb: migrate(): run only one transaction at a time
* cmd/ido2icingadb: correct mismatching FK ID
* cmd/ido2icingadb: don't hash non-hashable types
* cmd/ido2icingadb: build fix
* cmd/ido2icingadb: reduce historyType#convertRows call complexity
* cmd/ido2icingadb: sliceIdoHistory(): reduce onRows call complexity
* cmd/ido2icingadb: sliceIdoHistory(): re-use memory
* cmd/ido2icingadb: env: "Environment" config constant value -> hex ID
* cmd/ido2icingadb: make IDs UUID -> SHA1
* cmd/ido2icingadb: merge countIdoHistory() and computeProgress()
* cmd/ido2icingadb: ensure migration progress bar finishes
* cmd/ido2icingadb: resume migration progress bar where interrupted
* cmd/ido2icingadb: simplify computeProgress() a lot
* cmd/ido2icingadb: sliceIdoHistory(): take named args
* cmd/ido2icingadb: migrate(): don't REPLACE, but upsert (one by one)
* cmd/ido2icingadb: simplify unnecessarily complex datatype
* cmd/ido2icingadb: document misc.go
* cmd/ido2icingadb: migrate(): UPDATE after REPLACE
* cmd/ido2icingadb: document cache.go
* cmd/ido2icingadb: document main.go
* Revert "Outsource cmd/icingadb.Exit* to cmd/internal"
* cmd/ido2icingadb: remove redundant function
* cmd/ido2icingadb: don't re-invent sqlx.In()
* cmd/ido2icingadb: types: add keys and delete zero values
* cmd/ido2icingadb: document sliceIdoHistory()
* cmd/ido2icingadb: shorten SugaredLogger#With().Info() to #Infow()
* cmd/ido2icingadb: reason not actually used INNER JOINs
* cmd/ido2icingadb: reduce IDE warnings
* cmd/ido2icingadb: correct log levels
* cmd/ido2icingadb: actually migrate
* cmd/ido2icingadb: chunk all large queries
* cmd/ido2icingadb: fill cache
* cmd/ido2icingadb: generalize cache schemata
* cmd/ido2icingadb: support SELECT xh.foo_bar->FooBar int
* cmd/ido2icingadb: introduce barIncrementer
* cmd/ido2icingadb: make bulk a const
* cmd/ido2icingadb: introduce historyType#setupBar()
* cmd/ido2icingadb: separate cache schema
* cmd/ido2icingadb: make log a global var
* cmd/ido2icingadb: prepare cache
* cmd/ido2icingadb: split main()
* cmd/ido2icingadb: deduplicate parallelism
* cmd/ido2icingadb: compute previous progress
* .../compliance/check-licenses.sh: also check UNLICENSE
* cmd/ido2icingadb: count total IDO events
* cmd/ido2icingadb: connect to databases
* cmd/ido2icingadb: parse config file
* cmd/ido2icingadb: parse CLI flags
* Outsource cmd/icingadb.Exit* to cmd/internal
* Save memory during config sync via SyncSubject#FactoryForDelta()
* Show diff of dependencies in GitHub Actions
* Bump github.com/stretchr/testify from 1.7.2 to 1.8.0
* parseString(): Don't Repeat Yourself
-------------------------------------------------------------------
Fri Jul 01 06:30:22 UTC 2022 - ecsos@opensuse.org
- Update to version 1.0.0:
* Changelog for 1.0.0
* Update internal/version.go for 1.0.0
* Update AUTHORS and .mailmap
* Add issue template for releasing a version
* Docs: Add Distributed Setups
* Docs: Update Upgrading
* CI: Check version
* Docs: Update Configuration
* Docs: Update Installation
* Example config: Add Redis password
* Set Redis server port to 6380 by default
* Remove RELEASE.md
* Update CHANGELOG.md
* Update README.md
* Docs: Update About
* Docs: Remove Redis installation
* Example config: Document retention
* Example config: Document logging
* Docs: Fix table borders
* Example config: retention.options override history-days, not days
* Docs: Don't require database password
* Docs: Don't require database port
* Docs: Use 'Database name' instead of 'Database database'
* Example config: Add newlines between history- and sla-days
* Example config: Document database section
* Example config: Don't specify database type
* Example config: Don't specify database port
* Docs: Use CHANGEME as database password
* icinga:*:state: rename state to soft_state
* Schema: Include `environment_id` as part of the history retention indices
* Retry down and unreachable host or network errors
* Fix comment
* Retry ECONNRESET
* Retry: Detect ECONNREFUSED properly
* Block XREADs for a maxium of one second
* Fix Redis MaxRetries
* Telemetry: use mutex for synchronizing last database error
* Telemetry: change stats names in Redis
* Telemetry: rename keys in heartbeat stream
* Telemetry: send Go metrics as performance data string
* Make json keys and DB columns consistent
* Write own heartbeat into icingadb:telemetry:heartbeat
* Introduce Atomic[T]
* Remove unused StreamLastId()
* Clear icinga:runtime* and read from 0-0 later
* XTRIM data XREAD from icinga:runtime*
* oneBulk(): terminate once input closed (like the regular bulker)
* Add host:port log info when trying to connecto to database/redis
* Make Database/Redis schema mismatch error more user friendly
* Write ops/s by op and s to icingadb:telemetry:stats
* DB#CleanupOlderThan(): allow to get done work counted in real time
* DB#Delete(): allow monitoring succeeded items
* DB#CreateStreamed(): allow monitoring succeeded items
* DB#{*BulkExec,*Streamed}(): replace succeeded channel with callbacks
* Rename config.yml.example to config.example.yml
* schema: Merge all alter table statments of the same table into a single one
* Bump expected redis schema version to 5
* Docs: use @localhost instead of @127.0.0.1 for MySQL user
* Bump github.com/stretchr/testify from 1.7.1 to 1.7.2
* Fix integration tests
* Checkable: Adjust the naming of the struct/json keys according to the new scheme
* Add _name suffix to columns referring to name
* Fix `icingadb --version` output when using older Git versions
* Streamline IsRetryable functions and retry DNS errors
* Add more information to `icingadb --version` ouput
* Bump github.com/lib/pq from 1.10.5 to 1.10.6
* Quote column names for the case they're reserved
* Integration tests: use separate artifact names for MySQL/PostgreSQL
* Add CommandArgument#Separator
* Tests: Update go.mod
* Expect serverName only in TLS.MakeConfig()
* Split Redis address into host and port
* Retention: take environment_id into account
* PostgreSQL: add missing retention indices
* CleanupOlderThan: no longer return number of rounds
* Retention: remove StartWithCallback
* Build fix
* Check for required database and Redis config options during config validation
* PostgreSQL: Support text comparsion for int/enum columns
* SLA reporting: history retention for SLA tables
* SLA reporting: fill new tables from history in schema migration
* SLA reporting: integration tests
* SLA reporting: tests for the SQL stored function
* SLA reporting: add SQL stored function to calculate SLA value
* List required RDBMS versions and increase PostgreSQL minimum
* SLA reporting: additionally write relevant history events to dedicated SLA tables
* Use default MySQL port if none is specified
* Allow setting port for PostgreSQL Unix domain socket
* SLA reporting: SQL schema
* Retention: periodically log number of items removed
* Don't print a stacktrace on config errors
* Schema: Make custom variable names case insensitive
* go:embed LUA script
* On HA takeover set other instances' icingadb_instance#responsible = n
* On HA handover: always set icingadb_instance#responsible=n
* Bump github.com/jmoiron/sqlx from 1.3.4 to 1.3.5
* Bump github.com/stretchr/testify from 1.7.0 to 1.7.1
* Update dependabot reviewers
* Bump github.com/go-redis/redis/v8 from 8.11.4 to 8.11.5
* Use Icinga DB docker instance for retention tests
* Retry EAGAIN
* Document Redis *nix socket support
* RDBMS: support *nix sockets as documented
* Run `go mod tidy` in tests/ after defaults update
* Bump github.com/creasty/defaults from 1.5.2 to 1.6.0
* Run `go mod tidy` in tests/ after pq update
* Bump github.com/lib/pq from 1.10.4 to 1.10.5
* Do x.UnixMilli(), not utils.UnixMilli(x)
* UnixMilli(x): don't overflow on 4/11/2262 (UTC)
* Schema: Adjust primary key irregularities of icon_image, notes_url & action_url tables
* Merge Bulker and EntityBulker
* Remove unused XMessageBulker
* Reuse generic com.Bulk() instead of redundant com.BulkXMessages()
* Make Bulker generic
* Require Go v1.18+
* Remove obsolete comment
* Bump github.com/lib/pq from 1.10.3 to 1.10.4
* Add tests for cleanup and history retention
* Start history retention immediately
* Add immediate option for periodic tasks
* Add indices for history retention
* Start history retention after config and state sync
* Document history retention configuration
* Allow history retention configuration
* Introduce config.HistoryRetention
* Introduce history.Retention
* Introduce db.CleanupOlderThan()
* Port integration tests to PostgreSQL
* Remove null bytes from strings
* Wrap "icingadb-*sql" in constants
* Postgres: replace ENUM DOMAINs with TYPEs
* Docs: Postgres: explicitly set en_US.UTF-8
* Postgres: use case-insensitive CITEXT columns
* Decouple *SQL schema versions
* Simplify BulkChunkSplitPolicy
* Throw BulkChunkSplitPolicy#Reset() away
* Pass BulkChunkSplitPolicyFactory-s, not BulkChunkSplitPolicy-s
* DB#BuildDeleteStmt(): don't pre-rebind `?`s
* NamedBulkExec(): allow custom BulkChunkSplitPolicy
* BulkEntities(): allow custom BulkChunkSplitPolicy
* NewEntityBulker(): allow custom BulkChunkSplitPolicy
* Introduce SplitOnDupId
* Introduce NeverSplit
* Introduce BulkChunkSplitPolicy
* Don't re-invent sqlx.DB#Rebind()
* Postgres: upsert: only handle primary key conflicts
* DB#Build*Stmt(): quote table names
* Document Postgres support
* Support Postgres
* Handle Postgres-specific errors
* .github/workflows/compliance/anonymize-license.pl: handle github.com/lib/pq license
* Avoid SQL syntax Postgres doesn't understand
* Port MySQL schema to Postgres
* Remove parallelism from history test
* Bump icinga-testing version
* doc: Document the password option for Redis
* Fix typo
* Add previous_soft_state to host_state and service_state
* Docs: dont explain MySQL installation
* Bump go.uber.org/zap from 1.20.0 to 1.21.0
* Don't embed TLS config
* Rename TLS.Tls to TLS.Enable
* HA#realize(): re-try transaction on temporary error
* GHA: use latest staticcheck version
* Schema: make notification_history#text longtext
* GHA: go mod tidy
* Run daily integration tests
* Update dependabot reviewers
* Bump go.uber.org/zap from 1.19.1 to 1.20.0
* Make sure Redis connection pool is large enough
* Integration tests: test downtime expiry history
* Integration tests: text comment expiry history
* Integration tests: test comment removal history
* Integration tests: add author/removed_by to downtime cancellations
* Integration tests: test that both icinga2 instances write identical history streams
* Docs: Replace GRANT command incompatible with newer MySQL versions
* Docs: Fix foreground command config parameter
* go.mod: remove redundant replacement
-------------------------------------------------------------------
Fri Jul 01 06:22:28 UTC 2022 - ecsos@opensuse.org
- Update to version 1.0.0-rc2:
* Integration tests: Add notifications and improve user runtime updates
* Update AUTHORS
* Update AUTHORS
* Remove authors whose code is no longer in the repo
* Use own connections for heartbeat and HA
* Insert schema version last
* Make NotificationRecipient struct readable
* Docs: Fix default config file location
* Refine remote Redis installation docs chapter
* Reduce max_hmget_connections to 8
* Change default configuration file path
* Improve MySQL commands in installation docs
* Fix whitespaces and too long lines in installation docs
* Add upgrading docs
* Change icinga-redis to icingadb-redis in remote Redis
* Add Fedora, CentOS 8, dnf and some cleanup
* Comment out flat config keys that have a default value
* Use localhost in our example config
* docs: Replace warning log level with warn
* Integration tests: test history sync with HA
* MySQL: Add more indexes
* Add a regression test that ensures that runtime updates are executed in order
* Runtime Updates: Use proper buffer channel sizes
* Add special handling for entity bulks of size 1
* Add special handling for bulks of size 1
* RuntimeUpdates#Sync(): force FIFO for config updates
* Set values for new host_id and downtime duration columns
* Add `service_state.host_id` column
* Downtime: Add `duration` & `scheduled_duration` columns
* Schema: Fix index typos introduced by #385
* Fix broken retry mechanics
* .github/workflows/compliance.yml: assert GPLv2 compatibility of all deps' licenses
* .github/workflows/compliance/anonymize-license.pl: replace redundant info in license text
* .github/workflows/compliance/ls-deps.pl: extract all 3rd-party deps
* Raise expectedRedisSchemaVersion
* Schema: Prefix command_id with command type (check, event, notification)
* Rename periodic.Stoper to periodic.Stopper
* Use custom logger with 1 second interval for delta tests
* Use custom logger for accessing the interval for periodic logging
* Add periodic logging for runtime updates
* Use debug instead of info for some log messages
* Log which history sync started
* Remove syncing $subject log message
* Remove syncing $redisKey log message
* Remove waiting for heartbeat message
* Log time taken for the config and initial state sync
* Use pkg periodic for database logs
* Log which delta finished
* Use pkg periodic for history sync logs
* Use debug instead of info for overdue refresh logs
* Use pkg periodic for overdue sync logs
* Use internal.LoggingInterval()
* Log how many items to insert
* Speak of items instead of rows
* Use pkg periodic for Redis logs
* Introduce Counter.Total()
* Introduce package periodic
* Allow to configure interval for periodic logging
* Introduce Counter.Reset()
* Speak of Icinga heartbeat not Icinga 2 heartbeat
* Comment out component-logging level pairs
* Don't log if context is canceled
* Increase Redis schema version
* Update schema comments to match new use of environments
* No longer skip environment tests and adapt them to new behavior
* Exit on environment ID changes
* Use new environment ID
* Only sync entities that belong to the current environment
* Config: Validate max_rows_per_transaction
* Config: Validate max_placeholders_per_statement
* Don't use CamelCase for config keys
* Config: Validate xread_count
* Restart HA after environment change
* Use synctx instead of ctx
* Make v1.Environment#Name types.String
* Insert environment
* Add db.BuildIgnoreStmt()
* Replace Apache 2.0 licensed gopkg.in/yaml.v3 with MIT licensed github.com/goccy/go-yaml
* Raise expectedRedisSchemaVersion 1 -> 2
* Make History*#Id UUID -> SHA1
* Make {NotificationHistory,StateHistory}#Id UUID -> SHA1
* Sync history independent of HA
* Enable tests for custom var flat runtime sync
* Move custom var sync to a new method
* Respect context in custom var sync
* Expect no custom var clear events during runtime
* Handle flat custom vars explicitly in runtime updates
* Handle contracts.Initer in common.NewSyncSubject()
* Use SyncSubject in RuntimeUpdates.Sync()
* Add method SyncSubject.Name()
* Use ExpandCustomvars() and synctx instead of ctx
* Introduce function ExpandCustomvars()
* Export DB.getSemaphoreForTable()
* Move method DB.getSemaphoreForTable()
* Use context from errgroup
* Sync state runtime updates ASAP
* Notify systemd that Icinga DB finished starting up
* Allow to configure the logging output
* Allow systemd-journald (and console) as log outputs
* Introduce zapcore.Core that sends logs to systemd-journald
* Use the app name as the default logger name
* Introduce function utils.AppName()
* Add ConvertCamelCase utility function
* Move logging from internal to pkg
* Bump github.com/go-redis/redis/v8 from 8.11.3 to 8.11.4
* Only do anything while icinga:schema version meets our expectations
* History sync: add benchmark
* Add foreign key with cascade delete constraints to history tables
* History sync: use information from notification stream for user_notification_history table
* History sync: use indefinitely blocking XREAD
* History sync: rewrite to use a sequential pipeline
* Redis/DB: export options member
* mysql.schema.sql: Add missing indices to *_customvar tables
* HA: only set realize timeout when active
* HA: after heartbeat expiry, stop writing to database and hand over
* retry: if stopped due to outer context, return that error
* heartbeat: wrap messages with a timestamp
* heartbeat: use a single channel for all beat/loss events
* Add XMessageBulker
* History sync: add integration tests
* Support TLS
* Document logging configuration
* Use child loggers
* Use child loggers for Redis and database
* Use logger from logging pkg
* Allow to configure logging in the YAML configuration
* Introduce Logging config struct
* Introduce logging pkg with access to a default logger and named child logges
* Remove example configuration from docs
* Schema: s/mediumtext/longtext/
* Rewrite delta to use only a single goroutine
* Add tests and benchmarks for delta computation
* Log all recovered reconnects to backends
* Redis HYield: remove duplicates returned by HSCAN
* Use uint64 instead of Counter
* Use buffered channel
* Do not close channel too early
* Use pointer receiver for Counter.Val()
* Introduce WaiterFunc type
* Fix use of wrong log function on heartbeat loss
* Include CheckResult#scheduling_source in state and history
* Log all different failed reconnects to backends
* On shutdown: give up HA handover after 3s, not 5m
* Introduce Settings#OnSuccess
* Introduce Settings#OnError
* HA#Close(): allow custom context
* HA#removeInstance(): allow custom context
* WithBackoff(): aggregate optional settings in one struct
* Bump go.uber.org/zap from 1.19.0 to 1.19.1
* Update icinga-testing and use new features (#362)
* Bump github.com/creasty/defaults from 1.5.1 to 1.5.2
* Bump go.uber.org/zap from 1.18.1 to 1.19.0
* Bump github.com/go-redis/redis/v8 from 8.11.2 to 8.11.3
* Move etc/icingadb.service to packaging repositories (#345)
* Automatically run integration tests using GitHub Actions
* Start adding integration tests
* Ensure extra config options are properly initialized
* Clarify what MustPackAny() does
* Schema: Add description to downtime columns 'triggered_by_id' and 'parent_id'
* Don't print stack on CLI parsing failure or --help
* Don't allow 0 for timeout redis option
* Don't allow 0 for max_connections database option
* Remove UnmarshalYAML
* Don't inline Database options
* Remove UnmarshalYAML
* Don't inline Redis options
* Move method
* Introduce downtime#scheduled_by
* Bump github.com/go-redis/redis/v8 from 8.11.1 to 8.11.2
* Add missing doc in meta
* Add missing doc in meta
* Add missing doc in sync
* Add missing doc in ha
* Add missing doc in entitiesbyid
* Add missing doc in dump_signals
* Add missing doc in delta
* Rename start() to run()
* Add missing doc entitiy_bulker
* Add missing doc in bulker
* Add missing doc in stats_message
* Add missing doc in icinga_status
* Add missing doc in redis utils
* Add missing doc in client
* Add missing doc in utils
* Add missing doc in db
* Add missing doc in command
* Add newline before return
* Remove useless comments
* Return error instead of panicking
* Remove --datadir config flag
* Remove config.ValidateFile()
* Use cancelCtx() instead of just cancel()
* Always use data as paramter name in UnmarshalJSON()
* Always use text as paramter name in UnmarshalText()
* Fix comments
* Remove unused variables Yes and No
* Fix typo
* Fix different receiver names
* Remove unused function PipeError
* Use QueryxContext() instead of Query()
* Remove unused functions
* Validate specified config file only once
* Support --version
* Log MySQL driver errors at the debug level instead of discarding them
* Also retry driver.ErrBadConn
* Enlarge {comment,downtime}#name 255 -> 548
* Use SET SESSION for schema modes
* Clarify why acknowledgement_history#comment is NULLable
* Allow acknowledgement_history#{author,is_sticky,is_persistent} being NULL
* AcknowledgementHistory#Author: make missing value NULL, not ""
* Reduce the size of bulk statements and make the size configurable
* Don't append(x,y) if x is not to be modified
* Get the last IDs of the runtime update streams before starting anything else
* Stream state updates from icinga:runtime:state
* Bump github.com/go-redis/redis/v8 from 8.11.0 to 8.11.1
* Icinga DB: introduce Checkable#last_comment_id
* Downtime: Add parent_id
* Pointer receivers, Cond usage, pass ctx and Godoc for Heartbeat
* Bump github.com/google/uuid from 1.2.0 to 1.3.0
* Do not store ctx inside Cond and add Godoc
* Introduce *_state#normalized_performance_data
* Assert the database schema of the expected version being present
* Fix SEGV due to empty config
* Bump github.com/go-redis/redis/v8 from 8.10.0 to 8.11.0
* Bump go.uber.org/zap from 1.17.0 to 1.18.1
* Use bulk upsert for bulk updates in sync
* Use bulk upsert in runtime updates
* Activate bulk upsert
* Return number of placeholders
* output, long_output and performance_data columns modified to mediumtext
* Support DriverContext
* Call errors.Wrap*() unconditionally where appropriate
* Use errors.As() and Is() in favor of Unwrap()
* Print stack traces
* Use Info() instead of Infof() if no format string
* Wrap errors
* Replace custom err w/ func returing a wrapped err
* Fix imports
* Add utils for wrapping errors
* Bump github.com/go-redis/redis/v8 from 8.7.1 to 8.10.0
* Bump github.com/jessevdk/go-flags from 1.4.0 to 1.5.0
* Bump go.uber.org/zap from 1.16.0 to 1.17.0
* Bump github.com/jmoiron/sqlx from 1.3.1 to 1.3.4
* schema: Re-add indices for `host_id` and `service_id` in state tables
* Service File: Change config file in exec command to new YAML file
* Add stack of current goroutine to errors
* Compare errors smartly, i.e. unwrap them first
* HA: Respect context when operating channels
* HA: context used to start transaction must not be canceled before the transaction is committed
* Schema: Reverse order of entries in enums for boolean
* MySQL schema: reverse order of entries in enums for boolean to fix sort order
* Move `schema/1.0.0-rc2.sql` to `schema/mysql/upgrades/1.0.0-rc2.sql`
* Move `schema/mysql.schema.sql` to `schema/mysql/schema.sql`
* Add custom vars to the runtime update sync
* Add issue template for bug reports
* Increment icingadb_schema version
* 1.0.0-rc2.sql: add all changes since v1.0.0-rc1 git tag
* mysql.schema.sql: integrate changes from 1.0.0-rc2.sql
* Don't misuse loop as if
* s/CondClosed/ErrCondClosed/
* Make channel for signal.Notify() buffered
* Use !bytes.Equal(x,y), not bytes.Compare(x,y)!=0
* Use time.Since(x), not time.Now().Sub(x)
* Use time.NewTicker(), not time.Tick()
* Simplify code
* Un-capitalize error messages
* Drop unused stuff
* Avoid unreachable code
* Ensure context cancellation
* Don't "misuse" unsafe.Pointer
* README.md: Fix new config setup step
* Add a blank issue template with a link to the forum (#276)
* Bump github.com/go-sql-driver/mysql from 1.5.0 to 1.6.0
* README.md: Add information about the config and run command
* README.md: Add RC2 upgrade information
* Update configuration docs
* Move mysql.schema.sql
* Remove obsolete code
* Reduce "Can't update or insert instance. Retrying" log noise
* Also log environment info
* Log first Redis connection error while retrying
* Log first database connection error while retrying
* gofmt: behave like Goland
* GitHub actions: show what exactly is not well formatted
* GitHub actions: separate linters
* Include a Github Actions test
* Improve database and HA logging
* db.BulkExec(): Use ExecContext() instead of Query()
* SQL driver: de-duplicate retry.WithBackoff() logic
* Redis dialer: de-duplicate retry.WithBackoff() logic
* retry.WithBackoff(): return the most descriptive error
* retry.WithBackoff(): add optional timeout
* retry.WithBackoff(): pass a context to the function to be tried
* Don't execute runtime update upset queries concurrently
* Wrap Redis errors
* Introduce icingaredis.WrapCmdErr()
* Introduce utils.Ellipsize()
* HA: Add own instance ID to responsibility query
* config.Redis#NewClient(): work-around go-redis/redis#1737
* Redis: retry dial on syscall.ECONNREFUSED
* Change ID fields to match SQL schema
* types.AcknowledgementState: Fix state map
* Sync overdue indicators
* Flat CVs: represent null as "null", not "<nil>"
* Make Redis/MySQL concurrency and batch sizes configurable
* Introduce objectpacker.MustPackAny()
* Remove time taken debug log for named queries
* Remove NewCustomvar from Factories
* Flatten: Fix keys
* Sync customvar flat
* Add func icingadb.v1.FlattenCustomvars()
* Precise log messages
* Remove log message
* Fix race
* Remove icingadb.Sync.fromRedis()
* Add NewCustomvarFlat()
* Introduce icingadb.Sync.ApplyDelta()
* Expect common.SyncSubject in icingadb.Delta
* Use type common.SyncSubject
* Introduce func icingaredis.Client.YieldAll()
* Introduce type common.SyncSubject
* PackAny(): Golangify spec doc
* PackAny(): pack [I]byte as string in map keys as well
* PackAny(): restore unit test case
* PackAny(): enhance code docs
* PackAny(): panic() explicitly, not due to a programming error
* Add comment explaining the purpose of ha.Close()
* Exit with an error code if not exiting due to a signal
* PackAny(): disallow types recursively more strictly
* PackAny(): support numbers only as float64
* Runtime updates must wait for config sync to complete
* Implement runtime updates
* Handle HA errors
* Remove always-false if
* Fix UsergroupMember.UserId JSON tag
* PackAny(): support types.Binary
* PackAny(): pack []byte as string, not array of numbers
* icingadb.DB: Rename functions that take a channel to *Streamed()
* icingadb.DB: Add Delete() and DeleteStreamed()
* com.Bulker: Change type from contracts.Entity to interface{}
* Add com.EntityBulker
* icingaredis.Client: Add StreamLastId()
* types.NotificationTypes: Implement UnmarshalText()
* types.NotificationStates: Implement UnmarshalText()
* types.Int: Implement UnmarshalText()
* Structify: Allow for string ptr (e.g. NameCi)
* NameCiMeta: Add missing json tag to NameMeta
* Introduce PackAny()
* Schema (Host-/ServiceState): Add columns id and properties_checksum
* Add service state
* Add host state
* Add v1.State
* Add types.AcknowledgementState
* types.StateType: Implement UnmarshalJson()
* Change redis key prefix to 'icinga:*' instead of 'icinga:config:*'
* Read icinga:dump stream and respect dump signals
* Main loop: return if ctx has an error
* Handle SIGINT/SIGTERM/SIGHUP
* Move factories away from main and use v1.Factories
* Introduce v1.Factories
* Add EntityFactoryFunc.WithInit()
* Return ctx.Err() on ctx.Done()
* main(): don't panic on (intentional) context cancel
* Remove comment
* Remove customvar_flat sync draft
* HMYield(): handle missing values
* Sync#Sync(): don't run no-ops
* Fix missing import
* Drop utils.SyncMap*()
* Delta: don't over-lock
* Introduce EntitiesById
* Sync history
* Introduce contracts.TableNamer
* DB#Upsert(): workaround jmoiron/sqlx#694
* DB#Upsert(): allow to update not all columns
* Introduce DB#Upsert()
* Deduplicate DB#Create() and DB#Update()
* DB#NamedBulkExec*(): reduce channel requirements
* DB#NamedBulkExec(): optionally inform about successfully inserted rows
* Restrict Bulker to contracts.Entity
* Make types.UnixMilli an encoding.TextUnmarshaler
* Make types.String an encoding.TextUnmarshaler
* Make types.Bool an encoding.TextUnmarshaler
* Introduce types.StateType
* Introduce types.NotificationType
* Introduce types.Float
* Introduce types.UUID
* Introduce utils.MakeMapStructifier()
* Host: sync also address{,6}_bin
* Delta#start(): avoid a race across maps by using a mutex
* NameCiMeta#NameCi: don't (unneccessarily) decode from JSON
* shouldRetry(): retry on driver.ErrBadConn as well
* Actually use re-trying SQL driver
* Introduce types.CommentType
* EntityWithChecksum: fix missing `json:",inline"`
* Make CommandArgument an Initer
* Introduce types.NotificationStates
* Introduce types.NotificationTypes
* Sync timeperiods as well
* Sync notifications as well
* Sync comments as well
* Sync zones as well
* Sync downtimes as well
* Sync commands as well
* Introduce Int
* Introduce String
* Sync endpoints as well
* Sync groups as well
* Sync users as well
* Introduce CustomvarMeta
* Group related types
* Make channels more specific
* Sync URLs as well
* Host: re-use Checkable
* New*(): don't re-do Init()
* Auto-init Initers
* Make NameCiMeta an Initer
* Make project a Go module
* HA: only execute query to remove old instances once
* Replace persisted instance ID with a random one and remove old rows from icingadb_instance
* Always write HA heartbeat
* Only signal HA takeover if a takeover was attempted
* Insert endpoint_id into icingadb_instance
* Add cmd
* Add first set of types to sync
* Introduce meta types
* Implement sync
* Add type icingadb.HA
* Introducte type icingaredis.Heartbeat
* Add types necessary for heartbeat and HA
* Add type icingaredis.Client
* Introduce pkg com
* Introduce flatten
* Auto-reconnect database conns
* Introduce retry functionality
* Increase timeout to 60s for database connections
* Add type icingadb.DB
* Add config.yml.example
* Add config utils
* Add type config.Redis
* Add type config.Database
* Add .gitignore
* Add type types.Bool
* Add type types.UnixMilli
* Add type types.Binary
* Add utils
* Add contracts
* Bump github.com/sirupsen/logrus from 1.7.0 to 1.8.0
* Set an explicit timeout for go test
* Drop *Bridge
* SqlFetchAll*(): return a slice of struct
* Drop unused SqlFetchAll*()
* Make overdue sync HA-aware
* HA: only read new hearbeats from Redis
* HA: use separate MySQL connection
* HA: use separate Redis connection
* Improve log messages related to HA takeover/handover
* HA: prefer new Icinga 2 heartbeat over forced update
* Detect and warn about slow HA heartbeat SQL transactions
* Remove previous rows from icingadb_instance table
* Add test for HA RegisterStateChangeListener
* Rewrite HA logic to use SQL serializable transactions
* Add test demonstrating that multiple instances may take over at the same time
* Provide generic HA state change notifications
* Don't retry individual SQL transaction commands
* ChunkRows: replace float with int arithmetic
* ChunkRows(): ensure to never get an empty chunk
* configsync: fetch checksums using HSCAN if available, otherwise reuse config
* Schema: correct comments in flapping_history, acknowledgement_history
* configsync: use HSCAN instead of HKEYS
* Add support mysql unix domain socket
* Bump github.com/google/uuid from 1.1.5 to 1.2.0
* Bump github.com/google/uuid from 1.1.4 to 1.1.5
* Bump github.com/google/uuid from 1.1.3 to 1.1.4
* Bump github.com/google/uuid from 1.1.2 to 1.1.3
* Bump github.com/prometheus/client_golang from 1.8.0 to 1.9.0
* Fix error message for MySQL in tests which previously said that Redis is not working
* Actually insert NULL into NULLable columns
* Keep testing w/ MariaDB v10.4
* Test also w/ Redis v6+
* Keep testing w/ Go v1.14
* Bump github.com/go-ini/ini from 1.61.0 to 1.62.0
* Bump github.com/sirupsen/logrus from 1.6.0 to 1.7.0
* Bump github.com/prometheus/client_golang from 1.7.1 to 1.8.0
* mysql/schema: Add name indices to host,service,user,usergroup tables
* Adjust import sorting in main.go
* Fix formatting using go fmt
* Bump github.com/go-ini/ini from 1.60.1 to 1.61.0
* Bump github.com/google/uuid from 1.1.1 to 1.1.2
* Bump github.com/go-ini/ini from 1.57.0 to 1.60.1
* Fix CI/CD tests
* Doc: Add Redis password configuration settings
* Add Redis password authentication
* Bump github.com/prometheus/client_golang from 1.7.0 to 1.7.1
* Allow to serve metrics at ::
* GitHub actions: build Docker images
* Bump github.com/prometheus/client_golang from 1.6.0 to 1.7.0
* Create Dependabot config file
* Bump github.com/go-ini/ini from 1.56.0 to 1.57.0
* Bump github.com/json-iterator/go from 1.1.9 to 1.1.10
* Small fixes in doc
* Bump github.com/stretchr/testify from 1.5.1 to 1.6.1
* Bump github.com/go-redis/redis/v7 from 7.3.0 to 7.4.0
* Bump github.com/go-redis/redis/v7 from 7.2.0 to 7.3.0
* History: correct event time of cancelled downtimes
* Overdue: Fix indicators getting out of sync (Redis/DB)
* *CommandArgument: Fix SetIf data type to accept any JSON data
* MySQL: Make sure to chunk rows
* Overdue: Make sure to chunk before updating in DB
* Upgrade Redis client
* User: Fix NotificationsEnabled not cast to DB bool
* Bump github.com/go-ini/ini from 1.55.0 to 1.56.0
* Bump github.com/prometheus/client_golang from 1.5.1 to 1.6.0
* Bump github.com/sirupsen/logrus from 1.5.0 to 1.6.0
* GitHub actions: test Go v1.13
* Schema: Change *command_argument.argument_order to smallint
* Correct typo in context image
* Don't populate sticky acks as non-sticky
* mkMysql(): allow connections to idle
* Update .mailmap
* Update .mailmap
* Bump github.com/stretchr/testify from 1.4.0 to 1.5.1
* Update go mod
* SqlFetchChecksums(): close SQL rows ASAP
* Change icinga-redis to icingadb-redis in service file
* Docs: Remove release repo info
* Docs: Replace release repo with testing repo for RC
-------------------------------------------------------------------
Fri Jun 25 14:50:13 UTC 2021 - ecsos <ecsos@opensuse.org>
- Initial version 1.0.0-rc1