Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
server:monitoring
icingadb
icingadb.changes
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File icingadb.changes of Package icingadb
------------------------------------------------------------------- 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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor