Repository: vllm-project/guidellm
Issue: Benchmark fails with --output-formats csv
Root cause: Validation Gap

**Describe the bug**

When running the `guidellm benchmark` command with the `--output-formats csv` flag, the process crashes due to two distinct errors, which prevents the CSV report from being generated.

**Expected behavior**
The command should complete successfully and generate a valid `benchmarks.csv` file in the current directory, containing the results of the benchmark run.

**Environment**
Include all relevant environment information:
1. OS [e.g. macos 26]:
2. Python version [e.g. 3.13.3]:

**To Reproduce**
1、Run the following command:
guidellm benchmark \
  --target "http://x.x.x.x:x" \
  --processor "Qwen/Qwen3-8B-FP8" \
  --rate-type "concurrent" \
  --rate 1 \
  --max-requests 10 \
  --data "prompt_tokens=32,output_tokens=32,samples=1" \
  --output-formats csv

**Errors**
Traceback (most recent call last):
  File "/Users/xxx/trae-repository/guidellm/.venv/bin/guidellm", line 10, in <module>
    sys.exit(cli())
             ~~~^^
  File "/Users/xxx/trae-repository/guidellm/.venv/lib/python3.13/site-packages/click/core.py", line 1161, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/Users/xxx/trae-repository/guidellm/.venv/lib/python3.13/site-packages/click/core.py", line 1082, in main
    rv = self.invoke(ctx)
  File "/Users/xxx/trae-repository/guidellm/.venv/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/Users/xxx/trae-repository/guidellm/.venv/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/Users/xxx/trae-repository/guidellm/.venv/lib/python3.13/site-packages/click/core.py", line 1443, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/trae-repository/guidellm/.venv/lib/python3.13/site-packages/click/core.py", line 788, in invoke
    return __callback(*args, **kwargs)
  File "/Users/xxx/trae-repository/guidellm/src/guidellm/__main__.py", line 407, in run
    asyncio.run(
    ~~~~~~~~~~~^
        benchmark_generative_text(
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<9 lines>...
        )
        ^
    )
    ^
  File "/Users/xxx/.asdf/installs/python/3.13.3/lib/python3.13/asyncio/runners.py", line 195, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/Users/xxx/.asdf/installs/python/3.13.3/lib/python3.13/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
  File "/Users/xxx/trae-repository/guidellm/src/guidellm/benchmark/entrypoints.py", line 450, in benchmark_generative_text
    output_result = await output.finalize(report)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/x'x'x/trae-repository/guidellm/src/guidellm/benchmark/output.py", line 581, in finalize
    self._get_benchmark_status_headers_and_values(benchmark, status)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/trae-repository/guidellm/src/guidellm/benchmark/output.py", line 635, in _get_benchmark_status_headers_and_values
    metric_headers, metric_values = self._get_benchmark_status_metrics_stats(
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        benchmark, status, metric
        ^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/Users/xxx/trae-repository/guidellm/src/guidellm/benchmark/output.py", line 652, in _get_benchmark_status_metrics_stats
    dist_summary: DistributionSummary = getattr(status_dist_summary, status)
                                        ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/xxx/trae-repository/guidellm/.venv/lib/python3.13/site-packages/pydantic/main.py", line 1026, in __getattr__
    raise AttributeError(f'{type(self).__name__!r} object has no attribute {item!r}')
AttributeError: 'GenerativeTextMetricsSummary' object has no attribute 'successful'

**Additional context**
Add any other context about the problem here. Also include any relevant files.