The QueryServiceProxyBridge would not check for errors properly because
it would return any error encountered when running the query as a read
error on the `io.Reader`. This made it so that the csv decoder could not
identify if the error was related to the query or if it was related to
reading. The csv decoder needed to tell the difference because an error
with reading from the `io.Reader` needs to be returned as a decoder
error while an error from the query needs to be returned as-is.
Instead of adapting the csv decoder to do that, we instead lazily
initialize the result iterator when `More()` is called and call `Peek()`
on the reader. If no bytes can be read, we assume this was an error
while executing the query and return it as such. If we are able to read
at least one byte, we decode it through the csv decoder.
add test for hydrateVars
dashboard variable dropdown test: inspect values, not just array length
add RTL test for variable dropdown changes
lint
fix: Disable saving threshold check if no threshold selected (#15348)
* Prevent check saving if no thresholds
* Add tests
* Add changes to changelog
* make optional props optional
* use false instead of null for boolean
changelog
fix(ui): ignore false change events in VariableForm (#15317)
closes#15059
the issue is to persist user data across variable type selection interfaces within the variable editor. this commit pushes all of the variable editor information down to redux to allow persistence outside of the view state until the user clicks "cancel" or "create" in the interface.
while exploring containerization of the frontend, i decided to remove the
existing environment configuration from package.json and push them into
external files in an attempt to improve the caching strategies available
for local development. the CI pipeline should be watching the lock file,
but changes to the testing environment locally shouldn't cause a rebuild
of node_modules.
closes#15059
the issue is to persist user data across variable type selection interfaces within the variable editor. this commit pushes all of the variable editor information down to redux to allow persistence outside of the view state until the user clicks "cancel" or "create" in the interface.
* Add init event markers
* Add events to dashboard graphs
* Add level coloring and styling to event markers
* Window statuses by time and graph groups of events
* Put event markers behind feature flag
* init tooltip
* Upgrade giraffe library
* Add Tooltip
* Add status query to Time Machine
* Status rows return lowercase check level statuses
* rename events to statuses
* Radically improve tooltip style
Co-authored-by: alexpaxton <thealexpaxton@gmail.com>
* Add time formatting
* Make status query more readable
* Clean up comments
* NotificationRuleBase: the endpointID should be required and editable, there is missing a links property
* NotificationRule: add discriminator
* add a missing TraceSpan parameter into a GetNotificationRules and GetChecks
* feat(task): add limit function for task concurrency
The new task executor handles limit's differently then the old executor
instead of front loading limits by creating a runner for every task that might run
the new executor has a large worker pool and queue. This allow's us to have a unlimited
concurrency per task and helps us avoid a back log of task's execution based on a
arbitrary execution limit. This add's the ability to add an optional task execution limit
so a user can still have the advantages of limiting concurrency.