This section contains the most basic commands for getting a workload running on your cluster.
$ clusters
Provisions a new cluster
pulsarctl clusters create (cluster-name)
This command is used for adding the configuration data for a cluster. The configuration data is mainly used for geo-replication between clusters, so please make sure the service urls provided in this command are reachable between clusters. This operation requires Pulsar super-user privileges.
This command requires super-user permissions.
//normal output
Cluster (cluster-name) added
$ add
Name | Shorthand | Default | Usage |
---|---|---|---|
broker-url | Pulsar cluster broker service url, e.g. pulsar://example.pulsar.io:6650 | ||
broker-url-tls | Pulsar cluster tls secured broker service url, e.g. pulsar+ssl://example.pulsar.io:6651 | ||
peer-cluster | p | [] | Cluster to be registered as a peer-cluster of this cluster. |
url | Pulsar cluster web service url, e.g. http://example.pulsar.io:8080 | ||
url-tls | Pulsar cluster tls secured web service url, e.g. https://example.pulsar.io:8443 |
create the failure domain
pulsarctl clusters create-failure-domain (cluster-name) (domain-name)
create the failure domain with brokers
pulsarctl clusters create-failure-domain -b (broker-ip):(broker-port) -b (broker-ip):(broker-port) (cluster-name) (domain-name)
This command is used for creating a failure domain of the (cluster-name).
This command requires super-user permissions.
//normal output
Create failure domain (domain-name) for cluster (cluster-name) succeed
//the args need to be specified as (cluster-name) (domain-name)
[✖] need specified two names for cluster and failure domain
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ create-failure-domain
Name | Shorthand | Default | Usage |
---|---|---|---|
brokers | b | [] | Set the failure domain clusters |
deleting the cluster named (cluster-name)
pulsarctl clusters delete (cluster-name)
This command is used for deleting an existing cluster.
This command requires super-user permissions.
//normal output
Cluster (cluster-name) delete successfully.
//the cluster name is not specified or the cluster name is specified more than one
[✖] the cluster name is not specified or the cluster name is specified more than one
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ delete
delete the failure domain
pulsarctl clusters delete-failure-domain (cluster-name) (domain-name)
This command is used for deleting the failure domain (domain-name) of the cluster (cluster-name)
This command requires super-user permissions.
//output example
Delete failure domain [(domain-name)] for cluster [(cluster-name)] succeed
//the cluster name and(or) failure domain name is not specified or the name is specified more than one
[✖] need to specified the cluster name and the failure domain name
//the specified failure domain is not exist
code: 404 reason: Domain-name non-existent-failure-domain or cluster standalone does not exist
//the specified cluster is not exist
code: 412 reason: Cluster non-existent-cluster does not exist.
$ delete-failure-domain
getting the (cluster-name) data
pulsarctl clusters get (cluster-name)
This command is used for getting the cluster data of the specified cluster.
This command requires super-user permissions.
//normal output
{
"serviceUrl": "http://localhost:8080",
"serviceUrlTls": "",
"brokerServiceUrl": "pulsar://localhost:6650",
"brokerServiceUrlTls": "",
"peerClusterNames": null
}
//the cluster name is not specified or the cluster name is specified more than one
[✖] the cluster name is not specified or the cluster name is specified more than one
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
getting the broker list in the (cluster-name) cluster failure domain (domain-name)
pulsarctl clusters get-failure-domain (cluster-name) (domain-name)
This command is used for getting the specified failure domain on the specified cluster.
This command requires super-user permissions.
//output example
{
"brokers" : [
"failure-broker-A",
"failure-broker-B",
]
}
//the cluster name and(or) failure domain name is not specified or the name is specified more than one
[✖] need to specified the cluster name and the failure domain name
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ get-failure-domain
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
getting the (cluster-name) peer clusters
pulsarctl clusters get-peer-clusters (cluster-name)
This command is used for getting the peer clusters of the specified cluster.
This command requires super-user permissions.
//normal output
+-------------------+
| PEER CLUSTERS |
+-------------------+
| test_peer_cluster |
+-------------------+
//the cluster name is not specified or the cluster name is specified more than one
[✖] the cluster name is not specified or the cluster name is specified more than one
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ get-peer-clusters
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
List the existing clusters
pulsarctl clusters list
This command is used for listing the list of available pulsar clusters.
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
listing all the failure domains under the specified cluster
pulsarctl clusters list-failure-domains (cluster-name)
This command is used for getting all failure domain under the cluster (cluster-name).
This command requires super-user permissions.
//output example
{
"failure-domain": {
"brokers": [
"failure-broker-A",
"failure-broker-B"
]
}
}
//the cluster name is not specified or the cluster name is specified more than one
[✖] the cluster name is not specified or the cluster name is specified more than one
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ list-failure-domains
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
updating the web service url of the (cluster-name)
pulsarctl clusters update --url http://example:8080 (cluster-name)
updating the tls secured web service url of the (cluster-name)
pulsarctl clusters update --url-tls https://example:8080 (cluster-name)
updating the broker service url of the (cluster-name)
pulsarctl clusters update --broker-url pulsar://example:6650 (cluster-name)
updating the tls secured web service url of the (cluster-name)
pulsarctl clusters update --broker-url-tls pulsar+ssl://example:6650 (cluster-name)
registered as a peer-cluster of the (cluster-name) clusters
pulsarctl clusters update -p (cluster-a) -p (cluster-b) (cluster)
This command is used for updating the cluster data of the specified cluster.
This command requires super-user permissions.
//normal output
Cluster (cluster-name) updated
//the cluster name is not specified or the cluster name is specified more than one
[✖] the cluster name is not specified or the cluster name is specified more than one
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ update
Name | Shorthand | Default | Usage |
---|---|---|---|
broker-url | Pulsar cluster broker service url, e.g. pulsar://example.pulsar.io:6650 | ||
broker-url-tls | Pulsar cluster tls secured broker service url, e.g. pulsar+ssl://example.pulsar.io:6651 | ||
peer-cluster | p | [] | Cluster to be registered as a peer-cluster of this cluster. |
url | Pulsar cluster web service url, e.g. http://example.pulsar.io:8080 | ||
url-tls | Pulsar cluster tls secured web service url, e.g. https://example.pulsar.io:8443 |
update the failure domain
pulsarctl clusters update-failure-domain (cluster-name) (domain-name)
update the failure domain with brokers
pulsarctl clusters update-failure-domain --broker-list <cluster-A> --broker-list (cluster-B) (cluster-name) (domain-name)
This command is used for updating a failure domain of the (cluster-name).
This command requires super-user permissions.
//normal output
Update failure domain (domain-name) for cluster (cluster-name) succeed
//the args need to be specified as (cluster-name) (domain-name)
[✖] need specified two names for cluster and failure domain
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ update-failure-domain
Name | Shorthand | Default | Usage |
---|---|---|---|
broker-list | b | [] | Set the failure domain clusters |
updating the
peer clusters
pulsarctl clusters update-peer-clusters -p cluster-a -p cluster-b (cluster-name)
This command is used for updating peer clusters.
This command requires super-user permissions.
//output example
(cluster-name) peer clusters updated
//the cluster name is not specified or the cluster name is specified more than one
[✖] the cluster name is not specified or the cluster name is specified more than one
//the specified cluster does not exist in the broker
[✖] code: 412 reason: Cluster (cluster-name) does not exist.
$ update-peer-clusters
Name | Shorthand | Default | Usage |
---|---|---|---|
peer-cluster | p | [] | Cluster to be registered as a peer-cluster of this cluster |
$ completion
To load completion run
. <(pulsarctl completion bash)
To configure your bash shell to load completions for each session add to your bashrc
// ~/.bashrc or ~/.profile
. <(pulsarctl completion bash)
If you are stuck on Bash 3 (macOS) use
source /dev/stdin <<<"$(pulsarctl completion bash)"
$ bash
To configure your zsh shell, run:
mkdir -p ~/.zsh/completion/
pulsarctl completion zsh > ~/.zsh/completion/_pulsarctl
// Include the directory in your $fpath, for example by adding in ~/.zshrc:
fpath=($fpath ~/.zsh/completion)
// You may have to force rebuild zcompdump:
rm -f ~/.zcompdump; compinit
$ zsh
$ functions
Create a Pulsar Function in cluster mode with jar file
pulsarctl functions create
--tenant public
--namespace default
--name (the name of Pulsar Functions>)
--inputs test-input-topic
--output persistent://public/default/test-output-topic
--classname org.apache.pulsar.functions.api.examples.ExclamationFunction
--jar /examples/api-examples.jar
Create a Pulsar Function use function config yaml file
pulsarctl functions create
--function-config-file (the path of function config yaml file)
--jar (the path of user code jar)
Create a Pulsar Function in cluster mode with pkg URL
pulsarctl functions create
--tenant public
--namespace default
--name (the name of Pulsar Functions)
--inputs test-input-topic
--output persistent://public/default/test-output-topic
--classname org.apache.pulsar.functions.api.examples.ExclamationFunction
--jar file:/http: + /examples/api-examples.jar
Create a Pulsar Function in cluster mode with log topic
pulsarctl functions create
--log-topic persistent://public/default/test-log-topic
// Other function parameters
Create a Pulsar Function in cluster mode with dead letter topic
pulsarctl functions create
--dead-letter-topic persistent://public/default/test-dead-letter-topic
--max-message-retries 10
// Other function parameters
Create a Pulsar Function in cluster mode with auto ack
pulsarctl functions create
--auto-ack
// Other function parameters
Create a Pulsar Function in cluster mode with FQFN
pulsarctl functions create
--fqfn tenant/namespace/name eg:public/default/test-fqfn-function
// Other function parameters
Create a Pulsar Function in cluster mode with topics pattern
pulsarctl functions create
--topics-pattern persistent://tenant/ns/topicPattern*
// Other function parameters
Create a Pulsar Function in cluster mode with user config
pulsarctl functions create
--user-config "{"publishTopic":"publishTopic", "key":"pulsar"}"
// Other function parameters
Create a Pulsar Function in cluster mode with retain ordering
pulsarctl functions create
--retain-ordering
// Other function parameters
Create a Pulsar Function in cluster mode with custom schema for inputs topic
pulsarctl functions create
--custom-schema-inputs "{"topic-1":"schema.STRING", "topic-2":"schema.JSON"}"
// Other function parameters
Create a Pulsar Function in cluster mode with schema type for output topic
pulsarctl functions create
--schema-type schema.STRING
// Other function parameters
Create a Pulsar Function in cluster mode with parallelism
pulsarctl functions create
--parallelism 1
// Other function parameters
Create a Pulsar Function in cluster mode with resource
pulsarctl functions create
--ram 5656565656
--disk 8080808080808080
--cpu 5.0
// Other function parameters
Create a Pulsar Function in cluster mode with window functions
pulsarctl functions create
--window-length-count 10
--window-length-duration-ms 1000
--sliding-interval-count 3
--sliding-interval-duration-ms 1000
// Other function parameters
This command is used for creating a new Pulsar Function in cluster mode.
This command requires super-user permissions.
//normal output
Created (the name of a Pulsar Function) successfully
$ create
Name | Shorthand | Default | Usage |
---|---|---|---|
auto-ack | true | Whether or not the framework acknowledges messages automatically | |
classname | The class name of a Pulsar Function | ||
cpu | 0 | The cpu in cores that need to be allocated per function instance(applicable only to docker runtime) | |
custom-schema-inputs | The map of input topics to Schema class names (as a JSON string) | ||
custom-serde-inputs | The map of input topics to SerDe class names (as a JSON string) | ||
dead-letter-topic | The topic where messages that are not processed successfully are sent to | ||
disk | 0 | The disk in bytes that need to be allocated per function instance(applicable only to docker runtime) | |
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
function-config-file | The path to a YAML config file that specifies the configuration of a Pulsar Function | ||
go | Path to the main Go executable binary for the function (if the function is written in Go) | ||
inputs | i | The input topic or topics (multiple topics can be specified as a comma-separated list) of a Pulsar Function | |
jar | Path to the JAR file for the function (if the function is written in Java) It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package. | ||
log-topic | The topic to which the logs of a Pulsar Function are produced | ||
max-message-retries | 0 | How many times should we try to process a message before giving up | |
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
output | o | The output topic of a Pulsar Function (If none is specified, no output is written) | |
output-serde-classname | The SerDe class to be used for messages output by the function | ||
parallelism | 0 | The parallelism factor of a Pulsar Function (i.e. the number of function instances to run) | |
processing-guarantees | The processing guarantees (aka delivery semantics) applied to the function | ||
py | Path to the main Python file/Python Wheel file for the function (if the function is written in Python) | ||
ram | 0 | The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime) | |
retain-ordering | false | Function consumes and processes messages in order | |
schema-type | t | The builtin schema type or custom schema class name to be used for messages output by the function | |
sliding-interval-count | 0 | The number of messages after which the window slides | |
sliding-interval-duration-ms | 0 | The time duration after which the window slides | |
subs-name | Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer | ||
tenant | The tenant of a Pulsar Function | ||
timeout-ms | 0 | The message timeout in milliseconds | |
topics-pattern | The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only) | ||
user-config | User-defined config key/values | ||
window-length-count | 0 | The number of messages per window | |
window-length-duration-ms | 0 | The time duration of the window in milliseconds |
Delete a Pulsar Function that is running on a Pulsar cluster
pulsarctl functions delete
--tenant public
--namespace default
--name (the name of Pulsar Functions)
Delete a Pulsar Function that is running on a Pulsar cluster with instance ID
pulsarctl functions delete
--tenant public
--namespace default
--name (the name of Pulsar Functions)
--instance-id 1
Delete a Pulsar Function that is running on a Pulsar cluster with FQFN
pulsarctl functions delete
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
This command is used for delete a Pulsar Function that is running on a Pulsar cluster.
This command requires super-user permissions.
//normal output
Deleted
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function
$ delete
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
tenant | The tenant of a Pulsar Function |
Download File Data from Pulsar
pulsarctl functions download
--destination-file public
--path default
Download File Data from Pulsar
pulsarctl functions download
--destination-file public
--tenant public
--namespace default
--name <function-name>
This command is used for download File Data from Pulsar.
This command requires super-user permissions.
//normal output
Downloaded
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
$ download
Name | Shorthand | Default | Usage |
---|---|---|---|
destination-file | The file to store downloaded content | ||
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
name | Function name | ||
namespace | Namespace name | ||
path | Path to store the content | ||
tenant | Tenant name |
Fetch information about a Pulsar Function
pulsarctl functions get
--tenant public
--namespace default
--name (the name of Pulsar Function)
Fetch information about a Pulsar Function with FQFN
pulsarctl functions get
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
Fetch information about a Pulsar Function
This command requires super-user permissions.
//normal output
{
"tenant": "public",
"namespace": "default",
"name": "test-functions",
"className": "org.apache.pulsar.functions.api.examples.ExclamationFunction",
"inputSpecs": {
"persistent://public/default/test-topic-1": {
"isRegexPattern": false
}
},
"output": "persistent://public/default/test-topic-2",
"processingGuarantees": "ATLEAST_ONCE",
"retainOrdering": false,
"userConfig": {},
"runtime": "JAVA",
"autoAck": true,
"parallelism": 1,
"resources": {
"cpu": 1.0,
"ram": 1073741824,
"disk": 10737418240
},
"cleanupSubscription": true
}
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function (your function name) doesn't exist
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
output | o | text | The output format (text,json,yaml) |
tenant | The tenant of a Pulsar Function |
List all Pulsar Functions running under a specific tenant and namespace
pulsarctl functions list
--tenant public
--namespace default
List all Pulsar Functions running under a specific tenant and namespace.
This command requires super-user permissions.
//normal output
+--------------------+
| Function Name |
+--------------------+
| test_function_name |
+--------------------+
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
namespace | The namespace of a Pulsar Function | ||
output | o | text | The output format (text,json,yaml) |
tenant | The tenant of a Pulsar Function |
Put a key/(string value) pair to the state associated with a Pulsar Function
pulsarctl functions putstate
--tenant public
--namespace default
--name (the name of Pulsar Function)
(key name) - (string value)
Put a key/(file path) pair to the state associated with a Pulsar Function
pulsarctl functions putstate
--tenant public
--namespace default
--name (the name of Pulsar Function)
(key name) = (file path)
Put a key/value pair to the state associated with a Pulsar Function with FQFN
pulsarctl functions putstate
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
(key name) - (string value)
Put a key/value pair to the state associated with a Pulsar Function.
This command requires namespace function permissions.
//normal output
Put state (the function state) successfully
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name
arg
[✖] code: 404 reason: Function (your function name) doesn't exist
//The state key and state value not specified, please check your input format
[✖] need to specified the state key and state value
//The format of the input is incorrect, please check.
[✖] error input format
$ putstate
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
tenant | The tenant of a Pulsar Function |
Fetch the current state associated with a Pulsar Function
pulsarctl functions querystate
--tenant public
--namespace default
--name (the name of Pulsar Function)
--key (the name of key)
--watch
Fetch a key/value pair from the state associated with a Pulsar Function with FQFN
pulsarctl functions querystate
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
--key (the name of key)
--watch
Fetch a key/value pair from the state associated with a Pulsar Function
pulsarctl functions querystate
--tenant public
--namespace default
--name (the name of Pulsar Function)
--key (the name of key)
Fetch a key/value pair from the state associated with a Pulsar Function.
This command requires namespace function permissions.
//normal output
{
"key": "pulsar",
"stringValue": "hello",
"byteValue": null,
"numberValue": 0,
"version": 6
}
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function
//key
error: key
$ querystate
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
key | k | key | |
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
output | o | text | The output format (text,json,yaml) |
tenant | The tenant of a Pulsar Function | ||
watch | w | false | Watch for changes in the value associated with a key for a Pulsar Function |
Restart function instance
pulsarctl functions restart
--tenant public
--namespace default
--name (the name of Pulsar Function)
Restart function instance with instance ID
pulsarctl functions restart
--tenant public
--namespace default
--name (the name of Pulsar Function)
--instance-id 1
Restart function instance with FQFN
pulsarctl functions restart
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
This command is used for restarting function instance.
This command requires super-user permissions.
//normal output
Restarted (the name of a Pulsar Function) successfully
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function (your function name) doesn't exist
//Used an instanceID that does not exist or other impermissible actions
[✖] code: 400 reason: Operation not permitted
$ restart
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
instance-id | The function instanceId (restart all instances if instance-id is not provided) | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
tenant | The tenant of a Pulsar Function |
Starts a stopped function instance
pulsarctl functions start
--tenant public
--namespace default
--name (the name of Pulsar Function)
Starts a stopped function instance with instance ID
pulsarctl functions start
--tenant public
--namespace default
--name (the name of Pulsar Function)
--instance-id 1
Starts a stopped function instance with FQFN
pulsarctl functions start
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
This command is used for starting a stopped function instance.
This command requires super-user permissions.
//normal output
Started
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function
//Used an instanceID that does not exist or other impermissible actions
[✖] code: 400 reason: Operation not permitted
$ start
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
instance-id | The function instanceId (start all instances if instance-id is not provided) | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
tenant | The tenant of a Pulsar Function |
Get the current stats of a Pulsar Function
pulsarctl functions stats
--tenant public
--namespace default
--name (the name of Pulsar Function)
Get the current stats of a Pulsar Function with FQFN
pulsarctl functions stats
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
Get the current stats of a Pulsar Function.
This command requires namespace function permissions.
//normal output
{
"receivedTotal": 0,
"processedSuccessfullyTotal": 0,
"systemExceptionsTotal": 0,
"userExceptionsTotal": 0,
"avgProcessLatency": 0,
"lastInvocation": 0,
"oneMin": {
"receivedTotal": 0,
"processedSuccessfullyTotal": 0,
"systemExceptionsTotal": 0,
"userExceptionsTotal": 0,
"avgProcessLatency": 0
},
"instances": [
{
"receivedTotal": 0,
"processedSuccessfullyTotal": 0,
"systemExceptionsTotal": 0,
"userExceptionsTotal": 0,
"avgProcessLatency": 0,
"instanceId": 0,
"metrics": {
"oneMin": {
"receivedTotal": 0,
"processedSuccessfullyTotal": 0,
"systemExceptionsTotal": 0,
"userExceptionsTotal": 0,
"avgProcessLatency": 0
},
"lastInvocation": 0,
"userMetrics": {},
"receivedTotal": 0,
"processedSuccessfullyTotal": 0,
"systemExceptionsTotal": 0,
"userExceptionsTotal": 0,
"avgProcessLatency": 0
}
}
],
"instanceId": 0,
"metrics": {
"oneMin": {
"receivedTotal": 0,
"processedSuccessfullyTotal": 0,
"systemExceptionsTotal": 0,
"userExceptionsTotal": 0,
"avgProcessLatency": 0
},
"lastInvocation": 0,
"userMetrics": null,
"receivedTotal": 0,
"processedSuccessfullyTotal": 0,
"systemExceptionsTotal": 0,
"userExceptionsTotal": 0,
"avgProcessLatency": 0
}
}
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function (your function name) doesn't exist
$ stats
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
instance-id | The function instanceId (Get-stats of all instances if instance-id is not provided) | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
output | o | text | The output format (text,json,yaml) |
tenant | The tenant of a Pulsar Function |
Check the current status of a Pulsar Function
pulsarctl functions status
--tenant public
--namespace default
--name (the name of Pulsar Function)
Check the current status of a Pulsar Function with FQFN
pulsarctl functions status
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
Check the current status of a Pulsar Function.
This command requires namespace function permissions.
//normal output
{
"numInstances": 1,
"numRunning": 1,
"instances": [
{
"instanceId": 0,
"status": {
"running": true,
"error": "",
"numRestarts": 0,
"numReceived": 0,
"numSuccessfullyProcessed": 0,
"numUserExceptions": 0,
"latestUserExceptions": [],
"numSystemExceptions": 0,
"latestSystemExceptions": [],
"averageLatency": 0,
"lastInvocationTime": 0,
"workerId": "c-standalone-fw-127.0.0.1-8080"
}
}
]
}
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function (your function name) doesn't exist
//Used an instanceID that does not exist or other impermissible actions
[✖] code: 400 reason: Operation not permitted
$ status
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
instance-id | The function instanceId (Get-status of all instances if instance-id is not provided) | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
output | o | text | The output format (text,json,yaml) |
tenant | The tenant of a Pulsar Function |
Stops function instance
pulsarctl functions stop
--tenant public
--namespace default
--name (the name of Pulsar Function)
Stops function instance with instance ID
pulsarctl functions stop
--tenant public
--namespace default
--name (the name of Pulsar Function)
--instance-id 1
Stops function instance with FQFN
pulsarctl functions stop
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
This command is used for stopping function instance.
This command requires super-user permissions.
//normal output
Stopped (the name of a Pulsar Function) successfully
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function (your function name) doesn't exist
//Used an instanceID that does not exist or other impermissible actions
[✖] code: 400 reason: Operation not permitted
$ stop
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
instance-id | The function instanceId (stop all instances if instance-id is not provided) | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
tenant | The tenant of a Pulsar Function |
Trigger the specified Pulsar Function with a supplied value
pulsarctl functions trigger
--tenant public
--namespace default
--name (the name of Pulsar Function)
--topic (the name of input topic)
--trigger-value "hello pulsar"
Trigger the specified Pulsar Function with a supplied value
pulsarctl functions trigger
--fqfn tenant/namespace/name [eg: public/default/ExampleFunctions]
--topic (the name of input topic)
--trigger-value "hello pulsar"
Trigger the specified Pulsar Function with a supplied value
pulsarctl functions trigger
--tenant public
--namespace default
--name (the name of Pulsar Function)
--topic (the name of input topic)
--trigger-file (the path of trigger file)
Trigger the specified Pulsar Function with a supplied value.
This command requires namespace function permissions.
//You must specify a name for the Pulsar Functions or a FQFN, please check the --name args
[✖] you must specify a name for the function or a Fully Qualified Function Name (FQFN)
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function (your function name) doesn't exist
//Used an instanceID that does not exist or other impermissible actions
[✖] code: 400 reason: Operation not permitted
//Function in trigger function has unidentified topic
[✖] code: 400 reason: Function in trigger function has unidentified topic
//Request Timed Out
[✖] code: 408 reason: Request Timed Out
$ trigger
Name | Shorthand | Default | Usage |
---|---|---|---|
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
tenant | The tenant of a Pulsar Function | ||
topic | The specific topic name that the function consumes from that you want to inject the data to | ||
trigger-file | The path to the file that contains the data with which you want to trigger the function | ||
trigger-value | The value with which you want to trigger the function |
Change the output topic of a Pulsar Function
pulsarctl functions update
--tenant public
--namespace default
--name update-function
--output test-output-topic
Update a Pulsar Function using a function config yaml file
pulsarctl functions update
--function-config-file (the path of function config yaml file)
--jar (the path of user code jar)
Change the log topic of a Pulsar Function
pulsarctl functions update
--log-topic persistent://public/default/test-log-topic
// Other function parameters
Change the dead letter topic of a Pulsar Function
pulsarctl functions update
--dead-letter-topic persistent://public/default/test-dead-letter-topic
--max-message-retries 10
// Other function parameters
Update the user configs of a Pulsar Function
pulsarctl functions update
--user-config "{"publishTopic":"publishTopic", "key":"pulsar"}"
// Other function parameters
Change the schemas of the input topics for a Pulsar Function
pulsarctl functions update
--custom-schema-inputs "{"topic-1":"schema.STRING", "topic-2":"schema.JSON"}"
// Other function parameters
Change the schema type of the input topic for a Pulsar Function
pulsarctl functions update
--schema-type schema.STRING
// Other function parameters
Change the parallelism of a Pulsar Function
pulsarctl functions update
--parallelism 1
// Other function parameters
Change the resource usage for a Pulsar Function
pulsarctl functions update
--ram 5656565656
--disk 8080808080808080
--cpu 5.0
// Other function parameters
Update the window configurations for a Pulsar Function
pulsarctl functions update
--window-length-count 10
--window-length-duration-ms 1000
--sliding-interval-count 3
--sliding-interval-duration-ms 1000
// Other function parameters
Update a Pulsar Function that has been deployed to a Pulsar cluster.
This command requires super-user permissions.
//normal output
Updated (the name of a Pulsar Function) successfully
//Update contains no change
[✖] code: 400 reason: Update contains no change
//The name of Pulsar Functions doesn't exist, please check the --name args
[✖] code: 404 reason: Function (your function name) doesn't exist
$ update
Name | Shorthand | Default | Usage |
---|---|---|---|
classname | The class name of a Pulsar Function | ||
cpu | 0 | The cpu in cores that need to be allocated per function instance(applicable only to docker runtime) | |
custom-schema-inputs | The map of input topics to Schema class names (as a JSON string) | ||
custom-serde-inputs | The map of input topics to SerDe class names (as a JSON string) | ||
dead-letter-topic | The topic where messages that are not processed successfully are sent to | ||
disk | 0 | The disk in bytes that need to be allocated per function instance(applicable only to docker runtime) | |
fqfn | The Fully Qualified Function Name (FQFN) for the function | ||
function-config-file | The path to a YAML config file that specifies the configuration of a Pulsar Function | ||
go | Path to the main Go executable binary for the function (if the function is written in Go) | ||
inputs | The input topic or topics (multiple topics can be specified as a comma-separated list) of a Pulsar Function | ||
jar | Path to the JAR file for the function (if the function is written in Java). It also supports URL path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package. | ||
log-topic | The topic to which the logs of a Pulsar Function are produced | ||
max-message-retries | 0 | How many times should we try to process a message before giving up | |
name | The name of a Pulsar Function | ||
namespace | The namespace of a Pulsar Function | ||
output | o | The output topic of a Pulsar Function (If none is specified, no output is written) | |
output-serde-classname | The SerDe class to be used for messages output by the function | ||
parallelism | 0 | The parallelism factor of a Pulsar Function (i.e. the number of function instances to run) | |
py | Path to the main Python file/Python Wheel file for the function (if the function is written in Python) | ||
ram | 0 | The ram in bytes that need to be allocated per function instance(applicable only to process/docker runtime) | |
schema-type | t | The builtin schema type or custom schema class name to be used for messages output by the function | |
sliding-interval-count | 0 | The number of messages after which the window slides | |
sliding-interval-duration-ms | 0 | The time duration after which the window slides | |
tenant | The tenant of a Pulsar Function | ||
timeout-ms | 0 | The message timeout in milliseconds | |
topics-pattern | The topic pattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topic-pattern] are mutually exclusive. Add SerDe class name for a pattern in --custom-serde-inputs (supported for java fun only) | ||
update-auth-data | false | Whether or not to update the auth data | |
user-config | User-defined config key/values | ||
window-length-count | 0 | The number of messages per window | |
window-length-duration-ms | 0 | The time duration of the window in milliseconds |
$ namespaces
Clear backlog for all topics of the namespace (namespace-name)
pulsarctl namespaces clear-backlog (namespace-name)
Clear backlog for all topic of the namespace (namespace-name) with a bundle range
pulsarctl namespaces clear-backlog --bundle (bundle) (namespace-name)
Clear the specified subscription (subscription-name) backlog for all topics of the namespace (namespace-name)
pulsarctl namespaces clear-backlog --subscription (subscription-name) (namespace-name)
This command is used for clearing backlog for all topics of a namespace.
This command requires tenant admin permissions.
//normal output
Successfully clear backlog for all topics of the namespace (namespace-name)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ clear-backlog
Name | Shorthand | Default | Usage |
---|---|---|---|
bundle | b | {start-boundary}_{end-boundary} | |
force | f | false | Whether to force clear backlog without prompt |
sub | subscription name |
Clear offload deletion lag of the namespace (namespace-name)
pulsarctl namespaces clear-offload-deletion-lag (namespace-name)
This command is used for clearing offload deletion lag of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
Successfully clear the offload deletion lag of the namespace (namespace-name)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ clear-offload-deletion-lag
creates a namespace named (namespace-name)
pulsarctl namespaces create (namespace-name)
Creates a new namespace
This command requires tenant admin permissions.
//normal output
Created (namespace-name) successfully
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
//Invalid number of bundles, please check --bundles value
Invalid number of bundles. Number of numBundles has to be in the range of (0, 2^32].
$ create
Name | Shorthand | Default | Usage |
---|---|---|---|
bundles | b | 0 | number of bundles to activate |
clusters | c | [] | List of clusters this namespace will be assigned |
Delete a namespace
pulsarctl namespaces delete (namespace-name)
Delete a namespace. The namespace needs to be empty
This command requires tenant admin permissions.
//normal output
Deleted (namespace-name) successfully
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
$ delete
Delete an anti-affinity group of a namespace
pulsarctl namespaces delete-anti-affinity-group tenant/namespace
Delete an anti-affinity group of a namespace
This command requires tenant admin permissions.
//normal output
Delete the anti-affinity group successfully for [tenant/namespace]
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ delete-anti-affinity-group
Get the anti-affinity group of a namespace
pulsarctl namespaces get-anti-affinity-group tenant/namespace
Get the anti-affinity group of a namespace
This command requires tenant admin permissions.
//normal output
(Anti-affinity group name)
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ get-anti-affinity-group
Get the list of namespaces in the same anti-affinity group.
pulsarctl namespaces get-anti-affinity-namespaces tenant/namespace
Get the list of namespaces in the same anti-affinity group.
This command requires tenant admin permissions.
//normal output
(anti-affinity name list)
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ get-anti-affinity-namespaces
Name | Shorthand | Default | Usage |
---|---|---|---|
cluster | c | Cluster name | |
group | g | Anti-affinity group name | |
tenant | t | tenant is only used for authorization. |
Client has to be admin of any of the tenant to access this api
Get the backlog quota policy of a namespace
pulsarctl namespaces get-backlog-quotas tenant/namespace
Get the backlog quota policy of a namespace
This command requires tenant admin permissions.
//normal output
{
"destination_storage" : {
"limit" : 10737418240,
"policy" : "producer_request_hold"
}
}
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ get-backlog-quotas
Get the replicated clusters of a namespace
pulsarctl namespaces get-clusters tenant/namespace
Get the replicated clusters of a namespace
This command requires tenant admin permissions.
//normal output
(cluster name)
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ get-clusters
Get compaction threshold of the namespace (namespace-name)
pulsarctl namespaces get-compaction-threshold (namespace-name)
This command is used for getting compaction threshold of a namespace.
This command requires tenant admin permissions.
//normal output
The compaction size threshold of the namespace (namespace-name) is (size) byte(s)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-compaction-threshold
Get the default message dispatch rate of namespace (namespace-name)
pulsarctl namespaces get-dispatch-rate (namespace)
This command is used for getting the default message dispatch rate of a namespace.
This command requires tenant admin permissions.
//normal output
{
"dispatchThrottlingRateInMsg" : 0,
"dispatchThrottlingRateInByte" : 0,
"ratePeriodInSecond" : 1
}
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-dispatch-rate
Get the max consumers per subscription of the namespace (namespace-name)
pulsarctl namespaces get-max-consumers-per-subscription (namespace-name)
This command is used for getting the max consumers per subscription of a namespace.
This command requires tenant admin permissions.
//normal output
The max consumers per subscription of the namespace (namespace-name) is (size)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-max-consumers-per-subscription
Get the max consumers per topic of the namespace (namespace-name)
pulsarctl namespaces get-max-consumers-per-topic (namespace-name)
This command is used for getting the max consumers per topic of a namespace.
This command requires tenant admin permissions.
//normal output
The max consumers per topic of the namespace (namespace-name) is (size)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-max-consumers-per-topic
Get the max producers per topic of the namespace (namespace-name)
pulsarctl namespaces get-max-producers-per-topic (namespace-name)
This command is used for getting the max producers per topic of a namespace.
This command requires tenant admin permissions.
//normal output
The max producers per topic of the namespace (namespace-name) is (size)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-max-producers-per-topic
Get message TTL settings of a namespace
pulsarctl namespaces get-message-ttl tenant/namespace
Get message TTL settings of a namespace
This command requires tenant admin permissions.
//normal output
(ttl-value)
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ get-message-ttl
Get the offload deletion lag of the namespace (namespace-name)
pulsarctl namespaces get-offload-deletion-lag (namespace-name)
This command is used for getting the offload deletion lag of a namespace.
This command requires tenant admin permissions.
//normal output
The offload deletion lag of the namespace (namespace-name) is (n) minute(s)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-offload-deletion-lag
Get the offload threshold of the namespace (namespace-name)
pulsarctl namespaces get-offload-threshold (namespace-name)
This command is used for getting the offload threshold of a namespace.
This command requires tenant admin permissions.
//normal output
The offload threshold of the namespace (namespace-name) is (size) byte(s)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-offload-threshold
Get the persistence policy of a namespace
pulsarctl namespaces get-persistence tenant/namespace
Get the persistence policy of a namespace
This command requires tenant admin permissions.
//normal output
{
"bookkeeperEnsemble": 1,
"bookkeeperWriteQuorum": 1,
"bookkeeperAckQuorum": 1,
"managedLedgerMaxMarkDeleteRate": 0,
}
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ get-persistence
Get the default replicator message dispatch rate of the namespace (namespace-name)
pulsarctl namespaces get-replicator-dispatch-rate (namespace)
This command is used for getting the default replicator message dispatch rate of a namespace.
This command requires tenant admin permissions.
//normal output
{
"dispatchThrottlingRateInMsg" : 0,
"dispatchThrottlingRateInByte" : 0,
"ratePeriodInSecond" : 1
}
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-replicator-dispatch-rate
Get the retention policy of a namespace
pulsarctl namespaces get-retention tenant/namespace
Get the retention policy of a namespace
This command requires tenant admin permissions.
//normal output
{
"RetentionTimeInMinutes": 0,
"RetentionSizeInMB": 0
}
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ get-retention
Get the schema auto-update strategy of the namespace (namespace-name)
pulsarctl namespaces get-schema-autoupdate-strategy (namespace-name)
This command is used for getting the schema auto-update strategy of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
The schema auto-update strategy of the namespace (namespace-name) is (strategy)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-schema-autoupdate-strategy
Get schema validation status
pulsarctl namespaces get-schema-validation-enforced <namespace-name>
This command is used for getting the schema validation enforced.
This command requires super-user and tenant admin permissions.
//normal output
Schema validation enforced is enabled/disabled
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-schema-validation-enforced
Get the default subscribe rate per consumer of a namespace (namespace-name)
pulsarctl namespaces get-subscribe-rate (namespace)
This command is used for getting the default subscribe rate per consumer of a namespace.
This command requires tenant admin permissions.
//normal output
{
"subscribeThrottlingRatePerConsumer" : 0,
"ratePeriodInSecond" : 30
}
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-subscribe-rate
Get the default subscription message dispatch rate of namespace (namespace-name)
pulsarctl namespaces get-subscription-dispatch-rate (namespace-name)
This command is used for getting the default subscription message dispatch rate of a namespace.
This command requires tenant admin permissions.
//normal output
{
"dispatchThrottlingRateInMsg" : 0,
"dispatchThrottlingRateInByte" : 0,
"ratePeriodInSecond" : 1
}
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ get-subscription-dispatch-rate
Grant permission (action) to the client role (role-name) to access the namespace (namespace-name)
pulsarctl namespaces grant-permission --role (role-name) --actions (action) (namespace-name)
Grant permissions (actions) to the client role (role-name) to access the namespace (namespace-name)
pulsarctl namespaces grant-permission --role (role-name) --actions (action-1) --actions (action-2) (namespace-name)
This command is used for granting permissions to a client role to access a namespace.
This command requires tenant admin permissions.
//normal output
Grant permissions (actions) to the client role (role-name) to access the namespace (namespace-name) successfully
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the authorization is not enabled
[✖] code: 501 reason: Authorization is not enabled
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ grant-permission
Name | Shorthand | Default | Usage |
---|---|---|---|
actions | [] | Actions to be granted (produce,consume,functions) | |
role | Client role to which grant permissions |
Grant the client roles (roles-name) to access the subscription (subscription-name) of the namespace (namespace-name)
pulsarctl namespaces grant-subscription-permission --role (role1-name) --role (role2-name) (namespace-name) (subscription-name)
This command is used for granting client roles to access a subscription of a namespace.
This command requires super-user permissions.
//normal output
Grant the client role
//the namespace name is not specified or the subscription name is not specified
[✖] need to specified namespace name and subscription name
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ grant-subscription-permission
Name | Shorthand | Default | Usage |
---|---|---|---|
role | [] | Client role to which grant permissions |
Get the list of namespaces of a tenant
pulsarctl namespaces list (tenant name)
Get the list of namespaces of a tenant
This command requires tenant admin permissions.
//normal output
+------------------+
| NAMESPACE NAME |
+------------------+
| public/default |
| public/functions |
+------------------+
//you must specify a tenant name, please check if the tenant name is provided
[✖] the tenant name is not specified or the tenant name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Enable messages encryption for the namespace (namespace-name)
pulsarctl namespaces messages-encryption (namespace-name)
Disable messages encryption for the namespace (namespace-name)
pulsarct. namespaces messages-encryption --disable (namespace-name)
This command is used for enabling or disabling messages encryption for a namespace.
This command requires tenant admin and a broker needs the read-write operations of the global zookeeper.
//normal output
Enable/Disable message encryption for the namespace (namespace-name)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ messages-encryption
Name | Shorthand | Default | Usage |
---|---|---|---|
disable | false | Disable messages encryption |
Get permissions configure data of a namespace (tenant)/(namespace)
pulsarctl namespaces permissions (tenant)/(namespace)
This command is used for getting permissions configure data of a namespace.
This command requires tenant admin permissions.
//normal output
{
"
"
]
}
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ permissions
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get the configuration policies of a namespace
pulsarctl namespaces policies (tenant/namespace)
Get the configuration policies of a namespace
This command requires tenant admin permissions.
//normal output
{
"AuthPolicies": {},
"ReplicationClusters": null,
"Bundles": {
"boundaries": [
"0x00000000",
"0x40000000",
"0x80000000",
"0xc0000000",
"0xffffffff"
],
"numBundles": 4
},
"BacklogQuotaMap": null,
"TopicDispatchRate": {
"standalone": {
"DispatchThrottlingRateInMsg": 0,
"DispatchThrottlingRateInByte": 0,
"RatePeriodInSecond": 1
}
},
"SubscriptionDispatchRate": {
"standalone": {
"DispatchThrottlingRateInMsg": 0,
"DispatchThrottlingRateInByte": 0,
"RatePeriodInSecond": 1
}
},
"ClusterSubscribeRate": {
"standalone": {
"SubscribeThrottlingRatePerConsumer": 0,
"RatePeriodInSecond": 30
}
},
"Persistence": {
"BookkeeperEnsemble": 0,
"BookkeeperWriteQuorum": 0,
"BookkeeperAckQuorum": 0,
"ManagedLedgerMaxMarkDeleteRate": 0
},
"DeduplicationEnabled": false,
"LatencyStatsSampleRate": null,
"MessageTTLInSeconds": 0,
"RetentionPolicies": {
"RetentionTimeInMinutes": 0,
"RetentionSizeInMB": 0
},
"Deleted": false,
"AntiAffinityGroup": "",
"EncryptionRequired": false,
"SubscriptionAuthMode": "",
"MaxProducersPerTopic": 0,
"MaxConsumersPerTopic": 0,
"MaxConsumersPerSubscription": 0,
"CompactionThreshold": 0,
"OffloadThreshold": 0,
"OffloadDeletionLagMs": 0,
"SchemaCompatibilityStrategy": "",
"SchemaValidationEnforced": false
}
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ policies
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Remove a backlog quota policy from a namespace
pulsarctl namespaces remove-backlog-quota tenant/namespace
Remove a backlog quota policy from a namespace
This command requires tenant admin permissions.
//normal output
Remove backlog quota successfully for [tenant/namespace]
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ remove-backlog-quota
Revoke the client role (role-name) of accessing the namespace (namespace-name)
pulsarctl namespaces revoke-permission --role (role-name) (namespace-name)
This command is used for revoking a client role permissions of accessing a namespace.
This command requires tenant admin permissions and broker has read-writer permissions on the zookeeper.
//normal output
Revoke the client role (role-name) permissions of accessing the namespace (namespace-name) successfully
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ revoke-permission
Name | Shorthand | Default | Usage |
---|---|---|---|
role | Client role to which revoke permissions |
USED FOR:
This command is used for revoking a client role permissions of accessing a subscription of a namespace.
REQUIRED PERMISSION:
This command requires tenant admin permissions and broker has read-writer permissions on the zookeeper.
OUTPUT:
normal output
Revoke the client role (role-name) permissions of accessing the subscription (subscription-name) of the namespace (namespace-name) successfully
the namespace name is not specified or the subscription name is not specified
[✖] need to specified namespace name and subscription name
the namespace name is not in the format of
/
[✖] The complete name of namespace is invalid. complete name : <namespace-complete-name>
the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [<tenant>/<namespace>]
the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [<namespace>]
the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [<namespace>]
This command is used for revoking a client role permissions of accessing a subscription of a namespace.
This command requires tenant admin permissions and broker has read-writer permissions on the zookeeper.
//normal output
Revoke the client role (role-name) permissions of accessing the subscription (subscription-name) of the namespace (namespace-name) successfully
//the namespace name is not specified or the subscription name is not specified
[✖] need to specified namespace name and subscription name
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ revoke-subscription-permission
Name | Shorthand | Default | Usage |
---|---|---|---|
role | Client role to which revoke permissions |
Set the anti-affinity group for a namespace
pulsarctl namespaces set-anti-affinity-group tenant/namespace
--group (anti-affinity group name)
Set the anti-affinity group for a namespace
This command requires tenant admin permissions.
//normal output
Set the anti-affinity group: (anti-affinity group name) successfully for
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ set-anti-affinity-group
Name | Shorthand | Default | Usage |
---|---|---|---|
group | g | Anti-affinity group name |
Set a backlog quota policy for a namespace
pulsarctl namespaces set-backlog-quota tenant/namespace
--limit 2G
--policy producer_request_hold
Set a backlog quota policy for a namespace
This command requires tenant admin permissions.
//normal output
Set backlog quota successfully for [tenant/namespace]
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
//invalid retention policy type, please check --policy arg
invalid retention policy type: (policy type)
$ set-backlog-quota
Name | Shorthand | Default | Usage |
---|---|---|---|
limit | l | Size limit (eg: 10M, 16G) | |
policy | p | Retention policy to enforce when the limit is reached. |
Valid options are: [producer_request_hold, producer_exception, consumer_backlog_eviction]
Set the replicated clusters for a namespace
pulsarctl namespaces set-clusters tenant/namespace --clusters (cluster name)
Set the replicated clusters for a namespace
This command requires tenant admin permissions.
//normal output
Set replication clusters successfully for tenant/namespace
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
//Invalid cluster name, please check if your cluster name has the appropriate permissions under the current tenant
[✖] code: 403 reason: Cluster name is not in the list of allowed clusters list for tenant [public]
$ set-clusters
Name | Shorthand | Default | Usage |
---|---|---|---|
clusters | c | Replication Cluster Ids list (comma separated values) |
Set the compaction size threshold of the namespace (namespace-name) to (size)
pulsarctl namespaces set-compaction-threshold --size (size) (namespace-name)
This command is used for setting compaction threshold of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
Successfully set the compaction size threshold of the namespace (namespace-name) to (size)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-compaction-threshold
Name | Shorthand | Default | Usage |
---|---|---|---|
size | 0 | Maximum number of bytes in a topic backlog before compaction is triggered (e.g. 10M, 16G, 3T). 0 disable automatic compaction |
Enable or disable deduplication for a namespace
pulsarctl namespaces set-deduplication tenant/namespace (--enable)
Enable or disable deduplication for a namespace
This command requires tenant admin permissions.
//normal output
Set deduplication is [true or false] successfully for public/default
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ set-deduplication
Name | Shorthand | Default | Usage |
---|---|---|---|
enable | e | false | Enable deduplication |
Set the default message dispatch rate by message of the namespace (namespace-name) to (rate)
pulsarctl namespaces set-dispatch-rate --msg-rate (rate) (namespace)
Set the default message dispatch rate by byte of the namespace (namespace-name) to (rate)
pulsarctl namespaces set-dispatch-rate --byte-rate (rate) (namespace)
Set the default message dispatch rate by time of the namespace (namespace-name) to (period)
pulsarctl namespaces set-dispatch-rate --period (period) (namespace)
This command is used for setting the default message dispatch rate of a namespace.
This command requires super-user permissions.
//normal output
Success set the default message dispatch rate of the namespace (namespace-name) to (rate)
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-dispatch-rate
Name | Shorthand | Default | Usage |
---|---|---|---|
byte-rate | b | -1 | byte dispatch rate (default -1) |
msg-rate | m | -1 | message dispatch rate (default -1) |
period | p | 1 | dispatch rate period (default 1 second) |
Set the max consumers per subscription of the namespace (namespace-name) to (size)
pulsarctl namespaces set-max-consumers-per-subscription --size (size) (namespace-name)
This command is used for setting the max consumers per subscription of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
Successfully set the max consumers per subscription of the namespace (namespace-name) to (size)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-max-consumers-per-subscription
Name | Shorthand | Default | Usage |
---|---|---|---|
size | -1 | max consumers per subscription |
Set the max consumers per topic of the namespace (namespace-name) to (size)
pulsarctl namespaces set-max-consumers-per-topic --size (size) (namespace-name)
This command is used for setting the max consumers per topic of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
Successfully set the max consumers per topic of the namespace (namespace-name) to (size)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-max-consumers-per-topic
Name | Shorthand | Default | Usage |
---|---|---|---|
size | -1 | max consumers per topic |
Set the max producers per topic of the namespace (namespace-name) to (size)
pulsarctl namespaces set-max-producers-per-topic --size (size) (namespace-name)
This command is used for setting the max producers per topic of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
Successfully set the max producers per topic of namespace (namespace-name) to (size)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-max-producers-per-topic
Name | Shorthand | Default | Usage |
---|---|---|---|
size | -1 | max producers per topic |
Set Message TTL for a namespace
pulsarctl namespaces set-message-ttl tenant/namespace -ttl 10
Set Message TTL for a namespace
This command requires tenant admin permissions.
//normal output
Set message TTL successfully for [tenant/namespace]
//Invalid value for message TTL, please check -ttl arg
code: 412 reason: Invalid value for message TTL
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ set-message-ttl
Name | Shorthand | Default | Usage |
---|---|---|---|
messageTTL | t | 0 | Message TTL in seconds |
Set the offload deletion (duration) of the namespace (namespace-name)
pulsarctl namespaces set-offload-deletion-lag --lag (duration) (namespace-name)
This command is used for setting the offload deletion of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
Successfully set the offload deletion lag of the namespace (namespace-name) to (duration)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-offload-deletion-lag
Name | Shorthand | Default | Usage |
---|---|---|---|
lag | l | Duration to wait after offloading a ledger segment, before deleting the copy of that segment from cluster local storage. (e.g. 1s, 1m, 1h) |
Set the offload threshold of the namespace (namespace-name) to (size)
pulsarctl namespaces set-offload-threshold --size (size) (namespace-name)
This command is used for setting the offload threshold of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
Successfully set the offload threshold of the namespace (namespace-name) to (size)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-offload-threshold
Name | Shorthand | Default | Usage |
---|---|---|---|
size | -1 | Maximum number of bytes stored in the pulsar cluster for a topic before data will start being automatically offloaded to longterm storage (e.g. 10m, 16g, 3t, 100) |
Negative values disable automatic offload. 0 triggers offloading as soon as possible.
Set the persistence policy for a namespace
pulsarctl namespaces set-persistence tenant/namespace
--ensemble-size 2
--write-quorum-size 2
--ack-quorum-size 2
--ml-mark-delete-max-rate 2.0
Set the persistence policy for a namespace
This command requires tenant admin permissions.
//normal output
Set the persistence policies successfully for [tenant/namespace]
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
//Bookkeeper Ensemble >= WriteQuorum >= AckQuoru, please c
code: 412 reason: Bookkeeper Ensemble >= WriteQuorum >= AckQuoru
$ set-persistence
Name | Shorthand | Default | Usage |
---|---|---|---|
ack-quorum-size | a | 0 | Number of acks (guaranteed copies) to wait for each entry |
ensemble-size | e | 0 | Number of bookies to use for a topic |
ml-mark-delete-max-rate | r | 0 | Throttling rate of mark-delete operation (0 means no throttle) |
write-quorum-size | w | 0 | How many writes to make of each entry |
Set the default replicator message dispatch rate by message of the namespace (namespace-name) to (rate)
pulsarctl namespaces set-replicator-dispatch-rate --msg-rate (rate) (namespace)
Set the default replicator message dispatch rate by byte of the namespace (namespace-name) to (rate)
pulsarctl namespaces set-replicator-dispatch-rate --byte-rate (rate) (namespace)
Set the default replicator message dispatch rate by time of the namespace (namespace-name) to (period)
pulsarctl namespaces set-replicator-dispatch-rate --period (period) (namespace)
This command is used for setting the default replicator message dispatch rate of a namespace.
This command requires super-user permissions.
//normal output
Success set the default replicator message dispatch rate of the namespace (namespace-name) to (rate)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the replicator-dispatch-rate is not configured
[✖] code: 404 reason: replicator-Dispatch-rate is not configured for cluster standalone
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-replicator-dispatch-rate
Name | Shorthand | Default | Usage |
---|---|---|---|
byte-rate | b | -1 | byte dispatch rate (default -1) |
msg-rate | m | -1 | message dispatch rate (default -1) |
period | p | 1 | dispatch rate period (default 1 second) |
Set the retention policy for a namespace
pulsarctl namespaces set-retention tenant/namespace --time 100m
Set the retention policy for a namespace
pulsarctl namespaces set-retention tenant/namespace --size 1G
Set the retention policy for a namespace
This command requires tenant admin permissions.
//normal output
Set retention successfully for [tenant/namespace]
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
//Retention Quota must exceed configured backlog quota for namespace
Retention Quota must exceed configured backlog quota for namespace
$ set-retention
Name | Shorthand | Default | Usage |
---|---|---|---|
size | Retention size limit (eg: 10M, 16G, 3T). |
0 or less than 1MB means no retention and -1 means infinite size retention time | | | Retention time in minutes (or minutes, hours,days,weeks eg: 100m, 3h, 2d, 5w). 0 means no retention and -1 means infinite time retention
Set the schema auto-update strategy to (strategy)
pulsarctl namespaces set-schema-autoupdate-strategy --compatibility (strategy) (namespace-name)
This command is used for setting the schema auto-update strategy of a namespace.
This command requires super-user permissions and broker has write policies permission.
//normal output
Successfully set the schema auto-update strategy of the namespace (namespace-name) to (strategy)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-schema-autoupdate-strategy
Name | Shorthand | Default | Usage |
---|---|---|---|
compatibility | c | Compatibility level required for new schemas created via a Producer. Possible values (AutoUpdateDisabled, Backward, Forward, Full, AlwaysCompatible, BackwardTransitive, ForwardTransitive, FullTransitive) |
Enable schema validation enforced
pulsarctl namespaces set-schema-validation-enforced <namespace-name>
Disable schema validation enforced
pulsarctl namespaces set-schema-validation-enforced --disable <namespace-name>
This command is used for setting the schema whether open schema validation enforced.
This command requires super-user permissions and broker has write policies permission.
//normal output
Enable/Disable schema validation enforced
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-schema-validation-enforced
Name | Shorthand | Default | Usage |
---|---|---|---|
disable | d | false | Disable schema validation enforced |
Set the default subscribe rate by subscribe of the namespace (namespace-name) (rate)
pulsarctl namespaces set-subscribe-rate --subscribe-rate (rate) (namespace)
Set the default subscribe rate by time of the namespace (namespace-name) (period)
pulsarctl namespaces set-subscribe-rate --period (period) (namespace)
This command is used for setting the default subscribe rate per consumer of a namespace.
This command requires super-user permissions.
//normal output
Success set the default subscribe rate of the namespace (namespace-name) to (rate)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-subscribe-rate
Name | Shorthand | Default | Usage |
---|---|---|---|
period | p | 30 | dispatch rate period (default 30 second) |
subscribe-rate | m | -1 | message dispatch rate (default -1) |
Set the default subscription auth mode (mode) of the namespace (namespace-name)
pulsarctl namespaces set-subscription-auth-mode --mode (mode) (namespace-name)
This command is used for setting the default subscription auth mode of a namespace.
This command requires tenant admin and a broker needs the read-write operations of the global zookeeper.
//normal output
Successfully set the default subscription auth mode of namespace
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-subscription-auth-mode
Name | Shorthand | Default | Usage |
---|---|---|---|
mode | m | Subscription authorization mode of a namespace. (e.g. None, Prefix) |
Set the default subscription message dispatch rate by message of the namespace (namespace-name) to (rate)
pulsarctl namespaces set-subscription-dispatch-rate --msg-rate <rate> <namespace
Set the default subscription message dispatch rate by byte of the namespace (namespace-name) to (rate)
pulsarctl namespaces set-subscription-dispatch-rate --byte-rate (rate) (namespace)
Set the default subscriptions message dispatch rate by time of the namespace (namespace-name) to (rate)
pulsarctl namespaces set-subscription-dispatch-rate --period (period) (namespace)
This command is used for setting the default subscription message dispatch rate of a namespace.
This command requires super-user permissions.
//normal output
Success set the default subscription message dispatch rate of the namespace (namespace-name) to (rate)
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ set-subscription-dispatch-rate
Name | Shorthand | Default | Usage |
---|---|---|---|
byte-rate | b | -1 | byte dispatch rate (default -1) |
msg-rate | m | -1 | message dispatch rate (default -1) |
period | p | 1 | dispatch rate period (default 1 second) |
Split a namespace-bundle from the current serving broker
pulsarctl namespaces split-bundle tenant/namespace --bundle ({start-boundary}_{end-boundary})
Split a namespace-bundle from the current serving broker
pulsarctl namespaces split-bundle tenant/namespace
--bundle ({start-boundary}_{end-boundary})
--unload
Split a namespace-bundle from the current serving broker
This command requires tenant admin permissions.
//normal output
Split a namespace bundle: ({start-boundary}_{end-boundary}) successfully
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
//Please check if there is an active topic under the current split bundle.
[✖] code: 412 reason: Failed to find ownership for ServiceUnit:public/default/(bundle range)
$ split-bundle
Name | Shorthand | Default | Usage |
---|---|---|---|
bundle | b | {start-boundary}_{end-boundary} | |
unload | u | false | Unload newly split bundles after splitting old bundle |
Get the list of topics for a namespace
pulsarctl namespaces topics (tenant/namespace)
Get the list of topics for a namespace
This command requires namespace admin permissions.
//normal output
+-------------+
| TOPICS NAME |
+-------------+
+-------------+
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ topics
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Unload a namespace from the current serving broker
pulsarctl namespaces unload tenant/namespace
Unload a namespace with bundle from the current serving broker
pulsarctl namespaces unload tenant/namespace --bundle ({start-boundary}_{end-boundary})
Unload a namespace from the current serving broker
This command requires tenant admin permissions.
//normal output
Unload namespace (tenant/namespace) (with bundle ({start-boundary}_{end-boundary})) successfully
//you must specify a tenant/namespace name, please check if the tenant/namespace name is provided
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace (tenant/namespace) does not exist
$ unload
Name | Shorthand | Default | Usage |
---|---|---|---|
bundle | b | {start-boundary}_{end-boundary}(e.g. 0x00000000_0xffffffff) |
Unsubscribe the specified subscription
for all topic of the namespace (namespace-name)
pulsarctl namespaces unsubscribe (namespace-name) (subscription-name)
Unsubscribe the specified subscription (subscription-name) for all topic of the namespace (namespace-name) with bundle range
pulsarctl namespaces unsubscribe --bundle (bundle) (namespace-name) (subscription-name)
This command is used for unsubscribing the specified subscription for all topics of a namespace.
This command requires tenant admin permissions.
//normal output
Successfully unsubscribe the subscription (subscription-name) for all topics of the namespace (namespace-name)
//the namespace name is not specified or the subscription name is not specified
[✖] need two arguments apply to the command
//the specified namespace name does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ unsubscribe
Name | Shorthand | Default | Usage |
---|---|---|---|
bundle | b | {startboundary}{end_boundary} |
$ schemas
Delete the latest schema for a topic
pulsarctl schemas delete (topic name)
Delete the latest schema for a topic
This command requires namespace admin permissions.
//normal output
Deleted (topic name) successfully
//you must specify a topic name, please check if the topic name is provided
[✖] the topic name is not specified or the topic name is specified more than one
$ delete
Get the schema for a topic
pulsarctl schemas get (topic name)
Get the schema for a topic with version
pulsarctl schemas get (topic name)
--version 2
Get the schema for a topic.
This command requires namespace admin permissions.
//normal output
{
"name": "test-schema",
"schema": {
"type": "record",
"name": "Test",
"fields": [
{
"name": "id",
"type": [
"null",
"int"
]
},
{
"name": "name",
"type": [
"null",
"string"
]
}
]
},
"type": "AVRO",
"properties": {}
}
//HTTP 404 Not Found, please check if the topic name you entered is correct
[✖] code: 404 reason: Not Found
//you must specify a topic name, please check if the topic name is provided
[✖] the topic name is not specified or the topic name is specified more than one
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
version | 0 | the schema version info |
Update the schema for a topic
pulsarctl schemas upload
(topic name)
--filename (the file path of schema)
Update the schema for a topic
This command requires namespace admin permissions.
//normal output
Upload (topic name) successfully
//you must specify a topic name, please check if the topic name is provided
[✖] the topic name is not specified or the topic name is specified more than one
//no such file or directory
[✖] open (file path): no such file or directory
$ upload
Name | Shorthand | Default | Usage |
---|---|---|---|
filename | f | filename |
$ sinks
Create a Pulsar Sink in cluster mode
pulsarctl sink create
--tenant public
--namespace default
--name (the name of Pulsar Sink)
--inputs test-jdbc
--archive connectors/pulsar-io-jdbc-2.4.0.nar
--sink-config-file connectors/mysql-jdbc-sink.yaml
--parallelism 1
Create a Pulsar Sink in cluster mode with pkg URL
pulsarctl sink create
--tenant public
--namespace default
--name (the name of Pulsar Sink)
--inputs test-jdbc
--archive file:/http: + connectors/pulsar-io-jdbc-2.4.0.nar
Create a Pulsar Sink in cluster mode with schema type
pulsarctl sink create
--schema-type schema.STRING
// Other sink parameters
Create a Pulsar Sink in cluster mode with parallelism
pulsarctl sink create
--parallelism 1
// Other sink parameters
Create a Pulsar Sink in cluster mode with resource
pulsarctl sink create
--ram 5656565656
--disk 8080808080808080
--cpu 5.0
// Other sink parameters
Create a Pulsar Sink in cluster mode with sink config
pulsarctl sink create
--sink-config "{"publishTopic":"publishTopic", "key":"pulsar"}"
// Other sink parameters
Create a Pulsar Sink in cluster mode with processing guarantees
pulsarctl sink create
--processing-guarantees EFFECTIVELY_ONCE
// Other sink parameters
Create a Pulsar IO sink connector to run in a Pulsar cluster.
This command requires namespace function permissions.
//normal output
Created (the name of a Pulsar Sinks) successfully
//sink archive not specified, please check --archive arg
[✖] Sink archive not specified
//Cannot specify both archive and sink-type, please check --archive and --sink-type args
[✖] Cannot specify both archive and sink-type
$ create
Name | Shorthand | Default | Usage |
---|---|---|---|
archive | Path to the archive file for the sink. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package. | ||
auto-ack | false | Whether or not the framework will automatically acknowledge messages | |
classname | The sink's class name if archive is file-url-path (file://) | ||
cpu | 0 | The CPU (in cores) that needs to be allocated per sink instance (applicable only to Docker runtime) | |
custom-schema-inputs | The map of input topics to Schema types or class names (as a JSON string) | ||
custom-serde-inputs | The map of input topics to SerDe class names (as a JSON string) | ||
disk | 0 | The disk (in bytes) that need to be allocated per sink instance (applicable only to Docker runtime) | |
inputs | i | The sink's input topic or topics (multiple topics can be specified as a comma-separated list) | |
name | The sink's name | ||
namespace | The sink's namespace | ||
parallelism | 0 | The sink's parallelism factor (i.e. the number of sink instances to run) | |
processing-guarantees | The processing guarantees (aka delivery semantics) applied to the sink | ||
ram | 0 | The RAM (in bytes) that need to be allocated per sink instance (applicable only to the process and Docker runtimes) | |
retain-ordering | false | Sink consumes and sinks messages in order | |
sink-config | User defined configs key/values | ||
sink-config-file | The path to a YAML config file specifying the sink's configuration | ||
sink-type | t | The sink's connector provider | |
subs-name | Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer | ||
tenant | The sink's tenant | ||
timeout-ms | 0 | The message timeout in milliseconds | |
topics-pattern | TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only) |
Delete a Pulsar IO sink connector
pulsarctl sink delete
--tenant public
--namespace default
--name (the name of Pulsar Sink)
This command is used for deleting a Pulsar IO sink connector.
This command requires namespace function permissions.
//normal output
Deleted (the name of a Pulsar Sink) successfully
//sink doesn't exist
code: 404 reason: Sink (the name of a Pulsar Sink) doesn't exist
$ delete
Name | Shorthand | Default | Usage |
---|---|---|---|
name | The sink's name | ||
namespace | The sink's namespace | ||
tenant | The sink's tenant |
Get the information about a Pulsar IO sink connector
pulsarctl sink get
--tenant public
--namespace default
--name (the name of Pulsar Sink)
Get the information about a Pulsar IO sink connector
This command requires namespace function permissions.
//normal output
{
"tenant": "public",
"namespace": "default",
"name": "mysql-jdbc-sink",
"className": "org.apache.pulsar.io.jdbc.JdbcAutoSchemaSink",
"inputSpecs": {
"test-jdbc": {
"isRegexPattern": false
}
},
"configs": {
"password": "jdbc",
"jdbcUrl": "jdbc:mysql://127.0.0.1:3306/test_jdbc",
"userName": "root",
"tableName": "test_jdbc"
},
"parallelism": 1,
"processingGuarantees": "ATLEAST_ONCE",
"retainOrdering": false,
"autoAck": true
}
//sink doesn't exist
code: 404 reason: Sink (the name of a Pulsar Sink) doesn't exist
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
name | The sink's name | ||
namespace | The sink's namespace | ||
output | o | text | The output format (text,json,yaml) |
tenant | The sink's tenant |
Get the list of all the running Pulsar IO sink connectors
pulsarctl sink list
--tenant public
--namespace default
Get the list of all the running Pulsar IO sink connectors
This command requires namespace function permissions.
//normal output
+--------------------+
| Sink Name |
+--------------------+
| test_sink_name |
+--------------------+
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
namespace | The sink's namespace | ||
output | o | text | The output format (text,json,yaml) |
tenant | The sink's tenant |
Restart sink instance
pulsarctl sink restart
--tenant public
--namespace default
--name (the name of Pulsar Sink)
Restart sink instance with instance ID
pulsarctl sink restart
--tenant public
--namespace default
--name (the name of Pulsar Sink)
--instance-id 1
Restart sink instance.
This command requires namespace function permissions.
//normal output
Restarted (the name of a Pulsar Sink) successfully
//sink doesn't exist
code: 404 reason: Sink (the name of a Pulsar Sink) doesn't exist
$ restart
Name | Shorthand | Default | Usage |
---|---|---|---|
instance-id | The sink instanceId (stop all instances if instance-id is not provided) | ||
name | The sink's name | ||
namespace | The sink's namespace | ||
tenant | The sink's tenant |
Start sink instance
pulsarctl sink start
--tenant public
--namespace default
--name (the name of Pulsar Sink)
Starts a stopped sink instance with instance ID
pulsarctl sink start
--tenant public
--namespace default
--name (the name of Pulsar Sink)
--instance-id 1
This command is used for starting a stopped sink instance.
This command requires namespace function permissions.
//normal output
Started (the name of a Pulsar Sink) successfully
//sink doesn't exist
code: 404 reason: Sink (the name of a Pulsar Sink) doesn't exist
$ start
Name | Shorthand | Default | Usage |
---|---|---|---|
instance-id | The sink instanceId (stop all instances if instance-id is not provided) | ||
name | The sink's name | ||
namespace | The sink's namespace | ||
tenant | The sink's tenant |
Get the current status of a Pulsar Sink
pulsarctl sink status
--tenant public
--namespace default
--name (the name of Pulsar Sink)
Get the current status of a Pulsar Sink.
This command requires namespace function permissions.
//normal output
{
"numInstances" : 1,
"numRunning" : 1,
"instances" : [ {
"instanceId" : 0,
"status" : {
"running" : true,
"error" : "",
"numRestarts" : 0,
"numReadFromPulsar" : 0,
"numSystemExceptions" : 0,
"latestSystemExceptions" : [ ],
"numSinkExceptions" : 0,
"latestSinkExceptions" : [ ],
"numWrittenToSink" : 0,
"lastReceivedTime" : 0,
"workerId" : "c-standalone-fw-tengdeMBP.lan-8080"
}
} ]
}
//Update contains no change
[✖] code: 400 reason: Update contains no change
//The name of Pulsar Sink doesn't exist, please check the --name args
[✖] code: 404 reason: Sink (your sink name) doesn't exist
$ status
Name | Shorthand | Default | Usage |
---|---|---|---|
instance-id | The sink instanceId (stop all instances if instance-id is not provided) | ||
name | The sink's name | ||
namespace | The sink's namespace | ||
output | o | text | The output format (text,json,yaml) |
tenant | The sink's tenant |
Stops function instance
pulsarctl sink stop
--tenant public
--namespace default
--name (the name of Pulsar Sink)
Stops function instance with instance ID
pulsarctl sink stop
--tenant public
--namespace default
--name (the name of Pulsar Sink)
--instance-id 1
This command is used for stopping sink instance.
This command requires namespace function permissions.
//normal output
Stopped (the name of a Pulsar Sink) successfully
//sink doesn't exist
code: 404 reason: Sink (the name of a Pulsar Sink) doesn't exist
$ stop
Name | Shorthand | Default | Usage |
---|---|---|---|
instance-id | The sink instanceId (stop all instances if instance-id is not provided) | ||
name | The sink's name | ||
namespace | The sink's namespace | ||
tenant | The sink's tenant |
Update a Pulsar IO sink connector
pulsarctl sink update
--tenant public
--namespace default
--name update-source
--archive pulsar-io-kafka-2.4.0.nar
--classname org.apache.pulsar.io.kafka.KafkaBytesSource
--destination-topic-name my-topic
--cpu 2
Update a Pulsar IO sink connector with sink config
pulsarctl sink create
--sink-config "{"publishTopic":"publishTopic", "key":"pulsar"}"
// Other sink parameters
Update a Pulsar IO sink connector with resource
pulsarctl sink create
--ram 5656565656
--disk 8080808080808080
--cpu 5.0
// Other sink parameters
Update a Pulsar IO sink connector with parallelism
pulsarctl sink create
--parallelism 1
// Other sink parameters
Update a Pulsar IO sink connector with schema type
pulsarctl sink create
--schema-type schema.STRING
// Other sink parameters
Update a Pulsar IO sink connector.
This command requires namespace function permissions.
//normal output
Updated (the name of a Pulsar Sink) successfully
//sink doesn't exist
code: 404 reason: Sink (the name of a Pulsar Sink) doesn't exist
$ update
Name | Shorthand | Default | Usage |
---|---|---|---|
archive | Path to the archive file for the sink. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package. | ||
auto-ack | false | Whether or not the framework will automatically acknowledge messages | |
classname | The sink's class name if archive is file-url-path (file://) | ||
cpu | 0 | The CPU (in cores) that needs to be allocated per sink instance (applicable only to Docker runtime) | |
custom-schema-inputs | The map of input topics to Schema types or class names (as a JSON string) | ||
custom-serde-inputs | The map of input topics to SerDe class names (as a JSON string) | ||
disk | 0 | The disk (in bytes) that need to be allocated per sink instance (applicable only to Docker runtime) | |
inputs | i | The sink's input topic or topics (multiple topics can be specified as a comma-separated list) | |
name | The sink's name | ||
namespace | The sink's namespace | ||
parallelism | 0 | The sink's parallelism factor (i.e. the number of sink instances to run) | |
processing-guarantees | The processing guarantees (aka delivery semantics) applied to the sink | ||
ram | 0 | The RAM (in bytes) that need to be allocated per sink instance (applicable only to the process and Docker runtimes) | |
retain-ordering | false | Sink consumes and sinks messages in order | |
sink-config | User defined configs key/values | ||
sink-config-file | The path to a YAML config file specifying the sink's configuration | ||
sink-type | t | The sink's connector provider | |
subs-name | Pulsar source subscription name if user wants a specific subscription-name for input-topic consumer | ||
tenant | The sink's tenant | ||
timeout-ms | 0 | The message timeout in milliseconds | |
topics-pattern | TopicsPattern to consume from list of topics under a namespace that match the pattern. [--input] and [--topicsPattern] are mutually exclusive. Add SerDe class name for a pattern in --customSerdeInputs (supported for java fun only) |
$ sources
Create a Pulsar Source in cluster mode
pulsarctl sources create
--tenant public
--namespace default
--name (the name of Pulsar Sources)
--destination-topic-name kafka-topic
--classname org.apache.pulsar.io.kafka.KafkaBytesSource
--archive pulsar-io-kafka-2.4.0.nar
--source-config-file conf/kafkaSourceConfig.yaml
--parallelism 1
Create a Pulsar Source in cluster mode with pkg URL
pulsarctl source create
--tenant public
--namespace default
--name (the name of Pulsar Source)
--destination-topic-name kafka-topic
--classname org.apache.pulsar.io.kafka.KafkaBytesSource
--archive file://(or http://) + /examples/api-examples.nar
Create a Pulsar Source in cluster mode with schema type
pulsarctl source create
--schema-type schema.STRING
// Other source parameters
Create a Pulsar Source in cluster mode with parallelism
pulsarctl source create
--parallelism 1
// Other source parameters
Create a Pulsar Source in cluster mode with resource
pulsarctl source create
--ram 5656565656
--disk 8080808080808080
--cpu 5.0
// Other source parameters
Create a Pulsar Source in cluster mode with source config
pulsarctl source create
--source-config "{"publishTopic":"publishTopic", "key":"pulsar"}"
// Other source parameters
Create a Pulsar Source in cluster mode with processing guarantees
pulsarctl source create
--processing-guarantees EFFECTIVELY_ONCE
// Other source parameters
Submit a Pulsar IO source connector to run in a Pulsar cluster.
This command requires namespace function permissions.
//normal output
Created (the name of a Pulsar Sources) successfully
//source archive not specified, please check --archive arg
[✖] Source archive not specified
//Cannot specify both archive and source-type, please check --archive and --source-type args
[✖] Cannot specify both archive and source-type
$ create
Name | Shorthand | Default | Usage |
---|---|---|---|
archive | a | The path to the NAR archive for the Source. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package | |
classname | The source's class name if archive is file-url-path (file://) | ||
cpu | 0 | The CPU (in cores) that needs to be allocated per source instance (applicable only to Docker runtime) | |
deserialization-classname | The SerDe classname for the source | ||
destination-topic-name | The Pulsar topic to which data is sent | ||
disk | 0 | The disk (in bytes) that need to be allocated per source instance (applicable only to Docker runtime) | |
name | The source's name | ||
namespace | The source's namespace | ||
parallelism | 0 | The source's parallelism factor (i.e. the number of source instances to run) | |
processing-guarantees | The processing guarantees (aka delivery semantics) applied to the source | ||
ram | 0 | The RAM (in bytes) that need to be allocated per source instance (applicable only to the process and Docker runtimes) | |
schema-type | The schema type (either a builtin schema like 'avro', 'json', etc.. or custom Schema class name to be used to encode messages emitted from the source | ||
source-config | Source config key/values | ||
source-config-file | he path to a YAML config file specifying the | ||
source-type | t | The source's connector provider | |
tenant | The source's tenant |
Delete a Pulsar IO source connector
pulsarctl source delete
--tenant public
--namespace default
--name (the name of Pulsar Source)
This command is used for deleting a Pulsar IO source connector.
This command requires namespace function permissions.
//normal output
Deleted (the name of a Pulsar Source) successfully
//source doesn't exist
code: 404 reason: Source (the name of a Pulsar Source) doesn't exist
$ delete
Name | Shorthand | Default | Usage |
---|---|---|---|
name | The source's name | ||
namespace | The source's namespace | ||
tenant | The source's tenant |
Gets the information about a Pulsar IO source connector
pulsarctl source get
--tenant public
--namespace default
--name (the name of Pulsar Source)
Gets the information about a Pulsar IO source connector
This command requires namespace function permissions.
//normal output
{
"tenant": "public",
"namespace": "default",
"name": "kafka",
"className": "org.apache.pulsar.io.kafka.KafkaBytesSource",
"topicName": "my-topic",
"configs": {
"bootstrapServers": "pulsar-kafka:9092",
"groupId": "test-pulsar-io1",
"topic": "my-topic",
"sessionTimeoutMs": "10000",
"autoCommitEnabled": "false"
},
"parallelism": 1,
"processingGuarantees": "ATLEAST_ONCE"
}
//source doesn't exist
code: 404 reason: Source (the name of a Pulsar Source) doesn't exist
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
name | The source's name | ||
namespace | The source's namespace | ||
output | o | text | The output format (text,json,yaml) |
tenant | The source's tenant |
List all running Pulsar IO source connectors
pulsarctl source list
--tenant public
--namespace default
List all running Pulsar IO source connectors
This command requires namespace function permissions.
//normal output
+--------------------+
| Source Name |
+--------------------+
| test_source_name |
+--------------------+
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
namespace | The source's namespace | ||
output | o | text | The output format (text,json,yaml) |
tenant | The source's tenant |
Restart source instance
pulsarctl source restart
--tenant public
--namespace default
--name (the name of Pulsar Source)
Restart source instance with instance ID
pulsarctl source restart
--tenant public
--namespace default
--name (the name of Pulsar Source)
--instance-id 1
Restart source instance.
This command requires namespace function permissions.
//normal output
Restarted (the name of a Pulsar Source) successfully
//source doesn't exist
code: 404 reason: Source (the name of a Pulsar Source) doesn't exist
$ restart
Name | Shorthand | Default | Usage |
---|---|---|---|
instance-id | The source instanceId (stop all instances if instance-id is not provided) | ||
name | The source's name | ||
namespace | The source's namespace | ||
tenant | The source's tenant |
Start source instance
pulsarctl source start
--tenant public
--namespace default
--name (the name of Pulsar Source)
Starts a stopped source instance with instance ID
pulsarctl source start
--tenant public
--namespace default
--name (the name of Pulsar Source)
--instance-id 1
This command is used for starting a stopped source instance.
This command requires namespace function permissions.
//normal output
Started (the name of a Pulsar Source) successfully
//source doesn't exist
code: 404 reason: Source (the name of a Pulsar Source) doesn't exist
$ start
Name | Shorthand | Default | Usage |
---|---|---|---|
instance-id | The source instanceId (stop all instances if instance-id is not provided) | ||
name | The source's name | ||
namespace | The source's namespace | ||
tenant | The source's tenant |
Check the current status of a Pulsar Source
pulsarctl source status
--tenant public
--namespace default
--name (the name of Pulsar Source)
Check the current status of a Pulsar Source.
This command requires namespace function permissions.
//normal output
{
"numInstances" : 1,
"numRunning" : 1,
"instances" : [ {
"instanceId" : 0,
"status" : {
"running" : true,
"error" : "",
"numRestarts" : 0,
"numReceivedFromSource" : 0,
"numSystemExceptions" : 0,
"latestSystemExceptions" : [ ],
"numSourceExceptions" : 0,
"latestSourceExceptions" : [ ],
"numWritten" : 0,
"lastReceivedTime" : 0,
"workerId" : "c-standalone-fw-7e0cf1b3bf9d-8080"
}
} ]
}
//Update contains no change
[✖] code: 400 reason: Update contains no change
//The name of Pulsar Source doesn't exist, please check the --name args
[✖] code: 404 reason: Source (your source name) doesn't exist
$ status
Name | Shorthand | Default | Usage |
---|---|---|---|
instance-id | The source instanceId (stop all instances if instance-id is not provided) | ||
name | The source's name | ||
namespace | The source's namespace | ||
output | o | text | The output format (text,json,yaml) |
tenant | The source's tenant |
Stops source instance
pulsarctl source stop
--tenant public
--namespace default
--name (the name of Pulsar Source)
Stops source instance with instance ID
pulsarctl source stop
--tenant public
--namespace default
--name (the name of Pulsar Source)
--instance-id 1
This command is used for stopping source instance.
This command requires namespace function permissions.
//normal output
Stopped (the name of a Pulsar Source) successfully
//source doesn't exist
code: 404 reason: Source (the name of a Pulsar Source) doesn't exist
$ stop
Name | Shorthand | Default | Usage |
---|---|---|---|
instance-id | The source instanceId (stop all instances if instance-id is not provided) | ||
name | The source's name | ||
namespace | The source's namespace | ||
tenant | The source's tenant |
Update a Pulsar IO source connector
pulsarctl source update
--tenant public
--namespace default
--name update-source
--archive pulsar-io-kafka-2.4.0.nar
--classname org.apache.pulsar.io.kafka.KafkaBytesSource
--destination-topic-name my-topic
--cpu 2
Update a Pulsar IO source connector with source config
pulsarctl source create
--source-config "{"publishTopic":"publishTopic", "key":"pulsar"}"
// Other source parameters
Update a Pulsar IO source connector with resource
pulsarctl source create
--ram 5656565656
--disk 8080808080808080
--cpu 5.0
// Other source parameters
Update a Pulsar IO source connector with parallelism
pulsarctl source create
--parallelism 1
// Other source parameters
Update a Pulsar IO source connector with schema type
pulsarctl source create
--schema-type schema.STRING
// Other source parameters
Update a Pulsar IO source connector.
This command requires namespace function permissions.
//normal output
Updated (the name of a Pulsar Source) successfully
//source doesn't exist
code: 404 reason: Source (the name of a Pulsar Source) doesn't exist
$ update
Name | Shorthand | Default | Usage |
---|---|---|---|
archive | a | The path to the NAR archive for the Source. It also supports url-path [http/https/file (file protocol assumes that file already exists on worker host)] from which worker can download the package | |
className | The source's class name if archive is file-url-path (file://) | ||
cpu | 0 | The CPU (in cores) that needs to be allocated per source instance (applicable only to Docker runtime) | |
deserialization-classname | The SerDe classname for the source | ||
destination-topic-name | The Pulsar topic to which data is sent | ||
disk | 0 | The disk (in bytes) that need to be allocated per source instance (applicable only to Docker runtime) | |
name | The source's name | ||
namespace | The source's namespace | ||
parallelism | 0 | The source's parallelism factor (i.e. the number of source instances to run) | |
processing-guarantees | The processing guarantees (aka delivery semantics) applied to the source | ||
ram | 0 | The RAM (in bytes) that need to be allocated per source instance (applicable only to the process and Docker runtimes) | |
schema-type | The schema type (either a builtin schema like 'avro', 'json', etc.. or custom Schema class name to be used to encode messages emitted from the source | ||
source-config | Source config key/values | ||
source-config-file | he path to a YAML config file specifying the | ||
source-type | t | The source's connector provider | |
tenant | The source's tenant |
$ tenants
create a tenant named (tenant-name)
pulsarctl tenants create (tenant-name)
This command is used for creating a new tenant.
This command requires super-user permissions.
//normal output
Create tenant (tenant-name) successfully
//the tenant name is not specified or the tenant name is specified more than one
[✖] the tenant name is not specified or the tenant name is specified more than one
//the specified tenant has been created
[✖] code: 409 reason: Tenant already exists
$ create
Name | Shorthand | Default | Usage |
---|---|---|---|
admin-roles | r | [] | Allowed admins to access the tenant |
allowed-clusters | c | [] | Allowed clusters |
delete a tenant named (tenant-name)
pulsarctl tenants delete (tenant-name)
This command is used for deleting an existing tenant.
This command requires super-user permissions.
//normal output
Delete tenant
//the tenant name is not specified or the tenant name is specified more than one
[✖] the tenant name is not specified or the tenant name is specified more than one
//the specified tenant does not exist in the broker
[✖] code: 404 reason: The tenant does not exist
//there has namespace(s) under the tenant (tenant-name)
code: 409 reason: The tenant still has active namespaces
$ delete
get the configuration of tenant (tenant-name)
pulsarctl tenants get (tenant-name)
This command is used for getting the configuration of a tenant.
This command requires super-user permissions.
//normal output
{
"adminRoles": [],
"allowedClusters": [
"standalone"
]
}
//the tenant name is not specified or the tenant name is specified more than one
[✖] the tenant name is not specified or the tenant name is specified more than one
//the specified tenant does not exist in the cluster
[✖] code: 404 reason: Tenant does not exist
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
list all the existing tenants
pulsarctl tenants list
This command is used for listing all the existing tenants.
This command requires super-user permissions.
//normal output
+-------------+
| TENANT NAME |
+-------------+
| public |
| sample |
+-------------+
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
clear the tenant configuration of a tenant
pulsarctl tenant update (tenant-name)
update the admin roles for tenant (tenant-name)
pulsarctl tenants update --admin-roles (admin-A)--admin-roles (admin-B) (tenant-name)
update the allowed cluster list for tenant (tenant-name)
pulsarctl tenants update --allowed-clusters (cluster-A) --allowed-clusters (cluster-B) (tenant-name)
This command is used for updating the configuration of a tenant.
This command requires super-user permissions.
//normal output
Update tenant [%s] successfully
//the tenant name is not specified or the tenant name is specified more than one
[✖] the tenant name is not specified or the tenant name is specified more than one
//the specified tenant does not exist in
[✖] code: 404 reason: Tenant does not exist
//the flag --admin-roles or --allowed-clusters are not specified
[✖] the admin roles or the allowed clusters is not specified
$ update
Name | Shorthand | Default | Usage |
---|---|---|---|
admin-roles | r | [] | Allowed admins to access the tenant |
allowed-clusters | c | [] | Allowed clusters |
$ topics
Get namespace bundle range of a topic (topic-name)
pulsarctl topic bundle-range (topic-name)
This command is used for getting namespace bundle range of a topic (partition).
This command requires super-user permissions.
//normal output
The bundle range of the topic (topic-name) is: (bundle-range)
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic
$ bundle-range
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get compaction status of a persistent topic (topic-name)
pulsarctl topic compact-status (topic-name)
Get compaction status of a partition of partitioned topic
pulsarctl topic compact-status --partition (partition) (topic-name)
This command is used for getting compaction status of a topic or a partition of a partitioned topic.
This command requires tenant admin permissions.
//normal output
Compacting the topic (topic-name) is done successfully
//Compacting the topic (topic-name) is not running
Compacting the topic (topic-name) is not running
//Compacting the topic (topic-name) is running
Compacting the topic (topic-name) is running
//Compacting the topic (topic-name) is done with error
Compacting the topic (topic-name) is done with error
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic
$ compact-status
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
partition | p | -1 | The partitioned topic index value |
wait | w | false | Wait for compacting to complete |
Create a non-partitioned topic (topic-name)
pulsarctl topics create (topic-name) 0
Create a partitioned topic (topic-name) with (partitions-num) partitions
pulsarctl topics create (topic-name) (partition-num)
This command is used for creating topic.
This command requires namespace admin permissions.
//normal output
Create topic (topic-name) with (partition-num) partitions successfully
//the topic name and(or) the partitions is not specified
[✖] need to specified the topic name and the partitions
//the topic has been created
[✖] code: 409 reason: Partitioned topic already exists
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, partitioned topic
$ create
Delete a partitioned topic (topic-name)
pulsarctl topics delete (topic-name)
Delete a non-partitioned topic (topic-name)
pulsarctl topics delete --non-partitioned (topic-name)
This command is used for deleting an existing topic.
This command requires namespace admin permissions.
//normal output
Delete topic (topic-name) successfully
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the partitioned topic does not exist
[✖] code: 404 reason: Partitioned topic does not exist
//the non-partitioned topic does not exist
[✖] code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, partitioned topic
$ delete
Name | Shorthand | Default | Usage |
---|---|---|---|
delete-schema | d | false | Delete schema while deleting topic |
force | f | false | Close all producer/consumer/replicator and delete topic forcefully |
non-partitioned | n | false | Delete a non-partitioned topic |
Get hte metadata of an exist topic (topic-name) metadata
pulsarctl topics get (topic-name)
This command is used for getting the metadata of an exist topic.
This command requires namespace admin permissions.
//normal output
{
"partitions": "(partitions)"
}
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, partitioned topic, a partition of a partitioned topic
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get the permissions of a topic (topic-name)
pulsarctl topic get-permissions (topic-name)
This command is used for getting the permissions of a topic.
This command requires namespace admin permissions.
//normal output
{
"
"
]
}
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic, partitioned topic
$ get-permissions
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Grant permissions to a client on a single topic (topic-name)
pulsarctl topic grant-permissions --role (role) --actions (action-1) --actions (action-2) (topic-name)
This command is used for granting permissions to a client role on a topic.
This command requires namespace admin permissions.
//normal output
Grant role %s and actions %v to the topic %s successfully
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the specified role is empty
Invalid role name
//the specified actions is not allowed.
The auth action only can be specified as 'produce', 'consume', or 'functions'. Invalid auth action '(actions)'
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic, partitioned topic
$ grant-permissions
Name | Shorthand | Default | Usage |
---|---|---|---|
actions | [] | Actions to be granted (produce,consume,functions) | |
role | Client role to which grant permissions |
Get the internal info of a topic
pulsarctl topic internal-info <topic-name>
This command is used for getting the internal info of a topic which has messages or subscriptions.
This command requires tenant admin permissions.
//normal output
{
"version": 1,
"creationDate": "",
"modificationData": "",
"ledgers": [
{
"ledgerId": 0,
"entries": 0,
"size": 0,
"timestamp": 0
}
],
"terminatedPosition": {
"ledgerId": 0,
"entryId": 0
},
"cursors": {
"hello": {
"version": 0,
"creationDate": "",
"modificationDate": "",
"cursorsLedgerId": 0,
"markDelete": {
"ledgerId": 0,
"entryId": 0
},
"individualDeletedMessages": null,
"Properties": null
}
}
}
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the specified topic does not exist
[✖] code: 500 reason: Unknown error
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic
$ internal-info
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get internal stats for an existing non-partitioned-topic (topic-name)
pulsarctl topic internal-stats (topic-name)
Get internal stats for a partition of a partitioned topic
pulsarctl topic internal-stats --partition (partition) (topic-name)
This command is used for getting the internal stats for a non-partitioned topic or a partition of a partitioned topic.
This command requires namespace admin permissions.
//normal output
{
"entriesAddedCounter": 0,
"numberOfEntries": 0,
"totalSize": 0,
"currentLedgerEntries": 0,
"currentLedgerSize": 0,
"lastLedgerCreatedTimestamp": "",
"lastLedgerCreationFailureTimestamp": "",
"waitingCursorsCount": 0,
"pendingAddEntriesCount": 0,
"lastConfirmedEntry": "",
"state": "",
"ledgers": [
{
"ledgerId": 0,
"entries": 0,
"size": 0,
"offloaded": false
}
],
"cursors": {}
}
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the specified topic is not exist or the specified topic is a partitioned topic
[✖] code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic, partitioned topic
$ internal-stats
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
partition | p | -1 | The partitioned topic index value |
Get the last message id of a topic (persistent-topic-name)
pulsarctl topic last-message-id (persistent-topic-name)
Get the last message id of a partition of a partitioned topic (topic-name)
pulsarctl topic last-message-id --partition (partition) (topic-name)
This command is used for getting the last message id of a topic (partition).
This command requires tenant admin permissions.
//normal output
{
"LedgerID": 0,
"EntryID": 0,
"PartitionedIndex": 0
}
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the topic (persistent-topic-name) does not exist in the cluster
[✖] code: 404 reason: Topic not found
//the topic (persistent-topic-name) does not a persistent topic
[✖] code: 405 reason: GetLastMessageId on a non-persistent topic is not allowed
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic
$ last-message-id
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
partition | p | -1 | The partitioned topic index value |
List all exist topics under the namespace(tenant/namespace)
pulsarctl topics list (tenant/namespace)
This command is used for listing all exist topics under the specified namespace.
This command requires admin permissions.
//normal output
+----------------------------------------------------------+---------------+
| TOPIC NAME | PARTITIONED ? |
+----------------------------------------------------------+---------------+
+----------------------------------------------------------+---------------+
//the namespace is not specified
[✖] the namespace name is not specified or the namespace name is specified more than one
//the tenant of the namespace does not exist
[✖] code: 404 reason: Tenant does not exist
//the namespace does not exist
[✖] code: 404 reason: Namespace does not exist
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, partitioned topic
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Lookup the owner broker of the topic (topic-name)
pulsarctl topic lookup (topic-name)
This command is used for looking up the owner broker of a topic.
This command does not require permissions.
//
{
"brokerUlr": "",
"brokerUrlTls": "",
"httpUrl": "",
"httpUrlTls": "",
}
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic, partitioned topic
$ lookup
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Trigger offloading the messages of a topic (topic-name) to a long-term storage and keep the configured amount of data in BookKeeper only (e.g. 10M, 5G, the unit is byte if the specified value without the unit.)
pulsarctl topic offload (topic-name) (threshold)
This command is used for triggering offloading the messages of a topic to a long-term storage (e.g. Amazon S3)
This command requires tenant admin permissions.
//normal output
Trigger offloading the data before the message (messageId) of the topic (topic-name) successfully
//noting to offload
Nothing to offload
//the topic name is not specified or the offload threshold is not specified
[✖] only two arguments are allowed to be used as names
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic
$ offload
Check the status of offloading data from a topic (persistent-topic-name) to a long-term storage
pulsarctl topic offload-status (persistent-topic-name)
Wait for offloading to complete
pulsarctl topic offload-status --wait (persistent-topic-name)
This command is used for checking the status of offloading data from a persistent topic to a long-term storage.
This command requires tenant admin permissions.
//normal output
Offloading topic (topic-name) data is done successfully
//Offloading topic is not running
Offloading topic (topic-name) data is not running
//Offloading topic is running
Offloading topic (topic-name) data is running
//Offloading topic with error
Offloading topic (topic-name) data is done with error (error-msg)
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic
$ offload-status
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
wait | w | false | Wait for offloading to complete |
Revoke permissions of a topic (topic-name)
pulsarctl topic revoke-permissions --role (role) (topic-name)
This command is used for revoking a client role permissions on a topic.
This command requires namespace admin permissions.
//normal output
Revoke permissions for the role (role) of the topic (topic-name) successfully
//the specified role is empty
Invalid role name
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic, partitioned topic
$ revoke-permissions
Name | Shorthand | Default | Usage |
---|---|---|---|
role | Client role to which revoke permissions |
Get the non-partitioned topic (topic-name) stats
pulsarctl topic stats (topic-name)
Get the partitioned topic (topic-name) stats
pulsarctl topic stats --partitioned-topic (topic-name)
Get the partitioned topic (topic-name) stats and per partition stats
pulsarctl topic stats --partitioned-topic --per-partition (topic-name)
This command is used for getting the stats for an existing topic and its connected producers and consumers. (All the rates are computed over a 1 minute window and are relative the last completed 1 minute period)
This command requires namespace admin permissions.
//Get the non-partitioned topic stats
{
"msgRateIn": 0,
"msgRateOut": 0,
"msgThroughputIn": 0,
"msgThroughputOut": 0,
"averageMsgSize": 0,
"storageSize": 0,
"publishers": [],
"subscriptions": {},
"replication": {},
"deduplicationStatus": "Disabled"
}
//Get the partitioned topic stats
{
"msgRateIn": 0,
"msgRateOut": 0,
"msgThroughputIn": 0,
"msgThroughputOut": 0,
"averageMsgSize": 0,
"storageSize": 0,
"publishers": [],
"subscriptions": {},
"replication": {},
"deduplicationStatus": "",
"metadata": {
"partitions": 1
},
"partitions": {}
}
//Get the partitioned topic stats and per partition topic stats
{
"msgRateIn": 0,
"msgRateOut": 0,
"msgThroughputIn": 0,
"msgThroughputOut": 0,
"averageMsgSize": 0,
"storageSize": 0,
"publishers": [],
"subscriptions": {},
"replication": {},
"deduplicationStatus": "",
"metadata": {
"partitions": 1
},
"partitions": {
"
"msgRateIn": 0,
"msgRateOut": 0,
"msgThroughputIn": 0,
"msgThroughputOut": 0,
"averageMsgSize": 0,
"storageSize": 0,
"publishers": [],
"subscriptions": {},
"replication": {},
"deduplicationStatus": ""
}
}
}
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the specified topic does not exist or the specified topic is a partitioned-topic and you don't specified --partitioned-topic or the specified topic is a non-partitioned topic and you specified --partitioned-topic
code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic, partitioned topic
$ stats
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
partitioned-topic | p | false | Get the partitioned topic stats |
per-partition | false | Get the per partition topic stats |
Terminate a non-partitioned topic (topic-name)
pulsarctl topic terminate (topic-name)
Terminate a partition of a partitioned topic
pulsarctl topic terminate --partition (partition) (topic-name)
This command is used for terminating a non-partitioned topic or a partition of a partitioned topic. Upon termination, no more messages are allowed to published to it.
This command requires tenant admin permissions.
//normal output
Topic (topic-name) is successfully terminated at (message-id)
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the specified topic is a partitioned topic
[✖] code: 405 reason: Termination of a partitioned topic is not allowed
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic
$ terminate
Name | Shorthand | Default | Usage |
---|---|---|---|
partition | p | -1 | The partitioned topic index value |
Unload a topic (topic-name)
pulsarctl topic unload (topic-name)
This command is used for unloading a topic.
This command requires super-user permissions.
//normal output
Unload topic (topic-name) successfully
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
non-partitioned topic, a partition of a partitioned topic
$ unload
pulsarctl topics update (topic-name) (partition-num)
This command is used for updating the partition number of an exist topic.
This command requires namespace admin permissions.
//normal output
Update topic (topic-name) with (partition-num) partitions successfully
//the topic name and(or) the partitions is not specified
[✖] need to specified the topic name and the partitions
//the partitions number is invalid
[✖] invalid partition number '
//the topic is not exist
[✖] code: 409 reason: Topic is not partitioned topic
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special chars. the alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
SCOPE:
partitioned topic
$ update
$ brokers
Delete dynamic-serviceConfiguration of broker
pulsarctl brokers delete-dynamic-config --config (config name)
Delete dynamic-serviceConfiguration of broker
This command requires super-user permissions.
//normal output
Deleted dynamic config: (config name) successful.
//Can't update non-dynamic configuration, please check --config
arg.
[✖] code: 412 reason: Can't update non-dynamic configuration
$ delete-dynamic-config
Name | Shorthand | Default | Usage |
---|---|---|---|
config | service-configuration name |
Get all overridden dynamic-configuration values
pulsarctl brokers get-all-dynamic-config
Get all overridden dynamic-configuration values
This command requires super-user permissions.
//normal output
{
"dispatchThrottlingRatePerTopicInMsg": "true"
}
$ get-all-dynamic-config
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get internal configuration information
pulsarctl brokers get-internal-config
Get internal configuration information
This command requires super-user permissions.
//normal output
{
"zookeeperServers": "127.0.0.1:2181",
"configurationStoreServers": "127.0.0.1:2181",
"ledgersRootPath": "/ledgers",
"stateStorageServiceUrl": "bk://127.0.0.1:4181"
}
$ get-internal-config
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get runtime configuration values
pulsarctl brokers get-runtime-config
Get runtime configuration values
This command requires super-user permissions.
//normal output
{
“activeConsumerFailoverDelayTimeMillis”: “1000",
“advertisedAddress”: “127.0.0.1",
“allowAutoTopicCreation”: “true”,
“anonymousUserRole”: “”,
“authenticateOriginalAuthData”: “false”,
“authenticationEnabled”: “false”,
...
}
$ get-runtime-config
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Run a health check against the broker
pulsarctl brokers healthcheck
Run a health check against the broker
This command requires super-user permissions.
//normal output
ok
$ healthcheck
List active brokers of the cluster
pulsarctl brokers list (cluster-name)
List active brokers of the cluster
This command requires super-user permissions.
//normal output
127.0.0.1:8080
//the cluster name is not specified or the cluster name is specified more than one
[✖] the cluster name is not specified or the cluster name is specified more than one
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get all overridden dynamic-configuration values
pulsarctl brokers list-dynamic-config
Get all overridden dynamic-configuration values
This command requires super-user permissions.
//normal output
dispatchThrottlingRatePerTopicInMsg
loadBalancerSheddingEnabled
brokerClientAuthenticationParameters
...
$ list-dynamic-config
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
List namespaces owned by the broker
pulsarctl brokers namespaces (cluster-name) --url (eg:127.0.0.1:8080)
List namespaces owned by the broker
This command requires super-user permissions.
//normal output
{
"public/functions/0x40000000_0x80000000": {
"broker_assignment": "shared",
"is_controlled": false,
"is_active": true
},
"pulsar/standalone/127.0.0.1:8080/0x00000000_0xffffffff": {
"broker_assignment": "shared",
"is_controlled": false,
"is_active": true
}
}
//the cluster name is not specified or the cluster name is specified more than one
[✖] the cluster name is not specified or the cluster name is specified more than one
//The correct url is not provided, please check the --url
arg.
[✖] Get (broker url)/admin/v2/brokers/standalone/127.0.0.1:6650/ownedNamespaces: EOF
$ namespaces
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
url | broker-url |
Update dynamic-serviceConfiguration of broker
pulsarctl brokers update-dynamic-config --config (config name) --value (config value)
Update dynamic-serviceConfiguration of broker
This command requires super-user permissions.
//normal output
Update dynamic config: (configName) successful.
//Can't update non-dynamic configuration, please check --config
arg.
[✖] code: 412 reason: Can't update non-dynamic configuration
$ update-dynamic-config
Name | Shorthand | Default | Usage |
---|---|---|---|
config | service-configuration name | ||
value | service-configuration value |
$ broker-stats
Dump the allocator stats
pulsarctl broker-stats allocator-stats
Dump the allocator stats
This command requires super-user permissions.
//normal output
Print allocator stats info
//the namespace name is not specified or the namespace name is specified more than one
[✖] the namespace name is not specified or the namespace name is specified more than one
$ allocator-stats
Dump the broker load-report
pulsarctl broker-stats load-report
Dump the broker load-report
This command requires super-user permissions.
//normal output
Print the broker load-report info
$ load-report
Dump the mbean stats
pulsarctl broker-stats mbeans
Dump the mbean stats
This command requires super-user permissions.
//normal output
Get all the mbean details of this broker JVM
$ mbeans
Dumps the metrics for Monitoring
pulsarctl broker-stats monitoring-metrics
Dumps the metrics for Monitoring
This command requires super-user permissions.
//normal output
Get all the metrics details for Monitoring
$ monitoring-metrics
Dump the topics stats
pulsarctl broker-stats topics
Dump the topics stats
This command requires super-user permissions.
//normal output
Get all stats details of broker.
$ topics
$ subscriptions
Create a subscription (subscription-name) on a topic (topic-name) from latest position
pulsarctl subscriptions create (topic-name) (subscription-name)
Create a subscription (subscription-name) on a topic (topic-name) from the specified position (position)
pulsarctl subscription create --messageId (position) (topic-name) (subscription-name)
This command is used for creating a subscription on a topic.
This command requires tenant admin and namespace produce or consume permissions.
//normal output
Create subscription (subscription-name) on topic (topic-name) from (position) successfully
//the topic name and(or) the subscription name is not specified
[✖] need to specified the topic name and the subscription name
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
//the split of message id is not valid
[✖] Invalid message id string.
//the ledger id is not valid
[✖] Invalid ledger id string.
//the entry id is not valid
[✖] Invalid entry id string.
$ create
Name | Shorthand | Default | Usage |
---|---|---|---|
messageId | m | latest | message id where the subscription starts from. It can be either 'latest', 'earliest' or (ledgerId:entryId) |
Delete the subscription (subscription-name) of the topic (topic-name)
pulsarctl subscriptions delete (topic-name) (subscription-name)
This command is used for deleting a subscription of a topic.
This command requires tenant admin and namespace consume permissions.
//normal output
Delete the subscription %s of the topic %s successfully
//the topic name and(or) the subscription name is not specified
[✖] need to specified the topic name and the subscription name
//the specified subscription does not exist
[✖] code: 404 reason: Subscription not found
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ delete
expire
This command is used for expiring messages that older than given expiry time (in seconds) for a subscription.
This command requires tenant admin and namespace produce or consume permissions.
//normal output
Expire messages after (time)(s) for the subscription (subscription-name) of the topic (topic-name) successfully
//the topic name and(or) the subscription name is not specified
[✖] need to specified the topic name and the subscription name
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ expire
Name | Shorthand | Default | Usage |
---|---|---|---|
all | a | false | Expire all messages |
expire-time | t | 0 | Expire messages older than time in seconds |
List all the existing subscriptions of a topic (topic-name)
pulsarctl subscriptions list (topic-name)
This command is used for listing all the existing subscriptions of a topic.
This command requires tenant admin and namespace produce or consume permissions.
//normal output
+----------------------+
| SUBSCRIPTIONS |
+----------------------+
+----------------------+
//the topic name is not specified or the topic name is specified more than one
[✖] the topic name is not specified or the topic name is specified more than one
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Peek some messages of a subscription
pulsarctl subscriptions peek --count (n) (topic-name) (subscription-name)
This command is used for peeking some messages of a subscription.
This command requires tenant admin permissions or namespace consumer permissions.
//normal output
Message ID :
ledgerID:entryID:PartitionIndex:BatchIndex
Properties :
Message :
//the topic name and(or) the subscription name is not specified
[✖] need to specified the topic name and the subscription name
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
$ peek
Name | Shorthand | Default | Usage |
---|---|---|---|
count | n | 1 | Number of messages (default 1) |
Reset the position of the subscription (subscription-name) to a position that is closest to the provided timestamp (time)
pulsarctl seek --time (time) (topic-name) (subscription-name)
Reset the position of the subscription
to a position that is closest to the provided message id (message-id)
pulsarctl seek --message-id (message-id) (topic-name) (subscription-name)
This command is used for resetting the position of a subscription to a position that is closest to the provided timestamp or messageId.
This command requires tenant admin and namespace produce or consume permissions.
//normal output
Reset the cursor of the subscription (subscription-name) to (time)/(message-id) successfully
//the topic name and(or) the subscription name is not specified
[✖] need to specified the topic name and the subscription name
//the time is not specified or the message id is not specified
[✖] The reset position must be specified
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the specified subscription does not exist
[✖] code: 404 reason: Subscription not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ seek
Name | Shorthand | Default | Usage |
---|---|---|---|
message-id | m | message id to reset back to (e.g. ledgerId:entryId) | |
time | t | time to reset back to (e.g. 1s, 1m, 1h) |
Skip (n) messages for the subscription (subscription-name) of the topic (topic-name)
pulsarctl subscription skip --count (n) (topic-name) (subscription-name)
Skip all messages for the subscription (subscription-name) under the topic (topic-name) (clear-backlog)
pulsarctl subscription skip --all (topic-name) (subscription-name)
This command is used for skipping messages for a subscription.
This command requires tenant admin and namespace produce or consume permissions.
//normal output
The subscription (subscription-name) skips (n) messages of the topic
//the topic name and(or) the subscription name is not specified
[✖] need to specified the topic name and the subscription name
//the specified topic does not exist
[✖] code: 404 reason: Topic not found
//the specified subscription does not exist
[✖] code: 404 reason: Subscription not found
//the topic name is not in the format of
[✖] Invalid short topic name '
//the topic name is not in the format of
[✖] Invalid complete topic name '
//the topic name is not in the format of
[✖] Invalid topic name '
//the namespace name is not in the format of
[✖] The complete name of namespace is invalid. complete name :
//the tenant name and(or) namespace name is empty
[✖] Invalid tenant or namespace. [
//the tenant name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Tenant name include unsupported special chars. tenant : [
//the namespace name contains unsupported special charsthe alphanumeric (a-zA-Z0-9) and the special chars (-=:.%) is allowed
[✖] Namespace name include unsupported special chars. namespace : [
$ skip
Name | Shorthand | Default | Usage |
---|---|---|---|
all | a | false | skip all messages |
count | n | -1 | number of messages to skip |
$ resource-quotas
Get the resource quota use default namespace/bundle
pulsarctl resource-quotas get
Get the resource quota for a specified namespace bundle
pulsarctl resource-quotas get (namespace name) (bundle range)
Get the resource quota for a specified namespace bundle, or default quota if no namespace/bundle is specified.
This command requires super-user permissions.
//normal output
{
"msgRateIn" : 40.0,
"msgRateOut" : 120.0,
"bandwidthIn" : 100000.0,
"bandwidthOut" : 300000.0,
"memory" : 80.0,
"dynamic" : true
}
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Reset the specified namespace bundle's resource quota to default value
pulsarctl resource-quotas reset (namespace name) (bundle range)
Reset the specified namespace bundle's resource quota to default value.
This command requires super-user permissions.
//normal output
Reset resource quota successful
$ reset
Set the resource quota use default namespace/bundle
pulsarctl resource-quotas set
Set the resource quota for specified namespace bundle
pulsarctl resource-quotas set --namespace (namespace name) --bundle (bundle range)--msgRateIn (msg rate in value)--msgRateOut (msg rate out)--bandwidthIn (bandwidth in)--bandwidthOut (bandwidth out)--memory (memory)--dynamic
Set the resource quota for specified namespace bundle, or default quota if no namespace/bundle specified.
This command requires super-user permissions.
//normal output
Set (default) resource quota successful
$ set
Name | Shorthand | Default | Usage |
---|---|---|---|
bandwidthIn | 0 | expected inbound bandwidth (bytes/second) | |
bandwidthOut | 0 | expected outbound bandwidth (bytes/second) | |
bundle | b | {start-boundary}_{end-boundary}, must be specified together with '--namespace' | |
dynamic | false | dynamic (allow to be dynamically re-calculated) or not | |
memory | 0 | expected memory usage (Mbytes) | |
msgRateIn | 0 | expected incoming messages per second | |
msgRateOut | 0 | expected outgoing messages per second | |
namespace | n | cluster/namespace, must be specified together with '--bundle' |
$ functions-worker
Dump all functions stats running on this broker
pulsarctl functions-worker function-stats
Dump all functions stats running on this broker
This command requires super-user permissions.
//normal output
[ ]
$ function-stats
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get all workers belonging to this cluster
pulsarctl functions-worker get-cluster
Get all workers belonging to this cluster
This command requires super-user permissions.
//normal output
[
{
"workerId": "c-standalone-fw-127.0.0.1-8080",
"workerHostname": "127.0.0.1",
"port": 8080
}
]
$ get-cluster
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get the leader of the worker cluster
pulsarctl functions-worker get-cluster-leader
Get the leader of the worker cluster
This command requires super-user permissions.
//normal output
{
"workerId": "c-standalone-fw-127.0.0.1-8080",
"workerHostname": "127.0.0.1",
"port": 8080
}
$ get-cluster-leader
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Get the assignments of the functions across the worker cluster
pulsarctl functions-worker get-function-assignments
Get the assignments of the functions across the worker cluster
This command requires super-user permissions.
//normal output
[ ]
$ get-function-assignments
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Dump metrics for Monitoring
pulsarctl functions-worker monitoring-metrics
Dump metrics for Monitoring
This command requires super-user permissions.
//normal output
[
{
"metrics": {
"fun_default_pool_allocated": 402653184,
"fun_default_pool_used": 4734976,
"jvm_direct_memory_used": 2550137118,
"jvm_gc_old_count": 0,
"jvm_gc_old_pause": 0,
"jvm_gc_young_count": 0,
"jvm_gc_young_pause": 0,
"jvm_heap_used": 305348512,
"jvm_max_direct_memory": 4294967296,
"jvm_max_memory": 2147483648,
"jvm_thread_cnt": 446,
"jvm_total_memory": 2147483648
},
"dimensions": {
"metric": "jvm_metrics"
}
}
]
$ monitoring-metrics
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
$ ns-isolation-policy
Get broker with namespace-isolation policies attached to it
pulsarctl ns-isolation-policy broker (cluster-name) (broker address)
Get broker with namespace-isolation policies attached to it.
This command requires super-user permissions.
//normal output
{
"brokerName": "127.0.0.1:8080",
"policyName": "",
"isPrimary": false,
"namespaceRegex": null
}
//Reason: Cluster name does not exist, please check cluster name.
Reason: Cluster name does not exist.
//the cluster name is not specified or the cluster name is specified more than one, please check cluster name
the cluster name is not specified or the cluster name is specified more than one
$ broker
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
List all brokers with namespace-isolation policies attached to it
pulsarctl ns-isolation-policy brokers (cluster-name)
List all brokers with namespace-isolation policies attached to it.
This command requires super-user permissions.
//normal output
[
{
"brokerName": "127.0.0.1:8080",
"policyName": "",
"isPrimary": false,
"namespaceRegex": null
}
]
//Reason: Cluster name does not exist, please check cluster name.
Reason: Cluster name does not exist.
//need to specified the cluster name and the policy name, please add cluster name and policy name
need to specified the cluster name and the policy name
//namespace-isolation policies not found for standalone
[✖] code: 404 reason: namespace-isolation policies not found for standalone
$ brokers
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Delete namespace isolation policy of a cluster.
pulsarctl ns-isolation-policy delete (cluster-name) (policy-name)
Delete namespace isolation policy of a cluster.
This command requires super-user permissions.
//normal output
Delete namespaces isolation policy:(policy name) successful.
//NamespaceIsolationPolicies for cluster standalone does not exist, please check policy name.
NamespaceIsolationPolicies for cluster standalone does not exist
//Reason: Cluster name does not exist, please check cluster name.
Reason: Cluster name does not exist.
//need to specified the cluster name and the policy name, please add cluster name and policy name
need to specified the cluster name and the policy name
$ delete
Get namespace isolation policy of a cluster
pulsarctl ns-isolation-policy get (cluster-name) (policy-name)
Get namespace isolation policy of a cluster.
This command requires super-user permissions.
//normal output
{
"namespaces" : [ "default" ],
"primary" : [ "aaa" ],
"secondary" : [ ],
"auto_failover_policy" : {
"policy_type" : "min_available",
"parameters" : {
"min_limit" : "3",
"usage_threshold" : "100"
}
}
}
//NamespaceIsolationPolicies for cluster standalone does not exist, please check policy name.
NamespaceIsolationPolicies for cluster standalone does not exist
//Reason: Cluster name does not exist, please check cluster name.
Reason: Cluster name does not exist.
//need to specified the cluster name and the policy name, please add cluster name and policy name
need to specified the cluster name and the policy name
$ get
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
List all namespace isolation policies of a cluster.
pulsarctl ns-isolation-policy list (cluster-name)
List all namespace isolation policies of a cluster.
This command requires super-user permissions.
//normal output
{
"test-policiy-1" : {
"namespaces" : [ "default" ],
"primary" : [ "aaa" ],
"secondary" : [ ],
"auto_failover_policy" : {
"policy_type" : "min_available",
"parameters" : {
"min_limit" : "3",
"usage_threshold" : "100"
}
}
}
}
//Reason: Cluster name does not exist, please check cluster name.
Reason: Cluster name does not exist.
//the cluster name is not specified or the cluster name is specified more than one, please check cluster name
the cluster name is not specified or the cluster name is specified more than one
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |
Create/Update a namespace isolation policy for a cluster
pulsarctl ns-isolation-policy set (cluster-name) (policy name) --auto-failover-policy-params min_limit=3,usage_threshold=100 --auto-failover-policy-type min_available --namespaces default --primary test-primary --secondary test-secondary
Create/Update a namespace isolation policy for a cluster.
This command requires super-user permissions.
//normal output
Create/Update namespaces isolation policy: (policy name) successful.
//Reason: Cluster name does not exist, please check cluster name.
Reason: Cluster name does not exist.
//NamespaceIsolationPolicies for cluster standalone does not exist, please check policy name.
NamespaceIsolationPolicies for cluster standalone does not exist
//the cluster name is not specified or the cluster name is specified more than one, please check cluster name
the cluster name is not specified or the cluster name is specified more than one
$ set
Name | Shorthand | Default | Usage |
---|---|---|---|
auto-failover-policy-params | comma separated name=value auto failover policy parameters | ||
auto-failover-policy-type | Broker-name to get namespace-isolation policies attached to it | ||
namespaces | [] | Broker-name to get namespace-isolation policies attached to it | |
primary | [] | Broker-name to get namespace-isolation policies attached to it | |
secondary | [] | Broker-name to get namespace-isolation policies attached to it |
You can use this tool to generate secret key, private/public key, and token.
$ token
Create a token using a secret key string.
pulsarctl token create --secret-key-string (secret-key-string) --subject (subject)
Create a token using a secret key file.
pulsarctl token create --secret-key-file (secret-key-file-path) --subject (subject)
Create a token using a private key file.
pulsarctl token create --private-key-file (private-key-file-path) --subject (subject)
Create a token with expire time.
pulsarctl token create --secret-key-string (secret-key-string) --subject (subject) --expire 1m
Create a token using a base64 encoded secret key.
pulsarctl token create --secret-key-string (secret-key-string) --base64 --subject (subject)
This command is used for create a token string.
This command does not need any permission.
//Create a token successfully.
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJoZWxsby10ZXN0In0.qxaczygeZaZDlK7jQHHXCaQRbwd2wxIHjCH3y_Lo2Q4
//None of the signing keys is specified.
[✖] none of the signing keys is specified
//Signing key is specified more than one.
[✖] the signing key is specified more than one
$ create
Name | Shorthand | Default | Usage |
---|---|---|---|
base64 | false | The secret key is base64 encoded or not. | |
expire | The expire time for a token. e.g. 1s, 1m, 1h | ||
private-key-file | The private key file that used to sign a toke. | ||
secret-key-file | The secret key file that used to sign a token. | ||
secret-key-string | The secret key string that used to sign a token. | ||
signature-algorithm | a | RS256 | The signature algorithm used to generate the secret key or the private key Valid options are: 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512', 'ES256', 'ES384', 'ES512'. |
subject | The 'subject' or 'principal' associate with this token. |
Create a private and public key pair using RS256 signature algorithm.
pulsarctl token create-key-pair --output-private-key (filepath) --output-public-key (filepath)
Create a private and public key pair using the specified signature algorithm.
pulsarctl toke create-key-pair --signature-algorithm (algorithm) --output-private-key (filepath) --output-public-key (filepath)
This command is used for creating a private and public key pair.
This command does not need any permission.
//Create a key pair successfully.
The private key and public key are generated to (private-key-path) and (public-key-path) successfully.
//Writing a private key to a file was failed.
[✖] failed to write private key to the file (private-key-path)
//Writing a public key failed to a file was failed.
[✖] failed to write public key to the file (public-key-path)
//The specified output key file path is empty.
[✖] the private key file path and the public key file path can not be empty
$ create-key-pair
Name | Shorthand | Default | Usage |
---|---|---|---|
output-private-key | private.key | The file that the private key is written to. | |
output-public-key | public.key | The file that the public key is written to. | |
signature-algorithm | a | RS256 | The signature algorithm is used for generating the key pair. Valid options are: 'RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512'. |
Create a secret key.
pulsarctl token create-secret-key
Create a base64 encoded secret key.
pulsarctl token create-secret-key --base64
Create a secret key and save it to a file.
pulsarctl token create-secret-key --output (file path)
This command is used for creating a secret key.
This command does not need any permission.
//Create a secret key successfully.
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
//Write a base64 encoded secret key to the terminal.
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
//Write the secret key to a file successfully.
Write secret to the file (filename) successfully.
//Writing the secret key to a file was failed.
[✖] writing the secret key to the file (filename) was failed
//Using invalid signature algorithm to generate secret key.
[✖] the signature algorithm '(signature algorithm)' is invalid. Valid options are: 'HS256', 'HS384', 'HS512'
$ create-secret-key
Name | Shorthand | Default | Usage |
---|---|---|---|
base64 | b | false | Generate a base64 encoded secret key. |
output-file | o | The file that the secret key is written to. | |
signature-algorithm | a | HS256 | The signature algorithm used for generating the secret key. Valid options are:'HS256', 'HS384', 'HS512'. |
Read a token from the env TOKEN.
pulsarctl token show
Read a token from a given string.
pulsarctl token show --token-string (token)
Read a token from a given file.
pulsarctl token show --token-file (token)
This command is used for showing the content of a token.
This command does not need any permission.
//Show the content of the given token.
The algorithm and subject of the token are (signature algorithm), (subject).
//There is no token to show.
[✖] both the token string and the token file are not specified
//Too many tokens to show.
[✖] both the token string and token file are specified
$ show
Name | Shorthand | Default | Usage |
---|---|---|---|
token-string | The token string you would like to show the content. |
Validate a token string using the specified secret key string.
pulsarctl token validate --token-string (token) --secret-key-string (secret-key-string)
Validate a token file using the specified secret key file.
pulsarctl token validate --token-string (token) --secret-key-file (secret-key-file-path)
Validate a token string using the specified public key file.
pulsarctl token validate --token-string (token) --public-key-file (public-key-file-path)
Validate a token string using the specified base64 encoded secret key string.
pulsarctl token validate --token-string (token) --secret-key-string (secret-key-string) --base64
Validate a token file that signed with the specified secret key string and the specified signature algorithm.
pulsarctl toke validate --token-string (token) --secret-key-file (secret-key-file-path) --signature-algorithm (algorithm)
This command is used for validating a token.
This command does not need any permission.
//The token is valid.
The subject is (subject), and the expire time is (time).
//Both the token string and the token file are not specified.
[✖] both the token string and the token file are not specified
//Both the token string and the token file are specified.
[✖] both the token string and token file are specified
//There is no key to validate the token.
[✖] none of the validate keys is specified
//The key used to validate token is specified more than one.
[✖] the validate key is specified more than one
$ validate
Name | Shorthand | Default | Usage |
---|---|---|---|
base64 | false | The secret key is base64 encoded or not. | |
public-key-file | The public key file that used to validate a token. | ||
secret-key-file | The secret key file that used to validate a token. | ||
secret-key-string | The secret key string that used to validate a token. | ||
signature-algorithm | a | RS256 | The signature algorithm is used for generating the token. Valid options are: 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', 'RS512', 'PS256', 'PS384', 'PS512', 'ES256', 'ES384', 'ES512'. |
token-string | The token string that will be validated. |
$ context
Provisions a new context
pulsarctl context current
Displays the current-context
This command does not need any permission
//normal output
(current context name)
$ current
Delete the context for the
test
cluster
pulsarctl context delete test
Delete the specified context from the pulsarconfig
This command does not need any permission
//normal output
deleted context (context-name) from (pulsarconfig)
$ delete
List all the contexts in your pulsarconfig file
pulsarctl config get-contexts
Describe one context in your pulsarconfig file
pulsarctl context get
Describe one or many contexts
This command does not need any permission
//normal output
+---------------+
| NAME |
+---------------+
| test-pulsar |
+---------------+
$ get
Rename the context 'old-name' to 'new-name' in your pulsarconfig file
pulsarctl context rename old-name new-name
rename-context CONTEXT_NAME NEW_NAME
This command does not need any permission
//normal output
Context old_name renamed to new_name
$ rename
Sets the user field on the gce context entry without touching other values
pulsarctl context set [options]
Sets a context entry in pulsarconfig, Specifying a name that already exists will merge new fields on top of existing values for those fields.
This command does not need any permission
//normal output
Set context successful
$ set
Use the context for the
test
cluster
pulsarctl context use test
use-context CONTEXT_NAME
This command does not need any permission
//normal output
Switched to context (context name)
$ use
$ bookkeeper
$ auto-recovery
Decommission a bookie.
pulsarctl bookkeeper auto-recovery decommission (bk-ip:bk-port)
This command is used for decommissioning a bookie.
This command does not need any permission.
//Successfully decommission a bookie.
Successfully decommission the bookie (bookie-ip:bookie-port)
//The bookie address is not specified or the bookie address is specified more than one.
[✖] the bookie address is not specified or the bookie address is specified more than one
$ decommission
Get the lost Bookie Recovery Delay of a bookie.
pulsarctl bookkeeper auto-recovery get-lost-bookie-recovery-delay
This command is used for getting the lost bookie recovery delay in second of a bookie.
This command does not need any permission.
//Get the lost bookie recovery delay of a bookie.
lostBookieRecoveryDelay value: (delay)
$ get-lost-bookie-recovery-delay
Get all the under-replicated ledgers which have been marked for re-replication.
pulsarctl bookkeeper auto-recovery list-under-replicated-ledger
Get all the under-replicated ledgers of a bookie which have been marked for re-replication.
pulsarctl bookkeeper auto-recovery list-under-replicated-ledger --include (bookie-ip:bookie-port)
Get all the under-replicated ledgers except a bookie which have been marked for re-replication.
pulsarctl bookkeeper auto-recovery list-under-replicated-ledger --exclude (bookie-ip:bookie-port)
This command is used for getting all the under-replicated ledgers which have been marked for re-replication.
This command does not need any permission.
//Get the under-replicated ledgers successfully.
{
[ledgerId1, ledgerId2...]
}
$ list-under-replicated-ledger
Name | Shorthand | Default | Usage |
---|---|---|---|
exclude | Show the under-replicated ledger exclude the bookie. | ||
include | Show the under-replicated ledger of the bookie. | ||
show | false | Show the replicate ledger list. |
Recover the ledger data of a failed bookie.
pulsarctl bookkeeper auto-recovery recover-bookie (bookie-1) (bookie-2)
This command is used for recovering the ledger data of a failed bookie.
This command does not need any permission.
//Recover the bookies successfully.
Successfully recover the bookies (bookie-1) (bookie-2).
//The recover bookie id is not specified.
[✖] you need to specify the recover bookies id
$ recover-bookie
Name | Shorthand | Default | Usage |
---|---|---|---|
delete-cookie | false | Delete cookie when recovering the failed bookies. |
Set the lost bookie recovery delay.
pulsarctl bookkeeper auto-recovery set-lost-bookie-recovery-delay (delay)
This command is used for setting the lost bookie recovery delay in second.
This command does not need any permission.
//Set the lost bookie recovery delay to the new delay successfully.
Successfully set the lost bookie recovery delay to (delay)(second)
//The specified delay time is not specified or the delay time is specified more than one.
[✖] the specified delay time is not specified or the delay time is specified more than one
$ set-lost-bookie-recovery-delay
Trigger audit by resetting the lost bookie recovery delay
pulsarctl bookkeeper auto-recovery trigger-audit
This command is used for triggering audit by resetting the lost bookie recovery delay.
This command does not need any permission.
//Trigger audit by resetting the lost bookie recovery delay successfully.
Successfully trigger audit by resetting the lost bookie recovery delay.
$ trigger-audit
Get who is the auditor
pulsarctl bookkeeper auto-recovery who-is-auditor
This command is used for getting who is the auditor.
This command does not need any permission.
//Get the auditor successfully.
{
"Auditor": "hostname/hostAddress:Port"
}
$ who-is-auditor
$ bookie
Expanding storage for a bookie.
pulsarctl bookkeeper bookie expand-storage
This command is used for expanding storage for a bookie.
This command does not need any permission.
//Expand the storage successfully.
Successfully expand the storage
$ expand-storage
Trigger garbage collection for a bookie.
pulsarctl bookkeeper bookie gc
This command is used for triggering garbage collection for a bookie.
This command does not need any permission.
//Successfully trigger garbage collection.
Successfully trigger garbage collection.
$ gc
Get the garbage collection details of a bookie.
pulsarctl bookkeeper bookie gc-details
This command is used for getting the garbage collection details of a bookie.
This command does not need any permission.
//Successfully get the garbage collection details of a bookie.
[
{
"forceCompacting": false,
"majorCompacting": false,
"minorCompacting": false,
"lastMajorCompactionTime": 1,
"lastMinorCompactionTime": 1,
"majorCompactionCounter": 1,
"minorCompactionCounter": 1
}
]
$ gc-details
Get the garbage collection status of a bookie.
pulsarctl bookkeeper bookie gc-status
This command is used for getting the garbage collection status of a bookie.
This command does not need any permission.
//Successfully get the garbage collection status of a bookie.
{
"is_in_force_gc" : "false"
}
$ gc-status
Get the last log marker of the journals on a bookie.
pulsarctl bookkeeper bookie last-log-marker
This command is used for getting the last log marker of the journals on a bookie.
This command does not need any permission.
//Successfully get the last log marker of the journals on a bookie.
{
JournalId1 : position1,
JournalId2 : position2,
...
}
$ last-log-marker
Get all the specified fileType (e.g. journal, entrylog, index) files on the disk of a bookie.
pulsarctl bookkeeper bookie list-disk-file (file-type)
This command is used for getting all the files on the disk of a bookie.
This command does not need any permission.
//Successfully get the files on the disk of a bookie.
{
"journal files" : "filename1 filename2 ...",
"entrylog files" : "filename1 filename2...",
"index files" : "filename1 filename2 ..."
}
//The file type is not specified or the file type is specified more than one.
[✖] the file type is not specified or the file type is specified more than one
//The specified file type is invalid.
[✖] invalid file type %s, the file type only can be specified as 'journal', 'entrylog', 'index'
$ list-disk-file
Get the state of the bookie.
pulsarctl bookkeeper bookie state
This command is used for getting the state of a bookie.
This command does not need any permission.
//Successfully get the state of a bookie.
{
"running": true,
"readOnly": true,
"shuttingDown": false,
"availableForHighPriorityWrites": false
}
$ state
$ ledger
Delete the specified ledger
pulsarctl bookkeeper ledger delete (ledger-id)
This command is used for deleting a ledger.
none
//normal output
Successfully delete the ledger (ledger-id)
//the ledger id is not specified or the ledger id is specified more than one
[✖] the ledger id is not specified or the ledger id is specified more than one
$ delete
Get the metadata of the specified ledger
pulsarctl bookkeeper ledger get (ledger-i)
This command is used for getting the metadata of a ledger.
none
//normal output
{
"storeCtime": false,
"hasPassword": false,
"metadataFormatVersion": 1,
"ensembleSize": 1,
"writeQuorumSize": 1,
"ackQuorumSize": 1,
"length": 1,
"lastEntryId": 1,
"ctime": 1,
"cToken": 0,
"state": "CLOSED",
"digestType": "MAC",
"allEnsembles": {
"1": [
{
"port": 8080,
"hostname": "www.examples.com"
}
]
},
"currentEnsemble": [
{
"port": 8080,
"hostname": "www.example.com"
}
],
"password": "",
"customMetadata": {}
}
//the ledger id is not specified or the ledger id is specified more than one
[✖] the ledger id is not specified or the ledger id is specified more than one
$ get
List all the ledgers
pulsarctl bookkeeper ledger list
List all the ledgers and the metadata of the ledger
pulsarctl bookkeeper ledger list --show-metadata
This command is used for listing all the ledgers.
none
//normal output
[1,2,3,4]
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
show-metadata | p | false | Show the metadata of the ledgers |
Read a range of entries of the specified ledger
pulsar bookkeeper ledger read (ledger-id)
Read the entries of the specified ledger started from the given entry id
pulsar bookkeeper ledger --start (entry-id) (ledger-id)
Read the specified range of entries of the specified ledger
pulsar bookkeeper ledger --start (entry-id) --end (entry-id) (ledger-id)
This command is used for reading a range of entries of a ledger.
none
//normal output
{
"ledger-id", "message"
}
//the ledger id is not specified or the ledger id is specified more than one
[✖] the ledger id is not specified or the ledger id is specified more than one
$ read
Name | Shorthand | Default | Usage |
---|---|---|---|
end | e | -1 | |
start | b | -1 |
$ plugin
List all the plugins.
pulsarctl plugin list
This command is used for listing all plugins.
This command does not need any permission.
//List all the plugins successfully.
$ list
Name | Shorthand | Default | Usage |
---|---|---|---|
output | o | text | The output format (text,json,yaml) |