SigNoz
Docs
PricingCustomers
Get Started - Free
Docs
IntroductionContributingMigrate from DatadogSigNoz API
OpenTelemetry
What is OpenTelemetryOpenTelemetry Collector GuideOpenTelemetry Demo
Community
Support
Slack
X
Launch Week
Changelog
Dashboard Templates
DevOps Wordle
Newsletter
KubeCon, Atlanta 2025
More
SigNoz vs DatadogSigNoz vs New RelicSigNoz vs GrafanaSigNoz vs Dynatrace
Careers
AboutTermsPrivacySecurity & Compliance
SigNoz - Open Source Datadog Alternative
SigNoz
All systems operational
HIPAASOC-2
  1. Docs
  2. AWS Monitoring
  3. Monitor Amazon SQS with SigNoz

Monitor Amazon SQS with SigNoz

SigNoz Cloud - This page applies to SigNoz Cloud editions.
Self-Host - This page applies to self-hosted SigNoz editions.

Overview

Amazon Simple Queue Service (SQS) is a fully managed message queuing service. SigNoz helps you monitor queue depth, message age, and throughput.

Prerequisites

  • AWS account with appropriate permissions
  • SigNoz Cloud account or Self-Hosted SigNoz

One-Click Integration

One-Click Integration is available for SigNoz Cloud only and includes pre-built dashboards. This method uses AWS CloudFormation and CloudWatch, which may incur additional AWS charges.

Step 1: Connect Your AWS Account

Follow the One-Click AWS Integrations Guide to:

  1. Deploy the CloudFormation stack
  2. Connect your AWS account to SigNoz

Step 2: Enable SQS Monitoring

Once connected, SigNoz will auto-discover your SQS queues and begin collecting CloudWatch metrics.

What's Collected

MetricDescription
ApproximateNumberOfMessagesVisibleMessages available for retrieval
ApproximateNumberOfMessagesNotVisibleMessages in flight
ApproximateNumberOfMessagesDelayedDelayed messages
ApproximateAgeOfOldestMessageAge of oldest message
NumberOfMessagesSentMessages sent to queue
NumberOfMessagesReceivedMessages received from queue
NumberOfMessagesDeletedMessages deleted

Pre-built Dashboards

Navigate to Dashboards and search for "SQS" to find automatically imported dashboards.

Manual Setup (SQS Exporter)

Manual setup works for both SigNoz Cloud and Self-Hosted.

This guide uses the SQS Exporter, a Prometheus exporter that queries SQS directly (not via CloudWatch). This approach is simpler, more cost-effective, and provides real-time queue metrics.

Prerequisites

Before proceeding, ensure you have:

  • OpenTelemetry Collector installed and configured. See Get Started with OTel Collector.
  • Docker installed on the host machine.
  • AWS credentials configured via environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION), IAM role, or instance profile.
  • IAM permissions for the credentials:
    • sqs:ListQueues
    • sqs:GetQueueAttributes

Where to Run the SQS Exporter

The SQS Exporter should run on a machine that:

  1. Has network access to AWS SQS APIs.
  2. Has AWS credentials configured.
  3. Is network-accessible from your OpenTelemetry Collector.

For SigNoz Cloud users, run the exporter on any EC2 instance, VM, or container with AWS credentials. The OTel Collector on the same host will forward metrics to SigNoz Cloud.

For Self-Hosted users, run the exporter on the same host as your OTel Collector, or ensure network connectivity between them.

Step 1: Run the SQS Exporter

Run the SQS Exporter as a Docker container:

docker run -d \
  --name sqs-exporter \
  -p 9384:9384 \
  -e AWS_ACCESS_KEY_ID=<your-access-key> \
  -e AWS_SECRET_ACCESS_KEY=<your-secret-key> \
  -e AWS_REGION=<aws-region> \
  jmal98/sqs-exporter:0.2.0

Verify these values:

  • <your-access-key>: Your AWS access key ID.
  • <your-secret-key>: Your AWS secret access key.
  • <aws-region>: Your AWS region where SQS queues are deployed (e.g., us-east-1, eu-west-1, ap-south-1).

By default, the exporter monitors all SQS queues visible to the AWS account. To filter specific queues, use one of these environment variables:

  • SQS_QUEUE_NAMES: Comma-separated list of queue names (e.g., queue1,queue2)
  • SQS_QUEUE_NAME_PREFIX: A single queue name prefix to match
  • SQS_QUEUE_URLS: Comma-separated list of full queue URLs

Example with queue name filter:

docker run -d \
  --name sqs-exporter \
  -p 9384:9384 \
  -e AWS_ACCESS_KEY_ID=<your-access-key> \
  -e AWS_SECRET_ACCESS_KEY=<your-secret-key> \
  -e AWS_REGION=<aws-region> \
  -e SQS_QUEUE_NAME_PREFIX=prod- \
  jmal98/sqs-exporter:0.2.0

If running on an EC2 instance with an IAM role, you can omit the AWS credential environment variables. The exporter will use the instance profile credentials automatically.

Verify the exporter is running by checking the metrics endpoint:

curl http://localhost:9384/metrics | grep sqs_

You should see metrics like:

  • sqs_approximatenumberofmessages – Messages available for retrieval
  • sqs_approximatenumberofmessagesdelayed – Messages waiting to be available
  • sqs_approximatenumberofmessagesnotvisible – Messages currently being processed (in-flight)

Step 2: Configure OpenTelemetry Collector

  1. Add Prometheus Receiver

    Add the following prometheus receiver to your otel-collector-config.yaml to scrape the SQS Exporter:

    otel-collector-config.yaml
    receivers:
      prometheus:
        config:
          scrape_configs:
            - job_name: 'aws-sqs'
              scrape_interval: 60s
              static_configs:
                - targets: ['<exporter-host>:9384']
    

    Replace <exporter-host> with the IP/hostname where the SQS Exporter is running (use localhost if on the same machine).

  2. Add Resource Processor

    The dashboard requires a deployment.environment label to filter metrics. Add this resource processor to tag your metrics:

    otel-collector-config.yaml
    processors:
      resource/env:
        attributes:
          - key: deployment.environment
            value: production  # Replace with your environment name
            action: upsert
    
  3. Update Pipeline

    Enable both the prometheus receiver and the resource/env processor in your metrics pipeline:

    otel-collector-config.yaml
    service:
      pipelines:
        metrics:
          receivers: [otlp, prometheus]
          processors: [resource/env, batch]
          exporters: [otlp]
    

Append the receivers and processors blocks to your existing configuration. For the service pipeline, update your existing metrics pipeline to include the new components.

Restart your OpenTelemetry Collector to apply the changes.

Validate

To confirm that SQS metrics are flowing to SigNoz:

  1. Import the Dashboard: Navigate to AWS SQS Prometheus Dashboard and Import Dashboard.
  2. Verify Metrics: Open the imported dashboard. You should see charts populated with data like queue depth and message age.
  3. Alternative - Query Builder:
    • Go to Dashboards → New Dashboard → New Panel.
    • Search for metrics starting with sqs_ (e.g., sqs_approximatenumberofmessages).
    • Verify that metrics have queue_name labels matching your SQS queues.

If the dashboard is populated or you see metrics in the query builder, your setup is working correctly.

What's Collected

MetricDescription
sqs_approximatenumberofmessagesMessages available for retrieval from the queue
sqs_approximatenumberofmessagesdelayedMessages waiting to be added to the queue
sqs_approximatenumberofmessagesnotvisibleMessages currently being processed (in-flight)

Pre-built Dashboard

Import the AWS SQS Prometheus Dashboard for a comprehensive view of your SQS queues:

  • AWS SQS Prometheus Dashboard

This dashboard provides queue health monitoring, message flow analysis, and multi-environment support.

Next Steps

Once SQS metrics are flowing to SigNoz, you can:

  • Set up alerts for critical metrics like queue depth or message age. See Alerts.
  • Create dashboards to visualize SQS performance. See Dashboards.

Last updated: May 27, 2026

Edit on GitHub

Was this page helpful?

Your response helps us improve this page.

Prev
SNS
Next
VPC
On this page
Overview
Prerequisites
One-Click Integration
Step 1: Connect Your AWS Account
Step 2: Enable SQS Monitoring
What's Collected
Pre-built Dashboards
Manual Setup (SQS Exporter)
Prerequisites
Where to Run the SQS Exporter
Step 1: Run the SQS Exporter
Step 2: Configure OpenTelemetry Collector
Validate
What's Collected
Pre-built Dashboard
Next Steps

Is this page helpful?

Your response helps us improve this page.