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 theSettingsicon ->API Keyspage in your Oodle UI to find it. (Oodle UI links: ap1, us1)OODLE_API_KEY: Your Oodle API key for authentication. Go to theSettingsicon ->API Keysin 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
- In Checkly, open Settings > Traces.
- Under Export Traces, select Enable exporting traces.
- Enter the URL in the endpoint field.
- Click Add header for each header below, and enter its name and value.
- Click the lock next to the API key value to store it as a Checkly secret.
- 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.
- Go to ap1, us1 and filter on the service
checkly. There is one trace for each check run, named after the check. - 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:
| Panel | Covers |
|---|---|
| Check Runs | The number of check runs in the time range |
| Runs per Check | The check runs in each interval, for each check |
| Runs by Check | The check runs in the time range, for each check, most runs first |
| Run Time | The 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.
| Attribute | Description |
|---|---|
checkly.check.name | The name of the check |
checkly.check.status | PASSED, FAILED or DEGRADED |
checkly.check.type | The check type, for example API or browser |
checkly.check.location | The region the check ran from, for example eu-west-1 |
checkly.check.tags | The tags of the check and of its group. Only when the check has tags. |
checkly.check.id | The check ID. Empty on checkly test runs. |
checkly.check.result.id | The ID of the check result |
checkly.check.session.id | The session ID of a scheduled run |
checkly.check.runtime | The Checkly runtime version |
checkly.account.id | The Checkly account ID |
Troubleshooting
Checkly shows no export errors in its UI. A slow or unavailable endpoint leaves gaps that Checkly does not report.
| Issue | Resolution |
|---|---|
| No spans arrive | Make 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 missing | Search Oodle for the trace ID shown under Traces on a recent check result in Checkly. |
| Every span has status OK | This is expected. Filter on checkly.check.status to find failed or degraded runs. |
| A check type is missing | Checkly 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:
- Email at [email protected]