* 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
1127 lines
52 KiB
Plaintext
1127 lines
52 KiB
Plaintext
-------------------------------------------------------------------
|
||
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: don’t 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
|