Vegeta · Schema

VegetaMetrics

Aggregate metrics computed from a completed Vegeta attack, including latency statistics, throughput, error rates, and status code distributions

GoHTTPLoad TestingPerformanceTesting

Properties

Name Type Description
latencies object Latency statistics across all requests
bytes_in object Bytes received statistics
bytes_out object Bytes sent statistics
earliest string Timestamp of the earliest request
latest string Timestamp of the latest request
end string Timestamp when the last request completed
duration integer Total attack duration in nanoseconds
wait integer Extra wait time in nanoseconds after last request
requests integer Total number of requests sent
rate number Actual request rate in requests per second
throughput number Successful requests per second
success number Ratio of successful (non-error) responses (0.0 to 1.0)
status_codes object Distribution of HTTP status codes
errors array Unique error messages encountered during the attack
View JSON Schema on GitHub

JSON Schema

vegeta-metrics-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/vegeta/refs/heads/main/json-schema/vegeta-metrics-schema.json",
  "title": "VegetaMetrics",
  "description": "Aggregate metrics computed from a completed Vegeta attack, including latency statistics, throughput, error rates, and status code distributions",
  "type": "object",
  "properties": {
    "latencies": {
      "type": "object",
      "description": "Latency statistics across all requests",
      "properties": {
        "total": {
          "type": "integer",
          "description": "Total cumulative latency in nanoseconds",
          "example": 123456789
        },
        "mean": {
          "type": "integer",
          "description": "Mean latency in nanoseconds",
          "example": 12345678
        },
        "50th": {
          "type": "integer",
          "description": "50th percentile (median) latency in nanoseconds",
          "example": 10000000
        },
        "90th": {
          "type": "integer",
          "description": "90th percentile latency in nanoseconds",
          "example": 20000000
        },
        "95th": {
          "type": "integer",
          "description": "95th percentile latency in nanoseconds",
          "example": 25000000
        },
        "99th": {
          "type": "integer",
          "description": "99th percentile latency in nanoseconds",
          "example": 40000000
        },
        "max": {
          "type": "integer",
          "description": "Maximum latency in nanoseconds",
          "example": 100000000
        },
        "min": {
          "type": "integer",
          "description": "Minimum latency in nanoseconds",
          "example": 500000
        }
      }
    },
    "bytes_in": {
      "type": "object",
      "description": "Bytes received statistics",
      "properties": {
        "total": {
          "type": "integer",
          "description": "Total bytes received",
          "example": 1048576
        },
        "mean": {
          "type": "number",
          "description": "Mean bytes received per request",
          "example": 1024.5
        }
      }
    },
    "bytes_out": {
      "type": "object",
      "description": "Bytes sent statistics",
      "properties": {
        "total": {
          "type": "integer",
          "description": "Total bytes sent",
          "example": 51200
        },
        "mean": {
          "type": "number",
          "description": "Mean bytes sent per request",
          "example": 50.0
        }
      }
    },
    "earliest": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp of the earliest request",
      "example": "2025-03-15T14:30:00.000000000Z"
    },
    "latest": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp of the latest request",
      "example": "2025-03-15T14:30:30.000000000Z"
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the last request completed",
      "example": "2025-03-15T14:30:30.123456789Z"
    },
    "duration": {
      "type": "integer",
      "description": "Total attack duration in nanoseconds",
      "example": 30000000000
    },
    "wait": {
      "type": "integer",
      "description": "Extra wait time in nanoseconds after last request",
      "example": 123456789
    },
    "requests": {
      "type": "integer",
      "description": "Total number of requests sent",
      "example": 3000
    },
    "rate": {
      "type": "number",
      "description": "Actual request rate in requests per second",
      "example": 100.0
    },
    "throughput": {
      "type": "number",
      "description": "Successful requests per second",
      "example": 99.5
    },
    "success": {
      "type": "number",
      "description": "Ratio of successful (non-error) responses (0.0 to 1.0)",
      "minimum": 0,
      "maximum": 1,
      "example": 0.9967
    },
    "status_codes": {
      "type": "object",
      "description": "Distribution of HTTP status codes",
      "additionalProperties": {
        "type": "integer"
      },
      "example": {
        "200": 2990,
        "500": 10
      }
    },
    "errors": {
      "type": "array",
      "description": "Unique error messages encountered during the attack",
      "items": {
        "type": "string"
      },
      "example": ["connection refused"]
    }
  },
  "required": ["latencies", "requests", "rate", "throughput", "success", "status_codes"]
}