Skip to content

Uptime

How does inping measure availability?

Runners request every URL of a project at the interval you choose, from several locations. A result is “up” when the expected status code comes back within the timeout.

  • Interval: from 60 seconds on the free plan, from 30 seconds on the paid plans, up to one day.
  • Request: HTTP(S) with GET or HEAD, expected status code and timeout per URL (up to 60 seconds).
  • Per result: status code, response time, type of error (DNS, TLS, timeout, connection, wrong status) and the runner that measured.
  • URLs behind a login: with Basic Auth or custom headers; the secrets stay encrypted and are shown to no one.
  • Retention: raw data 7 days, daily values 365 days, 90 days of uptime per URL at a glance.

Why does an outage count only once?

The platform evaluates the latest result of each runner. If the majority reports an outage, an incident opens, and it closes only when the majority can reach the URL again. Daily uptime comes from the incidents, not from individual measurements, so one unreliable runner cannot lower it alone. To measure from inside your network, use your own runner.

Three runners report their result, the majority produces a single incidentRunner ATimeoutRunner BConnection errorRunner C200 in 184 msPlatform2 of 3 say down:majority1 incidentuntil majority up1 notificationemail or webhook
Example with three runners: the majority reports the URL as unreachable, the platform opens exactly one incident and triggers one notification. On a tie the previous state stays.
shop.example.com 99.94%184 ms
1 min ago: 100 % · 170 ms
2 min ago: 100 % · 188 ms
3 min ago: 100 % · 205 ms
4 min ago: 100 % · 217 ms
5 min ago: 100 % · 224 ms
6 min ago: 100 % · 227 ms
7 min ago: 100 % · 224 ms
8 min ago: 100 % · 219 ms
9 min ago: 100 % · 212 ms
10 min ago: 100 % · 205 ms
11 min ago: 100 % · 201 ms
12 min ago: 100 % · 200 ms
13 min ago: 100 % · 203 ms
14 min ago: 100 % · 208 ms
15 min ago: 100 % · 215 ms
16 min ago: 100 % · 222 ms
17 min ago: 100 % · 227 ms
18 min ago: 100 % · 228 ms
19 min ago: 100 % · 225 ms
20 min ago: 100 % · 216 ms
21 min ago: 100 % · 202 ms
22 min ago: 100 % · 185 ms
23 min ago: 100 % · 166 ms
24 min ago: 100 % · 149 ms
25 min ago: 100 % · 133 ms
26 min ago: 100 % · 122 ms
27 min ago: 100 % · 116 ms
28 min ago: 100 % · 116 ms
29 min ago: 100 % · 119 ms
30 min ago: 100 % · 125 ms
31 min ago: 100 % · 131 ms
32 min ago: 100 % · 137 ms
33 min ago: 100 % · 140 ms
34 min ago: 100 % · 139 ms
35 min ago: 100 % · 136 ms
36 min ago: 100 % · 129 ms
37 min ago: 100 % · 121 ms
38 min ago: 100 % · 115 ms
39 min ago: 0 %
40 min ago: 0 %
41 min ago: 0 %
42 min ago: 100 % · 126 ms
43 min ago: 100 % · 141 ms
44 min ago: 100 % · 158 ms
45 min ago: 100 % · 177 ms
46 min ago: 100 % · 194 ms
47 min ago: 100 % · 208 ms
48 min ago: 100 % · 218 ms
49 min ago: 100 % · 222 ms
50 min ago: 100 % · 222 ms
51 min ago: 100 % · 218 ms
52 min ago: 100 % · 212 ms
53 min ago: 100 % · 206 ms
54 min ago: 100 % · 201 ms
55 min ago: 100 % · 200 ms
56 min ago: 100 % · 202 ms
57 min ago: 100 % · 207 ms
58 min ago: 100 % · 214 ms
59 min ago: 100 % · 222 ms
60 min ago: 100 % · 229 ms
61 min ago: 100 % · 232 ms
62 min ago: 100 % · 230 ms
63 min ago: 100 % · 224 ms
64 min ago: 100 % · 212 ms
65 min ago: 100 % · 196 ms
66 min ago: 100 % · 178 ms
67 min ago: 100 % · 160 ms
68 min ago: 100 % · 143 ms
69 min ago: 100 % · 130 ms
70 min ago: 100 % · 122 ms
71 min ago: 100 % · 119 ms
72 min ago: 100 % · 121 ms
73 min ago: 100 % · 126 ms
74 min ago: 100 % · 132 ms
75 min ago: 100 % · 137 ms
76 min ago: 100 % · 140 ms
77 min ago: 100 % · 140 ms
78 min ago: 100 % · 137 ms
79 min ago: 100 % · 131 ms
80 min ago: 100 % · 123 ms
81 min ago: 100 % · 114 ms
82 min ago: 100 % · 109 ms
83 min ago: 100 % · 106 ms
84 min ago: 100 % · 109 ms
85 min ago: 100 % · 117 ms
86 min ago: 100 % · 130 ms
87 min ago: 100 % · 147 ms
88 min ago: 100 % · 166 ms
89 min ago: 100 % · 184 ms
90 min ago: 100 % · 199 ms
Now90 minutes ago

Example data, modelled on the view in the app.

Change detection

How does inping detect changes to pages?

The runner fetches a page, reduces it to its text and compares that with the last version. A change triggers an event with the line diff.

From fetching a page through its plain text and hash to an event with a line diffFetchthe pageSelectCSS selectorReducetext onlyHashper versionNew hashpage.changed event with diffSame hashno eventRead sitemapthe URLs of the projectNew URLpage.added event
The runner compares text, not HTML: only a new checksum counts as a change. Separately, reading the sitemap finds new pages.
/shipping changed 4 minutes ago

- Delivery time: 2 to 3 working days

+ Delivery time: 5 to 7 working days

+ New: we now also ship to Switzerland

Example data, modelled on the view in the app.

  • Scope: a CSS selector picks the part that matters, or the whole page. That keeps a changing sidebar out of it.
  • Comparison: scripts, styles and markup are dropped, whitespace is reduced to one line per block, and the text is hashed. A new hash is a change.
  • Storage: the platform stores the text, never the HTML, and keeps 20 versions per page.
  • Interval: from 5 minutes to one week.
  • Volume: 25 pages per project on the free plan, more on the paid plans.

How does inping find new pages?

A project can have its sitemap evaluated, by default the /sitemap.xml of the monitored URLs or an address you give. The runner checks it every 6 hours, and inping reports each page that has been added. Sitemaps of other websites are not taken over.

Vulnerabilities and end of life

Which packages and runtimes does inping check?

The agent reads the installed runtimes, the lock files of your projects and all packages of the host. The platform compares them daily with OSV and endoflife.date and reports new findings once, with severity, until an update resolves them.

LanguagePackage managerRead from
PHPComposercomposer.lock
JavaScriptnpm, pnpm, yarnpackage-lock.json, pnpm-lock.yaml, yarn.lock
RustCargoCargo.lock
Pythonuv, Poetry, Pipenv, pipuv.lock, poetry.lock, Pipfile.lock, requirements.txt
GoGo modulesgo.mod
RubyRubyGemsGemfile.lock
JavaGradle, Mavengradle.lockfile, pom.xml
.NETNuGetpackages.lock.json

Runtimes: PHP, Node.js, Rust, Python, Go, Ruby, Java and .NET; reported as out of support through endoflife.date.

Host packages: dpkg, RPM and apk are compared with the advisories of the distribution, such as Debian 11 to 13, Ubuntu 20.04, 22.04 and 24.04 LTS, Alpine from 3.18, Rocky Linux and AlmaLinux. Homebrew and pacman appear only as an inventory, as do Fedora packages: inping checks no advisories for them.

Every finding links to a public page under security advisories with severity, affected versions, fixes and source. With no account, the one-line scan checks a project directory, also in a CI job.

Lock files, runtimes and host packages go through the agent to the platform, which compares them daily with OSV and endoflife.dateLock filesof the projectsRuntimesPHP, Node.js …Host packagesdpkg, RPM, apkAgentread-onlyPlatformdaily comparisonOSV databaseendoflife.dateFindingreported once,open until update
The agent reads versions and sends lists. The comparison with OSV and endoflife.date runs daily on the platform, so a new advisory also reaches a package that has not changed.

Vulnerabilities in shop.example.com

example/http-client 2.1.0 → 2.1.4 Critical
example-parser 1.8.2 → 1.8.5 High
PHP 8.1 → 8.4 End of Life

Example entries, not real advisories.

Servers

What does the agent measure on a server?

The agent runs on the host, only reads, and writes solely to its own state directory. It sends metrics from every 10 seconds to once an hour, every 60 seconds by default, and if the platform cannot be reached it buffers for 24 hours by default, configurable up to 168.

The agent on the server reads local sources and sends only outbound over HTTPS to inpingYour server/proc, file systemsLock filesPackage databaseCron, timersDocker (via proxy)Agentread-only,own service userStatetoken, buffer443inpingHTTPS only,outbound only
The agent reads what is already on the server and writes only to its own state directory. It opens the connection itself: no open port, no access from outside.
web-01.example.com Ubuntu 24.04
CPU34%
RAM11.4 of 16 GB
Disk /184 of 200 GB

Example data, modelled on the view in the app.

MetricHow it is measured
CPUUsage since the last measurement as a percentage of all cores, each core separately, load 1/5/15 (not on Windows)
Memory, swapBytes used and total, used without the file cache
DisksBytes per file system with data, each device once, 32 at most; no kernel or memory file systems, no container layers
NetworkReceived and sent in bytes per second per physical interface
AccountsFor each account on the host: CPU share, memory and number of processes, 64 accounts at most (Linux, Windows with -AccountMetrics)
PlatformSystem and version, kernel, architecture, CPU cores, hostname, uptime, agent version

Scheduled jobs: daily as a list, never changed: crontabs, systemd timers, launchd and Windows Task Scheduler, each with schedule, command and user.

Retention: raw values 7 days, hourly mean, minimum and maximum values 365 days.

The agent runs on Linux, macOS, FreeBSD and Windows (amd64 and arm64) and as a Docker image. The commands for each system are under install the agent, the details in the articles Monitor a Linux server and Monitor a Windows server.

Docker

How does inping monitor Docker services?

As a Docker image, the agent moves into the Compose file of your project and reports each service separately. Services carry their names from Compose, one-off containers stay out, 64 at most per agent.

Per serviceHow it is measured
CPUShare of the CPU of the whole host, so that the services add up against the host
MemoryBytes without the file cache and the limit of the container, otherwise the host memory
NetworkBytes per second received and sent
Disk I/OBytes per second read and written
State1 while Docker reports the container as running, otherwise 0, also in a restart loop

The figures come from the Docker Engine API through a socket proxy that allows only read access under /containers. So the agent cannot change anything. The proxy protects the host from the agent, not the contents of the containers: with read access it also reaches inspect output and logs of the other containers.

In the container, host packages, scheduled jobs and runtime versions are missing. The packages of the project come from the lock files of the mounted directory. There is a guide in the article Monitor Docker containers.

Alerts and notifications

When and how does inping get in touch?

Rules per server follow one simple sentence: when a metric is above, below or equal to a value, for a number of minutes. An alert opens once and closes once.

CPU load over time with a threshold at 90 percent; the alert opens after five minutes above it40%60%80%100%5 minutesAlert openAlert closed
Example data for the default rule "CPU above 90% for 5 minutes": a short spike triggers nothing. The alert opens only when every value of the window is above the threshold, and closes once as soon as the condition no longer holds.

Notifications

shop.example.com is not responding Email14:02
Disk / on web-01 above 90% Webhook13:47
shop.example.com is reachable again Email14:06

Example data, modelled on the view in the app.

Four default rules for every new server

  • CPU above 90% for 5 minutes
  • Memory above 90% for 5 minutes
  • Any disk above 90%
  • Any service that is not running

Rules apply to one mount or service or to all of them, can be switched off individually, up to 50 per agent. With 0 minutes they react on the next report. An agent that stops reporting is an alert of its own, after a configurable number of missed reports.

Which events trigger a notification?

  • URL unreachable and reachable again
  • Page changed or newly found
  • Vulnerability found
  • Threshold exceeded and back below it
  • Agent offline and back online
  • Service down and back up
  • New or returning error, matching log line

Where do notifications go?

Rules per project send to the team, to up to ten external addresses and to the customer contacts of the project. External addresses receive nothing until they have confirmed by double opt-in. Webhooks are signed with HMAC-SHA256, carry a constant delivery ID for deduplication and are tried up to 6 times (from 10 seconds to 2 hours).

Logs, errors and traces

How do logs and errors reach inping?

A project accepts what the official Sentry SDKs send: install the SDK, enter the DSN of the project, and nothing else changes. inping is compatible with these SDKs but has nothing to do with the company Sentry.

What arrivesWhat it becomes
Log linesfilter, search, jump to the trace
Errorsgrouped into issues; a resolved issue that comes back counts as a regression
Transactions and spanstraces and the slowest endpoints
Session replaysmask all text and input by default and block media
Check-inscron jobs
Sessionshealth per release
Feedbackmessages from users

Server logs: log sources can be added in the settings of the agent: systemd journal, file, Docker or Windows event log. With no source the agent sends no logs. On the host it removes whatever looks like a secret, and it sends every 30 seconds.

OpenTelemetry: POST /v1/logs accepts OTLP over HTTP as JSON, for example from Fluent Bit, Vector or the OpenTelemetry Collector.

Limits: on the free plan 50 MB per day across all projects of a team and 7 days of retention; the other plans are on the pricing page. Above that, inping answers the SDKs with 429 until midnight (UTC). Logs and replays are for editors and admins, not for viewers.

SDKs, OpenTelemetry and the agent send into a project, where logs, issues, traces, replays and cron jobs ariseSentry SDKsLaravel, PHP, browser,Node.js, PythonOTLP (HTTP, JSON)Collector, Fluent Bit,VectorAgentjournal, file, Docker,Windows event logProjectowndatabaseLogsErrors as issuesTracesSession replaysCron jobs
Three ways into a project: the official Sentry SDKs with the DSN of the project, OTLP over HTTP as JSON, and the log sources of the agent. What arrives is under Project → Logs.

Status pages

What does a public status page show?

Each project can publish a page with no login at inping.io/status/<name>: the public URLs with names, their state, 90 days of uptime and open incidents. Never the URLs themselves, servers or people.

Your own domain by CNAME, check by inping, certificate, status page and what it showsstatus.client.exampleCNAMEinping checksthe CNAMECertificateautomatic on first requestThe page showsName of the public URLState90 days of uptimeOpen incidentsNeverThe URLs themselvesServersPeople
Your own domain (an example address here) points to inping by CNAME. After the check, the certificate is created automatically on the first request. Only what you have marked as a public URL becomes public.
All systems operational status.example.com
1 min ago: 100 %
2 min ago: 100 %
3 min ago: 100 %
4 min ago: 100 %
5 min ago: 100 %
6 min ago: 100 %
7 min ago: 100 %
8 min ago: 100 %
9 min ago: 100 %
10 min ago: 100 %
11 min ago: 100 %
12 min ago: 100 %
13 min ago: 100 %
14 min ago: 100 %
15 min ago: 100 %
16 min ago: 100 %
17 min ago: 100 %
18 min ago: 100 %
19 min ago: 100 %
20 min ago: 100 %
21 min ago: 100 %
22 min ago: 100 %
23 min ago: 100 %
24 min ago: 100 %
25 min ago: 100 %
26 min ago: 100 %
27 min ago: 100 %
28 min ago: 100 %
29 min ago: 100 %
30 min ago: 100 %
31 min ago: 100 %
32 min ago: 100 %
33 min ago: 100 %
34 min ago: 100 %
35 min ago: 100 %
36 min ago: 100 %
37 min ago: 100 %
38 min ago: 100 %
39 min ago: 0 %
40 min ago: 0 %
41 min ago: 0 %
42 min ago: 100 %
43 min ago: 100 %
44 min ago: 100 %
45 min ago: 100 %
46 min ago: 100 %
47 min ago: 100 %
48 min ago: 100 %
49 min ago: 100 %
50 min ago: 100 %
51 min ago: 100 %
52 min ago: 100 %
53 min ago: 100 %
54 min ago: 100 %
55 min ago: 100 %
56 min ago: 100 %
57 min ago: 100 %
58 min ago: 100 %
59 min ago: 100 %
60 min ago: 100 %
61 min ago: 100 %
62 min ago: 100 %
63 min ago: 100 %
64 min ago: 100 %
65 min ago: 100 %
66 min ago: 100 %
67 min ago: 100 %
68 min ago: 100 %
69 min ago: 100 %
70 min ago: 100 %
71 min ago: 100 %
72 min ago: 100 %
73 min ago: 100 %
74 min ago: 100 %
75 min ago: 100 %
76 min ago: 100 %
77 min ago: 100 %
78 min ago: 100 %
79 min ago: 100 %
80 min ago: 100 %
81 min ago: 100 %
82 min ago: 100 %
83 min ago: 100 %
84 min ago: 100 %
85 min ago: 100 %
86 min ago: 100 %
87 min ago: 100 %
88 min ago: 100 %
89 min ago: 100 %
90 min ago: 100 %

Example data, modelled on the view in the app.

  • Your own domain: by CNAME, checked by inping, certificate automatic on the first request, alongside the inping address.
  • Your own look: logo, accent colour, title, introduction, support link and footer.
  • For people and monitors: the page is generated as one document on the server, readable by curl and with no JavaScript.
  • Live: through WebSockets it updates when a URL goes down or comes back.
  • Search engines: they are asked to stay away as long as the project does not allow indexing.

The page shows what was measured. The setup is under publish a status page.

API and MCP

How do you connect inping to your own tools?

A REST API with personal access tokens and OpenAPI documentation for scripts, plus an MCP server for AI assistants. Both use the same tokens and permissions.

Scripts through the API and AI assistants through MCP reach the same projects with one tokenScripts, CIREST API/api/v1AI assistantMCP/mcpTokenprojects:readprojects:writePermissionsof theuserYourprojects
Scripts and AI assistants use the same personal token. It carries abilities, and the permissions of the user apply on top: a token can never do more than its user.
curl -H "Authorization: Bearer <token>" https://www.inping.io/api/v1/tenants

Tokens carry the abilities projects:read and projects:write. The API is documented at /api/docs; the MCP server is at https://www.inping.io/mcp. It offers five tools:

ToolWhat it does
list-projectsprojects, teams, tags and a short summary of their state
get-project-statusURLs, open incidents, changed pages, open vulnerabilities, agents
create-projectcreates a project, with URLs if you wish (needs projects:write)
list-issuesgrouped errors of a project, individually with stack trace
search-logsthe latest log lines, filtered by severity, service, text or trace

The dashboard also updates through WebSockets and falls back to regular polling with no connection.

Security

How does inping protect accounts and data?

Sign-in with two-factor authentication or a passkey, roles per team and project, notices about new devices. A token can never do more than its user.

  • Sign-in: two-factor authentication (TOTP) and passkeys; email notices about new devices.
  • Roles: admins manage the team, editors the projects assigned to them, viewers see only those projects and neither logs nor notification rules.
  • Super admins: their rights apply only with confirmed TOTP.
  • Secrets: credentials for protected URLs are stored encrypted and are not displayed.
  • Webhooks: follow no redirects and reach no private addresses.

The platform runs on servers in the EU, and the operator is medienakzent in Konstanz, Germany. A data processing agreement under Art. 28 GDPR is offered on the page data processing. What that means for your own obligations is described in GDPR server monitoring; you remain responsible for your own processing.

The interface and emails are available in German and English, emails in the language of the recipient.

Frequently asked questions

Questions about the features

What does inping monitor?

The availability of URLs, text changes and new pages of websites, known vulnerabilities in packages and runtimes, servers with CPU, memory, disks, accounts and Docker services, and the logs and errors of applications.

Does inping also check by ping or individual ports?

No. The uptime check is an HTTP(S) request with GET or HEAD and the expected status code. ICMP ping, port checks and SNMP are not part of the product.

How does inping prevent duplicate alerts from several locations?

The platform evaluates the latest result of each runner: if the majority reports an outage, exactly one incident opens, and it closes when the majority can reach the URL again. On a tie the previous state stays. Daily uptime is calculated from the incidents, not from individual measurements.

Where does the vulnerability data come from?

From the OSV database (OSV.dev) and, for runtimes without support, from endoflife.date. The comparison runs daily on the platform. The entries inping checks against are public at /advisories.

Is inping related to the company Sentry?

No. inping accepts what the official Sentry SDKs send, so it is compatible with them. It is not a Sentry product and is not affiliated with the company.

What is included in the free plan?

1 project, 10 URLs and 25 pages per project, 2 agents and 1 own runner. URLs can be checked every 60 seconds there. All plans are on the pricing page.