Repository: vllm-project/guidellm
Issue: [Bug] Single failed request fails the process
Root cause: Validation Gap

**Description**
When running even a single request fails the `guidellm` process crashes

**Reproduce**
Install `guidellm` via `pip` as described in `readme` file.
Run against a non-existing URL simple to check how the library handle failure

I get the following results:

```
Traceback (most recent call last):
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
    yield
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpx/_transports/default.py", line 233, in handle_request
    resp = self._pool.handle_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpcore/_sync/connection_pool.py", line 216, in handle_request
    raise exc from None
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpcore/_sync/connection_pool.py", line 196, in handle_request
    response = connection.handle_request(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpcore/_sync/connection.py", line 99, in handle_request
    raise exc
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpcore/_sync/connection.py", line 76, in handle_request
    stream = self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpcore/_sync/connection.py", line 122, in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpcore/_backends/sync.py", line 205, in connect_tcp
    with map_exceptions(exc_map):
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/Users/markvaykhanskiy/miniforge3/envs/jounce/lib/python3.11/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
    raise to_exc(exc) from exc
httpcore.ConnectError: [Errno 61] Connection refused
```

**Desired Outcome**
Failing requests shouldn't fail the benchmark, rather, the benchmark should run to completion and provide a report file with statistics for failure rate. Also, each individual request which fails should have `error_code` and `error_message` parameters in the report which already exists currently.

@markVaykhansky, I'm not sure if I agree towards this part. If we couldn't establish a connection to the backend (due to incorrect args, server failures, etc) at the start, I think it should crash immediately to let the user know something is wrong with their target.

If there is an issue with the backend after it has been validated, then I agree this should log as errors. The code on main now should work correctly for this scenario.

@markVaykhansky can we close this issue, as it is resolved in v0.2.0?