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
`applies_to` accepts the following keys in this structure:
2
2
3
+
*`serverless`: Applies to [Elastic Cloud Serverless](https://www.elastic.co/docs/deploy-manage/deploy/elastic-cloud/serverless).
4
+
*`security`: Applies to Serverless [security projects](https://www.elastic.co/docs/solutions/security/get-started/create-security-project).
5
+
*`elasticsearch`: Applies to Serverless [search projects](https://www.elastic.co/docs/solutions/search/serverless-elasticsearch-get-started).
6
+
*`observability`: Applies to Serverless [observability projects](https://www.elastic.co/docs/solutions/observability/get-started).
3
7
*`stack`: Applies to the [Elastic Stack](https://www.elastic.co/docs/get-started/the-stack) including any Elastic Stack components.
4
8
*`deployment`: Applies to some deployment type(s).
5
-
*`eck`: Applies to [Elastic Cloud on Kubernetes](https://www.elastic.co/docs/deploy-manage/deploy/cloud-on-k8s) deployments.
6
9
*`ech`: Applies to [Elastic Cloud Hosted](https://www.elastic.co/docs/deploy-manage/deploy/elastic-cloud/cloud-hosted) deployments.
7
10
*`ece`: Applies to [Elastic Cloud Enterprise](https://www.elastic.co/docs/deploy-manage/deploy/cloud-enterprise) deployments.
11
+
*`eck`: Applies to [Elastic Cloud on Kubernetes](https://www.elastic.co/docs/deploy-manage/deploy/cloud-on-k8s) deployments.
8
12
*`self`: Applies to [self-managed](https://www.elastic.co/docs/deploy-manage/deploy/self-managed) deployments.
9
13
*`ess`: Applies to Elasticsearch Service deployments. {applies_to}`product: deprecated`
10
14
:::{note}
11
15
Use `ech` instead.
12
16
:::
13
-
*`serverless`: Applies to [Elastic Cloud Serverless](https://www.elastic.co/docs/deploy-manage/deploy/elastic-cloud/serverless).
14
-
*`security`: Applies to Serverless [security projects](https://www.elastic.co/docs/solutions/security/get-started/create-security-project).
15
-
*`elasticsearch`: Applies to Serverless [search projects](https://www.elastic.co/docs/solutions/search/serverless-elasticsearch-get-started).
16
-
*`observability`: Applies to Serverless [observability projects](https://www.elastic.co/docs/solutions/observability/get-started).
17
17
*`product`: Applies to a specific product.
18
-
*`ecctl`: Applies to [Elastic cloud control](https://www.elastic.co/docs/reference/ecctl).
19
-
*`curator`: Applies to [Elasticsearch Curator](https://www.elastic.co/docs/reference/elasticsearch/curator).
20
18
*`apm_agent_dotnet`: Applies to the [Elastic APM .NET agent](https://www.elastic.co/docs/reference/apm/agents/dotnet).
21
19
*`apm_agent_go`: Applies to the [Elastic APM Go agent](https://www.elastic.co/docs/reference/apm/agents/go).
22
20
*`apm_agent_java`: Applies to the [Elastic APM Java agent](https://www.elastic.co/docs/reference/apm/agents/java).
@@ -25,12 +23,14 @@
25
23
*`apm_agent_python`: Applies to the [Elastic APM Python agent](https://www.elastic.co/docs/reference/apm/agents/python).
26
24
*`apm_agent_ruby`: Applies to the [Elastic APM Ruby agent](https://www.elastic.co/docs/reference/apm/agents/ruby).
27
25
*`apm_agent_rum`: Applies to the [APM RUM JavaScript agent](https://www.elastic.co/docs/reference/apm/agents/rum-js).
28
-
*`edot_collector`: Applies to the [Elastic Distribution of OpenTelemetry Collector](https://www.elastic.co/docs/reference/opentelemetry/edot-collector/).
29
-
*`edot_ios`: Applies to the [Elastic Distribution of OpenTelemetry iOS](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/ios/).
30
-
*`edot_android`: Applies to the [Elastic Distribution of OpenTelemetry Android](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/android/).
31
-
*`edot_dotnet`: Applies to the [Elastic Distribution of OpenTelemetry .NET](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/dotnet/).
32
-
*`edot_java`: Applies to the [Elastic Distribution of OpenTelemetry Java](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/java/).
33
-
*`edot_node`: Applies to the [Elastic Distribution of OpenTelemetry Node.js](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/nodejs/).
34
-
*`edot_php`: Applies to the [Elastic Distribution of OpenTelemetry PHP](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/php/).
35
-
*`edot_python`: Applies to the [Elastic Distribution of OpenTelemetry Python](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/python/).
36
-
*`edot_cf_aws`: Applies to the [Elastic Distribution of OpenTelemetry Cloud Forwarder](https://www.elastic.co/docs/reference/opentelemetry/edot-cloud-forwarder/).
26
+
*`curator`: Applies to [Elasticsearch Curator](https://www.elastic.co/docs/reference/elasticsearch/curator) (Curator).
27
+
*`ecctl`: Applies to [Elastic cloud control](https://www.elastic.co/docs/reference/ecctl) (ECCTL).
28
+
*`edot_android`: Applies to the [Elastic Distribution of OpenTelemetry Android](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/android/) (EDOT Android).
29
+
*`edot_cf_aws`: Applies to the [Elastic Distribution of OpenTelemetry Cloud Forwarder](https://www.elastic.co/docs/reference/opentelemetry/edot-cloud-forwarder/) (EDOT Cloud Forwarder).
30
+
*`edot_collector`: Applies to the [Elastic Distribution of OpenTelemetry Collector](https://www.elastic.co/docs/reference/opentelemetry/edot-collector/) (EDOT Collector).
31
+
*`edot_dotnet`: Applies to the [Elastic Distribution of OpenTelemetry .NET](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/dotnet/) (EDOT .NET).
32
+
*`edot_ios`: Applies to the [Elastic Distribution of OpenTelemetry iOS](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/ios/) (EDOT iOS).
33
+
*`edot_java`: Applies to the [Elastic Distribution of OpenTelemetry Java](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/java/) (EDOT Java).
34
+
*`edot_node`: Applies to the [Elastic Distribution of OpenTelemetry Node.js](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/nodejs/) (EDOT Node.js).
35
+
*`edot_php`: Applies to the [Elastic Distribution of OpenTelemetry PHP](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/php/) (EDOT PHP).
36
+
*`edot_python`: Applies to the [Elastic Distribution of OpenTelemetry Python](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/python/) (EDOT Python).
Copy file name to clipboardExpand all lines: docs/contribute/cumulative-docs/best-practices.md
+8-132Lines changed: 8 additions & 132 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,11 @@ Depending on what you're trying to communicate, you can use the following patter
27
27
28
28
## Order of items
29
29
30
-
**Versions.** Always put the newest version first when listing multiple versions. As a result, the lifecycles should be in order of product development progression, too.
30
+
% TO DO: Open an issue to force the order in the code.
31
+
32
+
**Versions.** Always put the newest version first when listing multiple versions. As a result, the lifecycles should be in reverse order of product development progression, too.
***Monitoring for Java applications**: Elastic Distribution of OpenTelemetry (EDOT) Java, APM Java agent
38
42
43
+
<image>
44
+
39
45
## Placement of badges
40
46
41
47
### Headings
@@ -83,7 +89,7 @@ Do **not** put the `applies_to` badge at the beginning or end of the definition
83
89
84
90
#### If the badge is only relevant to a portion of the definition, follow the appropriate placement guidelines for the elements used in the definition [definition-list-item-part]
85
91
86
-
This might include labeling just one of multiple paragraphs or one item in an ordered or unordered list. For example, on the ... page, ...
92
+
This might include labeling just one of multiple paragraphs, or one item in an ordered or unordered list. For example, on the [Google Gemini Connector page](https://www.elastic.co/docs/reference/kibana/connectors-kibana/gemini-action-type#gemini-connector-configuration), the default model is different depending on the deployment type and version of the Elastic Stack. These differences should be called out with their own `applies_to` badges.
Sometimes the UI differs between versions, deployment types or other conditions.
128
+
125
129
### Solution A: Use tabs [screenshot-tabs]
126
130
127
131
**When to use tabs**:
132
+
* When the screenshot shows significantly different interfaces or workflows for each product, deployment type, or version.
133
+
* When the screenshot represents a specific, interactive action, like clicking a button or navigating a UI that changes meaningfully between contexts.
128
134
129
135
**Best practices**:
136
+
* Keep any explanatory text outside the tab unless it's specific to the screenshot inside.
130
137
131
138
**Example**:
132
139
140
+
A walkthrough for configuring alerts in Kibana differs between Elastic Stack and Serverless deployments.
141
+
142
+
<image>
143
+
133
144
### Solution B: Add a note [screenshot-note]
134
145
146
+
In cases where only a small visual detail differs (for example, a button label or icon), it’s often more efficient to add a note rather than creating tabbed screenshots.
147
+
135
148
**When to use a note**:
149
+
* When the screenshot is mostly consistent, but includes minor visual or behavioral differences.
150
+
* When adding another screenshot would be redundant or distracting.
136
151
137
152
**Best practices**:
153
+
* Keep notes concise, ideally one sentence.
154
+
* Place the note directly after the screenshot.
155
+
* Use an `applies_to` badge at the start of the note if relevant.
138
156
139
157
**Example**:
140
158
159
+
In Serverless, the "Create rule" button is labeled "Add rule."
160
+
161
+
<image>
162
+
141
163
## Multiple adjacent block elements vary [multiple-block]
142
164
143
165
### Solution A: Use headings [multiple-block-headings]
@@ -151,11 +173,18 @@ Sibling pages are a last resort when no other solutions are appropriate.
151
173
### Solution B: Use tabs [multiple-block-tabs]
152
174
153
175
**When to use tabs**:
176
+
* When the content is structurally similar but differs in detail — for example, slightly different instructions, outputs, or paths.
177
+
* When you want to avoid repeating most of the surrounding content and isolate just the difference.
154
178
155
179
**Best practices**:
180
+
* Only include content that varies inside the tab — don’t wrap entire pages or unrelated information.
181
+
* Keep tabs short and focused to reduce cognitive load.
182
+
* Label tabs clearly and consistently (e.g., by version or product).
156
183
157
184
**Example**:
158
185
186
+
<image>
187
+
159
188
## Feature in beta or technical preview is removed [beta-removed]
0 commit comments