Commit Graph

73 Commits

Author SHA1 Message Date
Simon Pasquier
d2bc742474 *: support Go modules
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-11-20 16:09:40 +01:00
Simon Pasquier
e8e70afc44 vendor: fix packages with dubious revision
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
Co-authored-by: Max Leonard Inden <IndenML@gmail.com>
2018-11-16 15:20:53 +01:00
Simon Pasquier
3558e6fd9e Migrate from go-bindata to vfsgen (#1532)
* Migrate from go-bindata to vfsgen

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Ensure idempotent generation for vfsgen

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* asset: update generated files

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Fix asset paths for Windows platforms

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Regenerate assets

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Add vfs wrapper that returns constant mod time

This is identical to what we had with go-bindata and avoids the extra
step of storing the identity of the complete file system in another
location.

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Additional cleanup

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-09-24 15:12:40 +02:00
Max Leonard Inden
f1b920bcc9
api: Implement OpenAPI generated Alertmanager API V2
The current Alertmanager API v1 is undocumented and written by hand.
This patch introduces a new Alertmanager API - v2. The API is fully
generated via an OpenAPI 2.0 [1] specification (see
`api/v2/openapi.yaml`) with the exception of the http handlers itself.

Pros:
- Generated server code
- Ability to generate clients in all major languages
  (Go, Java, JS, Python, Ruby, Haskell, *elm* [3] ...)
    - Strict contract (OpenAPI spec) between server and clients.
    - Instant feedback on frontend-breaking changes, due to strictly
      typed frontend language elm.
- Generated documentation (See Alertmanager online Swagger UI [4])

Cons:
- Dependency on open api ecosystem including go-swagger [2]

In addition this patch includes the following changes.

- README.md: Add API section

- test: Duplicate acceptance test to API v1 & API v2 version

  The Alertmanager acceptance test framework has a decent test coverage
  on the Alertmanager API. Introducing the Alertmanager API v2 does not go
  hand in hand with deprecating API v1. They should live alongside each
  other for a couple of minor Alertmanager versions.

  Instead of porting the acceptance test framework to use the new API v2,
  this patch duplicates the acceptance tests, one using the API v1, the
  other API v2.

  Once API v1 is removed we can simply remove `test/with_api_v1` and bring
  `test/with_api_v2` to `test/`.

[1]
https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md

[2] https://github.com/go-swagger/go-swagger/

[3] https://github.com/ahultgren/swagger-elm

[4]
http://petstore.swagger.io/?url=https://raw.githubusercontent.com/mxinden/alertmanager/apiv2/api/v2/openapi.yaml

Signed-off-by: Max Leonard Inden <IndenML@gmail.com>
2018-09-04 13:38:34 +02:00
Martin Chodur
5d222bce55 feat: added routing tools to amtool (#1511)
Signed-off-by: Martin Chodur <m.chodur@seznam.cz>
2018-08-22 16:41:09 +02:00
Simon Pasquier
387e684faa vendor: update prometheus/common packages (#1414)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-06-13 16:11:22 +02:00
Simon Pasquier
292256ca7f vendor: remove unused packages (#1380)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-05-14 16:23:48 +02:00
Simon Pasquier
dc5fc02d22 [amtool] use kingpin.v2 (#1330)
* Use default values to store values from config
* fix typo and reserved keywork
* move to long help texts
* add one more unit test for resolver
* update comments

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-04-24 09:35:15 +02:00
Manos Fokas
300a87e85b Removed file changes to resolve conflict. (#1318)
Signed-off-by: manosf <manosf@protonmail.com>
2018-04-17 16:22:46 +02:00
Simon Pasquier
0c086e3b12 cli: extract client bindings of the v1 API (#1278)
* cli: extract client bindings of the v1 API from amtool

This is a continuation of [1] but the code is kept in the alertmanage
repository rather than having it in client_golang.

[1] https://github.com/prometheus/client_golang/pull/333

Co-Authored-By: Fabian Reinartz <fab.reinartz@gmail.com>
Co-Authored-By: Tristan Colgate <tcolgate@gmail.com>
Co-Authored-By: Corin Lawson <corin@responsight.com>
Co-Authored-By: stuart nelson <stuartnelson3@gmail.com>

* cli: fix httpSilenceAPI.Set() method

* vendor: remove github.com/prometheus/client_golang/api/alertmanager

* cli: don't use the model.Alert type
2018-03-28 19:19:04 +02:00
Simon Pasquier
b95b32821f ui: replace deprecated InstrumentHandler() (#1302)
This change replaces the deprecated InstrumentHandler function by
the equivalent functions from the promhttp package.

The following metrics are removed:

* http_request_duration_microseconds (Summary).
* http_request_size_bytes (Summary).
* http_requests_total (Counter).

And the following metrics are added instead:

* alertmanager_http_request_duration_seconds (Histogram).
* alertmanager_http_response_size_bytes (Histogram).
* promhttp_metric_handler_requests_in_flight (Gauge).
* promhttp_metric_handler_requests_total (Counter).
2018-03-28 15:28:38 +02:00
Stuart Nelson
479e5c52ac Update package prometheus/pkg/labels 2018-03-20 16:10:16 +01:00
Frederic Branczyk
d678022fea *: configure http client from config 2018-02-13 14:30:59 +01:00
Fabian Reinartz
fd49dbb477 *: move to memberlist for clustering 2018-02-08 12:18:44 +01:00
pasquier-s
63598904dc Fix pending connections never going to established (#1204) 2018-01-21 15:09:50 +01:00
Calle Pettersson
b7da058efb Switch cmd/alertmanager to kingpin (#974) 2018-01-06 11:22:26 +01:00
Calle Pettersson
608848390f Switch amtool to kingpin (#976)
* Switch cmd/amtool to kingpin

* Touch-ups

* Implement long help

* Add missing short-form of --output

* Fix backwards compatibility for config file options

* Fix vendoring

* Review fixes

* Fix flag word order
2017-12-22 11:17:13 +01:00
Julius Volz
b1668866a8 Update vendoring for logger change 2017-10-22 00:20:40 -07:00
Frederic Branczyk
de24c5b7ec Fix inhibit race (#1032)
* inhibit: restructure stop logic, to prevent race condition

* vendor oklog/oklog/pkg/group
2017-10-07 13:01:37 +02:00
Corentin Chary
25e4bb9965 amtool check-config (#978)
This is similar to `promtool check-config` and allows one
to validate the alertmanager configuration (as a git presubmit for example).

`govendor fetch github.com/spf13/{cobra,pflag}` was needed to
have support for `Args`.
2017-09-07 10:58:58 +02:00
stuart nelson
a5b2e0bbcc Fixes #925 (#960) 2017-08-22 18:42:30 -05:00
Fazal Majid
2123264b98 updated logrus so alertmanager can build on Solaris/Illumos (#804) 2017-05-18 15:58:30 +02:00
Fabian Reinartz
d73a655bf4 Simplify silence modifications, add update endpoint (#796)
* Simplify silence modifications, add update endpoint

* vendor: add pkg/errors

* ui: Handle upserting of silences

.

* Regenerate bindata
2017-05-16 16:48:25 +02:00
Fabian Reinartz
672e9b205f vendor: update mesh 2017-05-09 15:03:27 +02:00
Tom Wilkie
ba4fc17307 Remove use of route.Context 2017-04-25 17:43:01 -07:00
stuart nelson
e9cb88e15a Fix vendor package while waiting
I can't be bothered to go through the mountain of
steps to commit this tiny change.

https://github.com/golang/go/issues/20055
2017-04-21 16:21:32 +02:00
stuart nelson
68e1cbe024 Add mousetrap vendor package 2017-04-20 11:33:33 +02:00
stuart nelson
7429ccca99 Fix invalid json in vendor.json file 2017-04-20 11:31:04 +02:00
Kellen Fox
3aab66ec3a Amtool implementation (#636)
* 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
2017-04-20 11:04:17 +02:00
Fabian Reinartz
15efe6d748 vendor: add gogo protobuf packages 2017-04-18 12:58:32 +02:00
stuart nelson
1e34f29532 Filter alerts (#633)
* Vendor dependencies.

This updates several old dependencies, removes
some that are no longer needed, and adds
`pkg/labels` from prometheus `dev-2.0` branch.

* Add metrics selector parsing code

This is a temporary simplified re-implementation
of promQL's metric selector parsing.

* Add alerts filtering

Filter alerts through `?filter=` query string.

* Add silences filtering

Filter silences through `?filter=` query string.

* Move `parse` to `pkg/parse`
2017-03-16 11:16:10 +01:00
Fabian Reinartz
a2666e6b31 vendoring: update 2016-12-01 13:49:28 +01:00
Fabian Reinartz
e7252270fe Update vendoring (#564)
* vendor: update prometheus/common packages

* vendor: add missing x/sys dependency

* vendor: sync with remote repos
2016-11-22 15:18:51 +01:00
Fabian Reinartz
481b6fb0bd vendor: remove dangling sqlite3 dependency 2016-09-09 13:40:13 +02:00
Fabian Reinartz
b2461bb2d4 *: remove go-kit logging 2016-09-06 11:56:57 +02:00
Fabian Reinartz
50057906d0 vendor: update client lib and common 2016-09-06 11:50:13 +02:00
Fabian Reinartz
b40703a584 vendor: add github.com/go-kit/kit/log 2016-08-16 16:33:17 +02:00
Fabian Reinartz
36b2e89f27 vendor: add testify package and dependencies 2016-08-16 11:11:48 +02:00
Fabian Reinartz
cbdcf0a983 vendor: add protobuf related dependencies 2016-08-16 11:11:48 +02:00
Fabian Reinartz
5c12950576 vendor: remove unused dependencies 2016-08-11 11:35:46 +02:00
Fabian Reinartz
24ebd7d89d vendor: remove unused dependencies 2016-08-09 12:01:31 +02:00
Fabian Reinartz
951345f686 vendor: update protobuf vendoring 2016-08-09 12:01:31 +02:00
Fabian Reinartz
c308b616c1 vendor: add weaveworks/mesh 2016-08-09 11:59:35 +02:00
Fabian Reinartz
2d0444cac1 vendor: add github.com/satori/go.uuid 2016-08-09 11:48:38 +02:00
Steve Durrheimer
c740007c37
Make version informations consistent between prometheus components 2016-05-15 12:04:15 +02:00
Steve Durrheimer
e1ba2ae262
Missing external dependency in vendors 2016-05-15 11:30:00 +02:00
Fabian Reinartz
667c92dc19 vendor: add godebug/pretty 2016-05-03 12:39:22 +02:00
Fabian Reinartz
11e90bbd88 vendor: add BoltDB 2016-05-03 12:39:22 +02:00
Fabian Reinartz
feff6f074a Update go-sqlite3 vendoring 2016-03-03 20:07:19 +01:00
Fabian Reinartz
943faa704f Update common/* package vendoring 2016-01-26 11:37:43 +01:00