mirror of
https://github.com/prymitive/karma
synced 2026-05-07 03:26:52 +00:00
10
.travis.yml
10
.travis.yml
@@ -2,6 +2,16 @@ go_import_path: github.com/cloudflare/unsee
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- stage: Lint docs
|
||||
language: node_js
|
||||
node_js: "8"
|
||||
cache:
|
||||
directories:
|
||||
- node_modules
|
||||
# install defaults to "npm install", which is done via make
|
||||
install: []
|
||||
script: make lint-docs
|
||||
|
||||
- stage: Test Go code
|
||||
language: go
|
||||
go: "1.9.2"
|
||||
|
||||
6
Makefile
6
Makefile
@@ -113,8 +113,12 @@ lint-go: .build/deps-lint-go.ok
|
||||
lint-js: .build/deps-build-node.ok
|
||||
$(CURDIR)/node_modules/.bin/eslint --quiet assets/static/*.js
|
||||
|
||||
.PHONY: lint-docs
|
||||
lint-docs: .build/deps-build-node.ok
|
||||
$(CURDIR)/node_modules/.bin/markdownlint *.md docs
|
||||
|
||||
.PHONY: lint
|
||||
lint: lint-go lint-js
|
||||
lint: lint-go lint-js lint-docs
|
||||
|
||||
# Creates mock bindata_assetfs.go with source assets rather than webpack generated ones
|
||||
.PHONY: mock-assets
|
||||
|
||||
29
README.md
29
README.md
@@ -1,27 +1,28 @@
|
||||
# unsee
|
||||
|
||||
Alert dashboard for [Prometheus Alertmanager](https://prometheus.io/docs/alerting/alertmanager/).
|
||||
Alert dashboard for
|
||||
[Prometheus Alertmanager](https://prometheus.io/docs/alerting/alertmanager/).
|
||||
|
||||
Alertmanager UI is useful for browsing alerts and managing silences, but it's
|
||||
lacking as a dashboard tool - unsee aims to fill this gap.
|
||||
Starting with `0.7.0` release it can also aggregate alerts from multiple
|
||||
Alertmanager instances, running either in HA mode or separate. Duplicated alerts
|
||||
are deduplicated so only unique alerts are displayed. Each alert is tagged with
|
||||
names of all Alertmanager instances it was found at and can be filtered based
|
||||
names of all Alertmanager instances it was found at and can be filtered based
|
||||
on those tags.
|
||||
|
||||

|
||||
|
||||
To get notifications about new unsee releases you can subscribe to the RSS feed
|
||||
that GitHub provides - https://github.com/cloudflare/unsee/releases.atom
|
||||
that [GitHub provides](https://github.com/cloudflare/unsee/releases.atom)
|
||||
To get email notifications please use one of the free services providing
|
||||
_RSS to email_ notifications, like [Blogtrottr](https://blogtrottr.com/).
|
||||
|
||||
## Supported Alertmanager versions
|
||||
|
||||
Alertmanager's API isn't stable yet and can change between releases,
|
||||
see `VERSIONS` in [internal/mock/Makefile](/internal/mock/Makefile) for list of all Alertmanager
|
||||
releases that are tested and supported by unsee.
|
||||
Alertmanager's API isn't stable yet and can change between releases, see
|
||||
`VERSIONS` in [internal/mock/Makefile](/internal/mock/Makefile) for list of all
|
||||
Alertmanager releases that are tested and supported by unsee.
|
||||
Due to API differences between those releases some features will work
|
||||
differently or be missing, it's recommended to use the latest supported
|
||||
Alertmanager version.
|
||||
@@ -33,9 +34,9 @@ modify alerts or silence state, but it does provide a web interface that allows
|
||||
a user to send such requests directly to the Alertmanager API.
|
||||
If you wish to deploy unsee as a read-only tool please ensure that:
|
||||
|
||||
* the unsee process is able to connect to the Alertmanager API
|
||||
* read-only users are able to connect to the unsee web interface
|
||||
* read-only users are NOT able to connect to the Alertmanager API
|
||||
* the unsee process is able to connect to the Alertmanager API
|
||||
* read-only users are able to connect to the unsee web interface
|
||||
* read-only users are NOT able to connect to the Alertmanager API
|
||||
|
||||
## Metrics
|
||||
|
||||
@@ -91,21 +92,21 @@ Official docker images are built and hosted on
|
||||
|
||||
Images are built automatically for:
|
||||
|
||||
* release tags in git - `cloudflare/unsee:vX.Y.Z`
|
||||
* master branch commits - `cloudflare/unsee:latest`
|
||||
* release tags in git - `cloudflare/unsee:vX.Y.Z`
|
||||
* master branch commits - `cloudflare/unsee:latest`
|
||||
|
||||
#### Examples
|
||||
|
||||
To start a release image run:
|
||||
|
||||
docker run -e ALERTMANAGER_URI=https://alertmanager.example.com cloudflare/unsee:vX.Y.Z
|
||||
docker run -e ALERTMANAGER_URI=https://alertmanager.example.com cloudflare/unsee:vX.Y.Z
|
||||
|
||||
Latest release details can be found on
|
||||
[GitHub](https://github.com/cloudflare/unsee/releases).
|
||||
|
||||
To start docker image build from lastet master branch run:
|
||||
|
||||
docker run -e ALERTMANAGER_URI=https://alertmanager.example.com cloudflare/unsee:latest
|
||||
docker run -e ALERTMANAGER_URI=https://alertmanager.example.com cloudflare/unsee:latest
|
||||
|
||||
Note that latest master branch might have bugs or breaking changes. Using
|
||||
release images is strongly recommended for any production use.
|
||||
@@ -127,7 +128,7 @@ apply as with `make run`. Example:
|
||||
|
||||
## Configuration
|
||||
|
||||
Please see [CONFIGURATION](/docs/CONFIGURATION.md) for full list of avaiable
|
||||
Please see [CONFIGURATION](/docs/CONFIGURATION.md) for full list of available
|
||||
configuration options and [example.yaml](/docs/example.yaml) for a config file
|
||||
example.
|
||||
|
||||
|
||||
@@ -15,21 +15,15 @@ environment variables:
|
||||
|
||||
Example with flags:
|
||||
|
||||
```
|
||||
$ unsee --config.file example --config.dir ./docs/
|
||||
```
|
||||
unsee --config.file example --config.dir ./docs/
|
||||
|
||||
Example with environment variables:
|
||||
|
||||
```
|
||||
$ CONFIG_FILE="example" CONFIG_DIR="./docs/" unsee
|
||||
```
|
||||
CONFIG_FILE="example" CONFIG_DIR="./docs/" unsee
|
||||
|
||||
Example using both:
|
||||
|
||||
```
|
||||
$ CONFIG_FILE="example" unsee --config.dir ./docs/
|
||||
```
|
||||
CONFIG_FILE="example" unsee --config.dir ./docs/
|
||||
|
||||
### Alertmanagers
|
||||
|
||||
@@ -288,7 +282,7 @@ listen:
|
||||
location other than `/`. This option is mostly useful when using unsee behind
|
||||
reverse proxy with other services on the same IP but different URL root.
|
||||
|
||||
Example where unsee would listen for HTTP requests on http://1.2.3.4:80/unsee/
|
||||
Example where unsee would listen for HTTP requests on `http://1.2.3.4:80/unsee/`
|
||||
|
||||
```yaml
|
||||
listen:
|
||||
@@ -347,7 +341,7 @@ jira:
|
||||
(where `FOO-1` is example issue ID).
|
||||
|
||||
Example where a string `DEVOPS-123` inside a comment would be rendered as a link
|
||||
to https://jira.example.com/browse/DEVOPS-123.
|
||||
to `https://jira.example.com/browse/DEVOPS-123`.
|
||||
|
||||
```yaml
|
||||
jira:
|
||||
@@ -463,42 +457,34 @@ section using only flags or environment variables.
|
||||
|
||||
To set the `uri` key from `alertmanager.servers` map `ALERTMANAGER_URI` env or
|
||||
`--alertmanager.uri` flag can be used.
|
||||
Example:
|
||||
Examples:
|
||||
|
||||
```
|
||||
$ ALERTMANAGER_URI=https://alertmanager.example.com unsee
|
||||
$ unsee --alertmanager.uri https://alertmanager.example.com
|
||||
```
|
||||
ALERTMANAGER_URI=https://alertmanager.example.com unsee
|
||||
unsee --alertmanager.uri https://alertmanager.example.com
|
||||
|
||||
### Alertmanager name
|
||||
|
||||
To set the `name` key from `alertmanager.servers` map `ALERTMANAGER_NAME` env or
|
||||
`--alertmanager.name` flag can be used.
|
||||
Example:
|
||||
Examples:
|
||||
|
||||
```
|
||||
$ ALERTMANAGER_NAME=single unsee
|
||||
$ unsee --alertmanager.name single
|
||||
```
|
||||
ALERTMANAGER_NAME=single unsee
|
||||
unsee --alertmanager.name single
|
||||
|
||||
### Alertmanager timeout
|
||||
|
||||
To set the `timeout` key from `alertmanager.servers` map `ALERTMANAGER_TIMEOUT`
|
||||
env or `--alertmanager.timeout` flag can be used.
|
||||
Example:
|
||||
Examples:
|
||||
|
||||
```
|
||||
$ ALERTMANAGER_TIMEOUT=10s unsee
|
||||
$ unsee --alertmanager.timeout 10s
|
||||
```
|
||||
ALERTMANAGER_TIMEOUT=10s unsee
|
||||
unsee --alertmanager.timeout 10s
|
||||
|
||||
### Alertmanager request proxy
|
||||
|
||||
To set the `proxy` key from `alertmanager.servers` map `ALERTMANAGER_PROXY`
|
||||
env or `--alertmanager.proxy` flag can be used.
|
||||
Example:
|
||||
Examples:
|
||||
|
||||
```
|
||||
$ ALERTMANAGER_PROXY=true unsee
|
||||
$ unsee --alertmanager.proxy
|
||||
```
|
||||
ALERTMANAGER_PROXY=true unsee
|
||||
unsee --alertmanager.proxy
|
||||
|
||||
139
package-lock.json
generated
139
package-lock.json
generated
@@ -1767,6 +1767,15 @@
|
||||
"delayed-stream": "1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
|
||||
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-readlink": "1.0.1"
|
||||
}
|
||||
},
|
||||
"commondir": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
||||
@@ -2131,6 +2140,12 @@
|
||||
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
|
||||
"dev": true
|
||||
},
|
||||
"deep-extend": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
|
||||
"integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
|
||||
"dev": true
|
||||
},
|
||||
"deep-is": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
||||
@@ -2296,6 +2311,12 @@
|
||||
"tapable": "0.2.8"
|
||||
}
|
||||
},
|
||||
"entities": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
|
||||
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
|
||||
"dev": true
|
||||
},
|
||||
"eonasdan-bootstrap-datetimepicker": {
|
||||
"version": "4.17.47",
|
||||
"resolved": "https://registry.npmjs.org/eonasdan-bootstrap-datetimepicker/-/eonasdan-bootstrap-datetimepicker-4.17.47.tgz",
|
||||
@@ -4073,6 +4094,12 @@
|
||||
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
|
||||
"dev": true
|
||||
},
|
||||
"graceful-readlink": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
|
||||
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
|
||||
"dev": true
|
||||
},
|
||||
"growly": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
|
||||
@@ -4392,6 +4419,12 @@
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
|
||||
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
|
||||
"dev": true
|
||||
},
|
||||
"inquirer": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
|
||||
@@ -5976,6 +6009,15 @@
|
||||
"type-check": "0.3.2"
|
||||
}
|
||||
},
|
||||
"linkify-it": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
|
||||
"integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"uc.micro": "1.0.3"
|
||||
}
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
|
||||
@@ -6096,6 +6138,12 @@
|
||||
"integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.flatten": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.3.0.tgz",
|
||||
"integrity": "sha1-5exO/ofvxZzlL5F8uovxYGNkac8=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.isarguments": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
||||
@@ -6155,6 +6203,12 @@
|
||||
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.values": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.2.0.tgz",
|
||||
"integrity": "sha1-kyYl99LJVLY9uJUlVUjztJ8SDpo=",
|
||||
"dev": true
|
||||
},
|
||||
"longest": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
|
||||
@@ -6228,6 +6282,59 @@
|
||||
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
|
||||
"dev": true
|
||||
},
|
||||
"markdown-it": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.2.tgz",
|
||||
"integrity": "sha512-4J92IhJq1kGoyXddwzzfjr9cEKGexBfFsZooKYMhMLLlWa4+dlSPDUUP7y+xQOCebIj61aLmKlowg//YcdPP1w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"argparse": "1.0.9",
|
||||
"entities": "1.1.1",
|
||||
"linkify-it": "2.0.3",
|
||||
"mdurl": "1.0.1",
|
||||
"uc.micro": "1.0.3"
|
||||
}
|
||||
},
|
||||
"markdownlint": {
|
||||
"version": "0.6.4",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.6.4.tgz",
|
||||
"integrity": "sha512-gcojwPjnWIE6qJh16veEN2k62rkJdXEznAaupbNiBpwHlMqFqh5SMA5/YPJO6/uEpwn2NJjSYkYk2OcIWvgkeQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"markdown-it": "8.3.2"
|
||||
}
|
||||
},
|
||||
"markdownlint-cli": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.6.0.tgz",
|
||||
"integrity": "sha512-gRkrvv2WrUTp/jbY+GZxyKPc10Bad5AmX0pnJWHX2eoaRDzFcrTGKTHzSXkyyy0fhBoXF7kgR/7FLvlz+agi3A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "2.9.0",
|
||||
"deep-extend": "0.4.2",
|
||||
"glob": "7.0.6",
|
||||
"lodash.flatten": "4.3.0",
|
||||
"lodash.values": "4.2.0",
|
||||
"markdownlint": "0.6.4",
|
||||
"rc": "1.1.7"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
|
||||
"integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "1.0.0",
|
||||
"inflight": "1.0.6",
|
||||
"inherits": "2.0.3",
|
||||
"minimatch": "3.0.4",
|
||||
"once": "1.4.0",
|
||||
"path-is-absolute": "1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"masonry-layout": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/masonry-layout/-/masonry-layout-4.2.0.tgz",
|
||||
@@ -6265,6 +6372,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"mdurl": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
|
||||
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
|
||||
"dev": true
|
||||
},
|
||||
"mem": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
|
||||
@@ -7742,6 +7855,26 @@
|
||||
"resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.19.1.tgz",
|
||||
"integrity": "sha512-E01uqSgP4JJIZNCaug2rV8g3JcIabLP09POLJ6wpM0oWftfnjqIWHYipUuscltCjQAxsPV3FFnMkW22/93qgig=="
|
||||
},
|
||||
"rc": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz",
|
||||
"integrity": "sha1-xepWS7B6/5/TpbMukGwdOmWUD+o=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"deep-extend": "0.4.2",
|
||||
"ini": "1.3.5",
|
||||
"minimist": "1.2.0",
|
||||
"strip-json-comments": "2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
||||
@@ -8970,6 +9103,12 @@
|
||||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
|
||||
"dev": true
|
||||
},
|
||||
"uc.micro": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz",
|
||||
"integrity": "sha1-ftUNXg+an7ClczeSWfKndFjVAZI=",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "2.8.29",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
"jest": "^21.2.1",
|
||||
"jquery-bridget": "^2.0.1",
|
||||
"less": "^2.7.3",
|
||||
"markdownlint-cli": "^0.6.0",
|
||||
"mock-xhr": "^0.1.0",
|
||||
"node-sass": "^4.6.0",
|
||||
"resolve-url-loader": "^2.2.0",
|
||||
|
||||
Reference in New Issue
Block a user