Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions solutions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ New to Elastic? Refer to [get started](/get-started/the-stack.md) to understand
Users reach for Elastic products, features, and tools for three main use cases: observability, security, and search.

These use cases are supported by ready-to-use implementations that help you get started quickly:

- As integrated solutions on [{{ech}}](/deploy-manage/deploy/elastic-cloud/cloud-hosted.md) and [self-managed](/deploy-manage/deploy/self-managed.md) deployments
- As project types on [{{serverless-full}}](/deploy-manage/deploy/elastic-cloud/serverless.md)

Expand Down
19 changes: 17 additions & 2 deletions solutions/observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,40 @@ products:
- id: cloud-serverless
- id: observability
- id: kibana
- id: edot-collector
---

# Observability

{{observability}} accelerates problem resolution with open, flexible, and unified observability powered by advanced machine learning and analytics. Elastic ingests all operational and business telemetry and correlates for faster root cause detection.


## Get started [_get_started]

Read the following quickstart guides to get started with {{observability}}:

* [**Get started**](/solutions/observability/get-started.md): Discover more about our observability features and how to get started.

Ingest observability data using OpenTelemetry:

* [**Quickstart: Monitor hosts with OpenTelemetry**](/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md)
* [**Quickstart: Monitor Kubernetes with OpenTelemetry**](/solutions/observability/get-started/quickstart-unified-kubernetes-observability-with-elastic-distributions-of-opentelemetry-edot.md)
* [**Quickstart: Send data to the Elastic Cloud Managed OTLP Endpoint**](/solutions/observability/get-started/quickstart-elastic-cloud-otel-endpoint.md)

Use the Elastic Agent to ingest data:

* [**Quickstart: Monitor hosts with Elastic Agent**](/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md): Scan your host to detect and collect logs and metrics.
* [**Quickstart: Monitor your Kubernetes cluster with Elastic Agent**](/solutions/observability/get-started/quickstart-monitor-kubernetes-cluster-with-elastic-agent.md): Create the Kubernetes resources that are required to monitor your cluster infrastructure.

Explore your data:

* [**Get started with Logs**](/solutions/observability/logs/get-started-with-system-logs.md): Add your log data to {{observability}} and start exploring your logs.
* [**Get started with traces and APM**](/solutions/observability/apm/get-started.md): Collect Application Performance Monitoring (APM) data and visualize it in real time.
* [**Get started with metrics**](/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md): Add your metrics data to {{observability}} and visualize it in real time.


## How to [_how_to]

After you've collected your data, you can:

* [**Explore log data**](/solutions/observability/logs/discover-logs.md): Use Discover to explore your log data.
* [**Trigger alerts and triage problems**](/solutions/observability/incident-management/create-manage-rules.md): Create rules to detect complex conditions and trigger alerts.
* [**Track and deliver on your SLOs**](/solutions/observability/incident-management/service-level-objectives-slos.md): Measure key metrics important to the business.
Expand Down
39 changes: 17 additions & 22 deletions solutions/observability/apm/collect-application-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,42 +17,37 @@ products:
**For Observability Serverless projects**, the **Admin** role or higher is required to send APM data to Elastic. To learn more, refer to [Assign user roles and privileges](/deploy-manage/users-roles/cloud-organization/user-roles.md#general-assign-user-roles).
::::

::::{note}
Want to get started quickly? See [Get started with traces and APM](/solutions/observability/apm/get-started.md).
::::

## Language-specific options [_language_specific_options]

Use Elastic APM agents or an OpenTelemetry language SDK to instrument a service in the language its written in:

* [**Elastic APM agents**](/solutions/observability/apm/elastic-apm-agents.md): Elastic APM agents are instrumentation libraries written in the same language as your service.
* [**OpenTelemetry**](/solutions/observability/apm/use-opentelemetry-with-apm.md): OpenTelemetry is an open source set of APIs, SDKs, tooling, and integrations that enable the capture and management of telemetry data from your services and applications. Elastic offers [Elastic Distributions of OpenTelemetry (EDOT)](opentelemetry://reference/edot-sdks/index.md), which are customized versions of [OpenTelemetry language SDKs](https://opentelemetry.io/docs/languages/) that are optimized to work with an Elastic backend.
* [**Elastic APM agents**](/solutions/observability/apm/elastic-apm-agents.md): Elastic APM agents are instrumentation libraries written in the same language as your service.


**Not sure which method is right for you?** Compare the available options below.
**Not sure which method is right for you?** Compare the available options.

### Capabilities [_capabilities]

| | Elastic APM agent | Elastic Distributions of OpenTelemetry (EDOT) |
| | Elastic Distributions of OpenTelemetry (EDOT) | Elastic APM agent |
| --- | --- | --- |
| **Support level** | Fully supported | Fully supported for available languages |
| **Data protocol** | Elastic protocol | [OpenTelemetry protocol (OTLP)](https://opentelemetry.io/docs/specs/otel/protocol/) |
| **Central configuration** | Supported<br>*Refer to* [*APM agent central configuration*](/solutions/observability/apm/apm-agent-central-configuration.md) | Not supported |

% Stateful only after this comment?
| **Support level** | Fully supported for available languages | Fully supported |
| **Data protocol** | [OpenTelemetry protocol (OTLP)](https://opentelemetry.io/docs/specs/otel/protocol/) | Elastic protocol |
| **Central configuration** | Currently not supported | Supported<br>*Refer to* [*APM agent central configuration*](/solutions/observability/apm/apm-agent-central-configuration.md) |

### Availability [apm-collect-data-availability]

| Language | Elastic APM agent | Elastic Distributions of OpenTelemetry (EDOT) |
| Language | Elastic Distributions of OpenTelemetry (EDOT) | Elastic APM agent |
| --- | --- | --- |
| **Android** | ![Not available](/solutions/images/observability-cross.svg "") | Elastic OTel Android Agent |
| **Go** | Go agent | ![Not available](/solutions/images/observability-cross.svg "") |
| **iOS** | ![Not available](/solutions/images/observability-cross.svg "") | Elastic APM iOS Agent |
| **Java** | Java agent | EDOT Java |
| **.NET** | .NET agent | EDOT .NET |
| **Node.js** | Node.js agent | EDOT Node.js |
| **PHP** | PHP agent | EDOT PHP |
| **Python** | Python agent | EDOT Python |
| **Ruby** | Ruby agent | ![Not available](/solutions/images/observability-cross.svg "") |
| **Android** | EDOT Android | Not available |
| **Go** | Not available | Go agent |
| **iOS** | EDOT iOS | Not available |
| **Java** | EDOT Java | Java agent |
| **.NET** | EDOT .NET | .NET agent |
| **Node.js** | EDOT Node.js | Node.js agent |
| **PHP** | EDOT PHP | PHP agent |
| **Python** | EDOT Python | Python agent |
| **Ruby** | Not available | Ruby agent |

## Service-specific options [_service_specific_options]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,15 @@ products:

# Upstream OpenTelemetry Collectors and language SDKs [apm-open-telemetry-direct]

:::{include} _snippets/apm-server-vs-mis.md
:::

::::{note}
This is one of several approaches you can use to integrate Elastic with OpenTelemetry. **To compare approaches and choose the best approach for your use case, refer to [OpenTelemetry](/solutions/observability/apm/use-opentelemetry-with-apm.md).**
::::

The {{stack}} natively supports the OpenTelemetry protocol (OTLP). This means trace data and metrics collected from your applications and infrastructure can be sent directly to the {{stack}}.

* Send data to Elastic from an upstream [OpenTelemetry Collector](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md#apm-connect-open-telemetry-collector)
* Send data to Elastic from an upstream [OpenTelemetry language SDK](/solutions/observability/apm/upstream-opentelemetry-collectors-language-sdks.md#apm-instrument-apps-otel)

::::{note}
This is one of several approaches you can use to integrate Elastic with OpenTelemetry. To compare approaches and choose the best approach for your use case, refer to [OpenTelemetry](/solutions/observability/apm/use-opentelemetry-with-apm.md).
::::

## Send data from an upstream OpenTelemetry Collector [apm-connect-open-telemetry-collector]

Connect your OpenTelemetry Collector instances to Elastic {{observability}} or {{obs-serverless}} using the OTLP exporter:
Expand Down Expand Up @@ -266,6 +263,10 @@ For more information on how to configure an AWS ALB to support gRPC, see this AW

For more information on how APM Server services gRPC requests, see [Muxing gRPC and HTTP/1.1](https://github.com/elastic/apm-server/blob/main/dev_docs/otel.md#muxing-grpc-and-http11).


:::{include} _snippets/apm-server-vs-mis.md
:::

## Next steps [apm-open-telemetry-direct-next]

* [Collect metrics](/solutions/observability/apm/collect-metrics.md)
Expand Down
55 changes: 27 additions & 28 deletions solutions/observability/apm/use-opentelemetry-with-apm.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Elastic integrates with OpenTelemetry, allowing you to reuse your existing instr
* [Elastic Distributions of OpenTelemetry language SDKs](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-elastic-distros)
* [Upstream OpenTelemetry API/SDK + Elastic APM agent](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-api-sdk-elastic-agent)
* [Upstream OpenTelemetry Collector and language SDKs](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-upstream)
* [AWS Lambda collector exporter](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-lambda)
* [AWS Lambda Collector exporter](/solutions/observability/apm/use-opentelemetry-with-apm.md#apm-otel-lambda)

## Elastic Distributions of OpenTelemetry language SDKs [apm-otel-elastic-distros]

Expand All @@ -42,36 +42,16 @@ With an Elastic Distribution of OpenTelemetry language SDK you have access to al

Get started with an Elastic Distribution of OpenTelemetry language SDK:

* [**Elastic Distribution of OpenTelemetry Java**](opentelemetry://reference/edot-sdks/java/index.md)
* [**Elastic Distribution of OpenTelemetry .NET**](opentelemetry://reference/edot-sdks/dotnet/index.md)
* [**Elastic Distribution of OpenTelemetry Node.js**](opentelemetry://reference/edot-sdks/nodejs/index.md)
* [**Elastic Distribution of OpenTelemetry Python**](opentelemetry://reference/edot-sdks/python/index.md)
* [**Elastic Distribution of OpenTelemetry PHP**](opentelemetry://reference/edot-sdks/php/index.md)
* [**Elastic Distribution of OpenTelemetry Java**](opentelemetry://reference/edot-sdks/java/index.md)
* [**Elastic Distribution of OpenTelemetry .NET**](opentelemetry://reference/edot-sdks/dotnet/index.md)
* [**Elastic Distribution of OpenTelemetry Node.js**](opentelemetry://reference/edot-sdks/nodejs/index.md)
* [**Elastic Distribution of OpenTelemetry Python**](opentelemetry://reference/edot-sdks/python/index.md)
* [**Elastic Distribution of OpenTelemetry PHP**](opentelemetry://reference/edot-sdks/php/index.md)

::::{note}
For more details about OpenTelemetry distributions in general, visit the [OpenTelemetry documentation](https://opentelemetry.io/docs/concepts/distributions).
::::

## Upstream OpenTelemetry API/SDK + Elastic APM agent [apm-otel-api-sdk-elastic-agent]

Use the OpenTelemetry API/SDKs with [Elastic APM agents](/solutions/observability/apm/get-started-fleet-managed-apm-server.md#_step_3_install_apm_agents) to translate OpenTelemetry API calls to Elastic APM API calls.

:::{image} /solutions/images/observability-apm-otel-api-sdk-elastic-agent.png
:alt: apm otel api sdk elastic agent
:screenshot:
:::

This allows you to reuse your existing OpenTelemetry instrumentation to create Elastic APM transactions and spans — avoiding vendor lock-in and having to redo manual instrumentation.

However, not all features of the OpenTelemetry API are supported when using this approach, and not all Elastic APM agents support this approach.

Find more details about how to use an OpenTelemetry API or SDK with an Elastic APM agent and which OpenTelemetry API features are supported in the APM agent documentation:

* [**APM Java agent →**](apm-agent-java://reference/opentelemetry-bridge.md)
* [**APM .NET agent →**](apm-agent-dotnet://reference/opentelemetry-bridge.md)
* [**APM Node.js agent →**](apm-agent-nodejs://reference/opentelemetry-bridge.md)
* [**APM Python agent →**](apm-agent-python://reference/opentelemetry-api-bridge.md)

## Upstream OpenTelemetry Collector and language SDKs [apm-otel-upstream]

The {{stack}} natively supports the OpenTelemetry protocol (OTLP). This means trace data and metrics collected from your applications and infrastructure by an OpenTelemetry Collector or OpenTelemetry language SDK can be sent to the {{stack}}.
Expand All @@ -85,7 +65,6 @@ You can set up an [OpenTelemetry Collector](https://opentelemetry.io/docs/collec

::::{note}
It’s also possible to send data directly to either {{apm-server-or-mis}} from an upstream OpenTelemetry SDK. You might do this during development or if you’re monitoring a small-scale application. Read more about when to use a collector in the [OpenTelemetry documentation](https://opentelemetry.io/docs/collector/#when-to-use-a-collector).

::::

This approach works well when you need to instrument a technology that Elastic doesn’t provide a solution for. For example, if you want to instrument C or C++ you could use the [OpenTelemetry C++ client](https://github.com/open-telemetry/opentelemetry-cpp).
Expand All @@ -106,4 +85,24 @@ AWS Lambda functions can be instrumented with OpenTelemetry and monitored with E

To get started, follow the official AWS Distro for OpenTelemetry Lambda documentation, and configure the OpenTelemetry Collector to output traces and metrics to your Elastic cluster:

[**Get started with the AWS Distro for OpenTelemetry Lambda**](https://aws-otel.github.io/docs/getting-started/lambda)
[**Get started with the AWS Distro for OpenTelemetry Lambda**](https://aws-otel.github.io/docs/getting-started/lambda)

## Upstream OpenTelemetry with the Elastic APM agent [apm-otel-api-sdk-elastic-agent]

You can use the OpenTelemetry API/SDKs with [Elastic APM agents](/solutions/observability/apm/get-started-fleet-managed-apm-server.md#_step_3_install_apm_agents) to translate OpenTelemetry API calls to Elastic APM API calls.

:::{image} /solutions/images/observability-apm-otel-api-sdk-elastic-agent.png
:alt: apm otel api sdk elastic agent
:screenshot:
:::

This allows you to reuse your existing OpenTelemetry instrumentation to create Elastic APM transactions and spans — avoiding vendor lock-in and having to redo manual instrumentation.

However, not all features of the OpenTelemetry API are supported when using this approach, and not all Elastic APM agents support this approach.

Find more details about how to use an OpenTelemetry API or SDK with an Elastic APM agent and which OpenTelemetry API features are supported in the APM agent documentation:

* [**APM Java agent**](apm-agent-java://reference/opentelemetry-bridge.md)
* [**APM .NET agent**](apm-agent-dotnet://reference/opentelemetry-bridge.md)
* [**APM Node.js agent**](apm-agent-nodejs://reference/opentelemetry-bridge.md)
* [**APM Python agent**](apm-agent-python://reference/opentelemetry-api-bridge.md)
13 changes: 6 additions & 7 deletions solutions/observability/get-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@ Our quickstarts dramatically reduce your time-to-value by offering a fast path t

Follow the steps in these guides to get started quickly:

* [Quickstart: Monitor hosts with {{agent}}](/solutions/observability/get-started/quickstart-monitor-hosts-with-elastic-agent.md)
* [Quickstart: Monitor your Kubernetes cluster with {{agent}}](/solutions/observability/get-started/quickstart-monitor-kubernetes-cluster-with-elastic-agent.md)
* [Quickstart: Monitor hosts with OpenTelemetry](/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md)
* [Quickstart: Unified Kubernetes Observability with Elastic Distributions of OpenTelemetry (EDOT)](/solutions/observability/get-started/quickstart-unified-kubernetes-observability-with-elastic-distributions-of-opentelemetry-edot.md)
* [Quickstart: Collect data with AWS Firehose](/solutions/observability/get-started/quickstart-collect-data-with-aws-firehose.md)

* [**Quickstart: Monitor hosts with OpenTelemetry**](/solutions/observability/get-started/quickstart-monitor-hosts-with-opentelemetry.md)
* [**Quickstart: Monitor Kubernetes with OpenTelemetry**](/solutions/observability/get-started/quickstart-unified-kubernetes-observability-with-elastic-distributions-of-opentelemetry-edot.md)
* [**Quickstart: Send data to the Elastic Cloud Managed OTLP Endpoint**](/solutions/observability/get-started/quickstart-elastic-cloud-otel-endpoint.md)
* [**Get started with Logs**](/solutions/observability/logs/get-started-with-system-logs.md): Add your log data to {{observability}} and start exploring your logs.
* [**Get started with traces and APM**](/solutions/observability/apm/get-started.md): Collect Application Performance Monitoring (APM) data and visualize it in real time.
* [**Get started with metrics**](/solutions/observability/infra-and-hosts/get-started-with-system-metrics.md): Add your metrics data to {{observability}} and visualize it in real time.

### Get started with other features [_get_started_with_other_features]

Expand All @@ -71,7 +71,6 @@ Want to use {{fleet}} or some other feature not covered in the quickstarts? Foll
* [Get started with synthetic monitoring](/solutions/observability/synthetics/index.md)
* [Get started with Universal Profiling](/solutions/observability/infra-and-hosts/get-started-with-universal-profiling.md)


## Additional guides [_additional_guides]

Ready to dig into more features of Elastic Observability? See these guides:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ In **Discover**, you can quickly search and filter your log data, get informatio

## Application performance monitoring (APM) [observability-serverless-observability-overview-application-performance-monitoring-apm]

Instrument your code and collect performance data and errors at runtime by installing APM agents like Java, Go, .NET, and many more. Then use Observability to monitor your software services and applications in real time:
Instrument your code and collect performance data and errors at runtime by installing APM agents for Java, Go, .NET, and many more. Then use Observability to monitor your software services and applications in real time:

* Visualize detailed performance information on your services.
* Identify and analyze errors.
Expand Down
Loading
Loading