-
Notifications
You must be signed in to change notification settings - Fork 197
Add troubleshooting content type guidelines #4512
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
Merged
alexandra5000
merged 12 commits into
elastic:main
from
alexandra5000:troubleshooting-template
Jan 20, 2026
+258
−0
Merged
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
59a8a22
Add troubleshooting content type guidelines
alexandra5000 a529339
Create a troubleshooting template
alexandra5000 89fab7d
Update troubleshooting guidelines for clarity
alexandra5000 2462f82
Update template to emphasize imperative verb usage and stepper compon…
alexandra5000 cdebeb9
Merge branch 'main' into troubleshooting-template
alexandra5000 4529a12
Apply first peer comments
alexandra5000 da27750
Adds sections on types of troubleshooting content
alexandra5000 c759a02
Clarify contributor guidelines and add common anti-patterns to avoid
alexandra5000 c17c357
Merge branch 'main' into troubleshooting-template
alexandra5000 dfbcb17
Add a Diagnosis section and clarify resolution patterns. Update the t…
alexandra5000 43843a2
Merge remote-tracking branch 'origin/troubleshooting-template' into t…
alexandra5000 42c94a8
Merge branch 'main' into troubleshooting-template
alexandra5000 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
138 changes: 138 additions & 0 deletions
138
contribute-docs/content-types/_snippets/templates/troubleshooting-template.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,138 @@ | ||
| --- | ||
| navigation_title: "[Short title that works in the context of existing navigation folders]" | ||
| description: "[Describe the user-visible problem this page helps resolve, suitable for search results and tooltips]." | ||
| type: troubleshooting | ||
| applies_to: | ||
| stack: | ||
| serverless: | ||
| products: | ||
| - id: | ||
| --- | ||
alexandra5000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| <!-- | ||
| Copy and paste this template to get started writing your troubleshooting page, deleting the instructions and comments from your final page. | ||
|
|
||
| For complete guidance, refer to [the troubleshooting guide](https://www.elastic.co/docs/contribute-docs/content-types/troubleshooting). | ||
| --> | ||
|
|
||
| # [Problem statement written from the user’s perspective] | ||
|
|
||
| <!-- REQUIRED | ||
|
|
||
| Describe the problem users are experiencing. | ||
|
|
||
| Example: EDOT Collector doesn't propagate client metadata | ||
| --> | ||
|
|
||
| <!-- REQUIRED | ||
|
|
||
| Introduction | ||
|
|
||
| A brief summary of what the page helps users resolve. Keep it concise and focused on the problem, not the solution. Help users quickly confirm they're in the right place by describing the issue they're experiencing. | ||
| --> | ||
|
|
||
| ## Symptoms | ||
|
|
||
| <!-- REQUIRED | ||
|
|
||
| Describe what users observe when the problem occurs. Focus on the symptoms themselves, not their causes. Use bullet points. If applicable, include: | ||
|
|
||
| - Error messages | ||
| - Log output | ||
| - Missing or unexpected behavior | ||
| - Timeouts or performance issues | ||
| --> | ||
|
|
||
| ## Diagnosis | ||
|
|
||
| <!-- OPTIONAL | ||
|
|
||
| Use a Diagnosis section when you need to help users narrow down the problem from an initial symptom before providing the resolution. This is especially useful when: | ||
|
|
||
| - The initial symptom requires diagnostic steps to identify the specific cause | ||
| - Multiple resolutions depend on diagnostic findings | ||
| - The same symptom can have multiple root causes | ||
|
|
||
| Use numbered steps or bullet points to guide users through the diagnostic process. | ||
| --> | ||
|
|
||
| ## Resolution | ||
alexandra5000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| <!-- REQUIRED | ||
|
|
||
| Provide clear, actionable steps to resolve the issue. | ||
|
|
||
| - Order steps from most common to least common to resolve the issue | ||
| - Numbered instructions that begin with imperative verb phrases | ||
| - Keep each step focused on a single action | ||
| - Use the stepper component | ||
| - Avoid diagnostic branching unless the problem cannot be resolved linearly. | ||
|
|
||
| For complex scenarios, consider these patterns: | ||
|
|
||
| - Multiple resolutions or "combo" resolutions: When multiple solutions can be applied together or independently, present them as a list of options (users can choose one or combine multiple approaches). | ||
|
|
||
| - Resolutions that differ by deployment type: When steps differ significantly by deployment type ({{ecloud}} versus self-managed versus ECK), organize by deployment type using clear headings. | ||
|
|
||
| - Separating diagnosis from causes and resolution: When multiple resolutions depend on diagnostic findings, use a separate Diagnosis section before Resolution to help users identify their specific situation first. | ||
|
|
||
| For more information about the stepper component, refer to [the syntax guide](https://elastic.github.io/docs-builder/syntax/stepper/). | ||
| --> | ||
|
|
||
| ```markdown | ||
| :::::{stepper} | ||
|
|
||
| ::::{step} [Step title] | ||
| [Step description or instruction - begin with an imperative verb] | ||
| :::: | ||
|
|
||
| ::::{step} [Step title] | ||
| [Step description or instruction - begin with an imperative verb] | ||
| :::: | ||
|
|
||
| ::::{step} [Step title] | ||
| [Step description or instruction - begin with an imperative verb] | ||
| :::: | ||
|
|
||
| ::::: | ||
| ``` | ||
|
|
||
| ## Best practices | ||
alexandra5000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| <!-- OPTIONAL BUT RECOMMENDED | ||
|
|
||
| Explain how to avoid this issue in the future. Use bullet points. Do not restate general product best practices or guidance that applies broadly beyond this issue. | ||
| --> | ||
|
|
||
| ## Resources | ||
alexandra5000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| <!-- OPTIONAL | ||
|
|
||
| Link to related documentation for deeper context. These links are supplementary — all information required to fix the issue should already be on this page. | ||
|
|
||
| Avoid linking to GitHub issues, pull requests, or internal discussions. Resources should be stable, user-facing documentation. | ||
| --> | ||
|
|
||
| - [Related documentation link] | ||
| - [Contrib/upstream reference] | ||
|
|
||
| ## Contact support | ||
|
|
||
| <!-- OPTIONAL | ||
|
|
||
| Use this section only if there is no dedicated "Contact support" page available in the troubleshooting folder. | ||
| --> | ||
|
|
||
| ## Contact us | ||
|
|
||
| If you have an [Elastic subscription](https://www.elastic.co/pricing), then you can contact Elastic support for assistance. You can reach us in the following ways: | ||
|
|
||
| * Through the [Elastic Support Portal](https://support.elastic.co/home). The Elastic Support Portal is the central place where you can access all of your cases, subscriptions, and licenses. Within a few hours after subscribing, you receive an email with instructions on how to log in to the Support Portal, where you can track both current and archived cases. | ||
|
|
||
| You can access the portal [directly](https://support.elastic.co/home), or by clicking on the life preserver icon on any page in {{ecloud}}. | ||
|
|
||
| * By email: [email protected] | ||
|
|
||
| :::{tip} | ||
| If you contact us by email, use the email address that you registered with so that we can help you more quickly. If you are using a distribution list as your registered email, you can also register a second email address with us. Just open a case to let us know the name and email address you want to add. | ||
| ::: | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,115 @@ | ||
| --- | ||
| navigation_title: "Troubleshooting" | ||
| description: "Guidance for writing troubleshooting content that help users diagnose and resolve specific problems quickly and effectively." | ||
| applies_to: | ||
| stack: | ||
| serverless: | ||
| --- | ||
|
|
||
| # Troubleshooting | ||
|
|
||
| This page provides guidelines for Elastic Docs contributors on how to write effective troubleshooting pages in the Elastic docs. | ||
|
|
||
| ## Types of troubleshooting content | ||
|
|
||
| There are several subtypes of troubleshooting content: | ||
|
|
||
| * **A dedicated troubleshooting page** (preferred): Use for specific, well-defined problems. The problem appears in the page title. Includes required **Symptoms** and **Resolution** sections. Optimized for search and direct linking. | ||
|
|
||
| * **Generic "Troubleshooting" or "Common problems" index page**: Use to organize multiple related troubleshooting topics. The title is generic (for example, "Common problems with {{product.apm}}"). Contains anchor links to sections on the same page or links to dedicated troubleshooting pages. Consider breaking out individual problems into dedicated pages as content grows. | ||
|
|
||
| * **Troubleshooting section within a general documentation page**: Use sparingly for brief, contextual troubleshooting tied to a specific feature or quickstart. If content grows beyond a few bullet points, extract it into a dedicated troubleshooting page and link to it. | ||
|
|
||
| The rest of this guide focuses on dedicated troubleshooting pages. Generic index pages and troubleshooting sections within general docs have different structure requirements and may not include all elements described here. | ||
|
|
||
| ## What is a troubleshooting page | ||
|
|
||
| Troubleshooting pages help users fix specific problems they encounter while using Elastic products. They are intentionally narrow in scope (one primary issue per page), problem-driven, and focused on unblocking users as quickly as possible. | ||
|
|
||
| Use the troubleshooting content type when: | ||
|
|
||
| - Users encounter a specific, repeatable problem. | ||
| - The problem can be identified through common symptoms. | ||
| - There is a known resolution or recommended workaround. | ||
|
|
||
| A page that doesn't describe a specific problem isn't troubleshooting content. | ||
|
|
||
| Readers of troubleshooting content are typically blocked or frustrated and want a fast, reliable fix. They expect clear guidance and strong recommendations without requiring background information or deep explanations. Keep troubleshooting pages short and to the point. Optimize for quick resolution, not exhaustive coverage. | ||
|
|
||
| ## Structure of a troubleshooting page | ||
|
|
||
| To help users quickly identify and resolve problems, troubleshooting pages use a consistent structure. A predictable format helps users confirm they're in the right place and move directly to the solution they need. | ||
|
|
||
| ### Required elements | ||
alexandra5000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| The following elements are required in troubleshooting pages: | ||
|
|
||
| 1. A consistent **filename:** Succinctly describe the problem. | ||
| - For example: `no-data-in-kibana.md`, `traces-dropped.md`. | ||
| 2. Appropriate **[frontmatter](https://elastic.github.io/docs-builder/syntax/frontmatter/):** | ||
| - `applies_to:` [Tags](https://elastic.github.io/docs-builder/syntax/applies) for versioning/availability info per the [cumulative docs guidelines](/contribute-docs/how-to/cumulative-docs/index.md). | ||
| - `description`: A brief summary of the page fit for search results and tooltips. | ||
| - `product`: The relevant Elastic product(s) the page relates to. | ||
| 3. A clear **title:** A brief description of the problem, written from the user's perspective. | ||
| - For example: "EDOT Collector doesn't propagate client metadata", "No application-level telemetry visible in {{kib}}", or "Logs are missing after upgrading {{agent}}". | ||
| 4. A **Symptoms** section: Describe what users can observe when the problem occurs. | ||
| - Focus only on user-visible behavior. | ||
| - Do not explain causes. | ||
| - Use bullet points. | ||
| - Include error messages, log output, or UI behavior when helpful: | ||
| - If the problem manifests as a specific error message, include the exact error text (or common variations) in the symptoms. Error messages are often how users identify and search for troubleshooting content. | ||
| - If the problem manifests as undesirable behavior without a specific error, clearly describe the observable symptoms (for example, "No data appears in {{kib}}" or "Service status shows as unhealthy"). | ||
| 5. A **Resolution** section: Provide clear, actionable steps to resolve the issue. Each step should move the reader closer to a working system or help rule out possible causes or assumptions. | ||
alexandra5000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - Use numbered steps. | ||
| - Be prescriptive and opinionated. | ||
| - Include minimal configuration examples when relevant. | ||
| - Assume the reader's situation matches the **Symptoms** section. | ||
| - Avoid speculative or diagnostic language. | ||
| - Order steps from most common to least common to resolve the issue. | ||
| - Avoid diagnostic branching unless the problem cannot be resolved linearly. | ||
|
|
||
| For more complex scenarios, consider the following patterns: | ||
|
|
||
| - **Multiple resolutions or "combo" resolutions**: When multiple solutions can be applied together or independently, present them as a list of options. Users can choose one or combine multiple approaches based on their situation. For example, reducing JVM memory pressure might involve reducing shard count, avoiding expensive searches, and preventing mapping explosions, all of which can be applied together. | ||
|
|
||
| - **Introducing a diagnostic section**: When the initial symptom requires diagnostic steps to identify the specific cause, consider splitting the diagnostic process from the resolution. Use a separate **Diagnosis** section before the **Resolution** section to help users narrow down the problem first. This is especially useful when the same symptom can have multiple root causes or there are multiple possible resolutions that depend on diagnostic findings. | ||
|
|
||
| - **Resolutions that differ by deployment type**: When the resolution steps differ significantly based on deployment type (for example, {{ecloud}} versus self-managed versus ECK), organize the resolution by deployment type using clear headings or tabs. This helps users quickly find the steps relevant to their environment. | ||
|
|
||
| ### Optional elements | ||
|
|
||
| Consider including the following when they add value: | ||
|
|
||
| - A **Best practices** section: Use this section to explain how users can avoid encountering this specific problem again. Focus on preventive measures, configuration choices, or deployment patterns that directly relate to preventing this issue. This is the appropriate place to recommend supported or preferred patterns related to the problem, clarify Elastic-specific guidance, call out known limitations or constraints, and set expectations about scale, load, or deployment environments. | ||
| - A **Resources** section: Provide links to supplementary documentation for readers who want deeper context. Resources must not be required to fix the issue. Prefer Elastic-owned documentation, but link to upstream or external docs when necessary. | ||
| - A **Contact support** section: Use this section only if there is no dedicated "Contact support" page available in the troubleshooting folder. | ||
|
|
||
| ## Best practices | ||
|
|
||
| When you create troubleshooting pages, follow these best practices: | ||
|
|
||
| - Describe one primary issue per page. | ||
| - Be explicit about supported and unsupported setups. | ||
| - Optimize for fast resolution, not exhaustive coverage. | ||
|
|
||
| ## Common anti-patterns | ||
|
|
||
| Do not use troubleshooting for teaching users how to use a feature for the first time (use a tutorial), explaining how a system works (use an overview), listing configuration options or APIs (use reference documentation), or describing general best practices that aren't tied to resolving a specific problem or preventing it from happening again. | ||
alexandra5000 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| Additional common anti-patterns to avoid: | ||
|
|
||
| - Page titles "Troubleshooting X" with no specific problem (acceptable only for index/landing pages that organize multiple troubleshooting topics) | ||
| - Long explanations before the resolution | ||
| - Mixing multiple unrelated issues | ||
|
|
||
| ## Template | ||
|
|
||
| All new troubleshooting pages must be created using [the template](https://github.com/elastic/docs-content/blob/main/contribute-docs/content-types/_snippets/templates/troubleshooting-template.md). | ||
|
|
||
| ## Examples | ||
|
|
||
| Here are some examples of well-structured troubleshooting pages in the Elastic documentation: | ||
|
|
||
| - [No logs, metrics, or traces visible in {{kib}}](/troubleshoot/ingest/opentelemetry/no-data-in-kibana.md): Addresses a specific data visibility issue with clear symptoms and resolution steps. | ||
| - [EDOT Collector doesn't propagate client metadata](/troubleshoot/ingest/opentelemetry/edot-collector/metadata.md): Focuses on a specific configuration problem with symptoms and actionable resolution steps. | ||
| - [Troubleshoot common errors in {{es}}](/troubleshoot/elasticsearch/errors.md): An example of an error reference index page that organizes multiple error-based troubleshooting topics. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.