* refactor(ui): polish appearance of alerting index view
* refactor(ui): ensure alert check editor header has proper padding
* refactor(ui): emphasize alerting button more
* refactor(ui): style check builder control bar
* refactor(ui): allow buidler card to have a customizable width
* refactor(ui): expose autohide prop from dapperscrollbars within buildercardbody
* refactor(ui): allow dashed button to have configurable color and size
* refactor(ui): add placeholder buttons in to thresholds card
* refactor(ui): add custom styles for alert builder cards
* refactor(ui): increase height of status message template
* refactor(ui): add empty state to matching rules card
* fix(ui): reconnect checks list to redux
* refactor(ui): use more appropriate copy in endpoints empty state
* Use CheckPlot to visualize check view
* Revert to add threshold types
* Disable view type dropdown in checkView
* Add proper equality
* Add errors in default cases
This will only attempt to parse an error as JSON if it has the content
type `application/json` so that it stops trying to parse the result as
JSON when it isn't JSON.
While the real error message is included, the addition of the "could not
parse json" makes it very confusing to read and distracts from the real
issue.
Changes our error reporting strategy for Honeybadger from "report
everything logged by `console.error`" to "report everything caught by an
error boundary".
As before, Honeybadger still reports everything caught by
`window.onerror` as well.
* chore: add new types for NotiicationRules
* build(client): remove client and build each build
* chore: update gitignore to exclude generated client
* fix: allow client dir to be empty
* docs: add README to client dir
* fix(build): add autogen client to eslintignore
* build: gen client for ci js tests
* Add check saving flows and change activeTab type
* Add first pass at alertBuilder
* Change TimeMachineEnum type
* Add xy view properties to checks, and convert to and from check View type
* Add Column Header to checks column
* Add change current check type action
* Access view type through properties
* Load xy view options for check view
* Add orgID to check in createCheck
* Clear current check on close CheckEO
* Create Check Alerting Button
* Create check view on edit and new check EO
* Fix edit check eo action bug
* Update threshold types
* When switch schedule from every to cron change the inputs that are visible
* save Current Check from VEO if view type is check
* Add description component to checks
* TimeMachineIDs to TimeMachineID
* Remove bracketed object decleration
* Remove as Threshold type
* Use ViewType instead of typeof
* Create CheckType type
* Remove time machine reducer tests
* Remove check view properties that come from xyView
* Fix EditCheck hooks
* Move status calculations to body of function
* Update redux store when performing check CRUD
* Create add and remove check actions in timeMachine
* Remove trailing space
It is expected that if a function awaits a promise, and that promise
rejects with a `CancellationError`, that the function catch and silence
the error. We usually do this, except for one subtle case: in the
`QueryBuilderFetcher`, cancellable promises are intercepted and their
results are cached. Since this caching branch of the promise chain had
no error handling, we were still seeing `CancellationError`s logged to
the console.
This commit blackholes those errors so that they do not show in the
console. It is only expected that the caller of these caching wrappers
handle the `CancellationError`.
Closes#14404
Before we would switch from a spinner to "Loading..." text while a cell
loaded for the first time.
This commit changes cells to only show "Loading..." while loading, which
feels less spastic.
Adds support for fetching a Flux response with a limit, and returning a
partial response instead of an error if that limit is exceeded.
The logic is implemented here instead of in influxdb-client-js as part
of #14482.
Moves the handwritten AST wrapper types from influxdb-client-js back
into the UI. Long term I think we should improve the `swagger.yml` spec
for these types so that we can use their generated counterparts. This
will take some tedious labor and a review from the Flux team.
Part of #14482
When a user saves a query from the DE as a task, we display an overlay
that allows them to select the token they use for the task. Since not
all tokens have access to the buckets read from and written to in the
query, we filter the list of tokens that are selectable in the overlay.
This commit:
- Improves the detection of what buckets are read from in the query by
using an AST based approach to analyzing the query, rather than some
stringy heuristics
- Removes the assumption that only a single bucket is read from in the
query
Closes#14226
The `exists` operator now gets pushed down to storage correctly. If
`exists` is used on a tag, then it will be rewritten to `tag != ""`
which is how storage defines if a tag exists. If `not exists` is used,
then it will use `tag == ""` which is how you would query storage for
only if a tag doesn't exist.
The `tag == ""` and `tag != ""` are different. For `tag == ""`, the
predicate is impossible for the storage layer to return true with.
Ideally, we would just rewrite this to return nothing and we wouldn't
bother with even querying storage. Instead, we just do not rewrite this
predicate because it cannot be rewritten to make sense with storage. If
we see `tag != ""`, it is the only one that can be passed through as-is
because `tag != ""` returns the same values as `exists tag`. It will
return true for every non-null value.