* add 'Link' button
adds a button to each alert that allows linking to a single alert.
This works by generating a link that filters on _all_ of the alert's
label values, similar to the button to create a new silence from an
alert.
Signed-off-by: Christopher Taylor <chris.taylor@soundcloud.com>
* update asset/assets_vfsdata.go
Signed-off-by: Christopher Taylor <chris.taylor@soundcloud.com>
Signed-off-by: Christopher Taylor <chris.taylor@soundcloud.com>
* Automate CSS-inlining for default HTML email template
The original HTML email template was added in `template/email.html`.
It looks like the CSS was manually inlined. Most likely using the
premailer.dialect.ca web form, which is mentioned in the README for
the Mailgun transactional-email-templates project. The resulting HTML
with inlined CSS was then copied into `template/default.tmpl`. This
has resulted in `email.html` and `default.tmpl` diverging at times.
This commit adds build automation to inline the CSS automatically
using [juice][1]. The Go template containing the resulting HTML has
been moved into its own file to avoid the script that performs the CSS
inlining having to parse the `default.tmpl` file to insert it there.
Fixes#1939.
[1]: https://www.npmjs.com/package/juice
Signed-off-by: Brad Ison <bison@xvdf.io>
* Update asset/assets_vfsdata.go
Signed-off-by: Brad Ison <bison@xvdf.io>
* Run elm-review from CI
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Use the jfmengels/elm-review-simplify rule
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Make assets
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Support negative matchers in silence form
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Extract url manipulation from filterBar
This is needed for silence form, where we don't have to
manipulate the url.
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Only show the silence button in the alert list
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Validate matchers
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Improve silence form layout
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Fix for editing existing silence
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Fix for resetting the form
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
* Update assets_vfsdata.go
Signed-off-by: Andrey Kuzmin <unsoundscapes@gmail.com>
The frontend CI job started to fail for some obscure reasons, most
probably because we use a very old version of NodeJS.
To make it work again, this change does the following:
* Bump to the latest NodeJS LTS version and use the buster variant.
* Use Yarn instead of npm to install Javascript packages.
* Bump Elm components to their latest versions.
There should be no functional change to the UI code.
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
* do not split receiver by slash
I'm not sure why this was originally done, because a slash seems to be perfectly
valid in a receiver definition. The only issue i encountered was that linking
from a fired alert was not working, because of the splitting performed here.
Signed-off-by: Tim Reddehase <tim.reddehase@xing.com>
* urlquery escape Receiver by default for URL
If Receiver is allowed to contain slashes and other special characters
we need to percent encode them properly.
Signed-off-by: Tim Reddehase <tim.reddehase@xing.com>
* rerun make asset/assets_vfsdata.go
Signed-off-by: Tim Reddehase <tim.reddehase@xing.com>
This change moves the continuous integration to Circle CI only as
maintaining 2 systems has a cost.
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
* textarea with auto resize
Signed-off-by: mizukoshi-m <mizukoshi@mfeed.ad.jp>
* implement resize textarea on type
Signed-off-by: m-masataka <m.mizukoshi.wakuwaku@gmail.com>
* remove scrollHeight
Signed-off-by: m-masataka <m.mizukoshi.wakuwaku@gmail.com>
* Add new function for textarea field
Signed-off-by: m-masataka <m.mizukoshi.wakuwaku@gmail.com>
* remove unnecessary code
Signed-off-by: m-masataka <m.mizukoshi.wakuwaku@gmail.com>
* Create Silence from filters
Signed-off-by: m-masataka <m.mizukoshi.wakuwaku@gmail.com>
* Get rid of unnecessary things
Signed-off-by: m-masataka <m.mizukoshi.wakuwaku@gmail.com>
Updating the api in
bc373f562f
resulted in the UI sending query strings for the
filter that no longer match what the backend
expects. This brings that in to line.
Signed-off-by: stuart nelson <stuartnelson3@gmail.com>
Even if an alert is already silenced and/or muted, I still want to
know that my newly created silence will affect it.
Signed-off-by: beorn7 <beorn@soundcloud.com>
If a users chooses to disable the Alertmanager cluster feature, there is
no cluster name nor cluster peers. Hence these should be optional. Only
cluster status is set to "disabled".
Signed-off-by: Max Leonard Inden <IndenML@gmail.com>
When users start Alertmanager with `--cluster.listen-address=`, the
cluster will not be initialized, hence api.peer will be `nil`. So far
this would result in a nil pointer dereference by the API v2 accessing
the api.peer field.
With this patch, api v2 skips populating the peers array, sets the name
to an empty string and the status to "disabled" in case `api.peer` is
nil.
Signed-off-by: Max Leonard Inden <IndenML@gmail.com>
* Remove inhibited/silenced text
In the alert list, this is already seen via the
icons. In the silence preview, since it's in the
silence preview, clearly it's affected by the
silence.
* Generate assets
Signed-off-by: stuart nelson <stuartnelson3@gmail.com>
With issue 1465 on openapi-generator [1] being fixed, we can not extract
shared properties of the gettable and postable alert definition into a
shared object (`alert`) like we do for silence, gettable silence and
postable silence.
In addition this patch does the following changes to the UI:
- Use `List GettableAlert` instead of plural type definition like
`GettableAlerts` because the plural definitions are not generated.
- Fix openapi-generator-cli docker image to specific hash.
[1] https://github.com/OpenAPITools/openapi-generator/issues/1465
Signed-off-by: Max Leonard Inden <IndenML@gmail.com>
Previously the api url was hardcoded in the elm logic fetching the
status of an Alertmanager. Instead it is now being passed down like we
already did for /alerts, /silences and /receivers.
Signed-off-by: Max Leonard Inden <IndenML@gmail.com>
Instead of having one general silence, differentiate between postable
and gettable silence, hence making more fields required.
Signed-off-by: Max Leonard Inden <IndenML@gmail.com>
With the previous patch /status and /silences were requested from api
v2. Requesting alerts from api v1 is done in a separate commit to be
able to revert it once alerts also come from api v2.
Signed-off-by: Max Leonard Inden <IndenML@gmail.com>
This patch makes the Alertmanager UI (/status & /silences) use the
api/v2 endpoint. In addition it adds logic to generate the elm side data
model based on the OpenAPI specification.
Signed-off-by: Max Leonard Inden <IndenML@gmail.com>