The LampStealer app for Hue does not work with newer versions of the bridge, as the API has changed. This shell script works with fewer dependencies and achieves the same. Install jq and run the shell script after pushing the big button on the bridge.
During the course of normal usage, your DC/OS cluster may accumulate Docker images and containers on the public and private agents. (Especially if you run CI workflows for Docker images in your cluster, or your microservices are frequently spinning up & down with new container instances.) By default, Docker caches each image version and container instance on the executing node so it can quickly rehydrate stopped containers or deploy new instances. Eventually this process will fill the entire disk.
This Gist will walk you through the process of cleaning out these cached images/containers from your public and private agents, using a specially-configured Marathon app.
- You'll need the private SSH key corresponding to the public key that is authorized with your DC/OS cluster.
Without developer intervention, machine resources in a DC/OS environment are finite. Each containerized service in a DC/OS + Marathon cluster needs a certain amount of resources in order to run properly. As more and more services are deployed to a cluster, resource contention becomes a real concern. Eventually, resources will become so scarse that services will fail to deploy/scale at all! This is true for any microservice environment.
This Gist will show you how to identify Marathon services that are likely resource-starved, and provides some common steps for resolving this state.
/// <summary>
/// Returns an enumerable that excludes elements from the second enumerable where the key selectors produce a match
/// </summary>
public static IEnumerable<X> Except<X, Y, Z>(this IEnumerable<X> first, IEnumerable<Y> second, Func<X, Z> firstSelector, Func<Y, Z> secondSelector, IEqualityComparer<Z> equalityComparer = null)
{
ILookup<Z, Y> secondLookup;
if (equalityComparer == null)
{
secondLookup = second.ToLookup(s => secondSelector(s));
* text=auto | |
# Make sure bash scripts get checked out with correct line endings | |
*.sh text eol=lf |