strum

command module
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2016 License: MPL-2.0 Imports: 12 Imported by: 0

README

STRUM

GoDoc

Introduction

STRUM is a Cloud and Container aware diagnostics that uses Machine Learning to help figure out issues with your infrastructure.

Quick Start

Download STRUM

STRUM outputs its data in JSON to the command line. Run the following command:

sudo strum output

STRUM primarily runs as a daemon which regularily pushes diagnostics to a central server. Acksin runs STRUM Cloud providing this capability. Check out config.json.template for agent configuration.

$un the following:

sudo strum agent config.json

Getting Started & Documentation

All documentation is on the STRUM website.

Developing STRUM

STRUM's command line portion is primarily written in Go whereas the Machine Learning is written in Python. We will go over how to code for each part.

Primary Dependencies

One of the primary dependencies of STRUM is the ProcFS Library we use. Any code that needs to read from ProcFS should go there and we will primarily code there for things. In the future we will have similar dependencies for SysFS. In addition to that we use the Go libraries provided by the Cloud providers.

Goals

STRUM is based around the work of John Boyd with his Observe Orient Decide and Act paradigm, also called the OODA loop.

UNIX has traditionally been very much about composition of tools which works exceedingly well when you have a single machine with multiple services. However, we are now in the era of Linux as applicance. Linux is now just a single layer with one or two apps being the main users of the operating system. Furthermore, as we go up the stack with Containers and maintain clusters instead of individual machines we need to know how one service affects the others.

OODA

Situational awareness

STRUM's goal is to be situationally aware about the Containers, the System, the Cluster and the Cloud so that it can help you make effective decisions. By keeping track of this various information about the cluster we can help point you to potential issues. STRUM is not trying to replace application level instrumentation such as Graphite and Datadog. Our tools are at the system level.

Mental Models

Mental Models are how a system and a cluster should behave such that there is minimal operational issues. Mental Models are kernel changes as well as various feature columns that are used to train the Machine Learning Algorithms.

This data is contained in the ai/mental_models directory.

License

Copyright (C) 2016 Acksin hey@acksin.com

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
disk
Package disk shows information about block drives in the machine.
Package disk shows information about block drives in the machine.
io
memory
Package memory provides sanatized information about for Linux Memory - http://superuser.com/questions/521551/cat-proc-meminfo-what-do-all-those-numbers-mean - https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-meminfo.html
Package memory provides sanatized information about for Linux Memory - http://superuser.com/questions/521551/cat-proc-meminfo-what-do-all-those-numbers-mean - https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-meminfo.html
mvp
Package mvp contains a bunch of code which is a minimum viable product.
Package mvp contains a bunch of code which is a minimum viable product.

Jump to

Keyboard shortcuts

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