Smith (Agent Smith) GitHub release (latest SemVer)

Smith, also known as Agent Smith, is Teton's Fleet Management System. It provides automation to easily deploy and monitor applications at scale.

Architecture

Smith consists of three main components:

  • Smith API: Backend service that manages deployment configurations and fleet status.
  • SmithD: Daemon process that runs on each node in the fleet to execute deployments and report status back to the API.
  • Smith CLI (sm) Command Line Interface to interact with the Smith API as a Fleet administrator.

LICENSE

The Smith source and documentation are released under the Apache License 2.0

Getting Started

Installing the Smith CLI (Command Line Interface)

Download and install

Let's install sm the Smith CLI (Command Line Interface) on your system using the terminal commands below.

curl -fsSL https://docs.smith.teton.ai/install.sh | sh

Testing your installation

After installing the sm CLI, you can test your installation by running the following command:

sm --version

Use sm help to see help text documenting Smith's flags and usage.

Integrations

The smith-api includes several pre-built integrations that can be easily configured to enhance your application.

Available Integrations

These integrations are optional and can be enabled by setting specific environment variables in your deployment configuration.

Sentry API Error Reporting

Purpose: Provides real-time error tracking and monitoring for your API.

Configuration:

  • Set the SENTRY_URL environment variable with your Sentry DSN (Data Source Name)
  • Example: SENTRY_URL=https://abc123@sentry.io/123456

Benefits:

  • Automatically captures and reports API exceptions
  • Tracks performance issues
  • Provides detailed error context for faster debugging

Slack Notifications

Purpose: Sends automated notifications to your Slack workspace when important events occur.

Configuration:

  • Set the SLACK_HOOK_URL environment variable with your Slack Incoming Webhook URL
  • Example: SLACK_HOOK_URL=https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Benefits:

  • Real-time alerts when new devices register with the API
  • Keep your team informed of system activity
  • Customize notification content in Slack's webhook settings

Victoria Metrics

Purpose: Time-series database and monitoring solution for collecting and visualizing API metrics.

Configuration:

  • Set the VICTORIA_METRICS_URL environment variable with your Victoria Metrics instance URL
  • Set the VICTORIA_METRICS_AUTH_TOKEN environment variable with your authentication token
  • Example:
    VICTORIA_METRICS_URL=https://your-vm-instance.example.com
    VICTORIA_METRICS_AUTH_TOKEN=your-auth-token
    

Benefits:

  • High-performance metrics collection
  • Long-term storage of monitoring data
  • Compatible with Prometheus querying and visualization tools

Implementation Example

Add these environment variables to your deployment configuration:

# Error Reporting
SENTRY_URL=https://your-sentry-dsn

# Event Notifications
SLACK_HOOK_URL=https://hooks.slack.com/services/your-webhook-url

# Metrics and Monitoring
VICTORIA_METRICS_URL=https://your-vm-instance.example.com
VICTORIA_METRICS_AUTH_TOKEN=your-auth-token

Additional Information

For more details on configuring these integrations or for troubleshooting, refer to each provider's documentation linked above.