mantis-rxcontrol


License

License

Categories

Categories

Ant Build Tools
GroupId

GroupId

io.mantisrx
ArtifactId

ArtifactId

mantis-rxcontrol
Last Version

Last Version

1.3.17
Release Date

Release Date

Type

Type

jar
Description

Description

mantis-rxcontrol
mantis-rxcontrol
Project URL

Project URL

https://github.com/Netflix/mantis-rxcontrol
Source Code Management

Source Code Management

https://github.com/Netflix/mantis-rxcontrol.git

Download mantis-rxcontrol

How to add to project

<!-- https://jarcasting.com/artifacts/io.mantisrx/mantis-rxcontrol/ -->
<dependency>
    <groupId>io.mantisrx</groupId>
    <artifactId>mantis-rxcontrol</artifactId>
    <version>1.3.17</version>
</dependency>
// https://jarcasting.com/artifacts/io.mantisrx/mantis-rxcontrol/
implementation 'io.mantisrx:mantis-rxcontrol:1.3.17'
// https://jarcasting.com/artifacts/io.mantisrx/mantis-rxcontrol/
implementation ("io.mantisrx:mantis-rxcontrol:1.3.17")
'io.mantisrx:mantis-rxcontrol:jar:1.3.17'
<dependency org="io.mantisrx" name="mantis-rxcontrol" rev="1.3.17">
  <artifact name="mantis-rxcontrol" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.mantisrx', module='mantis-rxcontrol', version='1.3.17')
)
libraryDependencies += "io.mantisrx" % "mantis-rxcontrol" % "1.3.17"
[io.mantisrx/mantis-rxcontrol "1.3.17"]

Dependencies

provided (1)

Group / Artifact Type Version
org.projectlombok : lombok jar 1.18.12

runtime (8)

Group / Artifact Type Version
org.slf4j : slf4j-api jar 1.7.26
com.mashape.unirest : unirest-java jar 1.4.9
io.reactivex : rxjava-math jar 1.0.0
io.vavr : vavr jar 0.9.2
io.vavr : vavr-jackson jar 0.9.2
com.google.guava : guava jar 19.0
com.yahoo.datasketches : sketches-core jar 0.9.1
io.reactivex : rxjava jar 1.3.8

Project Modules

There are no modules declared in this project.

mantis-rxcontrol

Build Status Version OSS Lifecycle License

Design

PID

Clutch

Clutch is an autoscaling domain specific implementation for scaling stateless systems. Initially Clutch was designed to autoscale Mantis Kafka source jobs

Metric

Metric is an enum contained within the Clutch class allowing various systems to map their resource measurements into something Clutch understands.

Event

A pair of Metric and Double representing a measurement taken from the target system. For example new Event(Metric.CPU, 78.2) represents a measurement of 78.2% CPU usage. The Clutch systems will operate on an Observable<Event> stream.

ClutchConfigurator

The ClutchConfigurator class within the com.netflix.control.clutch namespace is responsible for consuming an Observable<Event> and producing an appropriate ClutchConfiguration instance for the taget system. Currently the configurator performs the following tasks;

  • Determines the appropriate metric for autoscaling from the set CPU, Memory, Network.
  • Determines the actual range of resource usage and autoscales using those as min/max.

In the near future this class will also be responsible for;

  • Adjusting configuration based on lag/drops.
  • Adjusting configuration based on oscillation.

Clutch

Clutch contained within the com.netflix.control.Clutch namespace is a wrapper around a PID controller containing domain specific knowledge / implementations for the task of autoscaling stateless systems. This class is currently responsible for;

  • Instantiating a ClutchConfigurator.
  • Attaching a ControlLoop which executes the autoscaling.
io.mantisrx

Netflix, Inc.

Netflix Open Source Platform

Versions

Version
1.3.17
1.3.16
1.3.15
1.3.14
1.3.13
1.3.10
1.3.9
1.3.8
1.3.7
1.3.6
1.3.5
1.3.4
1.3.3
1.3.0
1.2.1