Confluent for VS Code
The Confluent extension makes it easy for developers to build stream processing applications using
Confluent technology. This extension provides a robust, delightful experience for
Confluent Cloud products from within the
Visual Studio Code (VS Code) editor desktop environment.
Visit the Confluent Developer site for more about developing with
Confluent, and read the docs at the Confluent documentation site.
Features
Confluent for VS Code provides a number of features for working with your Kafka clusters, topics and
schemas.
Confluent for VS Code is available for Early Access, and some Confluent features may not be
available. Consider installing the
Confluent CLI to access all
features of Confluent Cloud.
Command Palette
Most of the Confluent extension features are available in the VS Code Command Palette. Press
Cmd+Shift+P
/Ctrl+Shift+P
and type "confluent" to show the Confluent extension commands.
Some commands are associated with view actions, which are the simple buttons (usually icons) next to
items in the Sidebar. For example, play (open Message Viewer and start consuming messages),
sync (refresh), and ellipsis (extra actions) are all view actions associated with commands
available in the command palette.
In the Sidebar, click the Confluent logo to open the extension and show the following sections.
Connect to your streams
Confluent for VS Code supports accessing your Apache Kafka® clusters locally or on Confluent Cloud.
To start a local Kafka cluster,
install the Confluent CLI and run
the
confluent local kafka start
command.
If you're working on Confluent Cloud, open the Confluent extension and click Connect to
Confluent Cloud or go to the VS Code Accounts menu and click "Sign in with Confluent Cloud to
use Confluent".
Resources
The Resources view lists Confluent Cloud environments and associated Kafka and Schema Registry
clusters, as well as local Kafka clusters.
- Click a Kafka cluster to load the topics created in that cluster in the Topics view.
- Click a Schema Registry to load the associated schemas for that registry in the Schemas view.
Topics
Click the play icon next to the topic name to open the Message Viewer, which enables
searching and exploring messages in a topic. Within Message Viewer, you can:
- page through and search for specific values within the list of all the messages
- double-click a single message to explore its entire payload encoded into JSON
- pause and resume consuming at any time
- see aggregate counts of messages over time from the histogram view and brush to filter messages by
timestamp
- toggle partitions on/off to show/hide messages from specific partitions
Schemas
View
The Schemas view displays all the schemas available for the current Confluent Cloud
environment's Schema Registry. Schemas are also shown in the Topics view by expanding a topic
item if they match using either TopicNameStrategy
or TopicRecordNameStrategy
schema naming strategies
and the user has the appropriate permissions.
Schema definitions can be viewed by expanding the schema subject to see a specific schema version,
then clicking the View Schema icon.
Create / Evolve
You can create new schemas or update schemas and subject-bindings by creating or opening an .avsc
,
.proto
, or .json
file, then using the Cloud Upload icon in the upper-right of the buffer
titlebar to begin the process of selecting a schema registry and subject to bind to. You can either
bind to new subjects or provide a revised/evolved schema for an existing subject to establish a new
version.
Search the marketplace for extensions to validate your Avro, JSON schema, or Protobuf syntax as
needed.
Support
The Support panel provides links to the extension walkthrough, issue reporting, general
feedback, and options to generate Kafka projects using a template.
Installation
From the Visual Studio Code Extension Marketplace
In your browser, go to the VS Code Marketplace to view,
download, and install the
Confluent for VS Code
extension.
From within VS Code
Open VS Code.
In the VS Code sidebar, click Extensions (Cmd+Shift+X
/Ctrl+Shift+X
).
In the Extensions view, search for "Confluent".
Click Install.
From a .vsix
file
Note: This doc refers to the extension version as x.x.x
. Ensure you replace this with the actual
version number you want to use, without the v
prefix.
Confluent provides these VSIX files:
- MacOS with Apple Silicon:
vscode-confluent-darwin-arm64-x.x.x.vsix
- MacOS with Intel processors:
vscode-confluent-darwin-x64-x.x.x.vsix
- Linux on ARM-64 processors:
vscode-confluent-linux-arm64-x.x.x.vsix
- Linux on x64 processors:
vscode-confluent-linux-x64-x.x.x.vsix
- Windows on x64 processors:
vscode-confluent-windows-x64-x.x.x.vsix
Additionally, for Windows ARM-64, you may use Windows Subsystem for Linux
WSL with the Linux ARM-64 .vsix file.
You can install the Confluent extension by using the VS Code UI or by using the
code --install-extension
command in the terminal.
To install by using the UI, follow these steps:
Download the VSIX file appropriate for your machine.
Open VS Code, and in the Sidebar, click Extensions.
At the top of the Extensions view, click ..., and in the context menu, click Install
from VSIX…
Navigate to your downloaded vscode-confluent-vX.X.X.vsix
file and click Install.
To install in the terminal, run the following command:
code --install-extension /path/to/vscode-confluent-vX.X.X.vsix
Outputs
Once the Confluent extension is activated, you can view extension logs in two separate Output
Channels:
- Confluent: logs for the VS Code extension itself
- Confluent (Sidecar): logs from the
Sidecar process
Telemetry
Gathering usage and error data helps Confluent develop a more resilient and user friendly
application. Confluent enables telemetry only in official production releases. Confluent respect
users' preferences for sending telemetry data -- if you have turned off telemetry in your VS Code
settings, the extension doesn't send any events or data.
Segment for user actions
The extension uses Segment to log extension usage. See telemetry.ts
for
implementation and how it is used in the codebase. The extension sends events when you perform major
actions in the extension, such as using any of the registerd commands. This helps Confluent see what
commands are popular and helps to answer other questions about how the extension is used, so
Confluent can make it even more useful.
Sentry for error tracing
The extension uses Sentry to capture and analyze errors, which enables more
robust and friendly error debugging. It is the first item initialized in extension.ts
, so that it
can send any uncaught exceptions globally, and it's invoked in certain catch blocks to send specific
errors. The @sentry/rollup-plugin is used to upload source maps.
Additional References
Known Limitations
- Confluent Cloud connections require reauthenticating after 8 hours, and you will be prompted to
reauthenticate.
- Signing out of Confluent Cloud through the browser will also sign you out of the Confluent
extension.
- Preview links for non-default organizations work only after switching to the non-default
organization in the Confluent Cloud UI in your browser.
- When using multiple users on a single machine, only one user can run the extension at a time.
Support
If you have any questions, comments, or you run into any issues, feel free to post a message in a
GitHub discussion or create an
issue.
For general feedback, fill out and submit the survey.
Contributing
Follow CONTRIBUTING.md for information on setting up your development
environment, proposing bugfixes and improvements, and building and testing your changes.
See the Code of Conduct for guidelines on what Confluent expects from
participants, and what actions will and will not be tolerated.
License
This project is licensed under the Apache License, Version 2.0. See LICENSE.txt for
the full license text.
The LICENSE.txt and NOTICE.txt covers the source code distributions of this project. The LICENSE.txt
and NOTICE-vsix.txt covers the VSIX archive distribution of this project (the VS Code Extension).
The THIRD_PARTY_NOTICES.txt file contains the list of third-party software that is included in the
VSIX archive distribution of this project, along with the full text of applicable licenses.