Title: linux interface shown as DOWN instead of UP
Class: fix
Compatible: compat
Component: checks
Date: 1696942593
Edition: cre
Knowledge: doc
Level: 1
State: unknown
Version: 2.3.0b1
This werk is relevant for you, in case you're monitoring an interfaces which don't deliver information via <tt>ethtool</tt>.
This regression existed since the release of 2.2 and shows your interface in operational state "DOWN" instead of "UP".
Title: New global option to configure maximum long output size
Class: feature
Compatible: compat
Component: core
Date: 1695302837
Edition: cee
Knowledge: undoc
Level: 1
Version: 2.3.0b1
You can now configure a maximum long output size. If this size is reached, a
warning about truncated long output will be shown in the details section of
the related service.
Title: setup form page rendering stuck when page has lots of select boxes
Class: fix
Compatible: compat
Component: setup
Date: 1696921699
Edition: cre
Knowledge: doc
Level: 1
Version: 2.3.0b1
Previously, when a HTML form page was rendered with a lot (>hundreds) of
select boxes, the augmentation process to make them searchable was taking
a very long time.
Until a proper fix for this performance problem can be found, we now prevent
the augmentation process whenever it would take more than 3 seconds.
The user-interface is almost not affected, only the select boxes are no longer
searchable. No manual action of the user is necessary to make this work.
Title: Forecasting: Stricter checks for missing data
Class: fix
Compatible: compat
Component: metrics
Date: 1695745202
Edition: cee
Knowledge: doc
Level: 1
State: unknown
Version: 2.1.0p35
When computing forecasts for forecast graphs or views, Checkmk now strictly validates the input RRD
data and produces an error in case there are missing data points. The produced error message reads:
C+:
Historic metric data is incomplete. You can try to mitigate this by shortening the considered
history. Latest missing data point:
2023-09-26T00:00:00+00:00
C-:
Before this werk, missing data was handled inconsistently and partially incorrectly. Note that this
change also solves crashes such as
C+:
Traceback (most recent call last):
...
y_hat = y_hat[display_time]
IndexError: boolean index did not match indexed array along dimension 0; dimension is 176 but corresponding boolean dimension is 177
C-:
These crashes were caused by handling missing data incorrectly. Instead, we now display the error
message mentioned above.
Note that depending on the exact configuration, certain forecasts will now show the error message
mentioned above, whereas before this change, a forecast was computed. We explicitly prefer this over
showing potentially incorrect forecasts. Also note that we explicitly chose to not fill in missing
data points eg. by interpolating, since this can lead to unreliable forecasts.
Title: Forecasting: Stricter checks for missing data
Class: fix
Compatible: compat
Component: metrics
Date: 1695745202
Edition: cee
Knowledge: doc
Level: 1
State: unknown
Version: 2.2.0p12
When computing forecasts for forecast graphs or views, Checkmk now strictly validates the input RRD
data and produces an error in case there are missing data points. The produced error message reads:
C+:
Historic metric data is incomplete. You can try to mitigate this by shortening the considered
history. Latest missing data point:
2023-09-26T00:00:00+00:00
C-:
Before this werk, missing data was handled inconsistently and partially incorrectly. Note that this
change also solves crashes such as
C+:
Traceback (most recent call last):
...
y_hat = y_hat[display_time]
IndexError: boolean index did not match indexed array along dimension 0; dimension is 176 but corresponding boolean dimension is 177
C-:
These crashes were caused by handling missing data incorrectly. Instead, we now display the error
message mentioned above.
Note that depending on the exact configuration, certain forecasts will now show the error message
mentioned above, whereas before this change, a forecast was computed. We explicitly prefer this over
showing potentially incorrect forecasts. Also note that we explicitly chose to not fill in missing
data points eg. by interpolating, since this can lead to unreliable forecasts.
Title: Forecasting: Stricter checks for missing data
Class: fix
Compatible: compat
Component: metrics
Date: 1695745202
Edition: cee
Knowledge: doc
Level: 1
Version: 2.3.0b1
When computing forecasts for forecast graphs or views, Checkmk now strictly validates the input RRD
data and produces an error in case there are missing data points. The produced error message reads:
C+:
Historic metric data is incomplete. You can try to mitigate this by shortening the considered
history. Latest missing data point:
2023-09-26T00:00:00+00:00
C-:
Before this werk, missing data was handled inconsistently and partially incorrectly. Note that this
change also solves crashes such as
C+:
Traceback (most recent call last):
...
y_hat = y_hat[display_time]
IndexError: boolean index did not match indexed array along dimension 0; dimension is 176 but corresponding boolean dimension is 177
C-:
These crashes were caused by handling missing data incorrectly. Instead, we now display the error
message mentioned above.
Note that depending on the exact configuration, certain forecasts will now show the error message
mentioned above, whereas before this change, a forecast was computed. We explicitly prefer this over
showing potentially incorrect forecasts. Also note that we explicitly chose to not fill in missing
data points eg. by interpolating, since this can lead to unreliable forecasts.
Title: Handle template backups with agent_proxmox
Class: fix
Compatible: compat
Component: checks
Date: 1696513059
Edition: cre
Knowledge: doc
Level: 1
Version: 2.1.0p35
Till now, template backups were ignored by the special agent proxmox as they are missing some previously required data.
We now continue processing those kind of backups with a minimal set of information:
<ul>
<li> started_time
<li> total_duration
<li> archive_name
<li> archive_size
</ul>
Title: Handle fast transferred proxmox backups
Class: fix
Compatible: compat
Component: checks
Date: 1696505627
Edition: cre
Knowledge: undoc
Level: 1
State: unknown
Version: 2.1.0p35
This werk is relevant for you if you're monitoring your proxmox backups and you noted some of them are missing.
The reason for that is they were transferred in less than a second.
A potential traceback could have been:
C+:
cmk.special_agents.agent_proxmox_ve.BackupTask.LogParseWarning: End of VM '123' while still information is missing (we have: {'archive_name', 'archive_size', 'started_time', 'total_duration'})
C-:
This pattern was not yet recognized by our special agent and will now be honored.
Title: postgres_processes: Restore Monitoring if Instance Name is Missing
Class: fix
Compatible: compat
Component: checks
Date: 1695383436
Edition: cre
Knowledge: doc
Level: 1
State: unknown
Version: 2.1.0p35
As of version 2.1.0p30 and 2.2.0p4, it was no longer possible to use the plugin postgres_instances,
if the instance name was empty, i.e. ``. In previous versions, this plugin would show a service with
the item `PostgreSQL Instance `. This service would be OK, if there was at least one process
belonging to any postgres instance, and CRIT otherwise.
With this Werk, the plugin postgres_instances no longer crashes, if there is an empty instance name.
The old service `PostgreSQL Instance ` is no longer discovered. Instead the new check plugin
postgres_processes can be used.
Title: postgres: Fix Internal error: 'NoneType' object has no attribute 'value_to_json_safe'
Class: fix
Compatible: compat
Component: wato
Date: 1695631092
Edition: cee
Knowledge: doc
Level: 1
State: unknown
Version: 2.1.0p35
In Werk 16016, an incompatible change to rule `PostgreSQL database and sessions (Linux, Windows)`
was introduced. This Werk caused multiple regression bugs, particularly affecting users with
existing rulesets.
If a user upgraded to 2.1.0p33 and had an existing rule `PostgreSQL database and sessions (Linux,
Windows)`, then the would see the following error during upgrade:
C+:
- ERROR: Failed to transform rule: (Ruleset: agent_config:mk_postgres, ...}}:
C-:
Moreover, if users tried to address the issue by editing the rule, then the following error was
shown:
C+:
Internal error: 'NoneType' object has no attribute 'value_to_json_safe'
C-:
With this Werk, the configuration is automatically migrated to the new format and the errors should
no longer occur. Users, whom upgraded to 2.2.0p8 were not affected by this problem.
If a user updated the agent plugin `mk_postgres.py` with means other than the bakery, then they
would encounter the following error while executing `mk_postgres.py`:
C+:
ValueError: not enough values to unpack (expected 4, got 3)
C-:
This error could be addressed by adopting the postgres.cfg in the ways described by Werk 16016.
However, if the environment file was called `.env`, then another error might occur:
C+:
ValueError: Instance name can not be inferred from .env file, instance name should be specified explicitly
C-:
With this Werk, these errors no longer occur. Both, old configuration files and configuration files
where the instance name is empty, are considered to be valid. The absence of an instance name is
handled in the same way it was handled before Werk 16016.
Note, that an empty instance is still a mistake. If you are affected by any of the two errors above,
it is recommended to migrate to the configuration format and to specify a non-empty instance name
explicitely. For example, let's assume your configuration file contains this line:
C+:
INSTANCE=/home/postgres/db1.env:USER_NAME:/PATH/TO/.pgpass
C-:
Then, you can find the instance name by taking the environment file path (`/home/postgres/db1.env`),
removing the directory (`db1.env`), and removing everything after the `.` (`db1`). Thus, the new
format is equivalent to:
C+:
INSTANCE=/home/postgres/db1.env:USER_NAME:/PATH/TO/.pgpass:db1
C-:
Sometimes, this may fail if your instance name is empty. For example,
C+:
INSTANCE=/home/postgres/.env:USER_NAME:/PATH/TO/.pgpass
C-:
would result in
C+:
INSTANCE=/home/postgres/.env:USER_NAME:/PATH/TO/.pgpass:
C-:
With this version of `mk_postgres.py` this configuration is allowed again, but it is not
recommended. You view your instances, by creating a `psql` session and using the command
C+:
postgres-# \l
C-:
Additionally, Werk 15644 fixes the crash of the postgres_instances check.