Skip to content

Commit ce96b83

Browse files
author
Han Kang
authored
Update instrumentation.md with current information
We don't allow the use of prometheus directly anymore, let's update the docs to reflect that.
1 parent 52df7f4 commit ce96b83

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)