Skip to content

Commit 5911383

Browse files
Merge pull request #210 from checkly/agent-update-7
TREE-738: Agent v7.0.0 documentation update
2 parents 1680e96 + ac3ac3f commit 5911383

14 files changed

Lines changed: 149 additions & 116 deletions

File tree

detect/uptime-monitoring/dns-monitors/configuration.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,7 @@ Set how often the monitor runs (every 10 seconds to 24 hours):
318318
</Frame>
319319

320320
* **Strategy:** Choose between round-robin or parallel execution. Learn more about [scheduling strategies](/concepts/scheduling)
321-
* **Locations:** Select one or more [public](/concepts/locations/#public-locations) locations to run the monitor from
322-
* **Private locations**: DNS monitors do not currently support [private locations](/platform/private-locations/overview)
321+
* **Locations:** Select [public](/concepts/locations/#public-locations) or [private](/platform/private-locations/overview) locations to run the monitor from
323322

324323
### Additional Settings
325324

detect/uptime-monitoring/dns-monitors/overview.mdx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,6 @@ DNS monitors support the following DNS record types:
6060
- **SOA**: Start of authority records
6161
- **TXT**: Text records (SPF, DKIM, DMARC, etc.)
6262

63-
## Limitations
64-
65-
- **Private locations**: DNS monitors do not currently support private locations. You can only run DNS monitors from Checkly's global public locations.
66-
6763
## DNS Monitor Results
6864

6965
Select a specific check run to inspect its results:

detect/uptime-monitoring/icmp-monitors/configuration.mdx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,7 @@ Set how often the monitor runs (every 10 seconds to 24 hours):
9696
</Frame>
9797

9898
* **Strategy:** Choose between round-robin or parallel execution. Learn more about [scheduling strategies](/concepts/scheduling)
99-
* **Locations:** Select one or more [public](/concepts/locations/#public-locations) locations to run the monitor from
100-
* **Private locations**: ICMP monitors do not currently support [private locations](/platform/private-locations/overview)
99+
* **Locations:** Select [public](/concepts/locations/#public-locations) or [private](/platform/private-locations/overview) locations to run the monitor from
101100

102101
### Additional Settings
103102

detect/uptime-monitoring/icmp-monitors/overview.mdx

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,32 @@ Learn more in our documentation on [Results](/concepts/results).
6868

6969
## Troubleshooting Common Issues
7070

71+
<Accordion title="NET_RAW capability error on private locations">
72+
Container runtimes drop the `NET_RAW` capability by default. ICMP requires raw sockets, so the Checkly Agent needs this capability explicitly granted.
73+
74+
**How to fix**:
75+
76+
In **Kubernetes**, update your pod spec or Helm values:
77+
78+
```yaml
79+
securityContext:
80+
capabilities:
81+
add: ["NET_RAW"]
82+
```
83+
84+
In **Docker**:
85+
86+
```bash
87+
docker run --cap-add=NET_RAW ghcr.io/checkly/agent:latest
88+
```
89+
90+
`NET_RAW` only grants permission to create raw sockets. It does not escalate broader container privileges.
91+
</Accordion>
92+
7193
<Accordion title="100% packet loss but the host is reachable via HTTP">
7294
**Symptom**: ICMP monitor shows complete packet loss, but the website/API works fine
7395

74-
**Root cause**:
96+
**Root cause**:
7597
* Many organizations block ICMP echo request packets at the firewall, load balancer, or host level as a security measure
7698

7799
**How to detect and fix**:
@@ -80,21 +102,4 @@ Learn more in our documentation on [Results](/concepts/results).
80102
3. **Confirm with infrastructure team**: Ask if ICMP is intentionally blocked in security policies
81103

82104
**When to use a different monitor type**: If ICMP is deliberately blocked, use TCP, URL, or API checks instead to verify availability at the application layer
83-
</Accordion>
84-
85-
<Accordion title="High latency or packet loss from specific regions">
86-
**Symptom**: ICMP monitor shows high latency or packet loss from certain locations but not others
87-
88-
**Root causes**:
89-
- **Geographic routing**: Network paths vary by region, some routes may be congested
90-
- **Transit provider issues**: Problems with specific ISPs or peering connections
91-
- **Rate limiting**: Some hosts rate-limit ICMP responses, affecting distant locations more
92-
93-
**How to detect and fix**:
94-
1. **Compare across locations**: Run monitors from multiple regions to identify which paths are affected
95-
2. **Monitor trends over time**: Check if issues are persistent or intermittent
96-
3. **Cross-reference with other monitor types**: Compare ICMP latency with TCP/HTTP latency from the same locations
97-
4. **Use latency assertions**: Set region-specific assertions, e.g., `latency.avg` less than `50ms` for nearby regions, `200ms` for distant ones
98-
99-
**Investigation tip**: Persistent high latency from a specific region often indicates routing issues with your hosting provider or CDN configuration
100105
</Accordion>

detect/uptime-monitoring/tcp-monitors/configuration.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Set how often the monitor runs (every 10 seconds to 24 hours):
6060
</Frame>
6161

6262
* **Strategy:** Choose between round-robin or parallel execution. Learn more about [scheduling strategies](/concepts/scheduling)
63-
* **Locations:** Select one or more [public](/concepts/locations/#public-locations) or [private](/platform/private-locations/overview) locations to run the monitor from
63+
* **Locations:** Select [public](/concepts/locations/#public-locations) or [private](/platform/private-locations/overview) locations to run the monitor from
6464

6565
### Additional Settings
6666

detect/uptime-monitoring/url-monitors/configuration.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Learn more in our documentation on [Scheduling strategies](/concepts/scheduling/
6565

6666
### Locations
6767

68-
Select one or more [public](/concepts/locations#public-locations) or [private](/platform/private-locations/overview) locations to run the monitor from.
68+
Select [public](/concepts/locations#public-locations) or [private](/platform/private-locations/overview) locations to run the monitor from.
6969

7070
<Frame>
7171
<img src="/images/url-monitor-locations.png" alt="URL monitor locations selection interface showing global monitoring locations" />

docs.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383
"pages": [
8484
"platform/private-locations/overview",
8585
"platform/private-locations/agent-configuration",
86-
"platform/private-locations/dev-agent",
86+
"platform/private-locations/agent-images",
8787
"platform/private-locations/kubernetes-deployment",
8888
"platform/private-locations/proxy-setup",
8989
"platform/private-locations/scaling-redundancy",
@@ -1297,6 +1297,10 @@
12971297
{
12981298
"source": "/api-reference/error-groups/retrieve-one-error-group/",
12991299
"destination": "/api-reference/error-groups/retrieve-an-error-group"
1300+
},
1301+
{
1302+
"source": "/platform/private-locations/dev-agent",
1303+
"destination": "/platform/private-locations/agent-images"
13001304
},
13011305
{
13021306
"source": "/api-reference/error-groups/update-an-error-group-mainly-used-for-archiving-error-groups/",

platform/private-locations/agent-configuration.mdx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Variable|Description
1616
`USE_OS_DNS_RESOLVER`|When set to true, TCP monitors will resolve DNS using `getaddrinfo` C function, instead of using the network. This enables easier DNS resolution for internal services e.g. services running in the same Kubernetes cluster.
1717
`DEPENDENCY_CACHE`|(Default: `OFF`) Set to `CHECKLY_S3` to enable dependency caching for [Playwright Check Suites](/detect/synthetic-monitoring/playwright-checks/overview). Caches installed dependencies between runs to speed up check execution. Learn more about [dependency caching](/detect/synthetic-monitoring/playwright-checks/custom-dependencies#dependency-caching).
1818
`AGENT_HEALTH_PORT`|(Default: `8081`) Port for the HTTP [health probe endpoints](#health-probe-endpoints).
19+
`EXTERNAL_OBSERVABILITY`| Enabled by default. Set to `off` to disable [external observability](#external-observability) reporting of agent runtime errors to Checkly.
1920

2021
For example, you can add these variables to the standard docker run command like this:
2122

@@ -164,6 +165,18 @@ Endpoint|Description
164165

165166
These endpoints are useful for configuring [Kubernetes readiness and liveness probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/) or any other container orchestration health checks.
166167

168+
## External Observability
169+
170+
The Checkly Agent reports error-level events to Checkly to help detect crashes, bugs, and environment-related issues. This is enabled by default starting with agent v7.0.0.
171+
172+
Only limited technical metadata is collected (e.g. error messages, stack traces, agent version, platform, go runtime information). Sensitive data such as API keys, environment variables, check configuration, URLs, headers, and response bodies is **never** sent.
173+
174+
To disable external observability, set the `EXTERNAL_OBSERVABILITY` environment variable to `off`:
175+
176+
```bash Terminal
177+
-e EXTERNAL_OBSERVABILITY=off
178+
```
179+
167180
## Agent Version and Runtimes
168181

169182
Each Checkly Agent only supports specific [runtimes](/platform/runtimes/overview/). This is to keep the container image at an acceptable size. When you change the runtime a check uses, you may also need to change to the corresponding agent version. Similarly, if you update the agent version to one using a different runtime you also need to update your checks to use the same runtime.
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: 'Agent Images'
3+
sidebarTitle: 'Agent Images'
4+
---
5+
6+
Checkly provides different agent images:
7+
8+
* [Standard](#standard-image): The full agent image, supporting all check types
9+
10+
* [Dev](#dev-image): The standard image with build tools for compiling npm packages with native dependencies
11+
12+
* [Uptime](#uptime-image): A lightweight image for running uptime monitors only
13+
14+
## Image Tag Format
15+
16+
Image tags define which agent variant and version you run.
17+
18+
```bash
19+
# Standard
20+
docker pull checkly/agent:X.Y.Z
21+
22+
# Dev (with build tools)
23+
docker pull checkly/agent-dev:X.Y.Z
24+
25+
# Uptime
26+
docker pull checkly/agent-uptime:X.Y.Z
27+
```
28+
29+
<Note>Use versioned tags for reproducible deployments. Floating tags (like `:latest`) may change between pulls. Browse available versions on [Docker Hub](https://hub.docker.com/r/checkly/agent/tags).</Note>
30+
31+
## Standard Image
32+
33+
The standard image (`checkly/agent:X.Y.Z`) is the default and recommended option for most setups.
34+
35+
It supports the full range of Checkly monitors:
36+
37+
* [Synthetic checks](/detect/synthetic-monitoring/overview): API, Multistep, Browser and Playwright Check Suites
38+
* [Uptime monitors](/detect/uptime-monitoring/overview): URL, DNS, TCP, ICMP, Heartbeat
39+
40+
Use the standard image unless you have a specific need for the dev or uptime variants.
41+
42+
## Uptime Image
43+
44+
The uptime image (`checkly/agent-uptime:X.Y.Z`) is a lightweight version of the agent designed for [uptime monitoring](/detect/uptime-monitoring/overview) only.
45+
46+
It supports URL, DNS, TCP, ICMP and Heartbeat monitors.
47+
48+
## Dev Image
49+
50+
If any of the checks you run on Private Locations rely on npm packages with native code, those packages need to be compiled during installation.
51+
52+
The standard agent is optimized for size and doesn’t ship with build tools. In those cases, you’ll need to use the dev image instead.
53+
54+
#### When to Use the Dev Image
55+
56+
Use the dev image (`checkly/agent-dev:X.Y.Z`) when your checks require npm packages with native dependencies that need compilation. Common examples include:
57+
58+
- `sqlite3` - SQLite database
59+
- `zookeeper` - Apache ZooKeeper client
60+
61+
If your checks only use pure JavaScript packages, the standard runtime image is recommended for its smaller size and faster startup.
62+
63+
#### What's Included in the Dev Image
64+
65+
The dev agent works exactly like the standard agent, but includes the build tools required to compile native modules.
66+
67+
It adds the following to the standard image:
68+
69+
| Tool | Purpose |
70+
|------|---------|
71+
| `gcc`, `g++`, `make` | Compile native extensions |
72+
| `python3` | Required by node-gyp |
73+
74+
These tools enable compilation of native Node.js modules during `npm install`.
75+
76+
#### FAQ
77+
78+
<Accordion title="Can I use the dev image in production?">
79+
Yes, the dev image is production-ready. It contains the same runtime as the standard image, plus build tools. The only tradeoff is a larger image size.
80+
</Accordion>
81+
82+
<Accordion title="Do I need the dev image for Playwright checks?">
83+
No. Playwright and its dependencies are pre-installed in both variants. You only need the dev image if your check code imports npm packages with native dependencies.
84+
</Accordion>
85+
86+
<Accordion title="How do I know if a package needs the dev image?">
87+
If `npm install` fails with errors about `node-gyp`, `python`, `gcc`, or "compilation failed", you likely need the dev image.
88+
</Accordion>

platform/private-locations/change-log.mdx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@ Learn more about:
1616

1717
## Full release history
1818

19+
<Update label="v7.0.0" tags={["March 2026"]}>
20+
- Added support for running [ICMP](/detect/uptime-monitoring/icmp-monitors/overview) and [DNS monitors](/detect/uptime-monitoring/dns-monitors/overview) on Private Locations
21+
- Introduced the [uptime agent image](/platform/private-locations/agent-images#uptime-image), a lightweight version of the agent for running uptime monitors (URL, DNS, TCP, ICMP, Heartbeat) only
22+
- Added [external observability](/platform/private-locations/agent-configuration#external-observability) for Private Location agents to capture runtime errors
23+
- Error-level events can be reported to Checkly to help detect crashes, bugs, and environment-related issues
24+
- Only limited technical metadata is collected (error message, stack trace, agent version, platform, Go runtime)
25+
- Sensitive data such as API keys, environment variables, check configuration, URLs, headers, and response bodies is never sent
26+
- Enabled by default, can be disabled with `EXTERNAL_OBSERVABILITY=off`
27+
- Support for runtime `2026.04`
28+
</Update>
29+
1930
<Update label="v6.3.2" tags={["March 2026"]}>
2031
- Improved error logging for failed Playwright test report uploads, including the report file size
2132
- Increased the maximum artifact upload size from 75 MB to 150 MB
@@ -30,7 +41,7 @@ Learn more about:
3041
</Update>
3142

3243
<Update label="v6.3.0" tags={["December 2025"]}>
33-
- Added [agent-dev image](https://www.checklyhq.com/docs/platform/private-locations/dev-agent/) including build tools to support building native npm packages. Going forward, the dev variant is published as a separate image rather than a tag on the main agent image
44+
- Added [agent-dev image](https://www.checklyhq.com/docs/platform/private-locations/agent-images/) including build tools to support building native npm packages. Going forward, the dev variant is published as a separate image rather than a tag on the main agent image
3445
- Improved secret scrubbing speed
3546
- Improved error logging for hanging or long running Playwright Check Suite jobs
3647
</Update>
@@ -40,7 +51,7 @@ Learn more about:
4051
</Update>
4152

4253
<Update label="v6.1.7" tags={["December 2025"]}>
43-
- Added support for a [dev image](https://www.checklyhq.com/docs/platform/private-locations/dev-agent/) including build tools to support building native npm packages
54+
- Added support for a [dev image](https://www.checklyhq.com/docs/platform/private-locations/agent-images/) including build tools to support building native npm packages
4455
- Improved internal logging and metrics for [Playwright Check Suites](/detect/synthetic-monitoring/playwright-checks/overview)
4556
- Browser and Multistep checks using runtime 2025.04 now automatically scrub the `Authorization` header from requests
4657
</Update>

0 commit comments

Comments
 (0)