kubernetes: brush up README, rename metric (#3360)
Other latency metrics have `_duration` in the name change this metric to be in sync with the other ones. Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
parent
f1415e8573
commit
ffe6225ff6
4 changed files with 35 additions and 36 deletions
2
plugin/cache/README.md
vendored
2
plugin/cache/README.md
vendored
|
@ -61,7 +61,7 @@ Since shards don't fill up perfectly evenly, evictions will occur before the ent
|
|||
Each shard capacity is equal to the total cache size / number of shards (256). Eviction is random, not TTL based.
|
||||
Entries with 0 TTL will remain in the cache until randomly evicted when the shard reaches capacity.
|
||||
|
||||
## Metrics
|
||||
# Metrics
|
||||
|
||||
If monitoring is enabled (via the *prometheus* directive) then the following metrics are exported:
|
||||
|
||||
|
|
|
@ -46,7 +46,6 @@ kubernetes [ZONES...] {
|
|||
}
|
||||
```
|
||||
|
||||
|
||||
* `endpoint` specifies the **URL** for a remote k8s API endpoint.
|
||||
If omitted, it will connect to k8s in-cluster using the cluster service account.
|
||||
* `tls` **CERT** **KEY** **CACERT** are the TLS cert, key and the CA cert file names for remote k8s connection.
|
||||
|
@ -210,15 +209,15 @@ or the word "any"), then that label will match all values. The labels that acce
|
|||
* multiple wildcards are allowed in a single query, e.g., `A` Request `*.*.svc.zone.` or `SRV` request `*.*.*.*.svc.zone.`
|
||||
|
||||
For example, wildcards can be used to resolve all Endpoints for a Service as `A` records. e.g.: `*.service.ns.svc.myzone.local` will return the Endpoint IPs in the Service `service` in namespace `default`:
|
||||
|
||||
```
|
||||
*.service.default.svc.cluster.local. 5 IN A 192.168.10.10
|
||||
*.service.default.svc.cluster.local. 5 IN A 192.168.25.15
|
||||
```
|
||||
This response can be randomized using the `loadbalance` plugin
|
||||
|
||||
## Metadata
|
||||
|
||||
The kubernetes plugin will publish the following metadata, if the _metadata_
|
||||
The kubernetes plugin will publish the following metadata, if the *metadata*
|
||||
plugin is also enabled:
|
||||
|
||||
* kubernetes/endpoint: the endpoint name in the query
|
||||
|
@ -232,8 +231,9 @@ plugin is also enabled:
|
|||
|
||||
## Metrics
|
||||
|
||||
The *kubernetes* plugin exports the following *Prometheus* metrics.
|
||||
* `coredns_kubernetes_dns_programming_latency_seconds{service_kind}` - exports the
|
||||
If monitoring is enabled (via the *prometheus* directive) then the following metrics are exported:
|
||||
|
||||
* `coredns_kubernetes_dns_programming_duration_seconds{service_kind}` - Exports the
|
||||
[DNS programming latency SLI](https://github.com/kubernetes/community/blob/master/sig-scalability/slos/dns_programming_latency.md).
|
||||
The metrics has the `service_kind` label that identifies the kind of the
|
||||
[kubernetes service](https://kubernetes.io/docs/concepts/services-networking/service).
|
||||
|
@ -244,4 +244,4 @@ The *kubernetes* plugin exports the following *Prometheus* metrics.
|
|||
|
||||
## Bugs
|
||||
|
||||
* add support for other service types; only "headless_with_selector" is supported now
|
||||
The duration metric only supports the "headless_with_selector" service currently.
|
||||
|
|
|
@ -28,7 +28,7 @@ var (
|
|||
DnsProgrammingLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{
|
||||
Namespace: plugin.Namespace,
|
||||
Subsystem: subsystem,
|
||||
Name: "dns_programming_latency_seconds",
|
||||
Name: "dns_programming_duration_seconds",
|
||||
// From 1 millisecond to ~17 minutes.
|
||||
Buckets: prometheus.ExponentialBuckets(0.001, 2, 20),
|
||||
Help: "Histogram of the time (in seconds) it took to program a dns instance.",
|
||||
|
@ -72,5 +72,4 @@ func recordDNSProgrammingLatency(svcs []*object.Service, endpoints *api.Endpoint
|
|||
// "headless service with selector".
|
||||
DnsProgrammingLatency.WithLabelValues("headless_with_selector").
|
||||
Observe(durationSinceFunc(lastChangeTriggerTime).Seconds())
|
||||
|
||||
}
|
||||
|
|
|
@ -58,31 +58,31 @@ func TestDnsProgrammingLatency(t *testing.T) {
|
|||
|
||||
controller.Stop()
|
||||
expected := `
|
||||
# HELP coredns_kubernetes_dns_programming_latency_seconds Histogram of the time (in seconds) it took to program a dns instance.
|
||||
# TYPE coredns_kubernetes_dns_programming_latency_seconds histogram
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.001"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.002"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.004"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.008"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.016"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.032"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.064"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.128"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.256"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="0.512"} 0
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="1.024"} 1
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="2.048"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="4.096"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="8.192"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="16.384"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="32.768"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="65.536"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="131.072"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="262.144"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="524.288"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_bucket{service_kind="headless_with_selector",le="+Inf"} 2
|
||||
coredns_kubernetes_dns_programming_latency_seconds_sum{service_kind="headless_with_selector"} 3
|
||||
coredns_kubernetes_dns_programming_latency_seconds_count{service_kind="headless_with_selector"} 2
|
||||
# HELP coredns_kubernetes_dns_programming_duration_seconds Histogram of the time (in seconds) it took to program a dns instance.
|
||||
# TYPE coredns_kubernetes_dns_programming_duration_seconds histogram
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.001"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.002"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.004"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.008"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.016"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.032"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.064"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.128"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.256"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="0.512"} 0
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="1.024"} 1
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="2.048"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="4.096"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="8.192"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="16.384"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="32.768"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="65.536"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="131.072"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="262.144"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="524.288"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_bucket{service_kind="headless_with_selector",le="+Inf"} 2
|
||||
coredns_kubernetes_dns_programming_duration_seconds_sum{service_kind="headless_with_selector"} 3
|
||||
coredns_kubernetes_dns_programming_duration_seconds_count{service_kind="headless_with_selector"} 2
|
||||
`
|
||||
if err := testutil.CollectAndCompare(DnsProgrammingLatency, strings.NewReader(expected)); err != nil {
|
||||
t.Error(err)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue