Commit graph

39 commits

Author SHA1 Message Date
Manuel Alejandro de Brito Fontes
9278f0cad2
Update metric dependencies (#5023) 2020-02-06 09:50:13 -03:00
Manuel Alejandro de Brito Fontes
a8a827a806
Remove prometheus socket before listen (#4961) 2020-01-25 14:52:51 -03:00
Manuel Alejandro de Brito Fontes
c2935ca35c
Refactor health checks and wait until NGINX process ends 2019-09-01 15:31:27 -04:00
Manuel Alejandro de Brito Fontes
80bd481abb
Only support SSL dynamic mode 2019-08-13 17:33:34 -04:00
Manuel Alejandro de Brito Fontes
ccd88f625c
Refactor metric prometheus leader helper 2019-06-29 17:44:53 -04:00
Kubernetes Prow Robot
cff97c210a
Merge pull request #4128 from cornershop/feature/service-collectLabel
feature(collectors): Added services to collectorLabels
2019-06-18 19:08:31 -07:00
Sergio Morales
c38c66e00a feature(collectors): Added services to collectorLabels and requests Countervec to capture the name of the kubernetes service used to serve the client request. 2019-05-27 11:19:42 -04:00
Thibault Jamet
1cd17cd12c
Implement a validation webhook
In case some ingress have a syntax error in the snippet configuration,
the freshly generated configuration will not be reloaded to prevent tearing down existing rules.
Although, once inserted, this configuration is preventing from any other valid configuration to be inserted as it remains in the ingresses of the cluster.
To solve this problem, implement an optional validation webhook that simulates the addition of the ingress to be added together with the rest of ingresses.
In case the generated configuration is not validated by nginx, deny the insertion of the ingress.

In case certificates are mounted using kubernetes secrets, when those
changes, keys are automatically updated in the container volume, and the
controller reloads it using the filewatcher.

Related changes:

- Update vendors
- Extract useful functions to check configuration with an additional ingress
- Update documentation for validating webhook
- Add validating webhook examples
- Add a metric for each syntax check success and errors
- Add more certificate generation examples
2019-04-18 19:07:04 +02:00
Manuel Alejandro de Brito Fontes
f4e4335d8c
Only the leader updates metrics for SSL certificate expiration 2019-03-12 12:08:24 -03:00
Manuel Alejandro de Brito Fontes
870b89c72b
Fix documentation 2019-03-11 13:21:10 -03:00
Manuel Alejandro de Brito Fontes
7c717cabcf
Add promehteus metric about leader election status 2019-03-11 13:11:27 -03:00
Kubernetes Prow Robot
b1c2812dc5
Merge pull request #3849 from trnl/master
Use Gauge instead of Counter for connections_active Prometheus metric
2019-03-05 03:09:00 -08:00
Uladzimir Mihura
13d0f0ddab Use Gauge instead of Counter for connections_active Prometheus metric 2019-03-04 22:35:45 +01:00
Thibault Jamet
27a98f2920
Fix race condition in metric process collector test
There was a goroutine started to log things upon a test that could be
ended at the time `cmd.Wait()` ends.

To solve the problem, when the sub-test ends, ensure we wait until the
command ends when ending the test

The output of `make test` before the fix shows:

```
=== RUN   TestNewUDPLogListener
==================
WARNING: DATA RACE
Read at 0x00c0002a8643 by goroutine 74:
  testing.(*common).logDepth()
      /usr/local/go/src/testing/testing.go:629 +0x132
  testing.(*common).Logf()
      /usr/local/go/src/testing/testing.go:614 +0x90
  k8s.io/ingress-nginx/internal/ingress/metric/collectors.TestProcessCollector.func1.1()
      /go/src/k8s.io/ingress-nginx/internal/ingress/metric/collectors/process_test.go:54 +0x140

Previous write at 0x00c0002a8643 by goroutine 72:
  testing.tRunner.func1()
      /usr/local/go/src/testing/testing.go:856 +0x33e
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:869 +0x17f

Goroutine 74 (running) created at:
  k8s.io/ingress-nginx/internal/ingress/metric/collectors.TestProcessCollector.func1()
      /go/src/k8s.io/ingress-nginx/internal/ingress/metric/collectors/process_test.go:50 +0x218
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:865 +0x163

Goroutine 72 (finished) created at:
  testing.(*T).Run()
      /usr/local/go/src/testing/testing.go:916 +0x699
  testing.runTests.func1()
      /usr/local/go/src/testing/testing.go:1157 +0xa8
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:865 +0x163
  testing.runTests()
      /usr/local/go/src/testing/testing.go:1155 +0x523
  testing.(*M).Run()
      /usr/local/go/src/testing/testing.go:1072 +0x2eb
  main.main()
      _testmain.go:52 +0x222
==================
--- PASS: TestNewUDPLogListener (0.00s)
```

after the patch:

```
=== RUN   TestNewUDPLogListener
--- PASS: TestNewUDPLogListener (0.01s)
```

Change-Id: I8ea246d14f5f80b330be19dd5b8299c6762f6d6b
2019-03-04 21:54:42 +01:00
Manuel Alejandro de Brito Fontes
34b0580225
Replace Status port using a socket 2019-02-06 18:00:10 -03:00
Bryan Boreham
f33a2090dd Add a flag to make per-host metrics optional
When serving many hosts from one nginx, the metrics may become too
numerous for Prometheus.  Add a flag to disable the host label, so
that metrics are totalled across all hosts.
2018-12-21 17:31:54 +00:00
Manuel Alejandro de Brito Fontes
68f344233b Fix lint issues 2018-12-05 13:28:28 -03:00
Manuel Alejandro de Brito Fontes
1fed943b3d Update process-exporter methods 2018-12-05 13:28:10 -03:00
Manuel Alejandro de Brito Fontes
2fa55eabf6 Replace glog with klog 2018-12-05 13:27:55 -03:00
Manuel Alejandro de Brito Fontes
06d33c16b5
Allow to disable NGINX metrics 2018-12-05 10:14:35 -03:00
Elvin Efendi
d8b928f501 remove already unused endpoint metric 2018-11-21 20:05:44 +04:00
Elvin Efendi
068d633e81 fix Status key conflic, fixes https://github.com/kubernetes/ingress-nginx/issues/3451 2018-11-21 20:03:15 +04:00
SataQiu
76aae20b64 fix the typos 2018-11-07 17:53:17 +08:00
mooncake
4b518ec03c Fix some typos
Signed-off-by: mooncake <xcoder@tenxcloud.com>
2018-11-05 22:10:11 +08:00
xichengliudui
ed107a489a Delete some extra words 2018-10-29 02:48:56 -04:00
Manuel de Brito Fontes
5cca38304e Fix tests 2018-09-22 15:09:54 -03:00
Manuel de Brito Fontes
55ccaf4be3 Update prometheus methods 2018-09-22 14:54:11 -03:00
Manuel de Brito Fontes
9766ad8f4b Filter hostnames before creation of metrics 2018-09-22 14:25:57 -03:00
Manuel de Brito Fontes
91ae204f6c Replace standard json encoding with jsoniter 2018-09-22 14:25:01 -03:00
Elvin Efendi
2207d7694d batch metrics and flush periodically 2018-08-18 13:17:21 -04:00
Manuel de Brito Fontes
b148f113ae
Use authbind to bind privileged ports 2018-08-05 11:18:50 -04:00
Manuel de Brito Fontes
5e13de4a65
Delay initial prometheus status metric 2018-07-30 10:24:51 -04:00
Manuel de Brito Fontes
4a316045a8 Fix inconsistent metric labels 2018-07-27 12:41:37 -04:00
Manuel de Brito Fontes
010342aa58 Do not allow invalid latency values in metrics 2018-07-24 10:53:46 -04:00
Manuel de Brito Fontes
4c1e501074 Update prometheus labels 2018-07-16 15:52:17 -04:00
Manuel de Brito Fontes
1542a12764
Refactor controller metrics interface 2018-07-12 12:46:34 -04:00
Manuel de Brito Fontes
6c8647a27d
Remove prometheus labels with high cardinality 2018-06-25 09:43:56 -04:00
Manuel Alejandro de Brito Fontes
c4ec773966
Use a unix socket instead udp for reception of metrics (#2652) 2018-06-17 11:04:03 -04:00
Francisco Mejia
2cd2da7c3f Create UDP collector that listens to UDP messages from monitor.lua and exposes them on /metrics endpoint 2018-06-13 21:31:51 -04:00