Pulsar Tester¶
Overview¶
The Unified Assurance Pulsar Tester microservice is part of the microservice suite. The Pulsar Tester was created to help operators/developers debug and test pulsar-related workflow pipelines.
Prerequisites¶
-
A microservice cluster must be setup. Refer to Microservice Cluster Setup.
-
Apache Pulsar must be installed. Refer to Apache Pulsar microservice.
-
An application of user choice that can send REST requests (cURL, for example)
Setup¶
su - assure1
export NAMESPACE=a1-messaging
export WEBFQDN=<Primary Presentation Web FQDN>
a1helm install pulsar-tester assure1/pulsar-tester -n $NAMESPACE --set global.imageRegistry=$WEBFQDN
Default Configuration¶
Name | Value | Possible Values | Notes |
---|---|---|---|
LOG_LEVEL | INFO | FATAL, ERROR, WARN, INFO, DEBUG | Logging level used by application. |
SERVER_PORT | 30001 | int 30000-32767 | Port used by the http server |
SECURITY_LEVEL | 2 | int 0-2 | Security level switch |
Configurations can be changed by passing the values to the a1helm install
prefixed with the configData parent key.
Examples of changing configuration when using the command line¶
Changing the HTTP port to 30002¶
a1helm install ... --set-string configData.SERVER_PORT=30002
Setting the log level to DEBUG¶
a1helm install ... --set-string configData.LOG_LEVEL=DEBUG
Security Levels¶
The application contains security levels for access. The below table will explain each of the options
Level | Detail | Access Example |
---|---|---|
0 | No privacy and no authentication | example.com:30001 |
1 | Secure HTTP and no authentication | https://example.com:9443/pulsar-tester/ |
2 | Secure HTTP and JWT authentication | https://example.com:9443/pulsar-tester/ |
JWT Authentication¶
When using security level set to 2, you will have to generate a JWT token using the bin/JWT utility and use it for every endpoint
Generating the token¶
bin/JWT -s assure1 -a pulsar-tester
Accessing help endpoint with generated token using cURL¶
curl -k -H "Authorization: Bearer <JWT_TOKEN>" https://example.com:9443/pulsar-tester/help
Available REST endpoints that interact with the pulsar bus¶
The below examples will be using cURL and security level set to 0 and will be using the assure1/event/sink
topic.
Sending data to the topic¶
Using inline json¶
curl -X POST -d '{"message":"Hello World!"}' localhost:30001/assure1/event/sink
Using a file named test.json¶
curl -X POST -d@test.json localhost:30001/assure1/event/sink
Consume data from the topic¶
curl -X PUT localhost:30001/assure1/event/sink
Viewing data¶
To view data being sent to that particular topic, you will need to view pulsar-tester's application logs.
a1k logs -n $NAMESPACE sts/pulsar-tester -f | grep "assure1/event/sink"
Stop consuming data from the topic¶
curl -X DELETE localhost:30001/assure1/event/sink
Status Endpoint¶
The status endpoint will print all active subscriptions, how many messages each has received and when each subscription was made
curl -X GET localhost:30001/status
Help Endpoint¶
The help endpoint will print similar information for using the utility
curl -X GET localhost:30001/help