marathon

package module
v1.3.4 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2020 License: MIT Imports: 8 Imported by: 0

README

Library to manage Marathon servers via API Calls

Go

Supports:

Installation

Quickstart

Howto

Documentation

Index

Constants

View Source
const (

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

Variables

This section is empty.

Functions

This section is empty.

Types

type Action

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

That, a 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"`
	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"`
}

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
}

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) 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, error)

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) DumpToFile

func (ma *Application) DumpToFile(fileName, fileType string) error

DumpToFile 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, error)

Get allows to establish the internal structures to referenced id

func (*Application) GetTag added in v1.1.3

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

Retag 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) LoadFromFile

func (ma *Application) LoadFromFile(fileName, fileType string) error

LoadFromFile 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) 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

Retag 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 Applications

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

Marathon Application implementation

func NewApplications added in v1.3.2

func NewApplications(marathon *Client) *Applications

NewApplications returns a new instance of Marathon applications implementation

func (*Applications) Apply added in v1.3.4

func (ma *Applications) Apply() error

Apply make a patch to each app

func (*Applications) AsMap

func (ma *Applications) AsMap() map[string]AppSummary

AsMap returns a map of Summary Info

func (*Applications) AsRaw added in v1.3.4

func (ma *Applications) AsRaw() []AppDefinition

AsRaw returns a pointer of Application Info

func (*Applications) DumpToFile added in v1.3.2

func (ma *Applications) DumpToFile(fileName, fileType string) error

DumpToFile allows to create a file with the configuration of applications

func (*Applications) Get added in v1.3.2

func (ma *Applications) Get(filter string) (*Applications, error)

Get allows to establish the internal structures to referenced id

func (*Applications) LoadFromFile added in v1.3.2

func (ma *Applications) LoadFromFile(fileName, fileType string) error

LoadFromFile allows create or update a Marathon applications from file

func (*Applications) Restart added in v1.3.2

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

Restart use an endpoint to trigger a Marathon applications restart

func (*Applications) Scale added in v1.3.2

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

Scale allows change instances numbers of a Marathon applications

func (*Applications) Start added in v1.3.2

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

Start sets instances of a Marathon applications to a number provided

func (*Applications) Stop added in v1.3.2

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

Stop sets instances of a Marathon applications to 0

func (*Applications) Suspend added in v1.3.2

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

Suspend is an alias to Stop

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 Client

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

Marathon application implementation

func New added in v1.0.4

func New(base string) *Client

NewClient 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)

SetBasicAuth 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"`
}

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
}

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"`
}

Docker exec Parameters representation

type FailureMessage

type FailureMessage struct {
	Message string `json:"message,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 Group

type Group struct {
	ID           string        `json:"id"`
	Apps         []App         `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
}

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) 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) Get

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

Get allows to establish the internal structures to referenced id

func (*Groups) Restart

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

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

func (*Groups) Scale

func (mg *Groups) Scale(instances int) error

Scale allows change instances numbers of a Marathon group applications

func (*Groups) Start

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

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

func (*Groups) Stop

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

Stop sets instances of a Marathon group applications 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"`
}

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"`
}

IP and protocol information of a Taks

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"`
}

Marathon server info 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"`
}

Plguing version Info

type Plugins

type Plugins struct {
	Plugins []Plugin `json:"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"`
}

Docker PortMapping representation

type ProcessedOffersSummary

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

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"`
}

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"`
}

Offer resource representation

type Response

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

Marathon API response when launch changes via deployments

type Step

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

That, a Step representation

type Task

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

Envelope structure for Taks response from Marathon server

type Tasks

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

Array of

type Tsk

type Tsk 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"`
}

Tsk, Marathon Task representation

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"`
}

Docker 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"`
}

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

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