Create monitors with Heartbeatedit

This approach can only be used to create lightweight monitors. To compare approaches that support browser monitors, refer to Get started.

Heartbeat is a lightweight daemon that you install on a remote server to periodically check the status of your services and determine if they are available. It gathers performance data, formats it, and sends the data to the Elastic Stack.

Diagram showing which pieces of software are used to configure monitors

Pull the Docker imageedit

Elastic provides Docker images that you can use to run monitors. Start by pulling the Heartbeat Docker image.

Version 8.7.0 has not yet been released.


Next, create a heartbeat.yml configuration file.

The example below shows how to configure an http monitor, one of three types of lightweight monitors.

- type: http
  id: service-status 
  name: Service Status my-apm-service-name
  hosts: ["http://localhost:80/service/status"]
  check.response.status: [200]
  schedule: '@every 5s'

Each monitor gets its own ID in the Uptime app and its own schedule entry. This allows tests to be run in parallel and analyzed separately.

Read more about configuration options in Configure Heartbeat monitors.

Do not use Heartbeat to set up a new browser monitor. Instead, see Use Project Monitors.

If you previously used Heartbeat to set up browser monitor, you can find resources in the 8.4 Heartbeat documentation.

Connect to the Elastic Stackedit

After configuring the monitor, run it in Docker and connect the monitor to the Elastic Stack.

Version 8.7.0 has not yet been released.

View in Kibanaedit

Heartbeat is now sending synthetic monitoring data to the Elastic Stack. Navigate to the Uptime app in Kibana, where you can see screenshots of each run, set up alerts in case of test failures, and more.

If a test does fail (shown as down in the Uptime app), you’ll be able to view the step script that failed, any errors, and a stack trace. See Visualize journeys for more information.