Overview
Monitor the health and availability of your endpoints
Uptime Monitoring
Metoro’s Uptime Monitoring feature allows you to monitor the health and availability of your services. You can configure monitors to regularly check your HTTP endpoints or TCP ports and track their response times and status.
Monitoring Types
Metoro supports two types of uptime monitoring:
- HTTP Endpoint Monitoring: Check the health of web applications, APIs, and other HTTP services
- TCP Port Monitoring: Verify network connectivity to services by checking if TCP ports are open
Features
- Multiple Monitor Types: Support for both HTTP and TCP monitoring
- Flexible Status Code Matching: Support for exact matches (e.g.,
200
), wildcards (e.g.,2XX
), and multiple patterns (e.g.,200,201,X04
) for HTTP monitors - Response Body Validation: Validate HTTP response bodies against regular expressions
- Custom Headers: Add custom headers to your HTTP requests
- Multiple HTTP Methods: Support for GET, POST, PUT, PATCH, and DELETE
- Configurable Check Frequency: Monitor endpoints from every minute to every hour
- Metric Generation: Automatic generation of response time and status metrics
Getting Started
- Navigate to the Settings page in your Metoro dashboard
- Select the “Integrations” tab
- Click “Add Monitor” in the Uptime Monitoring section
You must have create
permissions for the integration
resource to add a monitor, update
permissions for the integration
resource to edit a monitor and delete
permissions for the integration
resource to delete a monitor.
Configuration Options
Basic Settings
- Name: A descriptive name for your monitor
- Check Type: Choose between HTTP or TCP monitoring
- Check Frequency: How often to check the endpoint
HTTP Check Configuration
When configuring HTTP monitors, you’ll need to specify:
Endpoint Settings
- Endpoint URL: The complete URL to monitor (including
http://
orhttps://
) - HTTP Method: The HTTP method to use (GET, POST, PUT, PATCH, DELETE)
Status Code Validation
You can specify expected status codes using:
- Exact codes:
200
- Wildcards:
2XX
(any 2XX status) You must use uppercase for wildcards. - Multiple patterns:
200,201,X04
Examples:
200
: Expect exactly 200 OK2XX
: Accept any successful responseX00
: Accept any status code ending in 00200,201,202
: Accept any of these specific codes
Response Body Validation
You can optionally validate the response body using regular expressions. This is useful for:
- Ensuring specific content is present
- Validating response format
- Checking for error messages
Example patterns:
.*"status":"healthy".*
: Check for a healthy status in JSON^OK$
: Expect exactly “OK”version: [0-9]+\.[0-9]+\.[0-9]+
: Match a semantic version number
Headers
You can add custom headers to your requests. Some common use cases:
- Authentication tokens
- API keys
- Content type specifications
For POST/PUT requests, the Content-Type
header is automatically set to application/json
.
Request Body
For POST, PUT, and PATCH methods, you can specify a request body to send with each check.
TCP Check Configuration
When configuring TCP monitors, you’ll need to specify:
Connection Settings
- Host: The hostname or IP address to monitor
- Port: The TCP port number to check
TCP monitoring works as follows:
- A simple TCP connection attempt is made to the specified host and port
- The connection has a 10-second timeout by default
- If the connection succeeds, the check passes with a status code 200
- If the connection fails or times out, the check fails with an error message
TCP checks are perfect for monitoring basic connectivity to services like databases, mail servers, or any other TCP-based service.
Metrics
Each monitor automatically generates two metrics:
- Response time metric:
uptime_monitor_[metric_name_base]_response_time
- Status metric:
uptime_monitor_[metric_name_base]_status
These metrics can be used in dashboards and alerts to monitor your endpoints’ health.
Uptime Monitor Logs
All uptime monitoring results are logged and can be viewed in the logs view. The logs are published with:
- Service name:
uptime-monitor
- Environment:
metoro-internal
For successful checks:
- Log line:
Uptime check succeeded
- Attributes include: status code, response body, endpoint pinged, latency
For failed checks:
- Log line:
Uptime check failed
- Attributes include:
- Error field explaining why the check failed
- Status code (if received)
- Expected vs actual response body
- Endpoint pinged
- Latency (if request completed)
Status Pages
Status pages provide a way to communicate your service’s health and incidents to your users. You can create multiple status pages for different audiences or services.
Creating a Status Page
- Navigate to the Settings page in your Metoro dashboard
- Select the “Status Pages” tab
- Click “Create Status Page”
Configuration Options
- Name: A descriptive name for your status page
- Slug: The URL-friendly identifier for your page (e.g.,
status.yourdomain.com
) - Access: Choose between public or private access
- Public: Anyone with the URL can view the status page
- Private: Only authenticated users can view the page
- Branding:
- Logo: Upload your company logo
- Favicon: Custom favicon for the status page
- Theme colors: Customize the look to match your brand
Components
Components represent different parts of your service that you want to monitor. For each component:
- Name: Name of the service component
- Description: Optional description of what the component does
- Group: Optionally group related components together
- Monitors: Associate uptime monitors with this component
- Status will automatically update based on monitor results
- Multiple monitors can be assigned to a single component
Suggested Visualizations
- Uptime Success: Create a stat chart using
uptime_monitor_[name]_status{status="success"}
with an aggregationsum
andlast
as the reduction function. - Uptime Failure: Create a stat chart using
uptime_monitor_[name]_status{status="failure"}
with an aggregationsum
andlast
as the reduction function. - Response Time Trends: Line chart of
uptime_monitor_[name]_response_time
over time
Best Practices
- Check logs immediately after creating a new monitor to verify it’s working as expected
- Create dashboards that show both status and response time for critical services
- Set up alerts for all important uptime monitors
- Adjust monitor frequency based on the importance of the service; critical services should be checked more frequently
Learn More
For detailed information on specific monitoring types:
- HTTP Endpoint Monitoring - Monitor HTTP APIs and web services
- TCP Port Monitoring - Monitor network services via TCP connection
- Viewing Results - How to view and analyze uptime check results in detail
- Metrics - Understand and use uptime monitoring metrics
- Status Pages - Create status pages to communicate service health