marathon

package module
v1.4.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2020 License: MIT Imports: 10 Imported by: 0

README

marathon

Go Quality Report GoDoc

Library to manage Marathon servers via API Calls

Getting started

  • API documentation is available via godoc.
  • Test code contains some small examples of the use of this library.

Installation

To install Marathon package, you need to install Go and set your Go workspace first.

1 - The first need Go installed (version 1.13+ is required). Then you can use the below Go command to install Marathon

$ go get -u github.com/dotWicho/marathon

And then Import it in your code:

package main

import "github.com/dotWicho/marathon"

Or

2 - Use as module in you project (go.mod file):

module myclient

go 1.13

require (
	github.com/dotWicho/marathon v1.4.4
)

Contributing

Documentation

Index

Constants

View Source
const (

	// DockerImageRegEx is a RegEx used for docker images
	DockerImageRegEx = `^(([a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+)(?::(\d+))?)((?:([a-zA-Z0-9-\/]+)?))\/([a-zA-Z0-9-_]+):(.*)$`
)

Variables

Logger default

Functions

This section is empty.

Types

type Action

type Action struct {
	Action string `json:"action"`
	App    string `json:"app"`
}

Action representation

type App

type App struct {
	App AppDefinition `json:"app"`
}

App wraps an AppDefinition element returned by the Marathon API

type AppDefinition

type AppDefinition struct {
	ID                    string              `json:"id"`
	AcceptedResourceRoles []string            `json:"acceptedResourceRoles,omitempty"`
	BackoffFactor         float64             `json:"backoffFactor,omitempty"`
	BackoffSeconds        int                 `json:"backoffSeconds,omitempty"`
	Container             Container           `json:"container"`
	Constraints           []TaskConstraints   `json:"constraints,omitempty"`
	Cpus                  float64             `json:"cpus"`
	Disk                  float64             `json:"disk,omitempty"`
	Env                   map[string]string   `json:"env,omitempty"`
	Executor              string              `json:"executor,omitempty"`
	Fetch                 []Fetch             `json:"fetch,omitempty"`
	HealthChecks          []Healthcheck       `json:"healthChecks,omitempty"`
	Instances             int                 `json:"instances"`
	Labels                map[string]string   `json:"labels,omitempty"`
	MaxLaunchDelaySeconds int                 `json:"maxLaunchDelaySeconds,omitempty"`
	Mem                   float64             `json:"mem"`
	Gpus                  int                 `json:"gpus,omitempty"`
	Networks              []Network           `json:"networks,omitempty"`
	RequirePorts          bool                `json:"requirePorts,omitempty"`
	UpgradeStrategy       UpgradeStrategy     `json:"upgradeStrategy,omitempty"`
	KillSelection         string              `json:"killSelection,omitempty"`
	UnreachableStrategy   UnreachableStrategy `json:"unreachableStrategy,omitempty"`
	Role                  string              `json:"role,omitempty"`
}

AppDefinition encapsulates the data definitions of a Marathon App

type AppQueue

type AppQueue struct {
	ID                    string          `json:"id"`
	Instances             int             `json:"instances"`
	Cpus                  int             `json:"cpus"`
	Mem                   int             `json:"mem"`
	Disk                  int             `json:"disk"`
	Constraints           [][]string      `json:"constraints"`
	Ports                 []int           `json:"ports"`
	RequirePorts          bool            `json:"requirePorts"`
	BackoffSeconds        int             `json:"backoffSeconds"`
	BackoffFactor         float64         `json:"backoffFactor"`
	MaxLaunchDelaySeconds int             `json:"maxLaunchDelaySeconds"`
	Container             Queue           `json:"container"`
	UpgradeStrategy       UpgradeStrategy `json:"upgradeStrategy"`
	Version               time.Time       `json:"version"`
	VersionInfo           VersionInfo     `json:"versionInfo"`
}

AppQueue holds definitions of Apps in Queue

type AppSummary added in v1.3.2

type AppSummary struct {
	ID     string            `json:"id,omitempty"`
	Cpus   float64           `json:"cpus,omitempty"`
	Mem    float64           `json:"mem,omitempty"`
	Env    map[string]string `json:"env,omitempty"`
	Labels map[string]string `json:"labels,omitempty"`
	Image  string            `json:"image,omitempty"`
}

AppSummary holds a resumed format of Application

type AppVersions

type AppVersions struct {
	Versions []time.Time `json:"versions"`
}

AppVersions reflects the data used by the sub-element appVersions on a Marathon App

type Application

type Application struct {
	// contains filtered or unexported fields
}

Application is a Marathon Application implementation

func NewApplication added in v1.2.2

func NewApplication(marathon *Client) *Application

NewApplication returns a new instance of Marathon application implementation

func (*Application) AddParameter

func (ma *Application) AddParameter(key, value string, force bool) error

AddParameter sets the key, value into parameters of a Marathon application

func (*Application) Apply added in v1.4.1

func (ma *Application) Apply(force bool) error

Apply internal func, allows send all changes of a Marathon application to Marathon server

func (*Application) AsRaw added in v1.4.4

func (ma *Application) AsRaw() AppDefinition

AsRaw returns AppDefinition content of current Application

func (*Application) Container

func (ma *Application) Container() *Container

Container returns the Container information of a Marathon application

func (*Application) Cpus

func (ma *Application) Cpus() float64

Cpus returns the amount of cpus from a Marathon application

func (*Application) Create

func (ma *Application) Create(app AppDefinition) *Application

Create allows create a Marathon application into server

func (*Application) DelEnv

func (ma *Application) DelEnv(name string, force bool) error

DelEnv deletes an environment variable from a Marathon application

func (*Application) DelParameter

func (ma *Application) DelParameter(key string, force bool) error

DelParameter erase the parameter referenced by key

func (*Application) Destroy

func (ma *Application) Destroy() error

Destroy erase a Marathon application from server

func (*Application) Dump added in v1.4.0

func (ma *Application) Dump(fileName string) (err error)

Dump allows to create a .json file with the configuration of a Marathon application

func (*Application) Env

func (ma *Application) Env() map[string]string

Env returns the Environment Variables of a Marathon application

func (*Application) Get

func (ma *Application) Get(id string) *Application

Get allows to establish the internal structures to referenced id

func (*Application) GetTag added in v1.1.3

func (ma *Application) GetTag() (string, error)

GetTag allows you to change the version of Docker image

func (*Application) Instances added in v1.3.1

func (ma *Application) Instances() int

Instances return actual instances of a Marathon application

func (*Application) Load added in v1.4.0

func (ma *Application) Load(fileName string) *Application

Load allows create or update a Marathon application from file

func (*Application) Memory

func (ma *Application) Memory() float64

Memory returns the amount of memory from a Marathon application

func (*Application) Parameters added in v1.3.0

func (ma *Application) Parameters() (map[string]string, error)

Parameters returns all Docker parameters of a Marathon application

func (*Application) Restart

func (ma *Application) Restart(force bool) error

Restart use an endpoint to trigger a Marathon application restart

func (*Application) Role

func (ma *Application) Role() string

Role returns task role of a Marathon application

func (*Application) Scale

func (ma *Application) Scale(instances int, force bool) error

Scale allows change instances numbers of a Marathon application

func (*Application) Set added in v1.4.0

func (ma *Application) Set(app AppDefinition) *Application

Set allows to establish the internal structures from a given app

func (*Application) SetContainer

func (ma *Application) SetContainer(to *Container, force bool) error

SetContainer sets the Container information of a Marathon application

func (*Application) SetCpus

func (ma *Application) SetCpus(to float64, force bool) error

SetCpus sets the amount of cpus of a Marathon application

func (*Application) SetEnv

func (ma *Application) SetEnv(name, value string, force bool) error

SetEnv allows set an environment variable into a Marathon application

func (*Application) SetMemory

func (ma *Application) SetMemory(to float64, force bool) error

SetMemory sets the amount of memory of a Marathon application

func (*Application) SetRole

func (ma *Application) SetRole(to string, force bool) error

SetRole sets role of a Marathon application

func (*Application) SetTag added in v1.1.3

func (ma *Application) SetTag(tag string, force bool) error

SetTag allows you to change the version of Docker image

func (*Application) Start

func (ma *Application) Start(instances int, force bool) error

Start sets instances of a Marathon application to a number provided

func (*Application) Stop

func (ma *Application) Stop(force bool) error

Stop sets instances of a Marathon application to 0

func (*Application) Suspend

func (ma *Application) Suspend(force bool) error

Suspend is an alias to Stop

func (*Application) Update

func (ma *Application) Update(app AppDefinition) error

Update allows change values into Marathon application

type Attribute

type Attribute struct {
	Name   string   `json:"name"`
	Scalar int      `json:"scalar"`
	Ranges []Range  `json:"ranges"`
	Set    []string `json:"set"`
}

Attribute of an Offer from Mesos

type CallBackFuncsWithAppDef added in v1.4.0

type CallBackFuncsWithAppDef func(app AppDefinition) error

CallBackFuncsWithAppDef function type

type CallBackFuncsWithAppID added in v1.4.0

type CallBackFuncsWithAppID func(appID string) error

CallBackFuncsWithAppID function type

type Client

type Client struct {
	Session *requist.Requist
	// contains filtered or unexported fields
}

Client is implementation of Marathon application interface

func New added in v1.0.4

func New(base string) *Client

New returns a new Client given a Marathon server base url

func NewFromURL added in v1.2.2

func NewFromURL(base *url.URL) *Client

NewFromURL returns a new Client given a Marathon server base url in URL type

func (*Client) CheckConnection

func (mc *Client) CheckConnection() error

CheckConnection send a request to check Marathon server connectivity

func (*Client) Connect

func (mc *Client) Connect(baseURL string)

Connect sets baseURL and prepares the Client with this

func (*Client) MarathonFramework added in v1.2.0

func (mc *Client) MarathonFramework() string

MarathonFramework returns the id of this Marathon on Mesos

func (*Client) MarathonLeader added in v1.2.0

func (mc *Client) MarathonLeader() string

MarathonLeader returns actual Marathon leader server

func (*Client) MarathonVersion added in v1.2.0

func (mc *Client) MarathonVersion() string

MarathonVersion returns version of Marathon

func (*Client) MarathonZookeeper added in v1.2.0

func (mc *Client) MarathonZookeeper() string

MarathonZookeeper return Zookeeper server(s) address

func (*Client) New added in v1.0.4

func (mc *Client) New(base *url.URL) *Client

New returns a Client populated struct

func (*Client) SetBasicAuth

func (mc *Client) SetBasicAuth(username, password string)

SetBasicAuth used if we need to set login parameters

func (*Client) SetTimeout added in v1.2.1

func (mc *Client) SetTimeout(timeout time.Duration)

SetTimeout used if we need to set login parameters

func (*Client) StatusCode

func (mc *Client) StatusCode() int

StatusCode returns last responseCode

type Config added in v1.2.0

type Config struct {
	AccessControlAllowOrigin       []string      `json:"access_control_allow_origin"`
	Checkpoint                     bool          `json:"checkpoint"`
	DeclineOfferDuration           int           `json:"decline_offer_duration"`
	DefaultNetworkName             string        `json:"default_network_name"`
	EnvVarsPrefix                  string        `json:"env_vars_prefix"`
	Executor                       string        `json:"executor"`
	FailoverTimeout                int           `json:"failover_timeout"`
	Features                       []interface{} `json:"features"`
	FrameworkName                  string        `json:"framework_name"`
	Ha                             bool          `json:"ha"`
	Hostname                       string        `json:"hostname"`
	LaunchToken                    int           `json:"launch_token"`
	LaunchTokenRefreshInterval     int           `json:"launch_token_refresh_interval"`
	LeaderProxyConnectionTimeoutMs int           `json:"leader_proxy_connection_timeout_ms"`
	LeaderProxyReadTimeoutMs       int           `json:"leader_proxy_read_timeout_ms"`
	LocalPortMax                   int           `json:"local_port_max"`
	LocalPortMin                   int           `json:"local_port_min"`
	Master                         string        `json:"master"`
	MaxInstancesPerOffer           int           `json:"max_instances_per_offer"`
	MesosBridgeName                string        `json:"mesos_bridge_name"`
	MesosHeartbeatFailureThreshold int           `json:"mesos_heartbeat_failure_threshold"`
	MesosHeartbeatInterval         int           `json:"mesos_heartbeat_interval"`
	MesosLeaderUIURL               string        `json:"mesos_leader_ui_url"`
	MesosRole                      string        `json:"mesos_role"`
	MesosUser                      string        `json:"mesos_user"`
	MinReviveOffersInterval        int           `json:"min_revive_offers_interval"`
	OfferMatchingTimeout           int           `json:"offer_matching_timeout"`
	OnElectedPrepareTimeout        int           `json:"on_elected_prepare_timeout"`
	ReconciliationInitialDelay     int           `json:"reconciliation_initial_delay"`
	ReconciliationInterval         int           `json:"reconciliation_interval"`
	ReviveOffersForNewApps         bool          `json:"revive_offers_for_new_apps"`
	ReviveOffersRepetitions        int           `json:"revive_offers_repetitions"`
	ScaleAppsInitialDelay          int           `json:"scale_apps_initial_delay"`
	ScaleAppsInterval              int           `json:"scale_apps_interval"`
	StoreCache                     bool          `json:"store_cache"`
	TaskLaunchConfirmTimeout       int           `json:"task_launch_confirm_timeout"`
	TaskLaunchTimeout              int           `json:"task_launch_timeout"`
	TaskLostExpungeInitialDelay    int           `json:"task_lost_expunge_initial_delay"`
	TaskLostExpungeInterval        int           `json:"task_lost_expunge_interval"`
	TaskReservationTimeout         int           `json:"task_reservation_timeout"`
	WebuiURL                       string        `json:"webui_url"`
}

Config is Marathon Server Config definitions

type Container

type Container struct {
	Type         string        `json:"type"`
	Docker       Docker        `json:"docker"`
	Volumes      []Volume      `json:"volumes,omitempty"`
	PortMappings []PortMapping `json:"portMappings,omitempty"`
}

Container saves in a structured way the information of the containers of a task

type CurrentAction

type CurrentAction struct {
	Action                string                 `json:"action"`
	App                   string                 `json:"app"`
	ReadinessCheckResults []ReadinessCheckResult `json:"readinessCheckResults"`
}

CurrentAction holds actions taken by a deployment

type Delay

type Delay struct {
	TimeLeftSeconds int  `json:"timeLeftSeconds"`
	Overdue         bool `json:"overdue"`
}

Delay Queue representation

type Deployment

type Deployment struct {
	ID             string          `json:"id"`
	Version        time.Time       `json:"version"`
	AffectedApps   []string        `json:"affectedApps"`
	AffectedPods   []string        `json:"affectedPods"`
	Steps          []Step          `json:"steps"`
	CurrentActions []CurrentAction `json:"currentActions"`
	CurrentStep    int             `json:"currentStep"`
	TotalSteps     int             `json:"totalSteps"`
}

Deployment holds Marathons deploys on course

type Deployments

type Deployments struct {
	// contains filtered or unexported fields
}

Deployments is Marathon Deployments implementation

func NewDeployments added in v1.2.2

func NewDeployments(marathon *Client) *Deployments

NewDeployments returns a new instance of Marathon deployments implementation

func (*Deployments) Await added in v1.2.0

func (md *Deployments) Await(id string, timeout time.Duration) error

Await wait a Marathon deployment finish or timeout

func (*Deployments) Get added in v1.2.0

func (md *Deployments) Get() (*Deployments, error)

Get allows to establish the internal structures

func (*Deployments) Rollback added in v1.2.1

func (md *Deployments) Rollback(id string) error

Rollback cancel a Marathon deployment

type Docker

type Docker struct {
	Image          string             `json:"image"`
	Network        string             `json:"network,omitempty"`
	Privileged     bool               `json:"privileged"`
	Parameters     []DockerParameters `json:"parameters,omitempty"`
	ForcePullImage bool               `json:"forcePullImage"`
}

Docker holds all information of a docker representation of a task

type DockerParameters added in v1.1.0

type DockerParameters struct {
	Key   string `json:"key"`
	Value string `json:"value"`
}

DockerParameters is Docker exec Parameters representation

type FailureMessage

type FailureMessage struct {
	Message string      `json:"message,omitempty"`
	Details interface{} `json:"details,omitempty"`
}

FailureMessage all failed request match with this datatype

type Fetch

type Fetch struct {
	URI        string `json:"uri"`
	Extract    bool   `json:"extract"`
	Executable bool   `json:"executable"`
	Cache      bool   `json:"cache"`
}

Fetch reflects the data used by the sub-element fetch on a Marathon App

type FilterFunction added in v1.4.0

type FilterFunction func(app AppDefinition) bool

FilterFunction is a type to create callback functions

type FilteredApps added in v1.4.0

type FilteredApps struct {
	// contains filtered or unexported fields
}

FilteredApps is a Marathon Applications by filter implementation

func NewFilteredApps added in v1.4.0

func NewFilteredApps(marathon *Client) *FilteredApps

NewFilteredApps returns a new instance of Marathon filteredApps implementation

func (*FilteredApps) AsMap added in v1.4.0

func (fa *FilteredApps) AsMap() map[string]AppSummary

AsMap returns a map of Summary Info

func (*FilteredApps) AsRaw added in v1.4.0

func (fa *FilteredApps) AsRaw() []AppDefinition

AsRaw returns a pointer of Application Info

func (*FilteredApps) Dump added in v1.4.0

func (fa *FilteredApps) Dump(fileName string) (err error)

Dump allows to create a file with the configuration of filteredApps

func (*FilteredApps) DumpSingly added in v1.4.2

func (fa *FilteredApps) DumpSingly(baseName string) (err error)

Dump allows to create a file with the configuration of filteredApps

func (*FilteredApps) FilterBy added in v1.4.0

func (fa *FilteredApps) FilterBy(filterFunc FilterFunction) *FilteredApps

FilterBy make a new apps.Apps just with those match filterFunc

func (*FilteredApps) Get added in v1.4.0

func (fa *FilteredApps) Get(filter string) *FilteredApps

Get allows to establish the internal structures to referenced id

func (*FilteredApps) Load added in v1.4.0

func (fa *FilteredApps) Load(fileName, filter string) *FilteredApps

Load allows create or update a Marathon filteredApps from file

func (*FilteredApps) Restart added in v1.4.0

func (fa *FilteredApps) Restart(force bool) error

Restart use an endpoint to trigger a Marathon filteredApps restart

func (*FilteredApps) Scale added in v1.4.0

func (fa *FilteredApps) Scale(instances int, force bool) error

Scale allows change instances numbers of a Marathon filteredApps

func (*FilteredApps) Start added in v1.4.0

func (fa *FilteredApps) Start(instances int, force bool) error

Start sets instances of a Marathon filteredApps to a number provided

func (*FilteredApps) Stop added in v1.4.0

func (fa *FilteredApps) Stop(force bool) error

Stop sets instances of a Marathon filteredApps to 0

func (*FilteredApps) Suspend added in v1.4.0

func (fa *FilteredApps) Suspend(force bool) error

Suspend is an alias to Stop

type Group

type Group struct {
	ID           string          `json:"id"`
	Apps         []AppDefinition `json:"apps"`
	Groups       []Group         `json:"groups"`
	Pods         []interface{}   `json:"pods"`
	Dependencies []string        `json:"dependencies,omitempty"`
	Version      time.Time       `json:"version,omitempty"`
	VersionInfo  VersionInfo     `json:"versionInfo,omitempty"`
	Executor     string          `json:"executor,omitempty"`
	EnforceRole  bool            `json:"enforceRole,omitempty"`
}

Group encapsulates the data definitions of a Marathon Group

type Groups

type Groups struct {
	// contains filtered or unexported fields
}

Groups is Marathon Groups implementation

func NewGroups added in v1.2.2

func NewGroups(marathon *Client) *Groups

NewGroups returns a new instance of Marathon groups implementation

func (*Groups) Apply added in v1.4.0

func (mg *Groups) Apply(force bool) error

Apply uses the content of mg.group.Apps to apply the configuration

func (*Groups) Create

func (mg *Groups) Create(group *Group) error

Create allows create a Marathon group into server

func (*Groups) Destroy

func (mg *Groups) Destroy() error

Destroy erase a Marathon group from server

func (*Groups) Dump added in v1.4.0

func (mg *Groups) Dump(fileName string) (err error)

Dump permit write group information to a file

func (*Groups) Get

func (mg *Groups) Get(id string) *Groups

Get allows to establish the internal structures to referenced id

func (*Groups) Load added in v1.4.0

func (mg *Groups) Load(fileName string) *Groups

Load permit read group information from a file

func (*Groups) Restart

func (mg *Groups) Restart(force bool) error

Restart use an endpoint to trigger restart for all filteredApps in a Marathon group

func (*Groups) Scale

func (mg *Groups) Scale(instances int, force bool) error

Scale allows change instances numbers of a Marathon group filteredApps

func (*Groups) Start

func (mg *Groups) Start(instances int, force bool) error

Start sets instances of a Marathon group filteredApps to a number provided

func (*Groups) Stop

func (mg *Groups) Stop(force bool) error

Stop sets instances of a Marathon group filteredApps to 0

func (*Groups) Suspend

func (mg *Groups) Suspend(force bool) error

Suspend is an alias for Stop

func (*Groups) Update

func (mg *Groups) Update(group *Group) error

Update allows change values into Marathon group

type HTTPConfig added in v1.2.0

type HTTPConfig struct {
	Port       int `json:"http_port"`
	SecurePort int `json:"https_port"`
}

HTTPConfig is the HTTP/S port of a Marathon server

type Healthcheck

type Healthcheck struct {
	GracePeriodSeconds     int    `json:"gracePeriodSeconds"`
	IntervalSeconds        int    `json:"intervalSeconds"`
	MaxConsecutiveFailures int    `json:"maxConsecutiveFailures"`
	Path                   string `json:"path"`
	PortIndex              int    `json:"portIndex"`
	Protocol               string `json:"protocol"`
	IPProtocol             string `json:"ipProtocol"`
	TimeoutSeconds         int    `json:"timeoutSeconds"`
	DelaySeconds           int    `json:"delaySeconds"`
}

Healthcheck represents configuration of a health check of a Marathon task

type HealthcheckResult added in v1.1.1

type HealthcheckResult struct {
	Alive               bool      `json:"alive"`
	ConsecutiveFailures int       `json:"consecutiveFailures"`
	FirstSuccess        time.Time `json:"firstSuccess"`
	InstanceID          string    `json:"instanceId"`
	LastSuccess         time.Time `json:"lastSuccess"`
}

HealthcheckResult represents response of a Marathon health check

type IPAddress

type IPAddress struct {
	IPAddress string `json:"ipAddress"`
	Protocol  string `json:"protocol"`
}

IPAddress IP and protocol information of a Task

type Info

type Info struct {
	Name            string     `json:"name"`
	Version         string     `json:"version"`
	Buildref        string     `json:"buildref"`
	Elected         bool       `json:"elected"`
	Leader          string     `json:"leader"`
	FrameworkID     string     `json:"frameworkId"`
	MarathonConfig  Config     `json:"marathon_config"`
	ZookeeperConfig ZkConfig   `json:"zookeeper_config"`
	HTTPConf        HTTPConfig `json:"http_config"`
}

Info is the Marathon server info get vía API endpoint /v2/info

type LastResponse

type LastResponse struct {
	Body        string `json:"body"`
	ContentType string `json:"contentType"`
	Status      int    `json:"status"`
}

LastResponse holds last response

type LastUnusedOffer

type LastUnusedOffer struct {
	Offer     Offer       `json:"offer"`
	Timestamp interface{} `json:"timestamp"`
	Reason    []string    `json:"reason"`
}

LastUnusedOffer Offers not used info

type Leader

type Leader struct {
	Leader string `json:"leader"`
}

Leader Marathon server leader

type Metrics

type Metrics struct {
	Version  string `json:"version"`
	Counters struct {
		MarathonMesosOfferOperationsLaunchGroupCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.offer-operations.launch-group.counter"`
		MarathonMesosOffersIncomingCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.offers.incoming.counter"`
		MarathonDebugMesosOffersSavingTasksErrorsCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.mesos.offers.saving-tasks-errors.counter"`
		MarathonMesosCallsReviveCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.calls.revive.counter"`
		MarathonDebugMesosOffersUnprocessableCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.mesos.offers.unprocessable.counter"`
		MarathonMesosTaskUpdatesTaskStartingCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.task-updates.task-starting.counter"`
		MarathonMesosOffersUsedCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.offers.used.counter"`
		MarathonMesosOffersDeclinedCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.offers.declined.counter"`
		MarathonMesosOfferOperationsReserveCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.offer-operations.reserve.counter"`
		MarathonDebugPersistenceCacheGetDeploymentHitCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.persistence.cache.get.deployment.hit.counter"`
		MarathonMesosTaskUpdatesTaskKillingCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.task-updates.task-killing.counter"`
		MarathonMesosTaskUpdatesTaskKilledCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.task-updates.task-killed.counter"`
		MarathonDeploymentsCounter struct {
			Count int `json:"count"`
		} `json:"marathon.deployments.counter"`
		MarathonDebugPersistenceCacheIdsPodsHitCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.persistence.cache.ids.pods.hit.counter"`
		MarathonHTTPResponsesEventStreamSizeCounterBytes struct {
			Count int `json:"count"`
		} `json:"marathon.http.responses.event-stream.size.counter.bytes"`
		MarathonMesosCallsSuppressCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.calls.suppress.counter"`
		MarathonDebugPersistenceCacheGetTaskFailuresHitCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.persistence.cache.get.taskFailures.hit.counter"`
		MarathonMesosTaskUpdatesTaskFailedCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.task-updates.task-failed.counter"`
		MarathonDebugPersistenceCacheGetFrameworkIDHitCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.persistence.cache.get.framework-id.hit.counter"`
		MarathonMesosTaskUpdatesTaskRunningCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.task-updates.task-running.counter"`
		MarathonDebugPersistenceCacheGetAppsHitCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.persistence.cache.get.apps.hit.counter"`
		MarathonMesosTaskUpdatesTaskFinishedCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.task-updates.task-finished.counter"`
		MarathonMesosTaskUpdatesTaskStagingCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.task-updates.task-staging.counter"`
		MarathonHTTPResponsesSizeCounterBytes struct {
			Count int64 `json:"count"`
		} `json:"marathon.http.responses.size.counter.bytes"`
		MarathonDebugPersistenceCacheIdsAppsHitCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.persistence.cache.ids.apps.hit.counter"`
		MarathonHTTPResponsesSizeGzippedCounterBytes struct {
			Count int64 `json:"count"`
		} `json:"marathon.http.responses.size.gzipped.counter.bytes"`
		MarathonDeploymentsDismissedCounter struct {
			Count int `json:"count"`
		} `json:"marathon.deployments.dismissed.counter"`
		MarathonDebugPersistenceCacheIdsDeploymentHitCounter struct {
			Count int `json:"count"`
		} `json:"marathon.debug.persistence.cache.ids.deployment.hit.counter"`
		MarathonTasksLaunchedCounter struct {
			Count int `json:"count"`
		} `json:"marathon.tasks.launched.counter"`
		MarathonMesosOfferOperationsLaunchCounter struct {
			Count int `json:"count"`
		} `json:"marathon.mesos.offer-operations.launch.counter"`
		MarathonPersistenceGcRunsCounter struct {
			Count int `json:"count"`
		} `json:"marathon.persistence.gc.runs.counter"`
		MarathonHTTPRequestsSizeCounterBytes struct {
			Count int `json:"count"`
		} `json:"marathon.http.requests.size.counter.bytes"`
	} `json:"counters"`
	Gauges struct {
		MarathonJvmMemoryPoolsCodeCacheMaxGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.code-cache.max.gauge.bytes"`
		MarathonJvmMemoryPoolsMetaspaceCommittedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.metaspace.committed.gauge.bytes"`
		MarathonDebugHTTPRequests4XxTo15MRateRatioGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.http.requests.4xx-to-15m-rate-ratio.gauge"`
		MarathonJvmMemoryPoolsCodeCacheUsageGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.code-cache.usage.gauge"`
		MarathonJvmMemoryTotalMaxGaugeBytes struct {
			Value int64 `json:"value"`
		} `json:"marathon.jvm.memory.total.max.gauge.bytes"`
		MarathonJvmBuffersMappedMemoryUsedGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.buffers.mapped.memory.used.gauge.bytes"`
		MarathonJvmMemoryPoolsPsSurvivorSpaceCommittedGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-survivor-space.committed.gauge.bytes"`
		MarathonJvmGcPsScavengeCollectionsGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.gc.ps-scavenge.collections.gauge"`
		MarathonJvmMemoryPoolsPsSurvivorSpaceMaxGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-survivor-space.max.gauge.bytes"`
		MarathonInstancesInflightKillsGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.instances.inflight-kills.gauge"`
		MarathonJvmThreadsRunnableGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.runnable.gauge"`
		MarathonInstancesInflightKillAttemptsGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.instances.inflight-kill-attempts.gauge"`
		MarathonJvmMemoryPoolsPsOldGenUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-old-gen.used.gauge.bytes"`
		MarathonDebugHTTPDispatchesActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.http.dispatches.active.gauge"`
		MarathonJvmMemoryNonHeapInitGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.non-heap.init.gauge.bytes"`
		MarathonJvmMemoryTotalUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.total.used.gauge.bytes"`
		MarathonJvmMemoryNonHeapUsageGauge struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.non-heap.usage.gauge"`
		MarathonJvmBuffersMappedCapacityGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.buffers.mapped.capacity.gauge.bytes"`
		MarathonJvmThreadsDaemonGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.daemon.gauge"`
		MarathonDebugHTTPRequestsSuspendedGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.http.requests.suspended.gauge"`
		MarathonDeploymentsActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.deployments.active.gauge"`
		MarathonLeadershipDurationGaugeSeconds struct {
			Value float64 `json:"value"`
		} `json:"marathon.leadership.duration.gauge.seconds"`
		MarathonDebugHTTPRequests4XxTo5MRateRatioGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.http.requests.4xx-to-5m-rate-ratio.gauge"`
		MarathonJvmMemoryPoolsPsEdenSpaceCommittedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-eden-space.committed.gauge.bytes"`
		MarathonDebugHTTPRequests5XxTo5MRateRatioGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.http.requests.5xx-to-5m-rate-ratio.gauge"`
		MarathonJvmMemoryNonHeapCommittedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.non-heap.committed.gauge.bytes"`
		MarathonJvmMemoryTotalInitGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.total.init.gauge.bytes"`
		MarathonJvmMemoryPoolsPsEdenSpaceInitGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-eden-space.init.gauge.bytes"`
		MarathonJvmMemoryPoolsPsEdenSpaceUsageGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-eden-space.usage.gauge"`
		MarathonJvmMemoryPoolsCodeCacheCommittedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.code-cache.committed.gauge.bytes"`
		MarathonJvmMemoryHeapCommittedGaugeBytes struct {
			Value int64 `json:"value"`
		} `json:"marathon.jvm.memory.heap.committed.gauge.bytes"`
		MarathonJvmMemoryPoolsMetaspaceUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.metaspace.used.gauge.bytes"`
		MarathonJvmThreadsActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.active.gauge"`
		MarathonPodsActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.pods.active.gauge"`
		MarathonJvmThreadsBlockedGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.blocked.gauge"`
		MarathonJvmMemoryPoolsPsOldGenUsageGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-old-gen.usage.gauge"`
		MarathonJvmBuffersDirectMemoryUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.buffers.direct.memory.used.gauge.bytes"`
		MarathonJvmMemoryPoolsPsOldGenCommittedGaugeBytes struct {
			Value int64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-old-gen.committed.gauge.bytes"`
		MarathonUptimeGaugeSeconds struct {
			Value float64 `json:"value"`
		} `json:"marathon.uptime.gauge.seconds"`
		MarathonJvmMemoryPoolsPsSurvivorSpaceUsedAfterGcGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-survivor-space.used-after-gc.gauge.bytes"`
		MarathonHTTPRequestsActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.http.requests.active.gauge"`
		MarathonJvmMemoryPoolsCompressedClassSpaceCommittedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.compressed-class-space.committed.gauge.bytes"`
		MarathonJvmMemoryPoolsPsEdenSpaceUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-eden-space.used.gauge.bytes"`
		MarathonJvmMemoryPoolsMetaspaceInitGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.metaspace.init.gauge.bytes"`
		MarathonJvmMemoryPoolsPsSurvivorSpaceUsedGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-survivor-space.used.gauge.bytes"`
		MarathonDebugOfferMatcherQueueSizeGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.offer-matcher.queue.size.gauge"`
		MarathonJvmMemoryPoolsPsEdenSpaceUsedAfterGcGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-eden-space.used-after-gc.gauge.bytes"`
		MarathonJvmMemoryHeapUsageGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.heap.usage.gauge"`
		MarathonJvmMemoryPoolsPsSurvivorSpaceInitGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-survivor-space.init.gauge.bytes"`
		MarathonJvmMemoryHeapMaxGaugeBytes struct {
			Value int64 `json:"value"`
		} `json:"marathon.jvm.memory.heap.max.gauge.bytes"`
		MarathonHTTPEventStreamsActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.http.event-streams.active.gauge"`
		MarathonJvmMemoryPoolsCompressedClassSpaceMaxGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.compressed-class-space.max.gauge.bytes"`
		MarathonJvmMemoryHeapUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.heap.used.gauge.bytes"`
		MarathonJvmGcPsMarksweepCollectionsDurationGaugeSeconds struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.gc.ps-marksweep.collections.duration.gauge.seconds"`
		MarathonJvmGcPsScavengeCollectionsDurationGaugeSeconds struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.gc.ps-scavenge.collections.duration.gauge.seconds"`
		MarathonJvmMemoryPoolsPsOldGenMaxGaugeBytes struct {
			Value int64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-old-gen.max.gauge.bytes"`
		MarathonJvmThreadsTimedWaitingGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.timed-waiting.gauge"`
		MarathonJvmThreadsTerminatedGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.terminated.gauge"`
		MarathonJvmMemoryTotalCommittedGaugeBytes struct {
			Value int64 `json:"value"`
		} `json:"marathon.jvm.memory.total.committed.gauge.bytes"`
		MarathonJvmMemoryPoolsPsEdenSpaceMaxGaugeBytes struct {
			Value int64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-eden-space.max.gauge.bytes"`
		MarathonJvmThreadsNewGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.new.gauge"`
		MarathonJvmMemoryNonHeapMaxGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.non-heap.max.gauge.bytes"`
		MarathonJvmMemoryPoolsPsSurvivorSpaceUsageGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-survivor-space.usage.gauge"`
		MarathonJvmMemoryPoolsMetaspaceUsageGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.metaspace.usage.gauge"`
		MarathonGroupsActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.groups.active.gauge"`
		MarathonJvmMemoryPoolsCodeCacheUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.code-cache.used.gauge.bytes"`
		MarathonJvmMemoryPoolsPsOldGenInitGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-old-gen.init.gauge.bytes"`
		MarathonDebugOfferMatcherTokensGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.offer-matcher.tokens.gauge"`
		MarathonDebugHTTPRequests5XxTo1MRateRatioGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.http.requests.5xx-to-1m-rate-ratio.gauge"`
		MarathonDebugHTTPRequests4XxTo1MRateRatioGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.http.requests.4xx-to-1m-rate-ratio.gauge"`
		MarathonJvmGcPsMarksweepCollectionsGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.gc.ps-marksweep.collections.gauge"`
		MarathonInstancesStagedGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.instances.staged.gauge"`
		MarathonJvmMemoryPoolsMetaspaceMaxGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.metaspace.max.gauge.bytes"`
		MarathonJvmThreadsWaitingGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.waiting.gauge"`
		MarathonJvmMemoryPoolsCompressedClassSpaceUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.compressed-class-space.used.gauge.bytes"`
		MarathonDebugRootGroupUpdatesActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.root-group.updates.active.gauge"`
		MarathonJvmBuffersDirectGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.buffers.direct.gauge"`
		MarathonJvmMemoryPoolsCompressedClassSpaceUsageGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.compressed-class-space.usage.gauge"`
		MarathonJvmMemoryNonHeapUsedGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.non-heap.used.gauge.bytes"`
		MarathonJvmMemoryHeapInitGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.heap.init.gauge.bytes"`
		MarathonAppsActiveGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.apps.active.gauge"`
		MarathonInstancesLaunchOverdueGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.instances.launch-overdue.gauge"`
		MarathonInstancesRunningGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.instances.running.gauge"`
		MarathonJvmMemoryPoolsCodeCacheInitGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.code-cache.init.gauge.bytes"`
		MarathonJvmBuffersDirectCapacityGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.buffers.direct.capacity.gauge.bytes"`
		MarathonDebugHTTPRequests5XxTo15MRateRatioGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.debug.http.requests.5xx-to-15m-rate-ratio.gauge"`
		MarathonJvmMemoryPoolsPsOldGenUsedAfterGcGaugeBytes struct {
			Value int `json:"value"`
		} `json:"marathon.jvm.memory.pools.ps-old-gen.used-after-gc.gauge.bytes"`
		MarathonJvmThreadsDeadlockedGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.threads.deadlocked.gauge"`
		MarathonJvmMemoryPoolsCompressedClassSpaceInitGaugeBytes struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.memory.pools.compressed-class-space.init.gauge.bytes"`
		MarathonJvmBuffersMappedGauge struct {
			Value float64 `json:"value"`
		} `json:"marathon.jvm.buffers.mapped.gauge"`
	} `json:"gauges"`
	Histograms struct {
	} `json:"histograms"`
	Meters struct {
		MarathonHTTPResponses5XxRateMeter struct {
			Count    int     `json:"count"`
			M1Rate   float64 `json:"m1_rate"`
			M5Rate   float64 `json:"m5_rate"`
			M15Rate  float64 `json:"m15_rate"`
			MeanRate float64 `json:"mean_rate"`
			Units    string  `json:"units"`
		} `json:"marathon.http.responses.5xx.rate.meter"`
		MarathonHTTPResponses4XxRateMeter struct {
			Count    int     `json:"count"`
			M1Rate   float64 `json:"m1_rate"`
			M5Rate   float64 `json:"m5_rate"`
			M15Rate  float64 `json:"m15_rate"`
			MeanRate float64 `json:"mean_rate"`
			Units    string  `json:"units"`
		} `json:"marathon.http.responses.4xx.rate.meter"`
		MarathonHTTPResponses2XxRateMeter struct {
			Count    int     `json:"count"`
			M1Rate   float64 `json:"m1_rate"`
			M5Rate   float64 `json:"m5_rate"`
			M15Rate  float64 `json:"m15_rate"`
			MeanRate float64 `json:"mean_rate"`
			Units    string  `json:"units"`
		} `json:"marathon.http.responses.2xx.rate.meter"`
		MarathonDebugHTTPDispatchesAsyncRateMeter struct {
			Count    int     `json:"count"`
			M1Rate   float64 `json:"m1_rate"`
			M5Rate   float64 `json:"m5_rate"`
			M15Rate  float64 `json:"m15_rate"`
			MeanRate float64 `json:"mean_rate"`
			Units    string  `json:"units"`
		} `json:"marathon.debug.http.dispatches.async.rate.meter"`
		MarathonHTTPResponses1XxRateMeter struct {
			Count    int     `json:"count"`
			M1Rate   float64 `json:"m1_rate"`
			M5Rate   float64 `json:"m5_rate"`
			M15Rate  float64 `json:"m15_rate"`
			MeanRate float64 `json:"mean_rate"`
			Units    string  `json:"units"`
		} `json:"marathon.http.responses.1xx.rate.meter"`
		MarathonDebugHTTPDispatchesAsyncTimeoutsRateMeter struct {
			Count    int     `json:"count"`
			M1Rate   float64 `json:"m1_rate"`
			M5Rate   float64 `json:"m5_rate"`
			M15Rate  float64 `json:"m15_rate"`
			MeanRate float64 `json:"mean_rate"`
			Units    string  `json:"units"`
		} `json:"marathon.debug.http.dispatches.async.timeouts.rate.meter"`
		MarathonHTTPResponses3XxRateMeter struct {
			Count    int     `json:"count"`
			M1Rate   float64 `json:"m1_rate"`
			M5Rate   float64 `json:"m5_rate"`
			M15Rate  float64 `json:"m15_rate"`
			MeanRate float64 `json:"mean_rate"`
			Units    string  `json:"units"`
		} `json:"marathon.http.responses.3xx.rate.meter"`
	} `json:"meters"`
	Timers struct {
		MarathonDebugPersistenceOperationsStoreDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.persistence.operations.store.duration.timer.seconds"`
		MarathonDebugInstanceTrackerUpdateStepsPostTaskStatusEventDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.instance-tracker.update-steps.post-task-status-event.duration.timer.seconds"`
		MarathonHTTPRequestsMoveDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.move.duration.timer.seconds"`
		MarathonDebugPersistenceOperationsVersionsDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.persistence.operations.versions.duration.timer.seconds"`
		MarathonDebugHTTPDispatchesDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.http.dispatches.duration.timer.seconds"`
		MarathonDebugInstanceTrackerResolveTasksByAppDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.instance-tracker.resolve-tasks-by-app-duration.timer.seconds"`
		MarathonHTTPRequestsOtherDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.other.duration.timer.seconds"`
		MarathonDebugInstanceTrackerUpdateStepsNotifyHealthCheckManagerDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.instance-tracker.update-steps.notify-health-check-manager.duration.timer.seconds"`
		MarathonPersistenceGcCompactionDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.persistence.gc.compaction.duration.timer.seconds"`
		MarathonDebugInstanceTrackerUpdateStepsScaleAppDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.instance-tracker.update-steps.scale-app.duration.timer.seconds"`
		MarathonHTTPRequestsGetDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.get.duration.timer.seconds"`
		MarathonDebugCurrentLeaderRetrievalDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.current-leader.retrieval.duration.timer.seconds"`
		MarathonDebugInstanceTrackerUpdateStepsNotifyRateLimiterDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.instance-tracker.update-steps.notify-rate-limiter.duration.timer.seconds"`
		MarathonDebugMesosOffersSavingTasksDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.mesos.offers.saving-tasks-duration.timer.seconds"`
		MarathonHTTPRequestsPutDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.put.duration.timer.seconds"`
		MarathonDebugKillingUnknownTaskDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.killing-unknown-task-duration.timer.seconds"`
		MarathonPersistenceGcScanDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.persistence.gc.scan.duration.timer.seconds"`
		MarathonHTTPRequestsOptionsDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.options.duration.timer.seconds"`
		MarathonHTTPRequestsDeleteDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.delete.duration.timer.seconds"`
		MarathonHTTPRequestsHeadDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.head.duration.timer.seconds"`
		MarathonDebugPersistenceOperationsGetDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.persistence.operations.get.duration.timer.seconds"`
		MarathonHTTPRequestsPostDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.post.duration.timer.seconds"`
		MarathonDebugInstanceTrackerUpdateStepsNotifyLaunchQueueDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.instance-tracker.update-steps.notify-launch-queue.duration.timer.seconds"`
		MarathonDebugPublishingTaskStatusUpdateDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.publishing-task-status-update-duration.timer.seconds"`
		MarathonDebugPersistenceOperationsDeleteDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.persistence.operations.delete.duration.timer.seconds"`
		MarathonDebugPersistenceOperationsIdsDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.persistence.operations.ids.duration.timer.seconds"`
		MarathonHTTPRequestsTraceDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.trace.duration.timer.seconds"`
		MarathonHTTPRequestsDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.duration.timer.seconds"`
		MarathonHTTPRequestsConnectDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.http.requests.connect.duration.timer.seconds"`
		MarathonDebugMesosOffersMatchingDurationTimerSeconds struct {
			Count         int     `json:"count"`
			Min           float64 `json:"min"`
			Mean          float64 `json:"mean"`
			Max           float64 `json:"max"`
			P50           float64 `json:"p50"`
			P75           float64 `json:"p75"`
			P95           float64 `json:"p95"`
			P98           float64 `json:"p98"`
			P99           float64 `json:"p99"`
			P999          float64 `json:"p999"`
			Stddev        float64 `json:"stddev"`
			M1Rate        float64 `json:"m1_rate"`
			M5Rate        float64 `json:"m5_rate"`
			M15Rate       float64 `json:"m15_rate"`
			MeanRate      float64 `json:"mean_rate"`
			DurationUnits string  `json:"duration_units"`
			RateUnits     string  `json:"rate_units"`
		} `json:"marathon.debug.mesos.offers.matching-duration.timer.seconds"`
	} `json:"timers"`
}

Metrics Marathon server metrics results

type Network

type Network struct {
	Mode string `json:"mode"`
}

Network reflects the data used by the sub-element network on a Marathon App

type Offer

type Offer struct {
	ID         string      `json:"id"`
	AgentID    string      `json:"agentId"`
	Hostname   string      `json:"hostname"`
	Resources  []Resource  `json:"resources"`
	Attributes []Attribute `json:"attributes"`
}

Offer holds info of Mesos Offered resources

type Plugin

type Plugin struct {
	ID             string     `json:"id"`
	Implementation string     `json:"implementation"`
	Info           PluginInfo `json:"info"`
	Plugin         string     `json:"plugin"`
	Tags           []string   `json:"tags"`
}

Plugin holds information of Marathon server plugins

type PluginInfo added in v1.2.0

type PluginInfo struct {
	Version string `json:"version"`
	Array   []int  `json:"array"`
	Test    bool   `json:"test"`
}

PluginInfo version Info

type Plugins

type Plugins struct {
	Plugins []Plugin `json:"plugins"`
}

Plugins Array of

type PortMapping

type PortMapping struct {
	ContainerPort int               `json:"containerPort,omitempty"`
	HostPort      int               `json:"hostPort,omitempty"`
	Labels        map[string]string `json:"labels,omitempty"`
	Protocol      string            `json:"protocol,omitempty"`
	ServicePort   int               `json:"servicePort,omitempty"`
}

PortMapping Docker's PortMapping representation

type ProcessedOffersSummary

type ProcessedOffersSummary struct {
	ProcessedOffersCount int `json:"processedOffersCount"`
	UnusedOffersCount    int `json:"unusedOffersCount"`
}

ProcessedOffersSummary is Processed Offers Summary info

type Queue

type Queue struct {
	Type   string `json:"type"`
	Docker Docker `json:"docker"`
}

Queue Tasks representation

type QueueType

type QueueType struct {
	App                    AppDefinition          `json:"app"`
	Count                  int                    `json:"count"`
	Delay                  Delay                  `json:"delay"`
	Since                  interface{}            `json:"since"`
	ProcessedOffersSummary ProcessedOffersSummary `json:"processedOffersSummary"`
	LastUnusedOffers       []LastUnusedOffer      `json:"lastUnusedOffers,omitempty"`
}

QueueType holds definitions of Tasks queued up or waiting to be scheduled

type Queues

type Queues struct {
	Queue []QueueType `json:"queue"`
}

Queues Array of

type Range

type Range struct {
	Begin int `json:"begin"`
	End   int `json:"end"`
}

Range scalar of an Offer from Mesos

type ReadinessCheckResult

type ReadinessCheckResult struct {
	TaskID       string       `json:"taskId"`
	LastResponse LastResponse `json:"lastResponse"`
	Name         string       `json:"name"`
	Ready        bool         `json:"ready"`
}

ReadinessCheckResult holds results for tasks

type Resource

type Resource struct {
	Name   string   `json:"name"`
	Scalar int      `json:"scalar"`
	Ranges []Range  `json:"ranges"`
	Set    []string `json:"set"`
	Role   string   `json:"role"`
}

Resource is Offer resource representation

type Response

type Response struct {
	ID      string    `json:"deploymentId"`
	Version time.Time `json:"version"`
}

Response is default Marathon API response when launch changes via deployments

type Step

type Step struct {
	Actions []Action `json:"actions"`
}

Step on actions representation

type Task

type Task struct {
	Task TaskMarathon `json:"task"`
}

Task is an Envelope structure for Tasks response from Marathon server

type TaskConstraints added in v1.4.3

type TaskConstraints []string

TaskConstraints is a simple array of strings

type TaskMarathon added in v1.4.0

type TaskMarathon struct {
	AppID              string              `json:"appId"`
	HealthCheckResults []HealthcheckResult `json:"healthCheckResults"`
	Host               string              `json:"host"`
	ID                 string              `json:"id"`
	IPAddresses        []IPAddress         `json:"ipAddresses"`
	Ports              []int               `json:"ports"`
	ServicePorts       []interface{}       `json:"servicePorts"`
	SlaveID            string              `json:"slaveId"`
	State              string              `json:"state"`
	StagedAt           time.Time           `json:"stagedAt"`
	StartedAt          time.Time           `json:"startedAt"`
	Version            time.Time           `json:"version"`
	LocalVolumes       []interface{}       `json:"localVolumes"`
	Role               string              `json:"role"`
}

TaskMarathon is Marathon Task representation

type Tasks

type Tasks struct {
	Tasks []TaskMarathon `json:"tasks"`
}

Tasks Array of Task

type UnreachableStrategy

type UnreachableStrategy struct {
	InactiveAfterSeconds int `json:"inactiveAfterSeconds"`
	ExpungeAfterSeconds  int `json:"expungeAfterSeconds"`
}

UnreachableStrategy reflects the data used by the sub-element unreachableStrategy on a Marathon App

type UpgradeStrategy

type UpgradeStrategy struct {
	MaximumOverCapacity   float64 `json:"maximumOverCapacity"`
	MinimumHealthCapacity float64 `json:"minimumHealthCapacity"`
}

UpgradeStrategy reflects the data used by the sub-element ppgradeStrategy on a Marathon App

type VersionInfo

type VersionInfo struct {
	LastScalingAt      time.Time `json:"lastScalingAt"`
	LastConfigChangeAt time.Time `json:"lastConfigChangeAt"`
}

VersionInfo reflects the data used by the sub-element versionInfo on a Marathon App

type Volume

type Volume struct {
	ContainerPath string `json:"containerPath"`
	HostPath      string `json:"hostPath"`
	Mode          string `json:"mode,omitempty"`
}

Volume is Docker's Volume representation

type ZkConfig added in v1.2.0

type ZkConfig struct {
	Zk                     string `json:"zk"`
	ZkCompression          bool   `json:"zk_compression"`
	ZkCompressionThreshold int    `json:"zk_compression_threshold"`
	ZkConnectionTimeout    int    `json:"zk_connection_timeout"`
	ZkMaxNodeSize          int    `json:"zk_max_node_size"`
	ZkMaxVersions          int    `json:"zk_max_versions"`
	ZkSessionTimeout       int    `json:"zk_session_timeout"`
	ZkTimeout              int    `json:"zk_timeout"`
}

ZkConfig is ZooKeeper's Marathon Config

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL