Skip to content

Commit 086fe42

Browse files
author
Han Kang
committed
add intro to metrics stability extension kep
1 parent e1b4c09 commit 086fe42

File tree

2 files changed

+21
-162
lines changed

2 files changed

+21
-162
lines changed

keps/sig-instrumentation/4242-additional-stability-classes/README.md renamed to keps/sig-instrumentation/4242-extending-stability/README.md

Lines changed: 13 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,6 @@
1-
<!--
2-
**Note:** When your KEP is complete, all of these comment blocks should be removed.
3-
4-
To get started with this template:
5-
6-
- [ ] **Pick a hosting SIG.**
7-
Make sure that the problem space is something the SIG is interested in taking
8-
up. KEPs should not be checked in without a sponsoring SIG.
9-
- [ ] **Create an issue in kubernetes/enhancements**
10-
When filing an enhancement tracking issue, please make sure to complete all
11-
fields in that template. One of the fields asks for a link to the KEP. You
12-
can leave that blank until this KEP is filed, and then go back to the
13-
enhancement and add the link.
14-
- [ ] **Make a copy of this template directory.**
15-
Copy this template into the owning SIG's directory and name it
16-
`NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
17-
leading-zero padding) assigned to your enhancement above.
18-
- [ ] **Fill out as much of the kep.yaml file as you can.**
19-
At minimum, you should fill in the "Title", "Authors", "Owning-sig",
20-
"Status", and date-related fields.
21-
- [ ] **Fill out this file as best you can.**
22-
At minimum, you should fill in the "Summary" and "Motivation" sections.
23-
These should be easy if you've preflighted the idea of the KEP with the
24-
appropriate SIG(s).
25-
- [ ] **Create a PR for this KEP.**
26-
Assign it to people in the SIG who are sponsoring this process.
27-
- [ ] **Merge early and iterate.**
28-
Avoid getting hung up on specific details and instead aim to get the goals of
29-
the KEP clarified and merged quickly. The best way to do this is to just
30-
start with the high-level sections and fill out details incrementally in
31-
subsequent PRs.
32-
33-
Just because a KEP is merged does not mean it is complete or approved. Any KEP
34-
marked as `provisional` is a working document and subject to change. You can
35-
denote sections that are under active debate as follows:
36-
37-
```
38-
<<[UNRESOLVED optional short context or usernames ]>>
39-
Stuff that is being argued.
40-
<<[/UNRESOLVED]>>
41-
```
42-
43-
When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
44-
focused. If you disagree with what is already in a document, open a new PR
45-
with suggested changes.
46-
47-
One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
48-
You do not need a new KEP to move from beta to GA, for example. If
49-
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
50-
"implemented", major changes should get new KEPs.
51-
52-
The canonical place for the latest set of instructions (and the likely source
53-
of this file) is [here](/keps/NNNN-kep-template/README.md).
54-
55-
**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
56-
it is marked `implementable`, must be approved by each of the KEP approvers.
57-
If none of those approvers are still appropriate, then changes to that list
58-
should be approved by the remaining approvers and/or the owning SIG (or
59-
SIG Architecture for cross-cutting KEPs).
60-
-->
61-
# KEP-NNNN: Your short, descriptive title
62-
63-
<!--
64-
This is the title of your KEP. Keep it short, simple, and descriptive. A good
65-
title can help communicate what the KEP is and should be considered as part of
66-
any review.
67-
-->
68-
69-
<!--
70-
A table of contents is helpful for quickly jumping to sections of a KEP and for
71-
highlighting any additional information provided beyond the standard KEP
72-
template.
73-
74-
Ensure the TOC is wrapped with
75-
<code>&lt;!-- toc --&rt;&lt;!-- /toc --&rt;</code>
76-
tags, and then generate with `hack/update-toc.sh`.
77-
-->
78-
79-
<!-- toc -->
1+
# KEP-4242: Extending Metrics Stability
2+
3+
804
- [Release Signoff Checklist](#release-signoff-checklist)
815
- [Summary](#summary)
826
- [Motivation](#motivation)
@@ -104,24 +28,9 @@ tags, and then generate with `hack/update-toc.sh`.
10428
- [Drawbacks](#drawbacks)
10529
- [Alternatives](#alternatives)
10630
- [Infrastructure Needed (Optional)](#infrastructure-needed-optional)
107-
<!-- /toc -->
10831

10932
## Release Signoff Checklist
11033

111-
<!--
112-
**ACTION REQUIRED:** In order to merge code into a release, there must be an
113-
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
114-
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
115-
of the targeted release**.
116-
117-
For enhancements that make changes to code or processes/procedures in core
118-
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
119-
Signoff checklist to be completed.
120-
121-
Check these off as they are completed for the Release Team to track. These
122-
checklist items _must_ be updated for the enhancement to be released.
123-
-->
124-
12534
Items marked with (R) are required *prior to targeting to a milestone / release*.
12635

12736
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
@@ -139,9 +48,6 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
13948
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
14049
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
14150

142-
<!--
143-
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
144-
-->
14551

14652
[kubernetes.io]: https://kubernetes.io/
14753
[kubernetes/enhancements]: https://git.k8s.io/enhancements
@@ -150,60 +56,27 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
15056

15157
## Summary
15258

153-
<!--
154-
This section is incredibly important for producing high-quality, user-focused
155-
documentation such as release notes or a development roadmap. It should be
156-
possible to collect this information before implementation begins, in order to
157-
avoid requiring implementors to split their attention between writing release
158-
notes and implementing the feature itself. KEP editors and SIG Docs
159-
should help to ensure that the tone and content of the `Summary` section is
160-
useful for a wide audience.
161-
162-
A good summary is probably at least a paragraph in length.
59+
The metric stability framework was originally introduced with the intent of safeguarding significant metrics from being broken downstream. Metrics could be deemed `stable` or `alpha`, and only `stable` metrics would have stability guarantees.
16360

164-
Both in this section and below, follow the guidelines of the [documentation
165-
style guide]. In particular, wrap lines to a reasonable length, to make it
166-
easier for reviewers to cite specific portions, and to minimize diff churn on
167-
updates.
168-
169-
[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md
170-
-->
61+
This KEP intends to propose additional stability classes to extend on the existing metrics stability framework, such that we can achieve parity with the various stages of the feature release cycle.
17162

17263
## Motivation
17364

174-
<!--
175-
This section is for explicitly listing the motivation, goals, and non-goals of
176-
this KEP. Describe why the change is important and the benefits to users. The
177-
motivation section can optionally provide links to [experience reports] to
178-
demonstrate the interest in a KEP within the wider Kubernetes community.
179-
180-
[experience reports]: https://github.com/golang/go/wiki/ExperienceReports
181-
-->
65+
It's become more obvious recently that we need additional stability classes, particularly in respect to various stages of feature releases. This has become more obvious with the advent of PRR (production readiness reviews) and mandated production readiness metrics.
18266

18367
### Goals
18468

185-
<!--
186-
List the specific goals of the KEP. What is it trying to achieve? How will we
187-
know that this has succeeded?
188-
-->
69+
Introduce two more metric classes: `beta`, corresponding to the `beta` stage of feature release, and `internal` which corresponds to internal development related metrics.
70+
71+
Additionally we propose forced upgrades of metrics stability classes in the similar vein that features are not allowed to languish in `alpha` or `beta` stages. In order to respect the fact that there may be classes of metrics which do not correspond to features, we reserve the `internal` metrics stability class.
18972

19073
### Non-Goals
19174

192-
<!--
193-
What is out of scope for this KEP? Listing non-goals helps to focus discussion
194-
and make progress.
195-
-->
75+
19676

19777
## Proposal
19878

199-
<!--
200-
This is where we get down to the specifics of what the proposal actually is.
201-
This should have enough detail that reviewers can understand exactly what
202-
you're proposing, but should not include things like API designs or
203-
implementation. What is the desired outcome and how do we measure success?.
204-
The "Design Details" section below is for the real
205-
nitty-gritty.
206-
-->
79+
20780

20881
### User Stories (Optional)
20982

@@ -252,23 +125,9 @@ proposal will be implemented, this is the place to discuss them.
252125

253126
### Test Plan
254127

255-
<!--
256-
**Note:** *Not required until targeted at a release.*
257-
258-
Consider the following in developing a test plan for this enhancement:
259-
- Will there be e2e and integration tests, in addition to unit tests?
260-
- How will it be tested in isolation vs with other components?
261-
262-
No need to outline all of the test cases, just the general strategy. Anything
263-
that would count as tricky in the implementation, and anything particularly
264-
challenging to test, should be called out.
128+
We have static analysis testing for stable metrics, we will extend our test coverage
129+
to include metrics which are `ALPHA` and `BETA` while ignoring `INTERNAL` metrics.
265130

266-
All code is expected to have adequate tests (eventually with coverage
267-
expectations). Please adhere to the [Kubernetes testing guidelines][testing-guidelines]
268-
when drafting this test plan.
269-
270-
[testing-guidelines]: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md
271-
-->
272131

273132
### Graduation Criteria
274133

keps/sig-instrumentation/4242-additional-stability-classes/kep.yaml renamed to keps/sig-instrumentation/4242-extending-stability/kep.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
id: "2306"
22
prnumber: ""
3-
name: additional-stability-classes
4-
title: Additional Metrics Stability Classes
3+
name: extending-stability
4+
title: Extending Metrics Stability
55
kep-number: "4242"
6-
authors: ['@logicalhan,brancz,coffeepac']
6+
authors: ['@logicalhan', '@dgrisonnet', '@coffeepac']
77
owning-sig: sig-instrumentation
88
participating-sigs: [sig-architecture, sig-instrumentation]
9-
reviewers: ['@dashpole']
9+
reviewers: ['@dashpole', '@ehashman']
1010
approvers: []
11-
prr-approvers: []
11+
prr-approvers: ['@ehashman']
1212
creation-date: "2021-06-27"
13-
last-updated: v1.19
13+
last-updated: v1.24
1414
status: provisional
15-
stage: ""
16-
latest-milestone: ""
15+
stage: "ALPHA"
16+
latest-milestone: "v1.24"
1717
milestone:
1818
alpha: ""
1919
beta: ""

0 commit comments

Comments
 (0)