The moment it happens
Get Slack alerts for full volumes and high CPU or memory
When Railway flags a volume near capacity or a CPU or memory alert, the details are posted to your ops channel.
- Runs
- The moment it happens
- Apps
- Railway
- AI
- Not needed
- Access
- webhook setup
Send this to your assistant
Create a ClickRuntime automation: give me a webhook link for Railway and post any volume usage or CPU and RAM alert to #infra in Slack, with the project and service.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A Railway volume that fills up silently takes a database down, and an application that creeps up in memory eventually gets killed. Both situations give hours or days of warning in the metrics, but metrics are only useful if someone is looking at the graph before it reaches the limit. Most people see it for the first time after the outage.
When Railway's usage alert fires, such as a volume nearing capacity or CPU and memory staying high, ClickRuntime receives it, formats the details with the service, the resource and the level, and posts it to your channel. You hear about the pressure while there is still headroom to resize a volume or look into a leak.
It is especially useful for stateful services like Postgres, Redis or file uploads that live on a volume.
What you get out of it
Disks are resized before they fill
A volume at 85 percent can be expanded in minutes. A volume at 100 percent often means a crashed database, corrupted writes and a long recovery, so the early warning avoids all of that.
Memory leaks are found by symptoms
Slowly rising memory is the classic sign of a leak. The alert gives you the trend early, so you can restart or fix the leak on your schedule instead of during a customer-facing outage.
Scaling decisions become informed
Repeated CPU alerts on one service show where you need more resources or better code. You spend on capacity for the service that needs it, not on a blanket upgrade.
Database health is protected
Stateful services are the most costly to lose. Hearing about storage pressure on Postgres or Redis protects data you cannot easily recreate, and spares you from restoring from backups. That makes a warning cheap insurance.
A shared view for the whole team
Posting in a channel means anyone on call can see the pressure and respond. It is no longer a graph that only one person checks, and handover between teammates is simpler.
How it works
What happens, step by step
When Railway raises an alert for your project, such as a volume nearly full or high CPU or memory, it tells ClickRuntime straight away.
The automation turns the alert into a short, readable message with the project, service and what's wrong.
It's posted to #infra, like "Railway volume alert in Northwind shop / postgres: volume is 85% full".
Before it runs live
- Connect Railway
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Railway steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, notify
@on_event
def handle(event):
body = event.json or {}
kind = body.get("type", "")
if kind == "DEPLOY":
return {"skipped": "deploy event"}
project = body.get("project", {}).get("name", "unknown project")
service = body.get("service", {}).get("name", "")
detail = body.get("message") or body.get("status") or kind
notify.slack(f":warning: Railway {kind.replace('_', ' ').lower()} in {project} / {service}: {detail}",
channel="#infra")
return {"posted": True, "type": kind}FAQ
Common questions
Which thresholds does Railway alert on?
Will I get repeated alerts while usage stays high?
Does it work for services on the Hobby plan?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get an email when a Railway deploy fails or crashes
As soon as a deployment in your project fails or crashes, an email tells you which service and what happened.
See how it worksSee your estimated Railway spend each week
Every Monday you get an email with each project's estimated usage so far this month.
See how it worksRestart a Railway service every night
Your service gets a fresh restart at a quiet hour, and you only hear about it if the restart fails.
See how it worksKeep exploring
Set up “Get Slack alerts for full volumes and high CPU or memory” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.