<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Protocol Parsing on Mi&amp;Bee Blog</title><link>/en/tags/protocol-parsing/</link><description>Recent content in Protocol Parsing on Mi&amp;Bee Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>蓝宝石的傻话</managingEditor><lastBuildDate>Sat, 25 Nov 2023 00:00:00 +0000</lastBuildDate><atom:link href="/en/tags/protocol-parsing/rss.xml" rel="self" type="application/rss+xml"/><item><title>eBPF Series: DeepFlow Extended Protocol Parsing Practice (MongoDB Protocol &amp; Kafka Protocol)</title><link>/en/posts/telemetry/deepflow-agent-proto-dev/</link><pubDate>Sat, 25 Nov 2023 00:00:00 +0000</pubDate><guid>/en/posts/telemetry/deepflow-agent-proto-dev/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#overview"&gt;Overview:&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#how-to-analyze-a-protocol-mongodb"&gt;How to Analyze a Protocol (MongoDB)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#protocol-document-analysis-approach"&gt;Protocol Document Analysis Approach&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#mongodb-protocol-opcode-reference-table"&gt;MongoDB Protocol OpCode Reference Table&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#analyzing-the-most-common-opcode-op_msg"&gt;Analyzing the Most Common OpCode &lt;code&gt;OP_MSG&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#extending-protocol-parsing-in-deepflow-agent"&gt;Extending Protocol Parsing in &lt;code&gt;DeepFlow Agent&lt;/code&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#deepflow-agent-development-document-overview"&gt;&lt;code&gt;DeepFlow Agent&lt;/code&gt; Development Document Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#code-guide"&gt;Code Guide&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#define-a-protocol-with-a-constant-identifier"&gt;Define a Protocol with a Constant Identifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#prepare-parsing-logic-for-the-new-protocol"&gt;Prepare Parsing Logic for the New Protocol&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#define-the-struct"&gt;Define the Struct&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#implement-l7protocolparserinterface"&gt;Implement &lt;code&gt;L7ProtocolParserInterface&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#extending-deepflow-protocol-collection-using-wasm-plugins"&gt;Extending DeepFlow Protocol Collection Using &lt;code&gt;Wasm&lt;/code&gt; Plugins&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#kafka-protocol-analysis"&gt;&lt;code&gt;Kafka&lt;/code&gt; Protocol Analysis&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#kafka-header-and-data-overview"&gt;&lt;code&gt;Kafka&lt;/code&gt; Header and Data Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#kafka-fetch-api"&gt;Kafka Fetch API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#kafka-produce-api"&gt;Kafka Produce API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#kafka-protocol-deepflow-agent-native-decoding"&gt;Kafka Protocol DeepFlow Agent Native Decoding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#deepflow-agent-wasm-plugin"&gt;&lt;code&gt;DeepFlow Agent&lt;/code&gt; Wasm Plugin&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#wasm-go-sdk-framework"&gt;Wasm Go SDK Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#plugin-code-guide"&gt;Plugin Code Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#conclusion"&gt;Conclusion&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#native-rust-extension"&gt;Native Rust Extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#wasm-plugin-extension"&gt;Wasm Plugin Extension&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="/en/posts/telemetry/deepflow-agent-proto-dev/#appendix"&gt;Appendix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="position:relative; padding-bottom:75%; width:100%; height:0"&gt;
&lt;iframe src="//player.bilibili.com/player.html?isOutside=true&amp;aid=921401645&amp;bvid=BV1Nu4y1A7ZC&amp;cid=1345829549&amp;p=1&amp;autoplay=false" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position:absolute; height: 100%; width: 100%;"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;MongoDB&lt;/code&gt; is widely used today, but lacks effective observability capabilities.
&lt;code&gt;DeepFlow&lt;/code&gt; is an excellent solution for observability, but it lacks support for the &lt;code&gt;MongoDB&lt;/code&gt; protocol.
This article extends &lt;code&gt;DeepFlow&lt;/code&gt; with &lt;code&gt;MongoDB&lt;/code&gt; protocol parsing, enhancing observability in the &lt;code&gt;MongoDB&lt;/code&gt; ecosystem. It briefly describes the process from protocol document analysis to implementing code parsing within &lt;code&gt;DeepFlow&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>