Agent checks are Python scripts that are periodically executed by an agent. They are an easy way to periodically pull data (i.e. polling) from the system you are integrating with and push it to StackState.
Agent checks are typically the easiest way to create an integration with StackState, but it is not the only way to integrate with StackState and may not necessarily be the best way. An integration via an agent check means that the user of the integration will have to run at least one agent in their environment that can access the system to integrate and that data will be polled periodically instead of streamed directly.
Alternative integrations to the agent check are dependent on the system under integration, so there is no generic documentation available for alternatives. An example of an alternative integration are the AWS and Azure integration that use serverless functions to push data reactively to StackState.
Agent checks are deployed and configured alongside the agent using a provisioning tool used by the customer. Typically an agent check is meant for one of two ways of deployment:
When building an agent check you have to consider how you want your agent check to be deployed based on concerns like performance, cost, latency, security, reliability, etc.
In some cases you may even want to build two agent checks, one for each types of deployment. The StackState Kubernetes integration is a good example of this; it gather both low-level telemetry, process information and network connections through an agent check build for deployment model No. 1 and gathers high-level telemetry and service-level topology information via an agent check build for deployment model No. 2.