You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[chore] Document scalability, performance and resiliency requirements for stable components (#12994)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
<!-- Issue number if applicable -->
This updates the stability requirements to require certain benchmarking,
testing and documentation to ensure scalability, resiliency and
performance expectations are documented at a minimum level.
To operationalize this, I will work on:
- Adding automated context propagation tests for components for which it
is easy to do so (connectors and processors)
- Adding a new section to the table with a link to the latest
benchmarking results.
#### Link to tracking issue
Fixes#11866Fixes#11868Fixes#11593
Copy file name to clipboardExpand all lines: docs/component-stability.md
+12-7Lines changed: 12 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -89,13 +89,14 @@ components apply to stable when it comes to configuration changes.
89
89
90
90
#### Testing requirements
91
91
92
-
Stable components MUST have a test coverage that exceeds the highest between 80% coverage and the
93
-
repository-wide minimum. The unit test suite SHOULD cover all configuration options. The coverage
94
-
MUST be shown as part of the component documentation.
95
-
96
-
Stable components SHOULD provide at least one example configuration that works for each stable
97
-
signal, and have at least one lifecycle test that tests the component's initialization with a valid
98
-
configuration. Said configuration should also be shown in the component documentation.
92
+
Stable components MUST have a comprehensive test suite. In particular they MUST have:
93
+
1. A **test coverage** that exceeds the highest between 80% coverage and the repository-wide
94
+
minimum. The unit test suite SHOULD cover all configuration options. The coverage MUST be shown as
95
+
part of the component documentation.
96
+
2. At least one **lifecycle test** that tests the component's initialization with a valid
97
+
configuration and ensures proper context propagation if applicable.
98
+
3. At least one **benchmark test** for each stable signal. The component's documentation MUST
99
+
include a link to the latest run of benchmark results.
99
100
100
101
#### Documentation requirements
101
102
@@ -108,6 +109,9 @@ Stable components should have a complete set of documentation, including:
108
109
what they provide.
109
110
- Compatibility guarantees with external dependencies including the versions it is compatible with
110
111
and under what conditions.
112
+
- Guidance related to the component's usage in production environments, including how to scale a deployment of this component properly if it needs special considerations.
113
+
- If stateful, how to configure the component to use persistent storage and how to gracefully
114
+
shutdown and restart the component.
111
115
- Warnings about known limitations and ways to misuse the component.
112
116
113
117
Receivers that produce a fixed set of telemetry should document the telemetry they produce,
@@ -300,6 +304,7 @@ To graduate any signal from alpha to beta on a component:
300
304
301
305
To graduate any signal from beta to stable on a component:
302
306
1. The component MUST have at least three active code owners.
307
+
2. The component benchmark results MUST have been updated within the last 30 days and published in the component's README.
303
308
3. Within the 60 days prior to the graduation request, the code owners MUST have reviewed and
304
309
replied to at least 80% of the issues and pull requests opened against the component. This
305
310
excludes general PRs or issues that are not specific to the component itself (e.g. repo-wide API
0 commit comments