This adds a new command, update (and also its alias, extend), to update
existing silence in Alertmanager. User can use this command to update the
expiration or comment on existing silences. The API already support this
so I only expose the same functionality to amtool.
Don't allow update CreatedBy field as it is "Created" not "Updated", so
we should keep the original author.
* Add a new `silence import` command to amtool
This command read silences data from a query JSON output and import to
alertmanager. It allows `amtool` to be used as a backup/restore tool for
silences, i.e. #1000
Backup / export:
```
amtool silence -o json > silences.json
```
Restore / import:
```
amtool silence import silences.json
```
* Add a WaitGroup barrier
Move error channel reading to a goroutine to prevent deadlock and thus
add a WaitGroup to synchronize.
Fixes#721
I was using the RunE method of cobra.Command which does things with an
error returned from a function. I doesn't seem possible to keep it from
printing usage every time, so I've make a wrapper to use the other
function.
* Implement alertmanager cli tool 'amtool'
The primary goal of an alertmanager tool is to provide a cli interface
for the prometheus alertmanager.
My vision for this tool has two parts:
- Silence management (query, add, delete)
- Alert management (query, maybe more in future?)
Resolves: #567