pixie-io / pixie

Instant Kubernetes-Native Application Observability
https://px.dev
Apache License 2.0
5.52k stars 427 forks source link

Support MQTT protocol(s) #341

Open mak3r opened 2 years ago

mak3r commented 2 years ago

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.

Shubhamlmp commented 2 years ago

Hello @mak3r I am interested in working on this project. and I want to discuss more about this project with you.

deprov447 commented 2 years ago

Hi @mak3r, I was redirected here from LFX mentorship site. I am interested to work on this task, but I see no mentors for this. Is there any proposed mentor as of now?

cooooooder commented 2 years ago

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!

aastha0326 commented 2 years ago

Hi, I wanted to work on this in LFX mentorship but cannot find any mentors. Are their any mentors available for this project?

ChinmayaSharma-hue commented 1 year ago

Hi, I wanted to work on this issue. Is this feature still needed?

ddelnano commented 1 year ago

@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.

ChinmayaSharma-hue commented 1 year ago

Thanks! I'm eager to contribute. I'll definitely reach out in case I need any help with this.

ddelnano commented 1 year ago

Sounds good and I forgot to mention that we have two protocol contribution guide docs that are helpful to check out.

ChinmayaSharma-hue commented 1 year ago

Will take a look. Thanks!