Skip to content

Quickstart

Alright, let’s get you set up. This should take about 5 minutes, and if it takes longer, we fucked up somewhere or your dog shat on your keyboard.

First things first, you need an account. Revolutionary, I know.

  1. Sign up for a free account. No credit card required, no “enterprise trial” nonsense.
  2. Create an Organization when prompted. This is just a fancy word for “your stuff goes here.” Name it whatever - your company, your team, or “Bob’s Monitoring Empire.”
  3. You’ll get a default Project thrown in. Projects are just folders for your monitors. You can rename it later.

Let’s make a Heartbeat Monitor because they’re dead simple and perfect for that cron job you forgot about last month.

  1. Click Heartbeats in the sidebar.

  2. Click New Heartbeat.

  3. Fill out the form (don’t overthink it):

    • Name: Something that makes sense, like “Daily Backup Script” or “That Thing That Runs at 3 AM”
    • Schedule: How often should this thing ping us? every 1 day works. You can get fancy with cron expressions if you’re into that.
    • Grace Period: How long we wait before yelling at you. 10 minutes is fine unless your script takes forever.
  4. Click Create Heartbeat and boom, you’re done.

Now your monitor exists, it’s time to connect it to your script.

You’ll see a Pulse URLs on the monitor integration tab. Copy it and stick it in your script like this:

#!/bin/bash
# Your actual work here
echo "Running backup..."
sleep 5
echo "Backup complete!"
# Tell 9n9s we're alive
curl -fsS --retry 3 https://pulse.9n9s.com/your-unique-heartbeat-uuid > /dev/null

Replace that URL with your actual one (obviously). Now when your script runs and doesn’t explode, it pings us. If it doesn’t ping us when it’s supposed to, we’ll let you know something’s broken.

Sometimes your script will fail. It happens. You can wait for the timer to run out, or you can tell us immediately with the /fail endpoint:

#!/bin/bash
# Tell 9n9s we're starting with the /start endpoint
curl -fsS --retry 3 https://pulse.9n9s.com/your-unique-heartbeat-uuid/start > /dev/null
# Handle errors like a responsible adult
function handle_error() {
ERROR_MESSAGE="Backup failed at line $1 because reasons."
echo $ERROR_MESSAGE
# Tell 9n9s we failed (with details) with the /fail endpoint
curl -fsS -X POST --retry 3 -d "$ERROR_MESSAGE" https://pulse.9n9s.com/your-unique-heartbeat-uuid/fail > /dev/null
exit 1
}
# Catch errors automatically
trap 'handle_error $LINENO' ERR
# Your backup logic here
echo "Running backup..."
# This will fail and trigger our error handler
command_that_definitely_doesnt_exist
echo "Backup complete!"
# Success ping (won't get here if shit breaks)
curl -fsS --retry 3 https://pulse.9n9s.com/your-unique-heartbeat-uuid > /dev/null

Congrats, you just set up monitoring that actually works. Here’s what you can do now:

That’s it. No enterprise onboarding calls, no “let’s schedule a demo to show you our comprehensive monitoring solution.” Just monitoring that works.