• Stars
    star
    682
  • Rank 66,258 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 11 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Orchestration of Docker-based, multi-host environments

MaestroNG

Build Status Docs

MaestroNG is an orchestrator of Docker-based, multi-hosts environments.

The original Maestro was developed as a single-host orchestrator for Docker-based deployments. Given the state of Docker at the time of its writing, it was a great first step towards orchestration of deployments using Docker containers as the unit of application distribution.

Docker having made significant advancements since then, deployments and environments spanning across several hosts are becoming more and more common and are in the need for some orchestration.

Based off ideas from the original Maestro and taking inspiration from Docker's links feature, MaestroNG makes the deployment and control of complex, multi-host environments using Docker containers possible and easy to use. Maestro of course supports declared dependencies between services and makes sure to honor those during environment bring up.

What is Maestro?

MaestroNG is, for now, a command-line utility that allows for automatically managing the orchestrated deployment and bring up of a set of service instance containers that compose an environment on a set of target host machines.

Each host machine is expected to run a Docker daemon. Maestro will then contact the Docker daemon of each host in the environment to figure out the status of the environment and what actions to take based on the requested command.

Dependencies

MaestroNG requires Docker 0.6.7 or newer on the hosts as it makes use of the container naming feature and bug fixes in NAT port forwarding.

You'll also need the following Python modules, although these will be automatically installed by setuptools if you follow the instructions below.

  • A recent docker-py
  • PyYAML (you may need to install this manually, e.g. apt-get install python-yaml)
  • Jinja2
  • Python Requests
  • bgtunnel
  • six

If you plan on using the HipChat auditor, you'll also need python-simple-hipchat.

Installation

Maestro is distributed on the Python Package Index. You can install Maestro via Pip:

$ pip install --user --upgrade maestro-ng

If you want the bleeding edge, you can install directly from the Git repository:

$ pip install --user --upgrade git+git://github.com/signalfx/maestro-ng

Note for MacOS users

The above command may fail if you installed Python and pip via Homebrew, usually with the following error message:

error: can't combine user with prefix, exec_prefix/home, or install_(plat)base

This is because the Homebrew formula for pip configures distutils with an installation prefix, and this cannot be combined with the use of the --user flag, as describe in https://github.com/Homebrew/homebrew/wiki/Homebrew-and-Python#note-on-pip-install---user.

If you encounter this problem, simply install the package without the --user flag:

$ pip install --upgrade git+git://github.com/signalfx/maestro-ng

Use as a Docker container

First, build your maestro-ng image using :

docker build -t maestro-ng .

Then say you have a maestro-ng configuration named /fu/bar/myconf.yml

If you want to start this on a docker host without install python and its pip modules :

docker run --rm -t -i -v /fu/bar/myconf.yml:/maestro.yaml maestro-ng <start/stop/status/clean>

or, if the myconf.yml is in the current dir :

docker run --rm -t -i -v $(pwd)/myconf.yml:/maestro.yaml maestro-ng <start/stop/status/clean>

Documentation

The MaestroNG documentation is available on ReadTheDocs. For a overview of recent changes, see the ChangeLog.

License

MaestroNG is licensed under the Apache License, Version 2.0. See LICENSE for full license text.

More Repositories

1

splunk-otel-collector

Go
191
star
2

integrations

SignalFx integrations metadata
Python
144
star
3

signalfx-agent

The SignalFx Smart Agent
Go
120
star
4

splunk-otel-collector-chart

Splunk OpenTelemetry Collector for Kubernetes
Smarty
119
star
5

gateway

A proxy to buffer and forward metrics, events, and traces.
Go
97
star
6

swagger-angular-client

AngularJS service for communicating with endpoints described by swagger.
JavaScript
78
star
7

docker-zookeeper

Docker image for ZooKeeper (Maestro orchestration)
Python
69
star
8

golib

Golib contains various useful golang libraries
Go
66
star
9

splunk-otel-java

Splunk Distribution of OpenTelemetry Java
Java
63
star
10

docker-collectd

Collectd within a Docker image
Shell
58
star
11

tracing-examples

Examples of using third-party tracers with SignalFx
PHP
53
star
12

splunk-otel-js-web

Splunk distribution of Open Telemetry for browser environment.
TypeScript
49
star
13

splunk-otel-go

Splunk Distribution of OpenTelemetry Go
Go
47
star
14

signalfx-python

Python client library and instrumentation bindings for SignalFx
Python
43
star
15

splunk-otel-python

Splunk distribution of OpenTelemetry Python
Python
39
star
16

signalfx-java

Java client libraries for SignalFx
Java
37
star
17

splunk-otel-android

Android RUM library and instrumentation
Java
37
star
18

swagger-cli-client

Generates a command-line interface for any Swagger Specification
JavaScript
36
star
19

swagger-client-generator

Automatically generate an api object from a given swagger 1.2 schema
JavaScript
35
star
20

signalflow-library

Modules and Examples of SignalFlow usage
Shell
32
star
21

signalfx-dotnet-tracing

Automatic instrumentations for popular .NET libraries and frameworks. (Deprecated)
C#
32
star
22

fetch-swagger-schema

Given a url to a swagger api-docs spec, loads it and all related resource declarations as one JSON object.
JavaScript
30
star
23

splunk-otel-ios

iOS RUM library and instrumentation
Swift
23
star
24

swagger-validate

Detailed validation of objects against a given swagger model
JavaScript
22
star
25

signalfx-nodejs-tracing

OpenTracing-compatible Auto-Instrumentor for Node.js
JavaScript
21
star
26

splunk-otel-js

Splunk Distribution of OpenTelemetry JavaScript
TypeScript
21
star
27

signalfx-nodejs

Node.js client library for SignalFx
JavaScript
21
star
28

signalfx-python-tracing

OpenTracing-compatible Auto-Instrumentor for Python
Python
20
star
29

apmworkshop

19
star
30

signalfx-php-tracing

OpenTracing-compatible Auto-Instrumentor for PHP (Deprecated)
PHP
18
star
31

splunk-otel-react-native

Java
17
star
32

signalfx-jumpstart

POC in a Box
HCL
17
star
33

swagger-ajax-client

Create XHR clients for Swagger API Specifications
JavaScript
16
star
34

terraform-signalfx-slx

Best practices SLI, SLO and error budget monitoring, visualization and more for organizations using SignalFx
HCL
16
star
35

lambda-python

SignalFx AWS Lambda Python Wrapper
Python
15
star
36

signalflow-cli

Python command-line client for SignalFx SignalFlowâ„¢ Analytics
Python
14
star
37

signalfx-go

Go client library and instrumentation bindings for SignalFx
Go
14
star
38

signalfx-go-tracing

Go
13
star
39

collectd-zookeeper

CollectD plugin for ZooKeeper metrics
Python
13
star
40

otelworkshop

Shell
13
star
41

swagger-node-client

Create clients for Swagger API Specifications.
JavaScript
10
star
42

lambda-nodejs

SignalFx AWS Lambda Node.js Wrapper
JavaScript
10
star
43

ruby-rails-instrumentation

OpenTracing instrumentation for Rails
Ruby
10
star
44

signalfx-k8s-metrics-adapter

Horizontal Pod Autoscaler custom/external metrics provider for Kubernetes that uses SignalFx as the backend
Go
10
star
45

splunk-otel-collector-operator

Kubernetes Operator for OpenTelemetry Collector
Go
10
star
46

python-celery

OpenTracing instrumentation for Celery
Python
9
star
47

splunk-forwarder

a custom search command to metricize Splunk logs
Python
9
star
48

signalfx-java-tracing

The SignalFx Java Agent
Java
9
star
49

lambda-layer-versions

8
star
50

app-dev-workshop

Files used for creation of workshop instances, useful tools and anything else!
8
star
51

grafana-signalfx-datasource

JavaScript
7
star
52

signalfx-istio-adapter

An Istio Mixer adapter for sending metrics and trace spans to SignalFx
Go
7
star
53

signalfx-collectd-plugin

SignalFx CollectD plugin
Python
7
star
54

splunk-otel-dotnet

Splunk Distribution of OpenTelemetry .NET
C#
7
star
55

enhanced-rds-monitoring

Lambda for enhanced AWS/RDS monitoring
Python
6
star
56

splunk-otel-collector-heroku

Shell
6
star
57

signalfx-ruby

Ruby client library for SignalFx
Ruby
6
star
58

collectd-build-ubuntu

Shell
5
star
59

splunk-otel-java-lambda

Splunk custom OTEL Java wrapper for AWS lambdas
Java
5
star
60

collectd-rabbitmq

collectd plugin for integration with rabbitmq
Python
5
star
61

splunk-otel-lambda

Splunk distribution of OpenTelemetry Lambda
Shell
5
star
62

s3-util

High-level S3 utilities
JavaScript
5
star
63

pyfilewatch

Watch files and directories in python. Also supports tailing and glob file patterns.
Python
4
star
64

terraform-workshop

Monitoring as code workshop
HCL
4
star
65

maestro-base

Base Docker image for Maestro-enabled components
Shell
4
star
66

signalfx-ruby-tracing

Automatic OpenTracing instrumentation for Ruby
Ruby
4
star
67

circleutil

Utility scripts for circleci
Go
4
star
68

kubectl-splunk

kubectl plugin for interacting with OpenTelemetry deployments
Go
4
star
69

collectd-jenkins

collectd based plugin for Jenkins
Python
3
star
70

aws-log-collector

AWS Lambda function which forwards AWS logs to Splunk Observability.
Python
3
star
71

kong-plugin-signalfx

Kong API Gateway metric aggregator for SignalFx
Lua
3
star
72

call-conduit

Programmatically call phabricator/conduit
JavaScript
3
star
73

signalfx-nodejs-collect

JavaScript
3
star
74

splunk-otel-java-overhead-test

Test tools to help quantify the overhead of the Java instrumentation agents.
Java
3
star
75

gdi-specification

Splunk GDI specification for cross-repository compatibility
Makefile
3
star
76

signalflow-grammar

SignalFx SignalFlow language grammar
ANTLR
3
star
77

sapm-proto

SAPM ProtoBuf
Go
3
star
78

collectd-kong

CollectD plugin for Kong API Gateway
Python
3
star
79

ruby-sequel-instrumentation

Ruby
3
star
80

PerfCounterReporter

Windows service for reporting Windows Performance Counters to SignalFx
C#
3
star
81

alert-assessor

SignalFx Alert Evaluation Tool
Python
3
star
82

puppet_collectd

A Puppet module to install collectd, configure plugins and send metrics
Python
2
star
83

ansible-signalfx-agent

Install and Configure the SignalFx Smart Agent. (Partial mirror of https://github.com/signalfx/signalfx-agent. Do not edit manually.)
2
star
84

aws-cloudformation-templates

CloudFormation templates describing AWS resources to deploy in user's AWS account when setting up AWS integration
Makefile
2
star
85

victorops-field-scripts

Scripts created by the field team utilizing the VictorOps API
Python
2
star
86

collectd-example

Python
2
star
87

Metrics.NET.SignalFx

SignalFx Reporter for Metrics.NET
C#
2
star
88

splunk-otel-ios-crashreporting

Swift
2
star
89

collectd-openstack

CollectdD plugin to monitor OpenStack cloud infrastructure
Python
2
star
90

cadvisor-integration

The SignalFx Metric Data Collector for Kubernetes
Go
2
star
91

replay

Python
2
star
92

splunk-extension-wrapper

Splunk Lambda Extension for Metrics
Go
2
star
93

collectd-couchbase

CollectD plugin for Couchbase metrics
Python
2
star
94

collectd-spark

collectd plugin for monitoring apache spark
Python
2
star
95

catchpoint-integration

How to integrate SignalFx and Catchpoint systems with regards to Synthetic Monitoring and RUM.
2
star
96

opentracing-python-patches

Python
2
star
97

lambda-java

SignalFx AWS Lambda Java Wrapper
Java
2
star
98

lambda-csharp

SignalFx AWS Lambda C# Wrapper
C#
2
star
99

signalfx-cloudfoundry-bridge-boshrelease

A BOSH release of our Cloud Foundry Metric Bridge
Makefile
2
star
100

splunk-otel-ruby

Splunk Distribution of OpenTelemetry Ruby [Deprecated]
Ruby
2
star