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 AWS API Gateway with SigNoz

Monitor AWS API Gateway with SigNoz

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

Overview

Amazon API Gateway is a fully managed service for creating and publishing APIs. SigNoz helps you monitor API performance, error rates, and latency.

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 API Gateway Monitoring

Once connected, SigNoz will auto-discover your API Gateway APIs and begin collecting:

  • CloudWatch Metrics: Request count, latency, error rates
  • Access Logs: (if enabled and published to CloudWatch)

What's Collected

Data TypeSourceExamples
MetricsCloudWatchCount, Latency, IntegrationLatency, 5XXError, CacheHitCount, CacheMissCount
LogsCloudWatch LogsAccess logs

Pre-built Dashboards

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

Manual Setup (CloudWatch Exporter)

Manual setup works for both SigNoz Cloud and Self-Hosted. You'll need to set up your own dashboards.

To collect API Gateway metrics manually, you can use the Prometheus CloudWatch Exporter. This tool scrapes metrics from AWS CloudWatch and exposes them in Prometheus format, which the OpenTelemetry Collector can then scrape and forward to SigNoz.

Prerequisites

Before proceeding, ensure you have:

  • OpenTelemetry Collector installed and configured. See Get Started with OTel Collector.
  • Java 11 or higher installed on the host machine (for JAR-based setup), or Docker (for container-based setup).
  • AWS credentials configured via environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY), IAM role, or ~/.aws/credentials.
  • IAM permissions for the credentials:
    • cloudwatch:ListMetrics
    • cloudwatch:GetMetricStatistics

Where to Run the CloudWatch Exporter

The CloudWatch Exporter should run on a machine that:

  1. Has network access to AWS CloudWatch 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: Create Configuration File

Create a file named api-gateway-metrics.yaml with the following configuration:

api-gateway-metrics.yaml
region: <aws-region>
metrics:
  - aws_namespace: AWS/ApiGateway
    aws_metric_name: Count
    aws_dimensions: [ApiName, Stage]
    aws_statistics: [Sum]

  - aws_namespace: AWS/ApiGateway
    aws_metric_name: Latency
    aws_dimensions: [ApiName, Stage]
    aws_statistics: [Average]
    aws_extended_statistics: [p99]

  - aws_namespace: AWS/ApiGateway
    aws_metric_name: IntegrationLatency
    aws_dimensions: [ApiName, Stage]
    aws_statistics: [Average]
    aws_extended_statistics: [p99]

  - aws_namespace: AWS/ApiGateway
    aws_metric_name: 4XXError
    aws_dimensions: [ApiName, Stage]
    aws_statistics: [Sum]

  - aws_namespace: AWS/ApiGateway
    aws_metric_name: 5XXError
    aws_dimensions: [ApiName, Stage]
    aws_statistics: [Sum]

Verify these values:

  • <aws-region>: Your AWS region where API Gateway APIs are deployed (e.g., us-east-1, eu-west-1, ap-south-1).

See example configurations for more service templates.

Step 2: Download and Run the Exporter

Download the CloudWatch Exporter JAR file using curl:

curl -LO https://repo1.maven.org/maven2/io/prometheus/cloudwatch/cloudwatch_exporter/0.16.0/cloudwatch_exporter-0.16.0-jar-with-dependencies.jar

Run the exporter with Java:

java -jar cloudwatch_exporter-0.16.0-jar-with-dependencies.jar 9106 api-gateway-metrics.yaml

This starts the exporter on port 9106.

Run the CloudWatch Exporter as a Docker container:

docker run -d \
  --name cloudwatch-exporter \
  -p 9106:9106 \
  -v $(pwd)/api-gateway-metrics.yaml:/config/config.yml \
  -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
  -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
  prom/cloudwatch-exporter

Replace the AWS credential environment variables with your actual credentials or use an IAM role if running on EC2.

Verify the exporter is running by checking the metrics endpoint:

curl http://localhost:9106/metrics | grep aws_apigateway

You should see metrics like aws_apigateway_count_sum, aws_apigateway_latency_average, etc.

Step 3: Configure OpenTelemetry Collector

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

otel-collector-config.yaml
receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: 'api-gateway-cloudwatch'
          scrape_interval: 60s
          static_configs:
            - targets: ['<exporter-host>:9106']

Verify these values:

  • <exporter-host>: The hostname or IP where the CloudWatch Exporter is running. Use localhost if running on the same machine.

Enable the prometheus receiver in your metrics pipeline by updating the service section:

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

Append these configurations to your existing otel-collector-config.yaml. Do not replace your entire configuration file.

Restart your OpenTelemetry Collector to apply the changes.

Validate

To confirm that API Gateway metrics are flowing to SigNoz:

  1. Navigate to Dashboards → New Dashboard → New Panel in SigNoz.
  2. In the query builder, search for metrics starting with aws_apigateway_ (e.g., aws_apigateway_count_sum).
  3. Verify that metrics appear with api_name and stage labels matching your APIs.

If you see metrics with appropriate labels, your setup is working correctly.

Collecting Access Logs

If API Gateway access logs are enabled and sent to CloudWatch, use the awscloudwatch receiver:

receivers:
  awscloudwatch:
    region: <aws-region>
    logs:
      poll_interval: 1m
      groups:
        named:
          /aws/api-gateway/<api-name>:

Replace <aws-region> and <api-name> with your actual values.

See Send CloudWatch Logs to SigNoz for full configuration.

Next Steps

Once API Gateway metrics are flowing to SigNoz, you can:

  • Set up alerts for critical metrics like error rates or latency. See Alerts.
  • Create dashboards to visualize API performance. See Dashboards.
  • Collect access logs for detailed request analysis. See Send CloudWatch Logs to SigNoz.

Last updated: May 27, 2026

Edit on GitHub

Was this page helpful?

Your response helps us improve this page.

Prev
ALB
Next
DynamoDB
On this page
Overview
Prerequisites
One-Click Integration
Step 1: Connect Your AWS Account
Step 2: Enable API Gateway Monitoring
What's Collected
Pre-built Dashboards
Manual Setup (CloudWatch Exporter)
Prerequisites
Where to Run the CloudWatch Exporter
Step 1: Create Configuration File
Step 2: Download and Run the Exporter
Step 3: Configure OpenTelemetry Collector
Validate
Collecting Access Logs
Next Steps

Is this page helpful?

Your response helps us improve this page.