Sysdig Documentation

Mesos/Marathon

Mesos is built using the same principles as the Linux kernel, only at a different level of abstraction. The Mesos kernel runs on every machine and provides applications (e.g., Hadoop, Spark, Kafka, Elasticsearch) with APIs for resource management and scheduling across entire datacenter and cloud environments. The Mesos metrics are divided into master and agent. Marathon is a production-grade container orchestration platform for Apache Mesos.

If Mesos and Marathon are installed in your environment, the Sysdig agent will automatically connect and start collecting metrics.You may need to edit the default entries to add a custom configuration if the default does not work. See the Default Configuration section, below.

This page describes the default configuration settings, how to edit the configuration to collect additional information, the metrics available for integration, and a sample result in the Sysdig Monitor UI.

Mesos/Marathon Setup

Both Mesos and Marathon will automatically expose all metrics. You do not need to add anything to the Mesos/Marathon instance.

Sysdig Agent Configuration

Review how to Edit dragent.yaml to Integrate or Modify Application Checks.

The Sysdig agent has different entries for mesos-master, mesos-slave and marathon in its configuration file. Default entries are present in Sysdig's dragent.default.yaml file and collect all metrics for Mesos. For Marathon, it collects basic metrics. You may need add configuration to collect additional metrics.

Default Configuration

In the URLs for mesos-master and mesos-slave, {mesos_url} will be replaced with either the hostname of the auto-detected mesos master/slave (if auto-detection is enabled), or with an explicit value from mesos_state_uri otherwise.

In the URLs for marathon, {marathon_url} will be replaced with the hostname of the first configured/discovered Marathon framework.

For all Mesos and Marathon apps, {auth_token} will either be blank or an auto-generated token obtained via the /acs/api/v1/auth/login endpoint.

Mesos Master

app_checks: - name: mesos-master check_module: mesos_master interval: 30 pattern: comm: mesos-master conf: url: "{mesos_url}:{port}" auth_token: "{auth_token}" mesos_creds: "{mesos_creds}"

Mesos Agent

app_checks: - name: mesos-slave check_module: mesos_slave pattern: comm: mesos-slave interval: 30 conf: url: "{mesos_url}:{port}" auth_token: "{auth_token}" mesos_creds: "{mesos_creds}" # Name of individual tasks to monitor, if needed # tasks: # - mongo # - cassandra

Marathon

app_checks: - name: marathon check_module: marathon interval: 30 pattern: arg: mesosphere.marathon.Main conf: url: "{marathon_url}" auth_token: "{auth_token}" marathon_creds: "{marathon_creds}"

Warning

Remember! Never edit dragent.default.yaml directly; always edit only dragent.yaml.

Example 1

Marathon

Enable the flag full_metrics to collect all metrics for marathon.

The following additional metrics are collected with this configuration:

  • marathon.cpus

  • marathon.disk

  • marathon.instances

  • marathon.mem

app_checks: - name: marathon check_module: marathon interval: 30 pattern: arg: mesosphere.marathon.Main conf: url: "{marathon_url}" auth_token: "{auth_token}" marathon_creds: "{marathon_creds}" full_metrics: true

Metrics Available

See Mesos Master Metrics.

See Mesos Agent Metrics.

See Marathon Metrics.

Result in the Monitor UI

Mesos Master

373982065.png
373982058.png
373982051.png

Mesos Agent

373982044.png
373982037.png
373982030.png

Marathon

373982023.png
373982016.png