<a id="cmf-flink-c3"></a>

# Use Confluent Control Center with Confluent Manager for Apache Flink

Manage Apache Flink® environments and applications in Confluent Manager for Apache Flink (CMF) by using Confluent Control Center.
Confluent Control Center is a web-based user interface that provides a graphical way to manage Flink environments and applications.

#### IMPORTANT
The Flink pages in Confluent Control Center are deprecated as of Control Center 2.6 and are planned
to be removed in a future release.

The visual user interface for managing Flink resources has moved to the new
Confluent Manager for Apache Flink (CMF) user interface, available in CMF 2.4 and later. Start using the
new CMF interface and see [Migrate to the CMF UI](#cmf-flink-c3-migration) for migration steps.

You can use Confluent Control Center to manage the following CMF resources:

- [Flink Environments](/cp-flink/current/configure/environments.html)
- [Flink Applications](/cp-flink/current/jobs/applications/overview.html)
- [Flink SQL Statements](/cp-flink/current/get-started/get-started-statement.html)

Using Confluent Control Center, you can perform these actions, and more:

- View Flink cluster details
- Create a new Flink environment
- Update or delete an existing Flink environment
- Create a new Flink application
- Update or delete an existing Flink application
- Track the evolution of Flink applications over time through application instances
- Monitor the health of an Flink application through lifecycle events
- View and create savepoints for your Flink applications
- Manage catalogs and databases for Flink SQL
- Create and manage compute pools for SQL statement execution
- Submit and monitor Flink SQL statements

<a id="cmf-flink-c3-migration"></a>

## Migrate to the CMF UI

The Flink management interface is moving from Confluent Control Center to the new CMF UI. The CMF UI is
available in CMF 2.4 and later, and is the recommended way to manage Flink resources going forward.

No data migration is required. The CMF UI operates on the same underlying CMF resources
that you manage today through Confluent Control Center, so all existing resources are immediately available.
These resources include environments, applications, savepoints, catalogs, compute pools, and
Flink SQL statements.

To migrate:

1. Upgrade to CMF 2.4 or later. See [Confluent Manager for Apache Flink](/cp-flink/current/overview.html)
   for installation and upgrade instructions.
2. Open the CMF UI in your browser. The UI is served at the root of your CMF REST endpoint,
   which is typically the same URL configured in `confluent.controlcenter.cmf.url`.
3. Update bookmarks, runbooks, and operator documentation to point to the CMF UI.

The CMF REST API, CLI, and Kubernetes operator are not affected by this change.
Features that aren’t part of Flink continue to work as before in Confluent Control Center. These features
include clusters, brokers, topics, schemas, Kafka Connect, ksqlDB, and alerts.

## Prerequisites

Following are the prerequisites to view and manage Flink environments and applications in Confluent Control Center:

1. You must have Confluent Platform and CMF installed.
   - To install Confluent Platform, see [Install Confluent Platform](/platform/current/installation/overview.html).
   - To install CMF, see [Install Confluent Manager for Apache Flink](/cp-flink/current/installation/helm.html).
2. You must have Confluent Control Center installed, which is a separate download from CMF and Confluent Platform.
   To install Confluent Control Center, see [Confluent Control Center Deployment Overview](installation/overview.md#install-c3).
3. You must set some Confluent Control Center configuration properties to view CMF environments in Confluent Control Center.

   The following properties are required to view CMF environments in Confluent Control Center:
   ```none
   confluent.controlcenter.cmf.enable=true
   confluent.controlcenter.cmf.url=<cmf-url>
   ```

   For more information about the Confluent Control Center configuration properties, see [Configure CMF](installation/configuration.md#cmf-c3-config).
4. You may need to set some CMF security properties for Confluent Control Center. For more information, see [Security Properties for CMF](installation/configuration.md#control-center-cmf-security).

#### NOTE
You can run Control Center in Kafka-less mode without a bootstrap Kafka cluster when
operating in CMF-enabled management mode. This configuration allows Control Center
to monitor Flink clusters without requiring Kafka-based state storage. For
configuration details, see [Kafka-less mode for Confluent Control Center](installation/kafkaless-mode.md#c3-kafkaless-mode).

## View cluster details

In Confluent Control Center, you can view the details of a Flink cluster by accessing the Flink menu item.
The overview page displays the details of the cluster, including the number of environments and applications.

The following image shows the Flink home page in Confluent Control Center:

![Home page in C3++](images/cpf-c3-overview.png)

Following is a description of the displayed information:

- **Flink environment(s)**: The total number of Flink environments that are available in the cluster.
- **Flink application(s)**: The total number of Flink applications that are available in the cluster.
- **CPU (allocated)**: The total number of CPUs allocated to the cluster. This is calculated based on the number of applications and their specified default.
- **Memory (allocated)**: The total quantity of memory for the cluster. This is calculated based on the number of applications and their specified default.
- The **Flink environment details** section lists the names of the Flink environments, which you can click through for more details.

## Manage Flink environments

The environments page in Confluent Control Center allows you to view, create, update, and delete Flink environments.
The environments page displays the list of environments with their name, Kubernetes namespace,
number of applications, and allocated resources.

You can search for an environment by name, or filter by Kubernetes namespace.

![Environments page in C3++](images/cpf-env-overview.png)

The following sections describe how to create, update, and delete Flink environments in Confluent Control Center.

### Create a new Flink environment

To create an environment:

1. Navigate to the Flink Environments overview page, and choose **+ Add Flink Environment**.
2. In the **Create Flink Environment** page, enter the following information:
   - Name: The name of the environment.
   - Kubernetes namespace: In CMF, one Flink environment is attached to one Kubernetes namespace.
     To learn more about environments, see - [Flink Environments](/cp-flink/current/concepts/environments.html).
   - Optionally click **Edit Flink application defaults** and paste or upload a JSON or YAML file with the application defaults
     that you prefer.
3. Click **Create environment** when you are finished.

### Update an existing Flink environment

You can update the defaults for Flink applications in a Flink environment
similar to how you create an environment.

1. Navigate to the Flink Environments overview page, and search for or choose a Flink Environment.
   You can search for an environment by name, or filter by Kubernetes namespace.
2. In the **Application defaults** section, choose **Edit**.
3. Choose **YAML** or **JSON** and paste in or upload a JSON or YAML file with the defaults that you prefer.
4. Click **Save changes** when you are finished.

### Delete an Flink environment

You can easily delete an existing Flink environment if it is already empty.

1. Navigate to the Flink Resource overview page, and choose a Flink Environment.
2. In the **Actions** menu, choose **Delete**.
3. Select **Delete**.
4. A pop-up window appears that asks you to confirm the deletion. To confirm you will need to type the name of the environment.
5. Click **Delete environment** to delete the Flink environment.

## Manage Flink applications

The next few sections describe how to create, update, and delete Flink applications in Confluent Control Center.

### View Flink application details

You can view all of the Flink applications for an environment by accessing the Flink menu item, choosing
an environment, and selecting **Applications** in the menu.

The Flink applications will display. There is a maximum of 1000 applications displayed per environment and by default they
are sorted by the order they are created.
The following image shows the **Applications** page in Confluent Control Center:

![Applications page in C3++](images/cpf-c3-applications.png)

### Create a new application

To create a new application:

1. Navigate to the Flink Resource overview page, and choose a Flink Environment.
2. Select **Application** in menu, and choose **+ Add application**.
3. In the **Application defaults** section, paste in or upload a JSON or YAML
   file with the application defaults for this application.
   For example, your JSON file might look like the following:
   ```json
    {
       "apiVersion": "cmf.confluent.io/v1",
       "kind": "FlinkApplication",
       "metadata": {
          "name": "basic-example",
          "creationTimestamp": "2025-05-09T21:49:33.113Z",
          "updateTimestamp": "2025-05-09T21:51:33.881Z"
       },
       "spec": {
          "flinkConfiguration": {
             "metrics.reporter.prom.factory.class": "org.apache.flink.metrics.prometheus.PrometheusReporterFactory",
             "metrics.reporter.prom.port": "9249-9250",
             "taskmanager.numberOfTaskSlots": "1"
          },
          "flinkVersion": "v1_19",
          "image": "confluentinc/cp-flink:1.19.1-cp2",
          "job": {
             "jarURI": "local:///opt/flink/examples/streaming/StateMachineExample.jar",
             "parallelism": 3,
             "state": "running",
             "upgradeMode": "stateless"
          },
          "jobManager": {
             "resource": {
             "cpu": 1,
             "memory": "1024m"
             }
          },
          "serviceAccount": "flink",
          "taskManager": {
             "resource": {
             "cpu": 1,
             "memory": "1024m"
             }
          }
       }
   }
   ```
4. Click **Create application** when you are finished.

### Suspend or delete an Flink application

To suspend or delete an application:

1. Navigate to the Flink Resource overview page, and choose a Flink Environment, and an application.
2. In the **Actions** menu, select **Suspend** or **Delete**
3. If you choose **Suspend**, a pop-up appears and you must click **Suspend** again to pause your Flink application. You
   can also click **Cancel** if you change your mind.
4. If you choose **Delete**, a pop-up appears and you must type the name of the application to confirm the deletion and click **Delete application**.
5. You can also click **Suspend instead** if you want to pause the Flink application instead of deleting it.

### Check application instance details

You can check  the effective configuration for every deployed Flink application version in the **Application instances** tab.

1. To view this tab, navigate to the Flink Resource overview page, and choose a Flink Environment.
2. Select an application, and click the  **Application instances** tab. This will show you each instance
   of the application and its status.

   The following image shows the **Applications instances** tab in Confluent Control Center:
   ![Event log tab in C3++](images/cpf-applications.png)

### Check event logs for a Flink application

You can check the event logs for a Flink application in the **Events log** tab. Events help you
track the status of your Flink applications and clusters.
An event occurs:

- When the CMF application is created or updated
- When the cluster status changes
- When the job status changes

To view events:

1. In Confluent Control Center, navigate to the Flink Resource overview page, and choose a Flink Environment.
2. Select a Flink application, and click the  **Events log** tab.

   The following image shows the **Events log** tab in Confluent Control Center:
   ![Event log tab in C3++](images/cpf-c3-event-logs.png)

## Manage Flink savepoints

You can manage savepoints for your Flink applications in Confluent Control Center.
Savepoints are a consistent snapshot of the state of a Flink application that you can use to
restore or upgrade the application while preserving its state.
Attached savepoints are savepoints that are currently attached to an application.
Detached savepoints are savepoints that were created by the application but are not currently
attached to any application.

### View attached savepoints

To view attached savepoints, choose a Flink environment and select an application.
Savepoints are listed in the **Attached savepoints** tab, including the savepoint name, status, creation date,
trigger time, and results time. You can search this list by savepoint name, or filter by status.
To learn more about savepoints, see [Savepoints](/cp-flink/current/jobs/savepoints.html).

![Savepoints tab in C3++](images/cpf-app-savepoint.png)

### View detached savepoints

To view detached savepoints, navigate to the Flink overview page, and
choose **Detached savepoints** in the navigation menu.

This page lists all detached savepoints with the savepoint name and creation date.
You can search this list by savepoint name.

![Detached savepoints page in C3++](images/cpf-detached-savepoint-menu.png)

### Create a new attached savepoint

The application page allows you to create a new savepoint.

1. In the **Attached savepoints** tab, click **+ Add Savepoint**.
2. Enter the following information in the **Add savepoint** panel:
   - Savepoint name
   - Number of retries for the savepoint. For unlimited retries, enter `-1`.
   - Storage location (optional)
   - Savepoint format, either **CANONICAL** or **NATIVE**:
     - **CANONICAL**: Backend-independent format that is highly portable
     - **NATIVE**: Backend-specific binary format, such as SST for RocksDB
3. When you are finished, click **Create savepoint**.

![Create savepoint panel in C3++](images/cpf-create-savepoint.png)

## Manage Flink SQL

Confluent Control Center provides a graphical interface for working with Flink SQL. You can manage catalogs,
compute pools, and SQL statements through the UI. This section describes how to use Confluent Control Center
to perform common Flink SQL tasks that you would otherwise perform using the
[/platform/current/](/platform/current/).

<a id="cmf-c3-catalogs"></a>

### Manage catalogs

In Confluent Control Center, you can view catalogs, add new ones, and manage their databases to expose Kafka topics as tables.
Catalogs in Flink SQL provide a way to organize and access metadata about your databases and tables.

To view and manage catalogs:

1. In Confluent Control Center, navigate to the Flink menu and select **Catalogs**.
2. The **Catalogs** page displays all available catalogs with their creation dates.
3. To add a new catalog, click **+ Add catalog**.

The following image shows the **Catalogs** page in Confluent Control Center:

![Catalogs page in C3++](images/cpf-c3-catalogs.png)

<a id="cmf-c3-compute-pools"></a>

### Manage compute pools

You can view compute pools, check their resource allocations, and create new pools in Confluent Control Center.
Compute pools define the specification of Flink clusters that execute your SQL statements.

To view and manage compute pools:

1. In Confluent Control Center, navigate to the Flink menu, select an environment, and click **Compute Pools**.
2. The **Compute Pools** page displays all compute pools with their resource allocations
   (CPU, Memory), active statement count, and Flink version.
3. To create a new compute pool, click **+ Add compute pool**.

The following image shows the **Compute Pools** page in Confluent Control Center:

![Compute Pools page in C3++](images/cpf-c3-compute-pools.png)

<a id="cmf-c3-statements"></a>

### Manage Flink SQL statements

In Confluent Control Center, you can create, monitor, and manage SQL statements through the **Statements** page.
Flink SQL statements allow you to define, manipulate, or query data within your streaming environment.

To view and manage statements:

1. In Confluent Control Center, navigate to the Flink menu, select an environment, and click **Statements**.
2. The **Statements** page displays all SQL statements with their status, compute pool, and start time.
3. To create a new statement, click **+ Add statement**.

The following image shows the **Statements** page in Confluent Control Center:

![Statements page in C3++](images/cpf-c3-statements.png)

#### View statement details

To view the details and results of a statement:

1. Navigate to the **Statements** page and select a statement.
2. The statement detail page shows the SQL statement, its status, and the results.

The following image shows a statement detail page in Confluent Control Center:

![Statement detail page in C3++](images/cpf-c3-statement-detail.png)

The statement detail page displays:

- **Status**: Whether the statement is running, completed, or failed.
- **Statement details**: The Flink version and compute pool used.
- **|flink-sql| statement**: The SQL code that was executed.
- **Results**: For metadata queries like `DESCRIBE`, the results show the table schema
  including column names, types, nullability, and other properties.

For more information about Flink SQL syntax and capabilities, see
[/platform/current/Submit](/platform/current/Submit ) .

## Related content

- [Submit Flink SQL Statements](/cp-flink/current/get-started/get-started-statement.html)
- [Use the Flink SQL Interactive Shell](/cp-flink/current/jobs/sql-statements/use-interactive-shell.html)
- [Flink CLI Operations](/cp-flink/current/operations/cli.html)
- [Flink REST APIs](/cp-flink/current/operations/rest.html)
- [Confluent Control Center Deployment Overview](installation/overview.md#install-c3)
