Getting Started with the Agent

To get started using the Agent, please select your platform on the sidebar to the left.

What is the Agent?

The StackState Agent is a piece of software that runs on your hosts. Its job is to faithfully collect events and metrics and bring them to StackState on your behalf so that you can do something useful with your monitoring and performance data.

The source code for the StackState Agent can be found here.

For information on running the Agent through a proxy please see here; for which ranges to allow, please see here.

The Agent has three main parts: the collector, stsstatsd, and the forwarder.

  • The collector runs checks on the current machine for whatever integrations you have and it will capture system metrics like memory and CPU.
  • Stsstatsd is a statsd backend server you can send custom metrics to from an application.
  • The forwarder retrieves data from both the collector and stsstatsd and then queues it up to be sent to StackState.
This is all controlled by one supervisor process. We keep this separate so you don’t have to have the overhead of each application if you don’t want to run all parts (though we generally recommend you do).

Configuring the Agent

The main agent configuration file is /etc/sts-agent/stackstate.conf. There are two critical options that need to be configured to get the agent working. These are the StackState URL and the API key.

Configuring the StackState URL

The agent sends topology and telemetry to the StackState server. The server endpoint where the data is sent must be configured in the agent configuration file. For example:

dd_url: http://stackstate:7077/stsAgent/

Configuring HTTPS

The agent can also be configured to send data over HTTPS.

dd_url: https://stackstate:7077/stsAgent/

StackState server must be configured to use HTTPS separately. This can be achieved by configuring a reverse proxy.

In addition to configuring the agent to use HTTPS, Connbeat, part of the agent responsible for detecting connections, requires a separate configuration. The file /etc/sts-agent/connbeat.yml contains the Connbeat configuration. Enabling HTTPS for Connbeat requires the following instructions:

output:
  http:
    hosts: ["https://stackstate:443/stsAgent/connbeat?api_key=none"]
    compression_level: 6
    protocol: "https"
    tls:
      enabled: true

NOTE: the HTTPS URL in the configuration above requires an explicit port number.

Configuring the API key

The agent communicates with the StackState server specifying a unique API key. The server is configured to only allow incoming data from a particular key. The API key used by the agent must be configured in the agent configuration file. For example:

api_key: 84plNZkEuxaQu1X5FMzC933tv2EgZKGg

Server: file APIKEY

Troubleshooting

Issues getting the Agent installed

If you encountered an issue during the Agent installation that prevented any installation whatsoever from occurring, please reach out to our technical support. Please let us know your OS and version, as well as how you are installing the Agent (and which agent version). Also, please include the errors you encountered along the way.

Issues getting the Agent reporting

If you get the Agent installed but are not seeing any data in StackState, you can troubleshoot in the following manner. First, run the info command. Select your OS in the nav column on the left of this page to see how to run this. Does running the info command show any errors?

If not, you should also check the logs (location of the logs again depends on OS). Errors in the logs may also reveal the cause of any issues.

If not, please send both the full output of the info command and the logs as attachments to our technical support.

Check your machine's time

We have also seen a few cases where machines have their clock set further in the future or the past, which can sometimes cause problems with metric submission. Make sure the clock on the machine StackState is running and metrics are collected are properly synced.

Issues getting integrations working

StackState has quite a few integrations which are set up through YAML files in the Agent.

Here is a quick guide for troubleshooting getting integrations installed:

  1. Run the info command (find this based on your OS in the left column above).

  2. Is the integration showing up in the info command?

    • No, it’s not.
      • Check the configuration file, make sure it is in the right location and named correctly.
      • Check it in a YAML parser to make sure it has the correct syntax. Example files can be found here.
      • If you moved or changed the file, restart the Agent and then rerun the info command to see if it is now showing up.
    • Yes, it’s there.
      • Check the logs for errors and please send them along, with the info command output, to our technical support.