Skip to main content

Checkly

Send traces from Checkly checks to Oodle with the Checkly trace export.

Checkly exports every API check, URL monitor, Browser check and Multistep check run as one OpenTelemetry span. Checkly sends the spans over OTLP HTTP straight to Oodle, so you run no collector.

Checkly also adds a traceparent header to the requests that a check makes. If your application reads this header, the spans of your application join the trace of the check. You can then follow a failed check into your backend.

Oodle ships a Checkly dashboard. You provision it from the integration tile.

Prerequisites​

  • A Checkly plan that includes trace export. Without it, Checkly cannot save the export settings.
  • OODLE_INSTANCE: Your Oodle instance ID. Go to the Settings icon -> API Keys page in your Oodle UI to find it. (Oodle UI links: ap1, us1)
  • OODLE_API_KEY: Your Oodle API key for authentication. Go to the Settings icon -> API Keys in your Oodle UI to choose an appropriate key. (Oodle UI links: ap1, us1)
  • An Oodle account (navigate to ap1, us1 to start setup)

The export is account-wide and goes to one endpoint. If your Checkly account already exports traces to a different backend, Oodle replaces it. To send to more than one backend, send to an OpenTelemetry Collector and route from there.

Configure the export in Checkly​

  1. In Checkly, open Settings > Traces.
  2. Under Export Traces, select Enable exporting traces.
  3. Enter the URL in the endpoint field.
  4. Click Add header for each header below, and enter its name and value.
  5. Click the lock next to the API key value to store it as a Checkly secret.
  6. Click Save.

The Checkly tile in Oodle shows these values with your instance values filled in.

url: "https://<OODLE_INSTANCE>-otlp.collector.oodle.ai/v1/traces"
headers:
X-OODLE-INSTANCE: "<OODLE_INSTANCE>"
X-API-KEY: "<OODLE_API_KEY>"

Checkly posts to the URL as it is, so keep /v1/traces at the end. Use a dedicated API key, so that you can revoke it without effect on other senders.

Verify​

Checkly exports one span for each check run. The first spans arrive when your checks next run.

  1. Go to ap1, us1 and filter on the service checkly. There is one trace for each check run, named after the check.
  2. Open the Checkly tile (ap1, us1) and provision the dashboard.

Find failed check runs​

Checkly sets the OpenTelemetry status of every span to OK, also when a check fails. The check verdict is in the span attribute checkly.check.status. To find failed runs, add the filter span::checkly.check.status = FAILED on the traces page. Use DEGRADED for degraded runs.

Dashboard​

Open the Dashboards tab in the Checkly tile and click Provision & View Dashboards. Provisioning overwrites by name, so it is safe to repeat.

The Checkly Checks dashboard reads the oodle_trace_metrics span metrics with service_name="checkly". It shows:

PanelCovers
Check RunsThe number of check runs in the time range
Runs per CheckThe check runs in each interval, for each check
Runs by CheckThe check runs in the time range, for each check, most runs first
Run TimeThe check runs by run time bucket

The Check variable filters every panel. The span metrics have no check status, so the dashboard links to the traces page for failed runs.

Span attributes​

Each span has the resource attribute service.name set to checkly, and kind CLIENT. The span name is the name of the check.

AttributeDescription
checkly.check.nameThe name of the check
checkly.check.statusPASSED, FAILED or DEGRADED
checkly.check.typeThe check type, for example API or browser
checkly.check.locationThe region the check ran from, for example eu-west-1
checkly.check.tagsThe tags of the check and of its group. Only when the check has tags.
checkly.check.idThe check ID. Empty on checkly test runs.
checkly.check.result.idThe ID of the check result
checkly.check.session.idThe session ID of a scheduled run
checkly.check.runtimeThe Checkly runtime version
checkly.account.idThe Checkly account ID

Troubleshooting​

Checkly shows no export errors in its UI. A slow or unavailable endpoint leaves gaps that Checkly does not report.

IssueResolution
No spans arriveMake sure that Enable exporting traces is on, that the URL ends in /v1/traces, and that the header names and values are correct.
Spans of one check are missingSearch Oodle for the trace ID shown under Traces on a recent check result in Checkly.
Every span has status OKThis is expected. Filter on checkly.check.status to find failed or degraded runs.
A check type is missingCheckly exports API checks, URL monitors, Browser checks and Multistep checks only.

Support

If you need assistance or have any questions, please reach out to us through: