Merge ade4fe3e02
into 4f62e980be
This commit is contained in:
commit
13b023e356
8 changed files with 2199 additions and 144 deletions
78
changelog/Changelog-1.7.0.md
Normal file
78
changelog/Changelog-1.7.0.md
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
### 1.7.0
|
||||||
|
Images:
|
||||||
|
|
||||||
|
* registry.k8s.io/ingress-nginx/controller:v1.7.0@sha256:7612338342a1e7b8090bef78f2a04fffcadd548ccaabe8a47bf7758ff549a5f7
|
||||||
|
* registry.k8s.io/ingress-nginx/controller-chroot:v1.7.0@sha256:e84ef3b44c8efeefd8b0aa08770a886bfea1f04c53b61b4ba9a7204e9f1a7edc
|
||||||
|
|
||||||
|
### All Changes:
|
||||||
|
|
||||||
|
* kick off 1.7.0 build (#9775)
|
||||||
|
* Update exposing-tcp-udp-services.md (#9777)
|
||||||
|
* feat: OpenTelemetry module integration (#9062)
|
||||||
|
* drop k8s 1.23 support (#9772)
|
||||||
|
* Fix canary-weight-total annotation ignored in rule backends (#9729)
|
||||||
|
* fix: controller psp's volume config (#9740)
|
||||||
|
* Fix several Helm YAML issues with extraModules and extraInitContainers (#9709)
|
||||||
|
* docs(helm): fix value key in readme for enabling certManager (#9640)
|
||||||
|
* updated digest and sha for e2e-test-echo (#9760)
|
||||||
|
* updated digest and sha for e2e-test-fastcgi-helloserver (#9759)
|
||||||
|
* updated digest and sha for opentelemetry (#9758)
|
||||||
|
* updated digest and sha for e2e-test-cfssl (#9757)
|
||||||
|
* updated kube-webhook-certgen digest and tags (#9756)
|
||||||
|
* updated nginx-error digest and tags (#9755)
|
||||||
|
* added upgrade ginkgo documentation for contributors (#9753)
|
||||||
|
* changes Makefile of echo folder to trigger code-build (#9754)
|
||||||
|
* Chart: Drop `controller.headers`, rework DH param secret. (#9659)
|
||||||
|
* updated NGINX_BASE image with latest tag (#9747)
|
||||||
|
* Deployment/DaemonSet: Label pods using `ingress-nginx.labels`. (#9732)
|
||||||
|
* bumped ginkgo to v2.9.0 (#9722)
|
||||||
|
* HPA: autoscaling/v2beta1 deprecated, bump apiVersion to v2 for defaultBackend (#9731)
|
||||||
|
* update to golang 1.20 (#9690)
|
||||||
|
* Indent values.yaml using 2 instead of 4 spaces (#9656)
|
||||||
|
* fix some comments (#9688)
|
||||||
|
* migrate mitchellh/hashstructure to v2 (#9651)
|
||||||
|
* changed v1.6.3 to v1.6.4 on deploy docs (#9647)
|
||||||
|
* controller: Don't panic when ready condition in a endpointslice is missing (#9550)
|
||||||
|
* Rework Ginkgo usage (#9522)
|
||||||
|
* code clean for fsnotify (#9571)
|
||||||
|
* Optimize the document for readability (#9551)
|
||||||
|
* sets.String is deprecated: use generic Set instead. new ways: s1 := Set[string]{} s2 := New[string]() (#9589)
|
||||||
|
* Adjust the import package order and use http library variables (#9587)
|
||||||
|
* Optimize the judgment mode to remove redundant transformations (#9588)
|
||||||
|
* Fix rewrite example (#9633)
|
||||||
|
* remove tests and regex path checks (#9626)
|
||||||
|
* Fix incorrect annotation name in upstream hashing configuration (#9617)
|
||||||
|
* Release docs for Controller v1.6.3 and Helm v4.5.0 (#9614)
|
||||||
|
|
||||||
|
### Dependencies updates:
|
||||||
|
* Bump aquasecurity/trivy-action from 0.8.0 to 0.9.2 (#9767)
|
||||||
|
* Bump k8s.io/component-base from 0.26.2 to 0.26.3 (#9764)
|
||||||
|
* Bump actions/dependency-review-action from 3.0.3 to 3.0.4 (#9766)
|
||||||
|
* Bump actions/add-to-project from 0.4.0 to 0.4.1 (#9765)
|
||||||
|
* Bump actions/dependency-review-action from 3.0.2 to 3.0.3 (#9727)
|
||||||
|
* Bump github.com/prometheus/common from 0.41.0 to 0.42.0 (#9724)
|
||||||
|
* Bump golang.org/x/crypto from 0.6.0 to 0.7.0 (#9723)
|
||||||
|
* Bump actions/download-artifact from 3.0.1 to 3.0.2 (#9721)
|
||||||
|
* Bump goreleaser/goreleaser-action from 4.1.0 to 4.2.0 (#9718)
|
||||||
|
* Bump actions/upload-artifact from 3.1.1 to 3.1.2 (#9717)
|
||||||
|
* Bump docker/setup-buildx-action from 2.2.1 to 2.5.0 (#9719)
|
||||||
|
* Bump helm/chart-releaser-action from 1.4.1 to 1.5.0 (#9720)
|
||||||
|
* Bump github.com/onsi/ginkgo/v2 from 2.6.1 to 2.9.0 (#9695)
|
||||||
|
* Bump k8s.io/klog/v2 from 2.90.0 to 2.90.1 (#9694)
|
||||||
|
* Bump golang.org/x/crypto in /magefiles (#9691)
|
||||||
|
* Bump k8s.io/component-base from 0.26.1 to 0.26.2 (#9696)
|
||||||
|
* Bump github.com/prometheus/common from 0.40.0 to 0.41.0 (#9698)
|
||||||
|
* Bump sigs.k8s.io/controller-runtime from 0.14.2 to 0.14.5 (#9697)
|
||||||
|
* Bump golang.org/x/net in /magefiles (#9692)
|
||||||
|
* Bump golang.org/x/sys in /images/custom-error-pages/rootfs (#9671)
|
||||||
|
* Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 (#9675)
|
||||||
|
* Bump github.com/prometheus/common from 0.39.0 to 0.40.0 (#9653)
|
||||||
|
* Bump golang.org/x/net from 0.6.0 to 0.7.0 (#9646)
|
||||||
|
* Bump golang.org/x/net in /images/kube-webhook-certgen/rootfs (#9645)
|
||||||
|
* Bump google.golang.org/grpc from 1.52.3 to 1.53.0 (#9610)
|
||||||
|
* Bump github.com/prometheus/client_golang (#9630)
|
||||||
|
* Bump golang.org/x/crypto from 0.5.0 to 0.6.0 (#9609)
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/controller-controller-v1.6.3...controller-controller-v1.7.0
|
24
charts/ingress-nginx/changelog/Changelog-4.6.0.md
Normal file
24
charts/ingress-nginx/changelog/Changelog-4.6.0.md
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
This file documents all notable changes to [ingress-nginx](https://github.com/kubernetes/ingress-nginx) Helm Chart. The release numbering uses [semantic versioning](http://semver.org).
|
||||||
|
|
||||||
|
### 4.5.3
|
||||||
|
|
||||||
|
* docs(helm): fix value key in readme for enabling certManager (#9640)
|
||||||
|
* Upgrade alpine 3.17.2
|
||||||
|
* Upgrade golang 1.20
|
||||||
|
* Drop testing/support for Kubernetes 1.23
|
||||||
|
* docs(helm): fix value key in readme for enabling certManager (#9640)
|
||||||
|
* Update Ingress-Nginx version controller-v1.7.0
|
||||||
|
* feat: OpenTelemetry module integration (#9062)
|
||||||
|
* canary-weight-total annotation ignored in rule backends (#9729)
|
||||||
|
* fix controller psp's volume config (#9740)
|
||||||
|
* Fix several Helm YAML issues with extraModules and extraInitContainers (#9709)
|
||||||
|
* Chart: Drop `controller.headers`, rework DH param secret. (#9659)
|
||||||
|
* Deployment/DaemonSet: Label pods using `ingress-nginx.labels`. (#9732)
|
||||||
|
* HPA: autoscaling/v2beta1 deprecated, bump apiVersion to v2 for defaultBackend (#9731)
|
||||||
|
* Fix incorrect annotation name in upstream hashing configuration (#9617)
|
||||||
|
|
||||||
|
* Update Ingress-Nginx version controller-v1.7.0
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/kubernetes/ingress-nginx/compare/helm-chart-4.5.2...helm-chart-4.6.0
|
646
go.work.sum
646
go.work.sum
File diff suppressed because it is too large
Load diff
|
@ -44,6 +44,7 @@ type socketData struct {
|
||||||
Latency float64 `json:"upstreamLatency"`
|
Latency float64 `json:"upstreamLatency"`
|
||||||
HeaderTime float64 `json:"upstreamHeaderTime"`
|
HeaderTime float64 `json:"upstreamHeaderTime"`
|
||||||
ResponseTime float64 `json:"upstreamResponseTime"`
|
ResponseTime float64 `json:"upstreamResponseTime"`
|
||||||
|
UpstreamCacheStatus string `json:"upstreamCacheStatus"`
|
||||||
Namespace string `json:"namespace"`
|
Namespace string `json:"namespace"`
|
||||||
Ingress string `json:"ingress"`
|
Ingress string `json:"ingress"`
|
||||||
Service string `json:"service"`
|
Service string `json:"service"`
|
||||||
|
@ -319,23 +320,25 @@ func (sc *SocketCollector) handleMessage(msg []byte) {
|
||||||
|
|
||||||
// Note these must match the order in requestTags at the top
|
// Note these must match the order in requestTags at the top
|
||||||
requestLabels := prometheus.Labels{
|
requestLabels := prometheus.Labels{
|
||||||
"status": stats.Status,
|
"status": stats.Status,
|
||||||
"method": stats.Method,
|
"upstreamCacheStatus": stats.UpstreamCacheStatus,
|
||||||
"path": stats.Path,
|
"method": stats.Method,
|
||||||
"namespace": stats.Namespace,
|
"path": stats.Path,
|
||||||
"ingress": stats.Ingress,
|
"namespace": stats.Namespace,
|
||||||
"service": stats.Service,
|
"ingress": stats.Ingress,
|
||||||
"canary": stats.Canary,
|
"service": stats.Service,
|
||||||
|
"canary": stats.Canary,
|
||||||
}
|
}
|
||||||
|
|
||||||
collectorLabels := prometheus.Labels{
|
collectorLabels := prometheus.Labels{
|
||||||
"namespace": stats.Namespace,
|
"namespace": stats.Namespace,
|
||||||
"ingress": stats.Ingress,
|
"ingress": stats.Ingress,
|
||||||
"status": stats.Status,
|
"status": stats.Status,
|
||||||
"service": stats.Service,
|
"upstreamCacheStatus": stats.UpstreamCacheStatus,
|
||||||
"canary": stats.Canary,
|
"service": stats.Service,
|
||||||
"method": stats.Method,
|
"canary": stats.Canary,
|
||||||
"path": stats.Path,
|
"method": stats.Method,
|
||||||
|
"path": stats.Path,
|
||||||
}
|
}
|
||||||
if sc.metricsPerHost {
|
if sc.metricsPerHost {
|
||||||
requestLabels["host"] = stats.Host
|
requestLabels["host"] = stats.Host
|
||||||
|
|
|
@ -102,6 +102,7 @@ func TestCollector(t *testing.T) {
|
||||||
data: []string{`#missing {
|
data: []string{`#missing {
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -128,6 +129,7 @@ func TestCollector(t *testing.T) {
|
||||||
data: []string{`[{
|
data: []string{`[{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -152,52 +154,52 @@ func TestCollector(t *testing.T) {
|
||||||
wantBefore: `
|
wantBefore: `
|
||||||
# HELP nginx_ingress_controller_connect_duration_seconds The time spent on establishing a connection with the upstream server
|
# HELP nginx_ingress_controller_connect_duration_seconds The time spent on establishing a connection with the upstream server
|
||||||
# TYPE nginx_ingress_controller_connect_duration_seconds histogram
|
# TYPE nginx_ingress_controller_connect_duration_seconds histogram
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.005"} 0
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.005"} 0
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.01"} 0
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.01"} 0
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.025"} 0
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.025"} 0
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.05"} 0
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.05"} 0
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.1"} 0
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.1"} 0
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.25"} 0
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.25"} 0
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.5"} 0
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.5"} 0
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="1"} 1
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="1"} 1
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="2.5"} 1
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="2.5"} 1
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="5"} 1
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="5"} 1
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="10"} 1
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="10"} 1
|
||||||
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="+Inf"} 1
|
nginx_ingress_controller_connect_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="+Inf"} 1
|
||||||
nginx_ingress_controller_connect_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 1
|
nginx_ingress_controller_connect_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 1
|
||||||
nginx_ingress_controller_connect_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 1
|
nginx_ingress_controller_connect_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 1
|
||||||
# HELP nginx_ingress_controller_header_duration_seconds The time spent on receiving first header from the upstream server
|
# HELP nginx_ingress_controller_header_duration_seconds The time spent on receiving first header from the upstream server
|
||||||
# TYPE nginx_ingress_controller_header_duration_seconds histogram
|
# TYPE nginx_ingress_controller_header_duration_seconds histogram
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.005"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.005"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.01"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.01"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.025"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.025"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.05"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.05"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.1"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.1"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.25"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.25"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.5"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.5"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="1"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="1"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="2.5"} 0
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="2.5"} 0
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="5"} 1
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="5"} 1
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="10"} 1
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="10"} 1
|
||||||
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="+Inf"} 1
|
nginx_ingress_controller_header_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="+Inf"} 1
|
||||||
nginx_ingress_controller_header_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 5
|
nginx_ingress_controller_header_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 5
|
||||||
nginx_ingress_controller_header_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 1
|
nginx_ingress_controller_header_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 1
|
||||||
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
||||||
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.005"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.005"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.01"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.01"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.025"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.025"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.05"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.05"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.25"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.25"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="2.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="2.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="10"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="10"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="+Inf"} 1
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="+Inf"} 1
|
||||||
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 200
|
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 200
|
||||||
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 1
|
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 1
|
||||||
`,
|
`,
|
||||||
removeIngresses: []string{"test-app-production/web-yml"},
|
removeIngresses: []string{"test-app-production/web-yml"},
|
||||||
wantAfter: `
|
wantAfter: `
|
||||||
|
@ -208,6 +210,7 @@ func TestCollector(t *testing.T) {
|
||||||
data: []string{`[{
|
data: []string{`[{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -228,7 +231,7 @@ func TestCollector(t *testing.T) {
|
||||||
wantBefore: `
|
wantBefore: `
|
||||||
# HELP nginx_ingress_controller_requests The total number of client requests
|
# HELP nginx_ingress_controller_requests The total number of client requests
|
||||||
# TYPE nginx_ingress_controller_requests counter
|
# TYPE nginx_ingress_controller_requests counter
|
||||||
nginx_ingress_controller_requests{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 1
|
nginx_ingress_controller_requests{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",} 1
|
||||||
`,
|
`,
|
||||||
removeIngresses: []string{"test-app-production/web-yml"},
|
removeIngresses: []string{"test-app-production/web-yml"},
|
||||||
wantAfter: `
|
wantAfter: `
|
||||||
|
@ -239,6 +242,7 @@ func TestCollector(t *testing.T) {
|
||||||
data: []string{`[{
|
data: []string{`[{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -259,20 +263,20 @@ func TestCollector(t *testing.T) {
|
||||||
wantBefore: `
|
wantBefore: `
|
||||||
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
||||||
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.005"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.005"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.01"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.01"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.025"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.025"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.05"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.05"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.25"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.25"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="2.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="2.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="10"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="10"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="+Inf"} 1
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="+Inf"} 1
|
||||||
nginx_ingress_controller_response_duration_seconds_sum{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 200
|
nginx_ingress_controller_response_duration_seconds_sum{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 200
|
||||||
nginx_ingress_controller_response_duration_seconds_count{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 1
|
nginx_ingress_controller_response_duration_seconds_count{canary="test-app-production-test-app-canary-80",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 1
|
||||||
`,
|
`,
|
||||||
removeIngresses: []string{"test-app-production/web-yml"},
|
removeIngresses: []string{"test-app-production/web-yml"},
|
||||||
wantAfter: `
|
wantAfter: `
|
||||||
|
@ -284,6 +288,7 @@ func TestCollector(t *testing.T) {
|
||||||
data: []string{`[{
|
data: []string{`[{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -302,6 +307,7 @@ func TestCollector(t *testing.T) {
|
||||||
}]`, `[{
|
}]`, `[{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -320,6 +326,7 @@ func TestCollector(t *testing.T) {
|
||||||
}]`, `[{
|
}]`, `[{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -340,34 +347,34 @@ func TestCollector(t *testing.T) {
|
||||||
wantBefore: `
|
wantBefore: `
|
||||||
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
||||||
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.005"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.005"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.01"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.01"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.025"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.025"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.05"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.05"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.25"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.25"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="2.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="2.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="10"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="10"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="+Inf"} 1
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="+Inf"} 1
|
||||||
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 200
|
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 200
|
||||||
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 1
|
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 1
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="0.005"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="0.005"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="0.01"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="0.01"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="0.025"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="0.025"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="0.05"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="0.05"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="0.1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="0.1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="0.25"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="0.25"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="0.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="0.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="2.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="2.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="10"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="10"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",le="+Inf"} 2
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS",le="+Inf"} 2
|
||||||
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200"} 400
|
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS"} 400
|
||||||
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200"} 2
|
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml-qa",method="GET",namespace="test-app-qa",path="/admin",service="test-app-qa",status="200",upstreamCacheStatus="MISS"} 2
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -377,6 +384,7 @@ func TestCollector(t *testing.T) {
|
||||||
{
|
{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -396,6 +404,7 @@ func TestCollector(t *testing.T) {
|
||||||
{
|
{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -416,20 +425,20 @@ func TestCollector(t *testing.T) {
|
||||||
wantBefore: `
|
wantBefore: `
|
||||||
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
||||||
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.005"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.005"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.01"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.01"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.025"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.025"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.05"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.05"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.25"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.25"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="0.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="0.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="2.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="2.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="10"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="10"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",le="+Inf"} 2
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS",le="+Inf"} 2
|
||||||
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 300
|
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 300
|
||||||
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200"} 2
|
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="200",upstreamCacheStatus="MISS"} 2
|
||||||
`,
|
`,
|
||||||
removeIngresses: []string{"test-app-production/web-yml"},
|
removeIngresses: []string{"test-app-production/web-yml"},
|
||||||
wantAfter: `
|
wantAfter: `
|
||||||
|
@ -440,6 +449,7 @@ func TestCollector(t *testing.T) {
|
||||||
data: []string{`[{
|
data: []string{`[{
|
||||||
"host":"testshop.com",
|
"host":"testshop.com",
|
||||||
"status":"200",
|
"status":"200",
|
||||||
|
"upstreamCacheStatus":"MISS",
|
||||||
"bytesSent":150.0,
|
"bytesSent":150.0,
|
||||||
"method":"GET",
|
"method":"GET",
|
||||||
"path":"/admin",
|
"path":"/admin",
|
||||||
|
@ -461,20 +471,20 @@ func TestCollector(t *testing.T) {
|
||||||
wantBefore: `
|
wantBefore: `
|
||||||
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
# HELP nginx_ingress_controller_response_duration_seconds The time spent on receiving the response from the upstream server
|
||||||
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
# TYPE nginx_ingress_controller_response_duration_seconds histogram
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="0.005"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="0.005"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="0.01"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="0.01"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="0.025"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="0.025"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="0.05"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="0.05"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="0.1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="0.1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="0.25"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="0.25"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="0.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="0.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="1"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="1"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="2.5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="2.5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="5"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="5"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="10"} 0
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="10"} 0
|
||||||
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",le="+Inf"} 1
|
nginx_ingress_controller_response_duration_seconds_bucket{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS",le="+Inf"} 1
|
||||||
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx"} 200
|
nginx_ingress_controller_response_duration_seconds_sum{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS"} 200
|
||||||
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx"} 1
|
nginx_ingress_controller_response_duration_seconds_count{canary="",controller_class="ingress",controller_namespace="default",controller_pod="pod",host="testshop.com",ingress="web-yml",method="GET",namespace="test-app-production",path="/admin",service="test-app",status="2xx",upstreamCacheStatus="MISS"} 1
|
||||||
`,
|
`,
|
||||||
wantAfter: `
|
wantAfter: `
|
||||||
`,
|
`,
|
||||||
|
|
|
@ -1,21 +1,5 @@
|
||||||
//go:build ignore
|
//go:build ignore
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright 2023 The Kubernetes Authors.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|
|
@ -50,6 +50,7 @@ local function metrics()
|
||||||
upstreamHeaderTime = tonumber(ngx.var.upstream_header_time) or -1,
|
upstreamHeaderTime = tonumber(ngx.var.upstream_header_time) or -1,
|
||||||
upstreamResponseTime = tonumber(ngx.var.upstream_response_time) or -1,
|
upstreamResponseTime = tonumber(ngx.var.upstream_response_time) or -1,
|
||||||
upstreamResponseLength = tonumber(ngx.var.upstream_response_length) or -1,
|
upstreamResponseLength = tonumber(ngx.var.upstream_response_length) or -1,
|
||||||
|
upstreamCacheStatus = ngx.var.upstream_cache_status or "-",
|
||||||
--upstreamStatus = ngx.var.upstream_status or "-",
|
--upstreamStatus = ngx.var.upstream_status or "-",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
1311
test/junitreports/report-e2e-test-suite.xml
Normal file
1311
test/junitreports/report-e2e-test-suite.xml
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue