Skip to content

Commit 128eee6

Browse files
authored
Merge pull request #5737 from logicalhan/patch-2
Update instrumentation.md with current information
2 parents 52df7f4 + ce96b83 commit 128eee6

File tree

1 file changed

+13
-16
lines changed

1 file changed

+13
-16
lines changed

contributors/devel/sig-instrumentation/instrumentation.md

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ internal and external.
2424

2525
The following describes the basic steps required to add a new metric (in Go).
2626

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.
2828

2929
2. Create a top-level var to define the metric. For this, you have to:
3030

@@ -39,26 +39,23 @@ the values.
3939
labels on the metric. If so, add "Vec" to the name of the type of metric you
4040
want and add a slice of the label names to the definition.
4141

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)
4343
```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+
)
5152
```
5253

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.
5455

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)
5657
```go
57-
func init() {
58-
prometheus.MustRegister(requestCounter)
59-
prometheus.MustRegister(requestLatencies)
60-
prometheus.MustRegister(requestLatenciesSummary)
61-
}
58+
legacyregistry.MustRegister(metric)
6259
```
6360

6461
4. Use the metric by calling the appropriate method for your metric type (Set,

0 commit comments

Comments
 (0)