Server Monitoring

Push Metrics from Your Servers.
See Trends. Get Alerts.

Omnismith's metric ingestion API lets your scripts push CPU, RAM, disk, and any custom metric directly to a time-series store. Visualize on dashboards. Alert via Telegram or webhook.

How the Monitoring Pipeline Works

1

Define Your Server Template

Create a template with fields for hostname, IP, location, owner, and status. Use References to link servers to teams or projects.

2

Push Metrics via API

Your cron job or monitoring agent sends CPU, RAM, disk, and custom metrics to the REST API. Omnismith timestamps each push automatically — or you can supply your own timestamp to backfill past readings.

3

Visualize & Alert

Build per-server dashboards with Chart, Stat, Gauge, and List widgets. Set up automations to fire Telegram messages or webhooks when metrics cross thresholds.

One API Call to Record Any Metric

Push any numeric metric from any script, agent, or cron job. The ingestion endpoint accepts the entity ID, metric name, and value — Omnismith handles the time-series storage automatically.

  • CPU usage, memory, disk, network throughput
  • Custom application metrics — error rates, queue depth, response times
  • Push from any language — Bash, Python, PHP, Go, Node.js
  • Personal access tokens for secure, scriptable access

# Push server metrics from a cron job (Bash)

#!/bin/bash
SERVER_ID="entity-uuid-here"
TOKEN="omni_your_token_here"

CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}')
RAM=$(free | grep Mem | awk '{print $3/$2 * 100}')
DISK=$(df / | awk 'NR==2{print $5}' | tr -d '%')

curl -s -X PUT "https://api.omnismith.io/v1/entities/$SERVER_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "attribute_values": [
      { "attribute_id": "cpu-attr-uuid",  "value": '"$CPU"'  },
      { "attribute_id": "ram-attr-uuid",  "value": '"$RAM"'  },
      { "attribute_id": "disk-attr-uuid", "value": '"$DISK"' }
    ]
  }'

# Add to crontab: */5 * * * * /path/to/push_metrics.sh

Offline Resilience

Lost Connectivity? Backfill the Gap.

Remote devices — edge servers, IoT sensors, field equipment — sometimes lose network access. With Omnismith's optional updated_at field, your script can accumulate readings locally and replay them with their original timestamps once the connection is restored. Your time-series charts stay accurate with no gaps.

  • Supply any past timestamp — Omnismith inserts it at the correct point in the time series
  • Send a batch of historical values in a single API call
  • Without updated_at, the current server time is used automatically
  • Works for any attribute type — metrics, statuses, counters

# Reconnected after 15 min offline — replay buffered readings

curl -s -X PUT "https://api.omnismith.io/v1/entities/$SERVER_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "attribute_values": [
      { "attribute_id": "cpu-attr-uuid", "value": 72.4, "updated_at": "2026-02-23T10:00:00Z" },
      { "attribute_id": "cpu-attr-uuid", "value": 85.1, "updated_at": "2026-02-23T10:05:00Z" },
      { "attribute_id": "cpu-attr-uuid", "value": 91.3, "updated_at": "2026-02-23T10:10:00Z" },
      { "attribute_id": "cpu-attr-uuid", "value": 67.8, "updated_at": "2026-02-23T10:15:00Z" }
    ]
  }'

# Four readings backfilled at their exact collection times

Build Custom Dashboards with 4 Widget Types

Drag-and-drop widgets onto a grid. Each server, team, or project can have its own dashboard.

📈

Chart Widget

Line and bar charts for time-series metrics — CPU over 24h, memory over 7 days.

🔢

Stat Widget

Current value with trend indicator — "CPU: 67% ↑ from yesterday".

🌡️

Gauge Widget

Radial gauge for utilization metrics — ideal for disk usage and memory pressure.

📋

List Widget

Tabular entity list with sorting — show all servers sorted by highest CPU.

Automated Alerts via Telegram & Webhooks

Set up automations that react to entity changes — when a server's status changes to "Critical" or a disk usage field gets updated, send a Telegram message to your ops channel or fire a webhook to PagerDuty, Slack, or any endpoint.

  • Trigger on entity create, update, or delete events
  • Filter by specific templates (e.g., only Server entities)
  • Send richly-formatted Telegram messages with entity data
  • POST to any webhook — PagerDuty, Slack, custom endpoints
  • View execution logs and retry failed deliveries

Example Telegram Alert

🔴 ALERT: web-prod-07

Status changed: Active → Critical

CPU: 98% | RAM: 94%

Updated by: monitoring-agent

→ View in Omnismith

Start Monitoring Your Servers Today

Free plan includes 150 entities and 250K metric ingestions per month. No credit card required.

Start Free →