@@ -24,7 +24,7 @@ internal and external.
24
24
25
25
The following describes the basic steps required to add a new metric (in Go).
26
26
27
- 1 . Import "github.com/prometheus/client_golang/prometheus" .
27
+ 1 . Import "k8s.io/component-base/metrics" for metrics and "k8s.io/component-base/metrics/legacyregistry" to register your declared metrics .
28
28
29
29
2 . Create a top-level var to define the metric. For this, you have to:
30
30
@@ -39,26 +39,23 @@ the values.
39
39
labels on the metric. If so, add "Vec" to the name of the type of metric you
40
40
want and add a slice of the label names to the definition.
41
41
42
- [ Example] ( https://github.com/kubernetes/kubernetes/blob/cd3299307d44665564e1a5c77d0daa0286603ff5/pkg/apiserver/ apiserver.go#L53 )
42
+ [ Example] ( https://github.com/kubernetes/kubernetes/blob/v1.21.1-rc.0/staging/src/k8s.io/ apiserver/pkg/endpoints/metrics/metrics .go#L75-L82 )
43
43
``` go
44
- requestCounter = prometheus.NewCounterVec (
45
- prometheus.CounterOpts {
46
- Name : " apiserver_request_total" ,
47
- Help : " Counter of apiserver requests broken out for each verb, API resource, client, and HTTP response code." ,
48
- },
49
- []string {" verb" , " resource" , " client" , " code" },
50
- )
44
+ requestCounter = compbasemetrics.NewCounterVec (
45
+ &compbasemetrics.CounterOpts {
46
+ Name : " apiserver_request_total" ,
47
+ Help : " Counter of apiserver requests broken out for each verb, dry run value, group, version, resource, scope, component, and HTTP response code." ,
48
+ StabilityLevel : compbasemetrics.STABLE ,
49
+ },
50
+ []string {" verb" , " dry_run" , " group" , " version" , " resource" , " subresource" , " scope" , " component" , " code" },
51
+ )
51
52
```
52
53
53
- 3 . Register the metric so that prometheus will know to export it.
54
+ 3 . Register the metric so that prometheus will know to export it. This can be done in manually or through an init function.
54
55
55
- [ Example] ( https://github.com/kubernetes/kubernetes/blob/cd3299307d44665564e1a5c77d0daa0286603ff5/pkg/apiserver/ apiserver.go#L78 )
56
+ [ Example] ( https://github.com/kubernetes/kubernetes/blob/v1.21.1-rc.0/staging/src/k8s.io/ apiserver/pkg/endpoints/metrics/metrics .go#L280 )
56
57
``` go
57
- func init () {
58
- prometheus.MustRegister (requestCounter)
59
- prometheus.MustRegister (requestLatencies)
60
- prometheus.MustRegister (requestLatenciesSummary)
61
- }
58
+ legacyregistry.MustRegister (metric)
62
59
```
63
60
64
61
4 . Use the metric by calling the appropriate method for your metric type (Set,
0 commit comments