Collecting Application Metrics with Prometheus

45 minutes
  • 2 Learning Objectives

About this Hands-on Lab

Prometheus exporters allow you to collect metric data from a variety of sources. You can monitor not only your servers but also the applications running on your servers. In this lab, you will have the opportunity to explore application monitoring in Prometheus by setting up monitoring for an application process and pulling application metric data into a Prometheus server.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Install and Configure the Apache Exporter
  1. Log in to the Apache server.

  2. Create a user for the Apache exporter:

    sudo useradd -M -r -s /bin/false apache_exporter
  3. Download and install the Apache exporter binary:

    wget https://github.com/Lusitaniae/apache_exporter/releases/download/v0.7.0/apache_exporter-0.7.0.linux-amd64.tar.gz
    tar xvfz apache_exporter-0.7.0.linux-amd64.tar.gz
    sudo cp apache_exporter-0.7.0.linux-amd64/apache_exporter /usr/local/bin/
    sudo chown apache_exporter:apache_exporter /usr/local/bin/apache_exporter
  4. Create a systemd unit file for Apache exporter:

    sudo vi /etc/systemd/system/apache_exporter.service
    [Unit]
    Description=Prometheus Apache Exporter
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    User=apache_exporter
    Group=apache_exporter
    Type=simple
    ExecStart=/usr/local/bin/apache_exporter
    
    [Install]
    WantedBy=multi-user.target
  5. Start and enable the apache_exporter service:

    sudo systemctl enable apache_exporter
    sudo systemctl start apache_exporter
  6. Verify the service is running and that it is serving metrics:

    sudo systemctl status apache_exporter
    curl localhost:9117/metrics
Configure Prometheus to Scrape Metrics from the Apache Exporter
  1. Log in to the Prometheus server.

  2. Edit the Prometheus config:

    sudo vi /etc/prometheus/prometheus.yml
  3. Under the scrape_configs section, add a scrape configuration for the Apache exporter:

    - job_name: 'Apache Server'
      static_configs:
      - targets: ['limedrop-apache:9117']
  4. Restart Prometheus to load the new configuration:

    sudo systemctl restart prometheus
  5. Use the expression browser to verify you can see Apache metrics in Prometheus. You can access expression browser in a web browser at http://<PROMETHEUS_SERVER_PUBLIC_IP>:9090.

  6. Run a query to view some Apache metric data:

    apache_workers

Additional Resources

Your company, LimeDrop, is using Prometheus for monitoring. They have an Apache server that is serving some static web content, and they would like to gather some metrics about the Apache application running on the server.

You can collect Apache metrics using the Apache exporter. Your task is to install and run Apache exporter on the Apache server, and then configure Prometheus to scrape Apache metrics.

Some additional info:

  • You can find documentation on the Apache exporter on the Apache Exporter GitHub page.
  • The Apache server is reachable from the Prometheus server at the hostname limedrop-apache.
  • If you are interested in checking out the LimeDrop static site, you can find it at http://<APACHE_SERVER_PUBLIC_IP>:80.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?