diff --git a/pkg/analysis_server/benchmark/perf/flutter_completion_benchmark.dart b/pkg/analysis_server/benchmark/perf/flutter_completion_benchmark.dart
index 1784e96..8515385 100644
--- a/pkg/analysis_server/benchmark/perf/flutter_completion_benchmark.dart
+++ b/pkg/analysis_server/benchmark/perf/flutter_completion_benchmark.dart
@@ -40,11 +40,6 @@
   return exitCode;
 }
 
-/// benchmarks:
-///   - analysis-server-warm-analysis
-///   - analysis-server-warm-memory
-///   - analysis-server-edit
-///   - analysis-server-completion
 class FlutterCompletionBenchmark extends Benchmark {
   static final das = FlutterCompletionBenchmark(
     'das',
@@ -62,19 +57,33 @@
 
   FlutterCompletionBenchmark(String protocolName, this.testConstructor)
       : super(
-          '$protocolName-flutter-completion',
+          '$protocolName-flutter',
           'Completion benchmarks with Flutter.',
           kind: 'group',
         );
 
   @override
+  int get maxIterations => 2;
+
+  @override
   bool get needsSetup => true;
 
   @override
+  Future oneTimeCleanup() {
+    try {
+      Directory(flutterPath).deleteSync(recursive: true);
+    } on FileSystemException catch (e) {
+      print(e);
+    }
+
+    return Future.value();
+  }
+
+  @override
   Future oneTimeSetup() async {
     flutterPath = Directory.systemTemp.createTempSync('flutter').path;
 
-    // git clone https://github.com/flutter/flutter $flutterDir
+    // git clone https://github.com/flutter/flutter $flutterPath
     await _runProcess('git', [
       'clone',
       'https://github.com/flutter/flutter',
@@ -136,7 +145,7 @@
     // Total number of suggestions: 2322.
     // Filtered to: 82.
     result.add(
-      'smallFile-body',
+      'completion-smallFile-body',
       BenchMarkResult(
         'micros',
         await _completionTiming(
@@ -144,7 +153,7 @@
           filePath: '$flutterPkgPath/lib/src/material/flutter_logo.dart',
           uniquePrefix: 'Widget build(BuildContext context) {',
           insertStringGenerator: () => 'M',
-          name: 'smallFile-body',
+          name: 'completion-smallFile-body',
         ),
       ),
     );
@@ -157,7 +166,7 @@
       // Total number of suggestions: 2322.
       // Filtered to: 2322.
       result.add(
-        'smallFile-body-withoutPrefix',
+        'completion-smallFile-body-withoutPrefix',
         BenchMarkResult(
           'micros',
           await _completionTiming(
@@ -165,7 +174,7 @@
             filePath: '$flutterPkgPath/lib/src/material/flutter_logo.dart',
             uniquePrefix: 'Widget build(BuildContext context) {',
             insertStringGenerator: null,
-            name: 'smallFile-body-withoutPrefix',
+            name: 'completion-smallFile-body-withoutPrefix',
           ),
         ),
       );
@@ -177,7 +186,7 @@
       // Total number of suggestions: 4654.
       // Filtered to: 182.
       result.add(
-        'smallLibraryCycle-largeFile-smallBody',
+        'completion-smallLibraryCycle-largeFile-smallBody',
         BenchMarkResult(
           'micros',
           await _completionTiming(
@@ -185,7 +194,7 @@
             filePath: '$flutterPkgPath/test/material/text_field_test.dart',
             uniquePrefix: 'getOpacity(WidgetTester tester, Finder finder) {',
             insertStringGenerator: () => 'M',
-            name: 'smallLibraryCycle-largeFile-smallBody',
+            name: 'completion-smallLibraryCycle-largeFile-smallBody',
           ),
         ),
       );
@@ -202,7 +211,7 @@
       // Total number of suggestions: 3429.
       // Filtered to: 133.
       result.add(
-        'mediumLibraryCycle-mediumFile-smallBody',
+        'completion-mediumLibraryCycle-mediumFile-smallBody',
         BenchMarkResult(
           'micros',
           await _completionTiming(
@@ -210,7 +219,7 @@
             filePath: '$flutterPkgPath/lib/src/material/app_bar.dart',
             uniquePrefix: 'computeDryLayout(BoxConstraints constraints) {',
             insertStringGenerator: () => 'M',
-            name: 'mediumLibraryCycle-mediumFile-smallBody',
+            name: 'completion-mediumLibraryCycle-mediumFile-smallBody',
           ),
         ),
       );
@@ -222,7 +231,7 @@
       // Total number of suggestions: 1510.
       // Filtered to: 0.
       result.add(
-        'mediumLibraryCycle-mediumFile-api-parameterType',
+        'completion-mediumLibraryCycle-mediumFile-api-parameterType',
         BenchMarkResult(
           'micros',
           await _completionTiming(
@@ -230,7 +239,7 @@
             filePath: '$flutterPkgPath/lib/src/material/app_bar.dart',
             uniquePrefix: 'computeDryLayout(BoxConstraints',
             insertStringGenerator: _IncrementingStringGenerator(),
-            name: 'mediumLibraryCycle-mediumFile-api-parameterType',
+            name: 'completion-mediumLibraryCycle-mediumFile-api-parameterType',
           ),
         ),
       );
diff --git a/tools/VERSION b/tools/VERSION
index cd48444..a79611d 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 15
 PATCH 0
-PRERELEASE 206
+PRERELEASE 207
 PRERELEASE_PATCH 0
\ No newline at end of file
