-
Notifications
You must be signed in to change notification settings - Fork 430
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support MQTT protocol(s) #341
Comments
Hello @mak3r I am interested in working on this project. and I want to discuss more about this project with you. |
Hi there, @mak3r I am so interested in the project and wanna be a volunteer. Is there any chance we could talk about my background and related things about the project? Thank you so much! |
Hi, I wanted to work on this in LFX mentorship but cannot find any mentors. Are their any mentors available for this project? |
Hi, I wanted to work on this issue. Is this feature still needed? |
@ChinmayaSharma-hue the Pixie team always welcomes support for new protocols and we would be happy to work with you through this. If you want to talk more details, it would be best to join our community slack. The protocol-tracing channel is where we've discussed features like this in the past. |
Thanks! I'm eager to contribute. I'll definitely reach out in case I need any help with this. |
Sounds good and I forgot to mention that we have two protocol contribution guide docs that are helpful to check out. |
Will take a look. Thanks! |
Summary: This PR adds the parser component of MQTT (v5), a newly added protocol. Related issues: #341 Type of change: /kind feature Test Plan: Added tests --------- Signed-off-by: Chinmay <chinmaysharma1020@gmail.com>
Summary: This PR adds the stitcher component of MQTT (v5), a newly added protocol. Related issues: #341 Type of change: /kind feature Test Plan: Added tests --------- Signed-off-by: Chinmay <chinmaysharma1020@gmail.com>
Describe the solution you'd like
It would be useful to add MQTT to the list of protocols which support tracing. In particular, it would be beneficial to have support for Request Tracing and Service Performance of the MQTT protocol.
MQTT is one of the most common protocols for device communication from edge nodes such as microcontrollers and IOT sensors. While these types of devices may not yet be capable of hosting container orchestration components like the kubelet themselves, they are a big part of the ecosystem for cloud-native at the edge. Projects like Node Feature Discovery (NFD), Akri and Smarter Device Manager are exposing non-standard resources at the edge and it would be a great addition to the developing toolset to enable Pixie to help with the practical issues facing developers who need to get existing systems integrated into a cloud-native ecosystem.
Describe alternatives you've considered
There are other message broker alternatives however I suspect it would be useful to implement a variety of options.
Additional context
There are two protocol standards today. Implementation of v5 which has been available since March of 2019 seems the most logical however there is a good chance that a large proportion of the devices using MQTT today are still using the older protocol. I do not currently have data to support this or refute it. Here are links to the different protocols.
http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf
https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.pdf
A description of MQTT from the abstract of version 5:
MQTT is a Client Server publish/subscribe messaging transport protocol. It is light weight, open, simple, and designed to be easy to implement. These characteristics make it ideal for use in many situations, including constrained environments such as for communication in Machine to Machine (M2M) and Internet of Things (IoT) contexts where a small code footprint is required and/or network bandwidth is at a premium. The protocol runs over TCP/IP, or over other network protocols that provide ordered, lossless, bidirectional connections.
The text was updated successfully, but these errors were encountered: