-
Notifications
You must be signed in to change notification settings - Fork 2.2k
[chore] Standardize markdown #14761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[chore] Standardize markdown #14761
Changes from all commits
7752217
742dc7f
486b5c8
71ef22f
f8a2aad
4a5fde8
1340ced
743e5b1
b2fc773
4e52431
b7504b0
8cd5a8a
c694758
dd3114d
2e91bc2
907ce69
4f78437
e7c7ff9
aaaa683
5754fcb
53776ce
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -126,7 +126,6 @@ service: | |
| extensions: [ file_storage ] | ||
| ``` | ||
|
|
||
|
|
||
| ```yaml | ||
| # extra_extension.yaml | ||
| extensions: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,8 +1,8 @@ | ||
| # Component Status Reporting | ||
|
|
||
| Component status reporting is a collector feature that allows components to report their status (aka health) via status events to extensions. In order for an extension receive these events it must implement the [StatusWatcher interface](https://github.com/open-telemetry/opentelemetry-collector/blob/f05f556780632d12ef7dbf0656534d771210aa1f/extension/extension.go#L54-L63). | ||
| Component status reporting is a collector feature that allows components to report their status (aka health) via status events to extensions. In order for an extension receive these events it must implement the [Watcher interface](https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/component/componentstatus/status.go#L35). | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is this change needed? The previous link is valid. We don't typically keep RFCs up to date when further changes have happened, I think we should revert this |
||
|
|
||
| ### Status Definitions | ||
| ## Status Definitions | ||
|
|
||
| The system defines six statuses, listed in the table below: | ||
|
|
||
|
|
@@ -29,18 +29,17 @@ Statuses can be categorized into two groups: lifecycle and runtime. | |
| - PermanentError | ||
| - FatalError | ||
|
|
||
| ### Transitioning Between Statuses | ||
| ## Transitioning Between Statuses | ||
|
|
||
| There is a finite state machine underlying the status reporting API that governs the allowable state transitions. See the state diagram below: | ||
|
|
||
|
|
||
|  | ||
|
|
||
| The finite state machine ensures that components progress through the lifecycle properly and it manages transitions through runtime states so that components do not need to track their state internally. Only changes in status result in new events being generated; repeat reports of the same status are ignored. PermanentError is a permanent runtime state. A component in a PermanentError state cannot transition to OK or RecoverableError, but it can transition to Stopping. FatalError is a final state. A component in a FatalError state cannot make any further state transitions. | ||
|
|
||
|  | ||
|
|
||
| ### Automation | ||
| ## Automation | ||
|
|
||
| The collector's service implementation is responsible for starting and stopping components. Since it knows when these events occur and their outcomes, it can automate status reporting of lifecycle events for components. | ||
|
|
||
|
|
@@ -52,7 +51,7 @@ The collector will report a Starting event when starting a component. If an erro | |
|
|
||
| The collector will report a Stopping event when shutting down a component. If Shutdown returns an error, the collector will report a PermanentError event. If Shutdown completes without an error, the collector will report a Stopped event. | ||
|
|
||
| ### Best Practices | ||
| ## Best Practices | ||
|
|
||
| **Start** | ||
|
|
||
|
|
@@ -70,7 +69,7 @@ We intend to define guidelines to help component authors distinguish between rec | |
|
|
||
| A component should never have to report explicit status during shutdown. Automated status reporting should handle all cases. To recap, the collector will report Stopping before Shutdown is called. If a component returns an error from shutdown the collector will report a PermanentError and it will report Stopped if Shutdown returns without an error. | ||
|
|
||
| ### Implementation Details | ||
| ## Implementation Details | ||
|
|
||
| There are a couple of implementation details that are worth discussing for those who work on or wish to understand the collector internals. | ||
|
|
||
|
|
@@ -84,4 +83,4 @@ The service gets a slightly different TelemetrySettings object, a servicetelemet | |
|
|
||
| **sharedcomponent** | ||
|
|
||
| The collector has the concept of a shared component. A shared component is represented as a single component to the collector, but represents multiple logical components elsewhere. The most common usage of this is the OTLP receiver, where a single shared component represents a logical instance for each signal: traces, metrics, and logs (although this can vary based on configuration). When a shared component reports status it must report an event for each of the logical instances it represents. In the current implementation, shared component reports status for all its logical instances during [Start](https://github.com/open-telemetry/opentelemetry-collector/blob/31ac3336d956d93abede6db76453730613e1f076/internal/sharedcomponent/sharedcomponent.go#L89-L98) and [Shutdown](https://github.com/open-telemetry/opentelemetry-collector/blob/31ac3336d956d93abede6db76453730613e1f076/internal/sharedcomponent/sharedcomponent.go#L105-L117). It also [modifies the ReportStatus method](https://github.com/open-telemetry/opentelemetry-collector/blob/31ac3336d956d93abede6db76453730613e1f076/internal/sharedcomponent/sharedcomponent.go#L34-L44) on component.TelemetrySettings to report status for each logical instance when called. | ||
| The collector has the concept of a shared component. A shared component is represented as a single component to the collector, but represents multiple logical components elsewhere. The most common usage of this is the OTLP receiver, where a single shared component represents a logical instance for each signal: traces, metrics, and logs (although this can vary based on configuration). When a shared component reports status it must report an event for each of the logical instances it represents. In the current implementation, shared component reports status for all its logical instances during [Start](https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/internal/sharedcomponent/sharedcomponent.go#L89-L98) and [Shutdown](https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/internal/sharedcomponent/sharedcomponent.go#L105-L117). It also [wraps the host's Report method](https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/internal/sharedcomponent/sharedcomponent.go#L34-L44) to report status for each logical instance when called. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ditto, I don't think we should change the links here |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,9 +4,9 @@ Collector build and testing is currently fully automated. However there are stil | |
|
|
||
| We release both core and contrib collectors with the same versions where the contrib release uses the core release as a dependency. We’ve divided this process into three sections. Each section is assigned to an approver or maintainer of the corresponding repository. The sections are: | ||
|
|
||
| 1. The [Core](#releasing-opentelemetry-collector) collector, including the collector builder CLI tool. | ||
| 2. The [Contrib](#releasing-opentelemetry-collector-contrib) collector repository, containing Collector components. | ||
| 3. The [artifacts](#producing-the-artifacts) | ||
| 1. The [Core](https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/docs/release.md#releasing-opentelemetry-collector-core-release-manager) collector, including the collector builder CLI tool. | ||
| 2. The [Contrib](https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/docs/release.md#releasing-opentelemetry-collector-contrib-contrib-release-manager) collector repository, containing Collector components. | ||
| 3. The [artifacts](https://github.com/open-telemetry/opentelemetry-collector/blob/v0.147.0/docs/release.md#producing-the-artifacts-releases-release-manager) | ||
|
Comment on lines
-7
to
+9
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would rather keep these as relative links |
||
|
|
||
| **Important Note:** You’ll need to be able to sign git commits/tags in order to be able to release a collector version. Follow [this guide](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) to set it up. | ||
|
|
||
|
|
@@ -77,7 +77,6 @@ releases and add new schedules to the bottom of the list. To update the release | |
| 1. If the core release manager is also eligible as a contrib and 'releases' release manager, assign them to all roles they can perform. | ||
| 2. Otherwise, pick a contrib/'releases' approver/maintainer that is not a core approver/maintainer, rotating through the list of eligible people. The contrib approvers/maintainers are all members of the [@collector-contrib-approvers](https://github.com/orgs/open-telemetry/teams/collector-contrib-approvers) team, and the 'releases' approvers/maintainers are all members of the [@collector-releases-approvers](https://github.com/orgs/open-telemetry/teams/collector-releases-approvers) team. | ||
|
|
||
|
|
||
| ## Troubleshooting | ||
|
|
||
| 1. `unknown revision internal/coreinternal/v0.85.0` -- This is typically an indication that there's a dependency on a new module. You can fix it by adding a new `replaces` entry to the `go.mod` for the affected module. | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -221,7 +221,6 @@ traces: | |
| group_by(trace_id, 2m) | ||
| ``` | ||
|
|
||
|
|
||
| Update a spans ID | ||
|
|
||
| ``` | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer to keep the link to main here. I understand this may not be the best practice for linking to an arbitrary repo, but this is a repo we control so I feel confident we can keep it working