Jonathan Hurley created AMBARI-9597:
---------------------------------------
Summary: Current Alerts Do Not Reflect the Name Change of an Alert
Definition
Key: AMBARI-9597
URL: https://issues.apache.org/jira/browse/AMBARI-9597
Project: Ambari
Issue Type: Bug
Components: ambari-server
Affects Versions: 2.0.0
Reporter: Jonathan Hurley
Assignee: Jonathan Hurley
Priority: Critical
Fix For: 2.0.0
Steps:
# Go to Alerts page.
# Open any alert.
# Change name of alert.
# Go to host with this alert.
Result: on host alert page is present alert with old name.
Here is what I believe the behavior should be:
- Alert definitions have a "label" value that are used as the human-readable
name. When an alert instance comes in, the instance's name (label) is set to
that of the current definition. There is no enforced relationship in the
database between the definition and instance name. This was a requirement in
that changing the name will only change the alert going forward.
- After changing the definition name, the definition is re-sent to all agents
running it and it set to be rescheduled. It's rescheduled with the new name.
- When a state change occurs, the following code runs:
{code:title=AlertReceivedListener.java}
private AlertHistoryEntity createHistory(long clusterId,
AlertDefinitionEntity definition, Alert alert) {
AlertHistoryEntity history = new AlertHistoryEntity();
history.setAlertDefinition(definition);
history.setAlertInstance(alert.getInstance());
history.setAlertLabel(alert.getLabel()); // THIS IS WHERE IT GETS SET
...
{code}
So the name will change when a state change occurs and a new history entry gets
put in. However, the name will _not_ change if the state doesn't change. If
this is undesirable, we can certainly change the name/label when we receive any
alert; this is a one-line change in {{AlertReceivedListener.java}}. However,
I'd like to get the following question answered:
{quote}
Do we still want the behavior where changing an alert definition's name (label)
only changes future instances of that alert?
{quote}
Because we currently don't expose history, not changing the name retroactively
is not going to be visible at all right now anyway. But in the future we might
expose it. Since we do not audit alert definition changes in the operation log,
the only way to know when this change happened was to keep the historical items
historically accurate. When generating reports, it would be best to keep this
data as read-only.
Therefore, we will only ever change the alerts moving forward.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)