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.
Get the Elastic APM experience. Try It Out
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
Note the password for elastic user as <es_pw>
Note the password for kibana user as <kibana_pw>
Modify config/kibana.yml to set credentials for Elasticsearch
elasticsearch.username: "kibana" elasticsearch.password: "<kibana_pw>"
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.
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 app 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: '' })
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 these performance metrics either in prebuilt dashboards or in the dedicated APM UI.
Didn't work for you?
Please refer to the APM documentation.
Note the password for elastic user as <es_pw>
Note the password for kibana user as <kibana_pw>
Modify config/kibana.yml to set credentials for Elasticsearch
elasticsearch.username: "kibana" elasticsearch.password: "<kibana_pw>"
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.
Configure the agent.
# Add the agent to the installed apps INSTALLED_APPS = ( 'elasticapm.contrib.django', #... ) ELASTIC_APM = { 'SERVICE_NAME': '<SERVICE-NAME>', 'SECRET_TOKEN': '<SECRET-TOKEN>', } # To send performance metrics, add our tracing middleware: MIDDLEWARE = ( 'elasticapm.contrib.django.middleware.TracingMiddleware', #... )
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 these performance metrics either in prebuilt dashboards or in the dedicated APM UI.
Didn't work for you?
Please refer to the APM documentation.
Note the password for elastic user as <es_pw>
Note the password for kibana user as <kibana_pw>
Modify config/kibana.yml to set credentials for Elasticsearch
elasticsearch.username: "kibana" elasticsearch.password: "<kibana_pw>"
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.
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'] = { 'SERVICE_NAME': '', 'SECRET_TOKEN': '', } apm = ElasticAPM(app)
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 these performance metrics either in prebuilt dashboards or in the dedicated APM UI.
Didn't work for you?
Please refer to the APM documentation.
Note the password for elastic user as <es_pw>
Note the password for kibana user as <kibana_pw>
Modify config/kibana.yml to set credentials for Elasticsearch
elasticsearch.username: "kibana" elasticsearch.password: "<kibana_pw>"
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.
Configure the agent by creating the config file config/elastic_apm.yml
# config/elastic_apm.yml server_url: 'http://localhost:8200'
Note: The Ruby agent is currently in Beta and not meant for production use.
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 these performance metrics either in prebuilt dashboards or in the dedicated APM UI.
Didn't work for you?
Please refer to the APM documentation.
Note the password for elastic user as <es_pw>
Note the password for kibana user as <kibana_pw>
Modify config/kibana.yml to set credentials for Elasticsearch
elasticsearch.username: "kibana" elasticsearch.password: "<kibana_pw>"
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.
Configure the agent by include 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 # Takes optional ElasticAPM::Config values ElasticAPM.start( app: MySinatraApp, # required server_url: 'http://localhost:8200' ) run MySinatraApp at_exit { ElasticAPM.stop }
Note: The Ruby agent is currently in Beta and not meant for production use.
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 these performance metrics either in prebuilt dashboards or in the dedicated APM UI.
Didn’t work for you?
Please refer to the APM documentation.