blob: a710ad453ea28bed1e0a761c978f855852c9ad44 [file] [log] [blame] [view]
# PIP-339: Introducing the --log-topic Option for Pulsar Sinks and Sources
# Motivation
The `--log-topic` option already exists in Pulsar Functions, enabling users to direct function logs to a specified
"log topic". This feature is useful for debugging and analysis. However, Pulsar Sinks and Sources currently lack this
option, resulting in inconsistent log management across Pulsar Functions and Connectors.
# Goals
## In Scope
The primary objective of this proposal is to integrate the `--log-topic` option into the **create**, **update**, and
**localrun** sub-commands for Pulsar Sinks and Sources.
# Detailed Design
## Design & Implementation Details
1. Integrate the `--log-topic` option into `SinkDetailsCommand` and `SourceDetailsCommand`:
```java
@Parameter(names = "--log-topic", description = "The topic to which the logs of a Pulsar Sink/Source are produced")
protected String logTopic;
```
2. Pass this option to `functionDetailsBuilder` when creating, updating, or locally running Pulsar Sinks and Sources:
```java
if (sinkConfig.getLogTopic() != null) {
functionDetailsBuilder.setLogTopic(sinkConfig.getLogTopic());
}
```
```java
if (sourceConfig.getLogTopic() != null) {
functionDetailsBuilder.setLogTopic(sourceConfig.getLogTopic());
}
```
3. Return the "log topic" when getting Pulsar Sinks and Sources
```java
if (!isEmpty(functionDetails.getLogTopic())) {
sinkConfig.setLogTopic(functionDetails.getLogTopic());
}
```
```java
if (!isEmpty(functionDetails.getLogTopic())) {
sourceConfig.setLogTopic(functionDetails.getLogTopic());
}
```
# General Notes
Upon successful implementation of this proposal, the **create**, **update**, and **localrun** sub-commands for Pulsar
Sinks and Sources will include the --log-topic option.
# Links
* Mailing List discussion thread: https://lists.apache.org/thread/8h6f8jcgs0cvvj96318zvcr18zs9513t
* Mailing List voting thread: https://lists.apache.org/thread/00682h05r4mh1plk10s6qq90p2s2xo74