Stackstate-Marathon Integration

Overview

Connects Marathon to Stackstate in order to:

  • Visualize your Marathon framework’s performance
  • Correlate the performance of Marathon with the rest of your Mesos applications

Setup

Configuration

NOTICE : If you include the acs_url parameter in the marathon.yaml config, the user and password will be used to generate an ACS token, not as basic auth for the marathon api.

  1. Configure the Agent to connect to Marathon. Edit conf.d/marathon.yaml:

    init_config:
    default_timeout: 5
    instances:
        # url: the API endpoint of your Marathon master
        - url: https://server:port
        # user: the user for marathon API or ACS token authentication
        - user: username
        # password: the password for marathon API or ACS token authentication
        - password: password
        # acs_url: the base ACS endpoint url if an ACS token is required to access the marathon API
        - acs_url: https://server:port
    

  2. Restart the Agent

Validation

Execute the info command and verify that the integration check has passed. The output of the command should contain a section similar to the following:

Checks
======

[...]

marathon
--------
    + instance #0 [OK]
    + Collected 8 metrics & 0 events

Data Collected

Metrics

marathon.apps
(gauge)
Number of applications
shown as
marathon.deployments
(gauge)
Number of running or pending deployments
shown as
marathon.queue.size
(gauge)
Number of apps waiting to be deployed
shown as
marathon.backoffFactor
(gauge)
Backoff time multiplication factor for each consecutive failed task launch; tagged by app_id and version
shown as
marathon.backoffSeconds
(gauge)
Task backoff period; tagged by app_id and version
shown as second
marathon.cpus
(gauge)
Configured CPUs for each instance of a given application
shown as
marathon.disk
(gauge)
Configured CPU for each instance of a given application
shown as mebibyte
marathon.instances
(gauge)
Number of instances of a given application; tagged by app_id and version
shown as
marathon.mem
(gauge)
Configured memory for each instance of a given application; tagged by app_id and version
shown as mebibyte
marathon.taskRateLimit
(gauge)
The task rate limit for a given application; tagged by app_id and version
shown as
marathon.tasksRunning
(gauge)
Number of tasks running for a given application; tagged by app_id and version
shown as task
marathon.tasksStaged
(gauge)
Number of tasks staged for a given application; tagged by app_id and version
shown as task
marathon.tasksHealthy
(gauge)
Number of healthy tasks for a given application; tagged by app_id and version
shown as task
marathon.tasksUnhealthy
(gauge)
Number of unhealthy tasks for a given application; tagged by app_id and version
shown as task
marathon.queue.size
(gauge)
Number of app offer queues
shown as task
marathon.queue.count
(gauge)
Number of instances left to launch
shown as task
marathon.queue.delay
(gauge)
Wait before the next launch attempt
shown as second
marathon.queue.offers.processed
(gauge)
The number of processed offers for this launch attempt
shown as task
marathon.queue.offers.unused
(gauge)
The number of unused offers for this launch attempt
shown as task
marathon.queue.offers.reject.last
(gauge)
Summary of unused offers for all last offers
shown as task
marathon.queue.offers.reject.launch
(gauge)
Summary of unused offers for the launch attempt
shown as task