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.
Title: Handle template backups with agent_proxmox
Class: fix
Compatible: compat
Component: checks
Date: 1696513059
Edition: cre
Knowledge: doc
Level: 1
State: unknown
Version: 2.2.0p12
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.2.0p12
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: Handle redirect RoutingRules of azure's application gateways
Class: fix
Compatible: compat
Component: checks
Date: 1696591284
Edition: cre
Knowledge: doc
Level: 1
Version: 2.2.0p12
If you're having a http redirect routing rule configured in your azure application gateway, the parsing of the section may have failed with:
C+:
pydantic.error_wrappers.ValidationError: 10 validation errors for AppGateway
C-:
This is due to the fact, that a redirect routing rule may not have the previously required information (backendAddressPool and backendHttpSettings).
Those fields are now not required anymore.