Firecrawl Monitoring with OpenTelemetry and SigNoz

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

What is Firecrawl Monitoring?

Firecrawl monitoring gives you real-time visibility into your web scraping and crawling workloads by collecting traces and metrics using OpenTelemetry. Firecrawl does not emit OpenTelemetry itself, so this guide uses firecrawl-otel, a client-side instrumentation package that wraps the Firecrawl Python SDK. It traces every scrape, crawl, search, map, extract, and batch_scrape call without any changes to your call sites, and records metrics for call counts, latency, credits consumed, and results returned.

With full Firecrawl observability in SigNoz, you can trace every scraping call end to end, see which operations are slow or failing, track credit consumption against your Firecrawl plan, set alerts on latency and error rates, and continuously improve the reliability of your scraping pipelines.

Prerequisites

Monitor Firecrawl with OpenTelemetry

The firecrawl-otel package registers an OpenTelemetry instrumentor entry point, so the OpenTelemetry CLI can enable it with no code changes at all. For details on the package, see the firecrawl-otel PyPI page.

Step 1: Install the packages

pip install "firecrawl-otel[instruments]" opentelemetry-distro opentelemetry-exporter-otlp
opentelemetry-bootstrap --action=install

The [instruments] extra pulls in the Firecrawl SDK (firecrawl-py). Drop it and install plain firecrawl-otel if you manage firecrawl-py yourself.

Step 2: Configure the export to SigNoz

Set the standard OpenTelemetry environment variables:

export OTEL_SERVICE_NAME=<your-service-name>
export OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.<region>.signoz.cloud:443
export OTEL_EXPORTER_OTLP_HEADERS="signoz-ingestion-key=<your-ingestion-key>"
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf

Verify these values:

  • <your-service-name>: A name for your application, for example firecrawl-prod. This is how the service appears in SigNoz.
  • <region>: Your SigNoz Cloud region.
  • <your-ingestion-key>: Your SigNoz ingestion key.

Step 3: Run your application

Start your app with opentelemetry-instrument, which enables the Firecrawl instrumentor automatically:

opentelemetry-instrument python your_app.py

Your Firecrawl calls are now traced. Each call produces a span carrying the operation type, target URL, credits used, and results returned, alongside metrics for call volume, latency, credits, and results.

View Firecrawl Traces in SigNoz

Once configured, your application automatically emits a trace for every Firecrawl call.

Traces are available in SigNoz under the Traces tab:

Firecrawl Trace View
Firecrawl Trace View

When you click on a trace in SigNoz, you'll see a detailed view of the trace, including all associated spans, along with their events and attributes. Each Firecrawl span carries firecrawl.* attributes describing the operation, the target URL, the credits it consumed, and how many results it returned.

Firecrawl Detailed Trace View
Firecrawl Detailed Trace View

View Firecrawl Metrics in SigNoz

Alongside traces, the instrumentation records metrics for call volume, latency, credits consumed, and results returned, each tagged by operation. They are available under the Metrics tab:

Firecrawl Metrics View
Firecrawl Metrics View

Click any metric to inspect its type, unit, and attributes, or open it in the Explorer to chart it:

Firecrawl Metric Details
Firecrawl Metric Details

Firecrawl Observability Dashboard

You can also check out our custom Firecrawl dashboard which provides specialized visualizations for monitoring your Firecrawl usage. The dashboard includes pre-built charts specifically tailored for scraping operations, along with import instructions to get started quickly.

Firecrawl Dashboard
Firecrawl Dashboard Template

Troubleshooting Firecrawl Observability

No traces in SigNoz

  • Confirm your application actually made a Firecrawl call. An idle application emits nothing.
  • Verify the region in OTEL_EXPORTER_OTLP_ENDPOINT matches your SigNoz account.
  • OpenTelemetry batches data before sending, so wait 10-30 seconds after a call.

Verify the instrumentor is active

If you instrument in code rather than through opentelemetry-instrument, make sure FirecrawlInstrumentor().instrument() runs before you construct the Firecrawl client. Clients created beforehand keep their original, uninstrumented methods.

The instrumentation targets the Firecrawl Python SDK version 2.0.0 or later. On older SDK layouts it instruments nothing rather than crashing, so an unexpectedly empty Traces tab can mean the installed firecrawl-py is too old.

Auth errors (401 / 403)

Re-check the ingestion key in OTEL_EXPORTER_OTLP_HEADERS="signoz-ingestion-key=<your-ingestion-key>". It must be the exact key from your SigNoz Ingestion Settings, with no extra spaces or quotes.

Endpoint issues

Keep the https:// scheme and :443 port in OTEL_EXPORTER_OTLP_ENDPOINT. The exporter appends the signal path for you, so don't add it yourself.

Setup OpenTelemetry Collector (Optional)

What is the OpenTelemetry Collector?

Think of the OTel Collector as a middleman between your app and SigNoz. Instead of your application sending data directly to SigNoz, it sends everything to the Collector first, which then forwards it along.

Why use it?

  • Cleaning up data - Filter out noisy traces you don't care about, or remove sensitive info before it leaves your servers.
  • Keeping your app lightweight - Let the Collector handle batching, retries, and compression instead of your application code.
  • Adding context automatically - The Collector can tag your data with useful info like which Kubernetes pod or cloud region it came from.
  • Future flexibility - Want to send data to multiple backends later? The Collector makes that easy without changing your app.

See Switch from direct export to Collector for step-by-step instructions to convert your setup.

For more details, see Why use the OpenTelemetry Collector? and the Collector configuration guide.

Additional resources:

Last updated: July 19, 2026

Edit on GitHub

Was this page helpful?

Your response helps us improve this page.