﻿---
title: Quickstart: Monitor your application performance
description: Learn how to monitor your application performance using the {{edot}} SDKs and Elastic APM.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/get-started/quickstart-monitor-your-application-performance
products:
  - Elastic Cloud Serverless
  - Elastic Observability
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available
---

# Quickstart: Monitor your application performance
In this quickstart guide, you’ll learn how to instrument your application using the Elastic OpenTelemetry SDKs. You’ll also learn how to use Observability features to gain deeper insight into your application telemetry data after collecting it.

## Prerequisites

<applies-switch>
  <applies-item title="serverless:" applies-to="Elastic Cloud Serverless: Generally available">
    - An Observability project. To learn more, refer to [Create an Observability project](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/get-started).
    - A user with the **Admin** role or higher—required to onboard system logs and metrics. To learn more, refer to [Assign user roles and privileges](/elastic/docs-content/pull/7434/deploy-manage/users-roles/cloud-organization/user-roles#general-assign-user-roles).
    - An Elastic OpenTelemetry Elastic Agent or the contrib OpenTelemetry Collector running on the host.
    - An APM agent key for authenticating your Elastic OTel SDKs. To create one, refer to [Create APM agent key for Elastic OTel SDKs](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/apm/opentelemetry/create-apm-agent-key-for-edot-sdks).
  </applies-item>

  <applies-item title="stack:" applies-to="Elastic Stack: Generally available">
    - An Observability project. To learn more, refer to [Create an Observability project](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/get-started).
    - A user with the **Admin** role or higher—required to onboard system logs and metrics. To learn more, refer to [Assign user roles and privileges](/elastic/docs-content/pull/7434/deploy-manage/users-roles/cloud-organization/user-roles#general-assign-user-roles).
    - An Elastic OpenTelemetry Elastic Agent or the contrib OpenTelemetry Collector running on the host.
    - An APM agent key for authenticating your Elastic OTel SDKs. To create one, refer to [Create APM agent key for Elastic OTel SDKs](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/apm/opentelemetry/create-apm-agent-key-for-edot-sdks).
  </applies-item>
</applies-switch>


## Install the Elastic Agent

The Elastic Agent in [Agent mode](https://docs-v3-preview.elastic.dev/elastic/elastic-agent/tree/main/reference/edot-collector/modes#edot-collector-as-agent) collects infrastructure and application telemetry data sent by the Elastic OTel SDKs and forwards it to Elastic.
Refer to the [Elastic OpenTelemetry Quickstarts](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/get-started/opentelemetry/quickstart) to install the Elastic Agent for your deployment mode.

## Collect application telemetry data

Follow these steps to collect application telemetry data using the Elastic OTel SDKs:
<applies-switch>
  <applies-item title="stack:" applies-to="Elastic Stack: Generally available">
    1. In Kibana, go to the **Observability** UI and click **Add Data**.
    2. Under **What do you want to monitor?** select **Application**, and then select **OpenTelemetry**.
    3. Follow the instructions to install the Elastic OTel SDK for your application:
       - [Android](https://docs-v3-preview.elastic.dev/elastic/apm-agent-android/tree/main/reference/edot-android)
    - [.NET](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-dotnet/tree/main/reference/edot-dotnet/setup)
    - [iOS](https://docs-v3-preview.elastic.dev/elastic/apm-agent-ios/tree/main/reference/edot-ios)
    - [Java](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-java/tree/main/reference/edot-java/setup)
    - [Node.js](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-node/tree/main/reference/edot-node/setup)
    - [PHP](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-php/tree/main/reference/edot-php/setup)
    - [Python](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-python/tree/main/reference/edot-python/setup)
    4. Configure your Elastic OTel SDK to send data to the APM endpoint. The **OpenTelemetry** tab provides the required configuration values.

    <note>
      If your application runs on Kubernetes, the OpenTelemetry operator automatically instruments your application, provided you've added language-specific annotations. Refer to [Auto-instrument applications](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/get-started/opentelemetry/quickstart/self-managed/k8s).
    </note>
  </applies-item>

  <applies-item title="serverless:" applies-to="Elastic Cloud Serverless: Generally available">
    1. [Create a new Elastic Observability Serverless project](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/get-started), or open an existing one.
    2. Under **What do you want to monitor?** select **Application**, and then select **OpenTelemetry**.
    3. Follow the instructions to install the Elastic OTel SDK for your application:
       - [Android](https://docs-v3-preview.elastic.dev/elastic/apm-agent-android/tree/main/reference/edot-android)
    - [.NET](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-dotnet/tree/main/reference/edot-dotnet/setup)
    - [iOS](https://docs-v3-preview.elastic.dev/elastic/apm-agent-ios/tree/main/reference/edot-ios)
    - [Java](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-java/tree/main/reference/edot-java/setup)
    - [Node.js](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-node/tree/main/reference/edot-node/setup)
    - [PHP](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-php/tree/main/reference/edot-php/setup)
    - [Python](https://docs-v3-preview.elastic.dev/elastic/elastic-otel-python/tree/main/reference/edot-python/setup)
    4. Configure your Elastic OTel SDK to send data to the [Managed OTLP endpoint](https://docs-v3-preview.elastic.dev/elastic/opentelemetry/tree/main/reference/managed-inputs/managed-otlp-endpoint). The **OpenTelemetry** tab provides the required configuration values.
    5. (Optional) Activate Central Configuration to configure your Elastic OTel SDKs from within Kibana. Refer to [Elastic OTel SDKs Central Configuration](https://docs-v3-preview.elastic.dev/elastic/opentelemetry/tree/main/reference/central-configuration).

    <note>
      If your application runs on Kubernetes, the OpenTelemetry operator automatically instruments your application, provided you've added language-specific annotations. Refer to [Auto-instrument applications](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/get-started/opentelemetry/quickstart/serverless/k8s).
    </note>
  </applies-item>
</applies-switch>


## Gain deeper insight into your application data

After using the **Applications** page and **Discover** to confirm you’ve ingested all the application traces, metrics, and logs you want to monitor, use Elastic Observability to gain deeper insight into your application data with the following capabilities and features:
- In the [Applications UI](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/apm/view-analyze-data), analyze and compare data collected from your application. You can also:
  - [Drill down into data](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/apm/drill-down-into-data) to view details about specific transactions and spans.
- [Find transaction latency and failure correlations](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/apm/find-transaction-latency-failure-correlations) to identify root causes.
- [Create alerts](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/apm/create-apm-rules-alerts) that notify you when an anomaly is detected or a metric exceeds a given value.
- In [Service Map](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/apm/service-map), explore how your services are connected and check health indicators. You can also:
- Use [machine learning](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability/apm/machine-learning) to quickly pinpoint anomalous transactions and see the health of any contrib and downstream services.

Refer to the [Elastic Observability](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7434/solutions/observability) for a description of other useful features.