APM

Open Source Application Performance Monitoring

Already housing logs and system metrics in Elasticsearch? Expand to application metrics with Elastic APM. Four lines of code lets you see a bigger picture to quickly fix issues and feel good about the code you push.

Are you an Opbeat customer and in need of help? Contact Us

New Elastic APM is GA and introduces a new developer-focused UI to drill into performance issues and resolve them, all with minimal effort. Read More

The Dashboards You Love, Now APM-Flavored

Elastic APM instruments your applications to ship performance metrics to Elasticsearch for visualization in Kibana with pre-configured dashboards.

And since data is stored as raw documents in Elasticsearch, your application metrics can coexist with your infrastructure logs, server metrics, and security events, making it easy to explore all of your data in one place.

And It Gets Better with a Curated UI

A dedicated APM UI lets you identify bottlenecks and zero in on problematic changes at the code level. As a result, you get better, more efficient code that leads to a speedier develop-test-deploy loop, faster applications, and better customer experiences.

It's Developer-Friendly,
Language-Friendly

Elastic APM ships with support for Node.js and Python — and there are many more programming languages, including Ruby and JavaScript, on the way. Plus, it's extensible. If you don't see what you need, you can build it or leverage the open source community.

Just Four Lines of Code Will Get You Started

Grab a fresh installation of the Elastic Stack and a bit of code to instrument your app with agents and deploy a server that sends your data to Elasticsearch.
In Elasticsearch install directory:
Ctrl + C to Copy
In Kibana install directory:
Ctrl + C to Copy
In APM Server install directory:
Ctrl + C to Copy

Optional: Use apm-server setup to import APM dashboards. If you're using an X-Pack secured version of Elastic Stack, you need to specify credentials in the apm-server.yml config file.

Install the APM Agent for Node.js as a dependency to your application.

Configure the agent to run inside your application process.

// Add this to the VERY top of the first file loaded in your app
var apm = require('elastic-apm-node').start({
  // Required service name (allowed characters:a-z, A-Z, 0-9, -, _, and space)
  serviceName: '',
  // Use if APM Server requires a token
  secretToken: '',
  // Set custom APM Server URL (default: http://localhost:8200)
  serverUrl: ''
})
				
Open browser @
Launch the APM app OR navigate to the APM-* dashboards
What just happened?

The APM agent installed in your application collects and streams application performance metrics to your APM server, where they are processed and stored in Elasticsearch. In a matter of minutes you can start viewing your performance data either in the dedicated APM UI or prebuilt dashboards.

Didn't work for you?

Please refer to the APM documentation.

Install the APM agent for Python as a dependency.

Configure the agent.

# Add the agent to the installed apps
INSTALLED_APPS = (
   'elasticapm.contrib.django',
   #...
)
ELASTIC_APM = {
  # Set required service name. Allowed characters:
  # a-z, A-Z, 0-9, -, _, and space
  'SERVICE_NAME': '',
  # Use if APM Server requires a token
  'SECRET_TOKEN': '',
  # Set custom APM Server URL (default: http://localhost:8200)
  'SERVER_URL': '',
}
# To send performance metrics, add our tracing middleware:
MIDDLEWARE = (
   'elasticapm.contrib.django.middleware.TracingMiddleware',
   #...
)
				
Open browser @
Launch the APM app OR navigate to the APM-* dashboards
What just happened?

The APM agent installed in your application collects and streams application performance metrics to your APM server, where they are processed and stored in Elasticsearch. In a matter of minutes you can start viewing your performance data either in the dedicated APM UI or prebuilt dashboards.

Didn't work for you?

Please refer to the APM documentation.

In Elasticsearch install directory:
Ctrl + C to Copy
In Kibana install directory:
Ctrl + C to Copy
In APM Server install directory:
Ctrl + C to Copy

Optional: Use apm-server setup to import APM dashboards. If you're using an X-Pack secured version of Elastic Stack, you need to specify credentials in the apm-server.yml config file.

Install the APM agent for Python as a dependency.

Configure the agent.

# initialize using environment variables 
from elasticapm.contrib.flask import ElasticAPM
app = Flask(__name__)
apm = ElasticAPM(app)
# or configure to use ELASTIC_APM in your application's settings
from elasticapm.contrib.flask import ElasticAPM
app.config['ELASTIC_APM'] = {
  # Set required service name. Allowed characters:
  # a-z, A-Z, 0-9, -, _, and space
  'SERVICE_NAME': '',
  # Use if APM Server requires a token
  'SECRET_TOKEN': '',
  # Set custom APM Server URL (default: http://localhost:8200)
  'SERVER_URL': '',
}
apm = ElasticAPM(app)
				
Open browser @
Launch the APM app OR navigate to the APM-* dashboards
What just happened?

The APM agent installed in your application collects and streams application performance metrics to your APM server, where they are processed and stored in Elasticsearch. In a matter of minutes you can start viewing your performance data either in the dedicated APM UI or prebuilt dashboards.

Didn't work for you?

Please refer to the APM documentation.

In Elasticsearch install directory:
Ctrl + C to Copy
In Kibana install directory:
Ctrl + C to Copy
In APM Server install directory:
Ctrl + C to Copy

Optional: Use apm-server setup to import APM dashboards. If you're using an X-Pack secured version of Elastic Stack, you need to specify credentials in the apm-server.yml config file.

Install the APM agent by adding the agent to your Gemfile

Configure the agent by creating the config file config/elastic_apm.yml

# Set service name - allowed characters: a-z, A-Z, 0-9, -, _ and space
# Defaults to the name of your Rails app
service_name: ''
# Use if APM Server requires a token
secret_token: ''
# Set custom APM Server URL (default: http://localhost:8200)
server_url: ''
				

Note: The Ruby agent is currently in Beta and not meant for production use.

Open browser @
Launch the APM app OR navigate to the APM-* dashboards
What just happened?

The APM agent installed in your application collects and streams application performance metrics to your APM server, where they are processed and stored in Elasticsearch. In a matter of minutes you can start viewing your performance data either in the dedicated APM UI or prebuilt dashboards.

Didn't work for you?

Please refer to the APM documentation.

In Elasticsearch install directory:
Ctrl + C to Copy
In Kibana install directory:
Ctrl + C to Copy
In APM Server install directory:
Ctrl + C to Copy

Optional: Use apm-server setup to import APM dashboards. If you're using an X-Pack secured version of Elastic Stack, you need to specify credentials in the apm-server.yml config file.

Install the APM agent by adding the agent to your Gemfile

Configure the agent by creating the config file config/elastic_apm.yml

# Set service name - allowed characters: a-z, A-Z, 0-9, -, _ and space
# Defaults to the name of your Rails app
service_name: ''
# Use if APM Server requires a token
secret_token: ''
# Set custom APM Server URL (default: http://localhost:8200)
server_url: ''
Initialize  the agent by including the middleware in your app and start the agent. Rack or compatible frameworks (like Sinatra):
# config.ru
  require 'sinatra/base'
  class MySinatraApp < Sinatra::Base
    use ElasticAPM::Middleware
    # ...
  end
  ElasticAPM.start(
    app: MySinatraApp, # required
    config_file: '' # optional, defaults to config/elastic_apm.yml
  )
  run MySinatraApp
  at_exit { ElasticAPM.stop }
				

Note: The Ruby agent is currently in Beta and not meant for production use.

Open browser @
Launch the APM app OR navigate to the APM-* dashboards
What just happened?

The APM agent installed in your application collects and streams application performance metrics to your APM server, where they are processed and stored in Elasticsearch. In a matter of minutes you can start viewing your performance data either in the dedicated APM UI or prebuilt dashboards.

Didn't work for you?

Please refer to the APM documentation.

APM is Just One Way to Slice Your Data

Have security events? Website or server logs? Documents with tons of text? Centralize it all into the Elastic Stack to expand your analyses, lower operational costs, and make your use case even richer.

Logging

Fast and scalable logging that won't quit.

Learn More

Metrics

Do the numbers: CPU, memory, and more.

Learn More

Site Search

Easily create a great search experience for your site.

Learn More

Security Analytics

Interactive investigation at speed and scale.

Learn More

App Search

Search across documents, geo data, and more.

Learn More