# HTTP Performance Metrics Script

**URL:** <https://community.netbeez.net/t/http-performance-metrics-script/299>\
**Category:** Custom Commands\
**Created:** [August 13, 2025, 9:12am UTC](https://community.netbeez.net/t/http-performance-metrics-script/299 "2025-08-13T09:12:42Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![stefano](https://avatars.discourse-cdn.com/v4/letter/s/aca169/32.png) [@stefano](https://community.netbeez.net/u/stefano)\
**Post date:** [August 13, 2025, 9:12am UTC](https://community.netbeez.net/t/http-performance-metrics-script/299/1 "2025-08-13T09:12:42Z")

</div>

## 1. Introduction

Monitoring the performance of web endpoints is essential to ensure optimal user experience.  
This Bash script collects detailed HTTP timing metrics for a given URL, allowing network engineers to identify potential bottlenecks in the web request lifecycle.

**Example Use Cases:**

- Measure Time To First Byte (TTFB) to evaluate server responsiveness
- Monitor DNS lookup, connection, and SSL handshake times
- Track total page load performance for web monitoring

* * *

## 2. Overview of the Script

This Bash script:

1. Accepts a target URL (defaulting to `https://example.com` if none is provided)
2. Uses `curl` to retrieve HTTP timing metrics
3. Outputs key measurements including:
  - DNS lookup time
  - TCP connect time
  - SSL handshake time
  - Time to first byte (TTFB)
  - Total load time

**Prerequisites:**

- Linux-based NetBeez agent
- Bash shell

**Expected Output:**

- Metrics reported in seconds with decimal precision for easy monitoring

* * *

## 3. Script Code

```bash
#!/usr/bin/env bash

# URL to measure (default if not provided)
URL="${1:-https://example.com}"

# Use curl to get timing metrics
read -r namelookup connect appconnect starttransfer total < <(
  curl -o /dev/null -s -w "%{time_namelookup} %{time_connect} %{time_appconnect} %{time_starttransfer} %{time_total}\n" "$URL"
)

# Print results in a format compatible with NetBeez metrics
echo "dns_lookup_time=$namelookup"
echo "connect_time=$connect"
echo "ssl_handshake_time=$appconnect"
echo "ttfb=$starttransfer"
echo "total_load_time=$total"

```

## 4. Sample Output

`dns_lookup_time=0.012`  
`connect_time=0.034`  
`ssl_handshake_time=0.056`  
`ttfb=0.123`  
`total_load_time=0.245 `

* * *

## 5. Closing Remarks

This script provides a quick way to monitor HTTP performance metrics from a NetBeez agent, enabling you to pinpoint slow components in the request lifecycle.

**Extensions you could try:**

- Automate testing multiple URLs and log metrics over time

- Alert if any metric exceeds a threshold

- Integrate with dashboards for real-time web performance monitoring

Share your enhancements in the comments so the community can benefit!
