Local
The qpoint.yaml
file is used to configure Qtap. This guide explains how to create, deploy, and maintain a local configuration file for Qtap.
Configuration File Structure
The qpoint.yaml
file consists of four main sections:
Version and Global Settings
Service Configurations (event stores and object stores)
Stacks (plugin collections)
Traffic Capture Rules
Here's the basic structure:
Creating a Basic Configuration
Let's walk through creating a simple configuration file step by step.
Step 1: Set Version
Start by setting the configuration version:
Step 2: Configure Data Storage
Next, define where captured data will be stored:
This configuration:
Outputs events (connection metadata) to the console for debugging
Stores objects (request/response content) in a locally running MinIO S3-compatible store
Uses environment variables for S3 credentials (recommended for security)
Step 3: Set Up Processing Plugins
Define how captured data will be processed:
This configuration:
Creates a stack named "default_stack" with two plugins
The debug plugin provides summary-level debug information
The detect_errors plugin captures detailed information for 5xx server errors
Step 4: Configure Traffic Capture
Finally, set up what traffic to capture and how to process it:
This configuration:
Captures all outgoing (egress) traffic
Includes loopback traffic
Includes DNS information in audit logs
Applies the default_stack to HTTP traffic
Complete Example
Putting it all together:
Deploying with Local Configuration
To use your local configuration file with Qtap, you'll need to pass it to the agent during startup.
Docker Deployment
This command:
Mounts your current directory to
/app/config
in the containerSets required environment variables for S3 credentials
Specifies the path to your configuration file with the
--config
flag
Kubernetes Deployment
For Kubernetes, you'll need to create a ConfigMap with your configuration:
Then reference it in your Helm values:
Binary Deployment
If you're running the Qpoint binary directly:
Configuration Sections in Detail
Event Stores
Event stores handle anonymized metadata about connections, such as timestamps, bandwidth usage, and basic request/response information.
Available event store types:
stdout
: Outputs events to the console (useful for debugging)pulse
: Sends events to a Qpoint Pulse service (usually for cloud-connected mode)
Object Stores
Object stores handle actual request and response content, including headers and bodies, which may contain sensitive information.
S3-compatible storage options require:
endpoint
: The hostname:port for the S3 servicebucket
: The S3 bucket nameregion
: The S3 region (if no region, use us-east-1)access_url
: Template URL for accessing stored objectsinsecure
: Whentrue
, allows insecure (HTTP) connectionsaccess_key
andsecret_key
: Authentication credentials
Stacks and Plugins
Stacks are collections of plugins that define how Qtap processes captured traffic.
Common plugins include:
Debug Plugin
Controls how much information is logged for debugging:
Error Detection Plugin
Configures when to capture detailed information based on response status:
Status codes can be:
Individual codes:
'404'
,'500'
Code ranges:
'4xx'
,'5xx'
Traffic Capture Settings
The tap
section controls what traffic is captured and how it's processed.
Key settings:
direction
: Controls which traffic is capturedall
: All trafficingress
: Only incoming trafficegress
: All outgoing trafficegress-external
: Only traffic to external networksegress-internal
: Only traffic within internal networks
ignore_loopback
: Whentrue
, excludes traffic on the loopback interfaceaudit_include_dns
: Whentrue
, includes DNS information in audit logsfilters
: Controls which processes to monitorgroups
: Process groups to include
endpoints
: Domain-specific rulesdomain
: The domain pattern to matchhttp.stack
: The stack to apply for matching traffic
Advanced Configuration
Credential Management
For security reasons, it's best to use environment variables for sensitive values:
This approach keeps credentials out of configuration files and allows for easier rotation.
Multiple Stacks for Different Traffic
You can create multiple stacks for different types of traffic:
This configuration applies detailed monitoring to payment processor traffic while using summary-level monitoring for everything else.
Validating Configuration
Before deploying, validate your configuration file:
This command checks for syntax errors and configuration problems.
Troubleshooting
If you encounter issues with your configuration:
Check Syntax: Ensure your YAML is correctly formatted
Validate Config: Use the validation command shown above
Increase Logging: Set the debug plugin to "details" mode
Console Output: Use a stdout event store to see events in real-time
Check Environment Variables: Ensure all referenced environment variables are set
Common Configuration Patterns
Development Setup
This configuration provides maximum visibility for development.
Last updated