Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix:unknown NoData state option for alertrulev9 #606

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Changelog
* Extended SqlTarget to support parsing queries from files
* Fix AlertCondition backwards compatibility (``useNewAlerts`` default to ``False``)
* Added RateMetricAgg_ for ElasticSearch
* Fix AlertRuleV9 "unknown NoData state option No Data"

.. _`Bar_Chart`: https://grafana.com/docs/grafana/latest/panels-visualizations/visualizations/bar-chart/
.. _`RateMetricAgg`: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-rate-aggregation.html
Expand Down
26 changes: 16 additions & 10 deletions grafanalib/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,12 @@ def to_json_data(self):
ALERTRULE_STATE_DATA_ALERTING = 'Alerting'
ALERTRULE_STATE_DATA_ERROR = 'Error'

# Alert Rule state filter options (Grafana 9.x)
ALERTRULEV9_STATE_DATA_OK = 'OK'
ALERTRULEV9_STATE_DATA_NODATA = 'NoData'
ALERTRULEV9_STATE_DATA_ALERTING = 'Alerting'
ALERTRULEV9_STATE_DATA_ERROR = 'Error'

# Display Sort Order
SORT_ASC = 1
SORT_DESC = 2
Expand Down Expand Up @@ -1591,10 +1597,10 @@ class AlertRulev9(object):
The Interval is set by the alert group
:param noDataAlertState: Alert state if no data or all values are null
Must be one of the following:
[ALERTRULE_STATE_DATA_OK, ALERTRULE_STATE_DATA_ALERTING, ALERTRULE_STATE_DATA_NODATA ]
[ALERTRULEV9_STATE_DATA_OK, ALERTRULEV9_STATE_DATA_ALERTING, ALERTRULEV9_STATE_DATA_NODATA]
:param errorAlertState: Alert state if execution error or timeout
Must be one of the following:
[ALERTRULE_STATE_DATA_OK, ALERTRULE_STATE_DATA_ALERTING, ALERTRULE_STATE_DATA_ERROR ]
[ALERTRULEV9_STATE_DATA_OK, ALERTRULEV9_STATE_DATA_ALERTING, ALERTRULEV9_STATE_DATA_ERROR ]

:param timeRangeFrom: Time range interpolation data start from
:param timeRangeTo: Time range interpolation data finish at
Expand All @@ -1610,19 +1616,19 @@ class AlertRulev9(object):

evaluateFor = attr.ib(default=DEFAULT_ALERT_EVALUATE_FOR, validator=instance_of(str))
noDataAlertState = attr.ib(
default=ALERTRULE_STATE_DATA_ALERTING,
default=ALERTRULEV9_STATE_DATA_ALERTING,
validator=in_([
ALERTRULE_STATE_DATA_OK,
ALERTRULE_STATE_DATA_ALERTING,
ALERTRULE_STATE_DATA_NODATA
ALERTRULEV9_STATE_DATA_OK,
ALERTRULEV9_STATE_DATA_ALERTING,
ALERTRULEV9_STATE_DATA_NODATA
])
)
errorAlertState = attr.ib(
default=ALERTRULE_STATE_DATA_ALERTING,
default=ALERTRULEV9_STATE_DATA_ALERTING,
validator=in_([
ALERTRULE_STATE_DATA_OK,
ALERTRULE_STATE_DATA_ALERTING,
ALERTRULE_STATE_DATA_ERROR
ALERTRULEV9_STATE_DATA_OK,
ALERTRULEV9_STATE_DATA_ALERTING,
ALERTRULEV9_STATE_DATA_ERROR
])
)
condition = attr.ib(default='B')
Expand Down
Loading