The present repository contains the source code of the StackState Agent version 6.
The general documentation of the project, including instructions for installation and development, is located under the docs directory of the present repo.
To build the Agent you need:
- Go 1.11.5 or later.
- Python 2.7 along with development libraries.
- Python dependencies. You may install these with
pip install -r requirements.txt
This will also pull in Invoke if not yet installed.
Note: you may want to use a python virtual environment to avoid polluting your
system-wide python environment with the agent build/dev dependencies. By default, this environment is only used for dev dependencies listed in requirements.txt
, if you want the agent to use the virtual environment's interpreter and libraries instead of the system python's ones,
add --use-venv
to the build command.
Note: You may have previously installed invoke
via brew on MacOS, or pip
in
any other platform. We recommend you use the version pinned in the requirements
file for a smooth development/build experience.
Builds and tests are orchestrated with invoke
, type invoke --list
on a shell
to see the available tasks.
To start working on the Agent, you can build the master
branch:
- checkout the repo:
git clone https://github.com/StackVista/stackstate-agent.git $GOPATH/src/github.com/StackVista/stackstate-agent
. - cd into the project folder:
cd $GOPATH/src/github.com/StackVista/stackstate-agent
. - install project's dependencies:
invoke deps
. Make sure that$GOPATH/bin
is in your$PATH
otherwise this step might fail. - build the whole project with
invoke 8000 agent.build --build-exclude=snmp,systemd
(with--use-venv
to use a python virtualenv)
Please refer to the Agent Developer Guide for more details.
To start the agent type agent run
from the bin/agent
folder, it will take
care of adjusting paths and run the binary in foreground.
You need to provide a valid API key. You can either use the config file or overwrite it with the environment variable like:
STS_API_KEY=12345678990 ./bin/agent/agent -c bin/agent/dist/stackstate.yaml
You'll find information and help on how to contribute code to this project under
the docs/dev
directory of the present repo.
To install the official release:
$ curl -o- https://stackstate-agent-2.s3.amazonaws.com/install.sh | STS_API_KEY="xxx" STS_URL="yyy" bash
or
$ wget -qO- https://stackstate-agent-2.s3.amazonaws.com/install.sh | STS_API_KEY="xxx" STS_URL="yyy" bash
If you wanna install a branch version use the test repository:
$ curl -o- https://stackstate-agent-2-test.s3.amazonaws.com/install.sh | STS_API_KEY="xxx" STS_URL="yyy" CODE_NAME="PR_NAME" bash
or
$ wget -qO- https://stackstate-agent-2-test.s3.amazonaws.com/install.sh | STS_API_KEY="xxx" STS_URL="yyy" CODE_NAME="PR_NAME" bash
and replace PR_NAME
with the branch name (e.g. master
, STAC-xxxx
).
$ docker pull docker.io/stackstate/stackstate-agent-2:latest
$ docker pull docker.io/stackstate/stackstate-agent-2-test:latest
To install the official release:
$ . { iwr -useb https://stackstate-agent-2.s3.amazonaws.com/install.ps1 } | iex; install -stsApiKey "xxx" -stsUrl "yyy"
If you wanna install a branch version use the test repository:
$ . { iwr -useb https://stackstate-agent-2-test.s3.amazonaws.com/install.ps1 } | iex; install -stsApiKey "xxx" -stsUrl "yyy" -codeName "PR_NAME"
and replace PR_NAME
with the branch name (e.g. master
, STAC-xxxx
).
Other arguments can be passed to the installation command.
Linux arguments:
STS_HOSTNAME
= Instance hostname$HOST_TAGS
= Agent host tags to use for all topology component (by defaultos:linux
will be added)SKIP_SSL_VALIDATION
= Skip ssl certificates validation when talking to the backend (defaults tofalse
)STS_INSTALL_ONLY
= Agent won't be automatically started after installation
Windows arguments:
hostname
= Instance hostnametags
= Agent host tags to use for all topology component (by defaultos:windows
will be added)skipSSLValidation
= Skip ssl certificates validation when talking to the backend (defaults tofalse
)agentVersion
= Version of the Agent to be installed (defaults tolatest
)