Replies: 1 comment
-
CDS should always be available, as well as grpc connection. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
https://github.com/apache/skywalking-go/pull/218
Current Status
I've successfully implemented the Kafka reporter for the SkyWalking Go agent, which can now transmit:
Tracing data
Metrics data
Logging data
Instance management data (properties and ping)
All these functions work correctly, consistent with the existing gRPC reporter implementation.
Problem Statement
The Configuration Discovery Service (CDS) functionality is currently only available in the gRPC reporter, not in the Kafka reporter. This creates a feature gap between the two reporter types. When reporter.type=kafka is selected in the configuration, the agent loses access to dynamic configuration capabilities.
Proposed Solutions
Option 1:
Enhanced Kafka Reporter with CDS Support: Extend the Kafka reporter to establish a gRPC connection specifically for CDS functionality. This approach would reuse the existing gRPC configuration parameters to maintain consistency across both reporter types. The Kafka reporter would continue to handle all data reporting through Kafka, but would leverage the gRPC connection exclusively for dynamic configuration discovery.
Option 2:
Decoupled CDS Module with Connection Sharing: Extract the CDS functionality into a standalone module that can be used by both reporter types. Implement a connection sharing mechanism to ensure that when the gRPC reporter is active, both the reporter and CDS functionality share a single connection to the backend service. This architecture would prevent redundant connections while maintaining clear separation of concerns between reporting and configuration discovery.
Questions for Discussion
Which option is suitable, or are there any other better alternatives?
@mrproliu @wu-sheng
Beta Was this translation helpful? Give feedback.
All reactions