• The agent consists of standalone, simple, open-source shell scripts. No root privileges are needed.
  • Start receiving notifications out of the box with default alerting rules, or customize them to suit your needs.
  • Instantly monitor hundreds of important and often overlooked indicators.
  • Monitor your services with Mostro's library of checks or create your own.

Years of devops expertise out of the box

Mostro helps you fix bottlenecks and spot optimization opportunities for the services running on your infrastructure. As soon as your servers start reporting, find out the settings that can be optimized.

Insight mysql b5b78551ecfabe3f257a0a1083313a711cb923e0b94303710e241b097e308a29 Example of an insight for MySQL Query cache memory usage.
Insight postgresql 5611e77ca317c5231a8ff7096905723b05bfba6f949b617939f5494df508a3a9 Example of an insight for PostgreSQL buffers.

Lightweight setup

  • One simple text-based configuration file on your servers: easy to understand and deploy across your infrastructure.
  • Lightweight agent, no dependencies: small shell script executed by cron, sending encrypted data to our API using curl.
  • Agent and checks are open source, read-only. No root privileges are needed. All data is transmitted through SSL.
Mostro conf ff9f7d52e2a9be6ccea047cd4bfd1f4950671c3cc8824ec9cfd2810afc11471b

Easily hackable to your needs

Use Mostro's checks or write your own in any language you prefer to send data to Mostro's API in YAML format:

#!/bin/bash -e

echo "---"
echo "service: api_requests"

mysql -N -B --user=mostro --password=secret database_production -e "
SELECT CONCAT('api_successes: ', COUNT(*)) FROM api_requests WHERE success = 1;
SELECT CONCAT('api_failures: ', COUNT(*)) FROM api_requests WHERE success = 0;
" 2>/dev/null
#!/usr/bin/env ruby

puts "---"
puts "service: api_requests"

require "mysql2"

mysql = Mysql2::Client.new(
  host: "localhost",
  username: "mostro",
  password: "secret",
  database: "database_production"
)

api_successes = mysql.query("SELECT COUNT(*) AS count FROM api_requests WHERE success = 1").first["count"]
api_failures = mysql.query("SELECT COUNT(*) AS count FROM api_requests WHERE success = 0").first["count"]

puts "api_successes: #{api_successes}"
puts "api_failures: #{api_failures}"
#!/usr/bin/python

import MySQLdb

print("---")
print("service: api_requests")

con = MySQLdb.connect("localhost", "mostro", "secret", "database_production")

cur = con.cursor()

cur.execute("SELECT COUNT(*) AS count FROM api_requests WHERE success = 1")
api_successes = cur.fetchone()[0]
print "api_successes: %d" % api_successes

cur.execute("SELECT COUNT(*) AS count FROM api_requests WHERE success = 0")
api_failures = cur.fetchone()[0]
print "api_failures: %d" % api_failures

YAML output

---
service: api_requests
api_successes: 615213
api_failures: 7426

Compute custom values using formulas

Dynamic fields 2662e8dc71f69f01e1f60261b947ae28d92160b381379a5fb5604647cb82d611

Create custom charts to help you visualize any metrics you want. Your data stays available for one year.

Chart 47e21199541ca1269fe48348f65f93c67d4e3e3018019985575af248b96f5865

It's scalable

Easily integrate Mostro in your provisioning process. New servers show up as soon as they first report and can be removed automatically.

Mostro is easy to deploy using your existing tools, from virtual machine images, Puppet, Chef… to copying the configuration file across servers.

Assign tags to servers to automatically apply custom alerting rules when a new server reports. (Learn more)

Tags e777d40a86f1705964051760c3893ae8fb5767cf0c9e1b87ee38f18f346c807e

This makes Mostro perfectly suited for temporary servers and immutable infrastructures.

Integrations

Get notified by email, text, Pagerduty, Slack and HipChat when things go wrong.

Slack alerts 05ee0ccf4ec8e91d586503e68f747a0fee033346cc344131bcca788dfca7b2ac
Mail 5fcc777a334caba63c23711de419c8ca2a37873dbcbd5b52e71c636ba0ae59e6
Messages 8da6e54b6e4819ab6af8163d9acdbe27a15c8606c74b3a44b682d5e523786939
Hipchat 61c830432ecbed0ec6f90317c6e2c81a2a4f891b82b2cf56e1976a4b78730028 Slack 9e7610cd86e12bf92802cf2780e860e3bc0d07ba67cbd0585dd0b54cf951381d Webhooks f4035d059f066f0776844f8bcb1f3e507f83bc2f505075292f56d9cdf1bdd16c Pagerduty 4a7979684c491f4f8d6faa7966f9eb5b4ef975f4b4989f5082c892937c0f6377
  • Pay only for what you use, billed per hour
  • First 7,200 hours
    10 servers reporting for a month
    $0.0125 per server per hour
    Next 10,800 hours
    next 15 servers reporting for a month
    $0.01 per server per hour
    Over 18,000 hours
    over 25 servers reporting for a month
    $0.0075 per server per hour
  • Unlimited checks
  • Unlimited worldwide text alerts
  • Data available for 1 year
  • 30-day free trial
    No credit card required
    No contract
  • Start your free trial

How many servers do you have?

If your servers reported for 30 days, your monthly bill would be: