<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Apache SkyWalking – Community</title>
    <link>/tags/community/</link>
    <description>Recent content in Community on Apache SkyWalking</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Thu, 30 Apr 2026 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="/tags/community/feed.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Blog: Monitoring WeChat and Alipay Mini Programs with SkyWalking</title>
      <link>/blog/2026-04-30-mini-program-monitoring-with-skywalking/</link>
      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>
      <guid>/blog/2026-04-30-mini-program-monitoring-with-skywalking/</guid>
      <description>
        
        
        &lt;p&gt;Mini programs are a major part of the mobile experience in China, but the open-source observability ecosystem has long focused on web browsers and native apps. SkyWalking already covers browser (client-js), iOS, and the server side; mini programs and Android were the remaining gaps. With &lt;a href=&#34;https://github.com/SkyAPM/mini-program-monitor&#34;&gt;SkyAPM/mini-program-monitor&lt;/a&gt; joining the SkyWalking ecosystem, the mini-program half of that gap is closed — one SDK supports both WeChat and Alipay, and the matching OAP-side component IDs, MAL rules, and UI templates are merged on &lt;code&gt;main&lt;/code&gt; and will ship with 10.5.0.&lt;/p&gt;
&lt;p&gt;This post is for teams that already run a SkyWalking backend and want to bring their mini programs into the same observability stack. The interesting parts aren&amp;rsquo;t &lt;em&gt;that&lt;/em&gt; the project exists — they are how the data flows from a mini program to a SkyWalking dashboard, how the two platforms coexist, and what design trade-offs you should know about before rolling this out.&lt;/p&gt;
&lt;h2 id=&#34;data-path&#34;&gt;Data path&lt;/h2&gt;
&lt;p&gt;The SDK uses two protocols:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OTLP HTTP&lt;/strong&gt; (error logs, performance metrics, request metrics) → OAP &lt;code&gt;/v1/logs&lt;/code&gt;, &lt;code&gt;/v1/metrics&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SkyWalking native&lt;/strong&gt; (distributed tracing segments, optional) → OAP &lt;code&gt;/v3/segments&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why not a single protocol? OTLP already covers logs and metrics, so there&amp;rsquo;s no point reinventing native endpoints for those. But for tracing, OAP&amp;rsquo;s native &lt;code&gt;SegmentObject&lt;/code&gt; maps more cleanly onto SkyWalking&amp;rsquo;s trace model, and &lt;code&gt;sw8&lt;/code&gt; header propagation to the backend works without any conversion. So traces go native, everything else goes OTLP, and neither side has to translate.&lt;/p&gt;
&lt;p&gt;OTLP defaults to protobuf; JSON is available for debugging. The SDK has zero runtime dependencies.&lt;/p&gt;
&lt;h2 id=&#34;two-platforms-two-independent-layers-and-dashboards&#34;&gt;Two platforms, two independent Layers and dashboards&lt;/h2&gt;
&lt;p&gt;Many teams maintain a WeChat mini program and an Alipay mini program against a shared backend. Rather than collapsing them into a single tagged service, the design promotes each platform to its own Layer — &lt;code&gt;WECHAT_MINI_PROGRAM&lt;/code&gt; and &lt;code&gt;ALIPAY_MINI_PROGRAM&lt;/code&gt; — with its own dashboard set. The SDK tags every signal with a resource attribute &lt;code&gt;miniprogram.platform = wechat | alipay&lt;/code&gt; and assigns each platform its own component ID (WeChat = 10002, Alipay = 10003).&lt;/p&gt;
&lt;p&gt;On the OAP side, the MAL rule&amp;rsquo;s &lt;code&gt;filter&lt;/code&gt; routes data into the right Layer at ingest:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;metricPrefix&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;meter_wechat_mp&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;filter&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;{ tags -&amp;gt; tags.miniprogram_platform == &amp;#39;wechat&amp;#39; }&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The Alipay rule mirrors this with &lt;code&gt;&#39;alipay&#39;&lt;/code&gt;. The two rules are mutually exclusive — no double counting — and produce distinct metric prefixes (&lt;code&gt;meter_wechat_mp_*&lt;/code&gt; vs &lt;code&gt;meter_alipay_mp_*&lt;/code&gt;) that feed each Layer&amp;rsquo;s dashboards. Even when both platforms use the same &lt;code&gt;service.name&lt;/code&gt; (e.g. &lt;code&gt;mini-program-demo&lt;/code&gt;), the UI exposes two completely separate entry points.&lt;/p&gt;
&lt;h2 id=&#34;asymmetric-metric-semantics&#34;&gt;Asymmetric metric semantics&lt;/h2&gt;
&lt;p&gt;This is the design choice I want to highlight. WeChat&amp;rsquo;s base library exposes &lt;code&gt;PerformanceObserver&lt;/code&gt;, which gives you renderer-authoritative timings: app launch, first render, route navigation, script execution, sub-package load — all real measurements. Alipay&amp;rsquo;s base library doesn&amp;rsquo;t offer an equivalent, so the SDK falls back to lifecycle hooks: the &lt;code&gt;App.onLaunch → App.onShow&lt;/code&gt; delta is used as an approximation of launch time, and renderer-level timings simply aren&amp;rsquo;t available.&lt;/p&gt;
&lt;p&gt;So the two MAL rule sets are deliberately not the same:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WeChat&lt;/strong&gt;: &lt;code&gt;app_launch_duration&lt;/code&gt;, &lt;code&gt;first_render_duration&lt;/code&gt;, &lt;code&gt;route_duration&lt;/code&gt;, &lt;code&gt;script_duration&lt;/code&gt;, &lt;code&gt;package_load_duration&lt;/code&gt;, &lt;code&gt;request_duration_percentile&lt;/code&gt;, &lt;code&gt;request_cpm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alipay&lt;/strong&gt;: &lt;code&gt;app_launch_duration&lt;/code&gt;, &lt;code&gt;first_render_duration&lt;/code&gt;, &lt;code&gt;request_duration_percentile&lt;/code&gt;, &lt;code&gt;request_cpm&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Alipay &lt;code&gt;app_launch_duration&lt;/code&gt; is a lifecycle approximation and is not directly comparable to WeChat&amp;rsquo;s renderer timing — the dashboard tooltip says so explicitly. Putting the two numbers side by side is comparing two different measurement definitions.&lt;/p&gt;
&lt;h2 id=&#34;what-the-sdk-does&#34;&gt;What the SDK does&lt;/h2&gt;
&lt;p&gt;Four signals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Errors&lt;/strong&gt; — JS exceptions, unhandled promise rejections, and &lt;code&gt;pageNotFound&lt;/code&gt; go out as OTLP logs, following the OTel &lt;code&gt;exception.*&lt;/code&gt; semantic conventions (&lt;code&gt;exception.type&lt;/code&gt;, &lt;code&gt;exception.stacktrace&lt;/code&gt;). Anything downstream that speaks OTLP — SkyWalking, OTel Collector, Grafana — recognizes them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt; — the metrics listed above. OTLP gauge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Requests&lt;/strong&gt; — &lt;code&gt;wx.request&lt;/code&gt; / &lt;code&gt;my.request&lt;/code&gt; / &lt;code&gt;downloadFile&lt;/code&gt; / &lt;code&gt;uploadFile&lt;/code&gt; are reported as OTLP delta histograms, one batch per &lt;code&gt;flushInterval&lt;/code&gt; (default 5s). The &lt;code&gt;le&lt;/code&gt; bucket labels are already in milliseconds, and the MAL rule explicitly declares &lt;code&gt;MILLISECONDS&lt;/code&gt; to disable the default SECONDS→MS rescale. Failed requests (4xx / 5xx / timeout) additionally emit an error log so you can pivot from a dashboard to a concrete failure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracing (opt-in)&lt;/strong&gt; — when enabled, outbound requests get &lt;code&gt;sw8&lt;/code&gt; header injection, and the resulting segments stitch together with backend traces into one end-to-end view. Trace data goes out as SkyWalking &lt;code&gt;SegmentObject&lt;/code&gt;, not OTLP traces.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Two reliability and cardinality details worth calling out:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Persisting events on app hide.&lt;/strong&gt; Mini programs get killed by the framework after some time in background, and weak networks make in-flight events easy to lose. The SDK writes unsent events to &lt;code&gt;wx.setStorage&lt;/code&gt; / &lt;code&gt;my.setStorage&lt;/code&gt; on &lt;code&gt;onAppHide&lt;/code&gt; and restores them on the next launch.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Avoiding cardinality explosions.&lt;/strong&gt; Set &lt;code&gt;serviceInstance&lt;/code&gt; to the app version (e.g. &lt;code&gt;1.4.2&lt;/code&gt;), not a device ID — at a million DAU the device-ID dimension blows up the OAP instance index. For request paths, the SDK exposes &lt;code&gt;urlGroupRules&lt;/code&gt; regex patterns to fold parameterized URLs like &lt;code&gt;/api/user/12345&lt;/code&gt; into &lt;code&gt;/api/user/{id}&lt;/code&gt; so the endpoint dimension doesn&amp;rsquo;t blow up either.&lt;/p&gt;
&lt;h2 id=&#34;what-oap-needs&#34;&gt;What OAP needs&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re on &lt;code&gt;main&lt;/code&gt; or a release ≥ 10.5.0, the following are already shipped:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;config/component-libraries.yml&lt;/code&gt; registers &lt;code&gt;WeChat-MiniProgram: 10002&lt;/code&gt; and &lt;code&gt;AliPay-MiniProgram: 10003&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config/otel-rules/miniprogram/&lt;/code&gt; holds four MAL rules — service-scoped and instance-scoped for each platform&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config/ui-initialized-templates/wechat_mini_program/&lt;/code&gt; and &lt;code&gt;alipay_mini_program/&lt;/code&gt; carry root / service / instance / endpoint dashboards&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config/ui-initialized-templates/menu.yaml&lt;/code&gt; registers both layers under the Mobile menu group&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The only thing left is enabling the OTel receiver and giving the SDK an OTLP HTTP port it can reach. SkyWalking OAP binds its OTLP HTTP handler onto the receiver-sharing-server port, and that port defaults to &lt;code&gt;0&lt;/code&gt; — meaning it&amp;rsquo;s folded into the core REST port (12800). If you want the SDK to use the standard OTLP HTTP port 4318, set the sharing port to 4318:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run -d --name sw-oap &lt;span style=&#34;color:#0a3069&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -p 11800:11800 -p 12800:12800 -p 4318:4318 &lt;span style=&#34;color:#0a3069&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -e &lt;span style=&#34;color:#953800&#34;&gt;SW_STORAGE&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;banyandb &lt;span style=&#34;color:#0a3069&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -e &lt;span style=&#34;color:#953800&#34;&gt;SW_STORAGE_BANYANDB_TARGETS&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;banyandb:17912 &lt;span style=&#34;color:#0a3069&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -e &lt;span style=&#34;color:#953800&#34;&gt;SW_OTEL_RECEIVER&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;default &lt;span style=&#34;color:#0a3069&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  -e &lt;span style=&#34;color:#953800&#34;&gt;SW_RECEIVER_SHARING_REST_PORT&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;4318&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  apache/skywalking-oap-server:latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;All receivers (OTLP, native segment, browser perf, log report) move to 4318 together, while GraphQL stays on 12800 for the UI.&lt;/p&gt;
&lt;p&gt;Minimal SDK config:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;import&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;MiniProgramMonitor&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;from&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;mini-program-monitor&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;MiniProgramMonitor&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;init&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#1f2328&#34;&gt;service&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;mini-program-demo&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#1f2328&#34;&gt;serviceInstance&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;1.4.2&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;          &lt;span style=&#34;color:#57606a&#34;&gt;// Recommended: app version
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#1f2328&#34;&gt;collector&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#39;http://your-oap:4318&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#1f2328&#34;&gt;enable&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#1f2328&#34;&gt;error&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#1f2328&#34;&gt;perf&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#1f2328&#34;&gt;request&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#1f2328&#34;&gt;tracing&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#cf222e&#34;&gt;false&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;                  &lt;span style=&#34;color:#57606a&#34;&gt;// Off by default; enable as needed
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#1f2328&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;WeChat and Alipay use the same config — the SDK detects the platform at runtime and tags the data accordingly.&lt;/p&gt;
&lt;h2 id=&#34;compatibility&#34;&gt;Compatibility&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;WeChat base library ≥ 2.11&lt;/li&gt;
&lt;li&gt;Alipay base library ≥ 2.0&lt;/li&gt;
&lt;li&gt;Apache SkyWalking OAP &lt;code&gt;main&lt;/code&gt; or ≥ 10.5.0, with the OTLP HTTP receiver enabled&lt;/li&gt;
&lt;li&gt;Any other OTLP-compatible backend (OpenTelemetry Collector, Grafana, etc.) also works, but you won&amp;rsquo;t get the SkyWalking-specific cross-platform dashboards&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s next&lt;/h2&gt;
&lt;p&gt;To get involved, head over to &lt;a href=&#34;https://github.com/SkyAPM/mini-program-monitor&#34;&gt;SkyAPM/mini-program-monitor&lt;/a&gt; and open an issue or PR. The repo also ships a &lt;code&gt;make preview&lt;/code&gt; target that boots OAP, the UI, and both platform simulators locally — handy if you want to play with it end-to-end.&lt;/p&gt;
&lt;p&gt;Android end-user experience monitoring is still a gap in the SkyWalking ecosystem; contributors interested in closing that one are very welcome.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Agentic Vibe Coding in a Mature OSS Project: What Worked, What Didn&#39;t</title>
      <link>/blog/2026-03-08-agentic-vibe-coding/</link>
      <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
      <guid>/blog/2026-03-08-agentic-vibe-coding/</guid>
      <description>
        
        
        &lt;p&gt;Most &amp;ldquo;vibe coding&amp;rdquo; stories start with a greenfield project. This one doesn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;Apache SkyWalking is a 9-year-old observability platform with hundreds of production deployments, a complex DSL stack, and an external API surface that users have built dashboards, alerting rules, and automation scripts against. When I decided to replace the core scripting engine — purging the Groovy runtime from four DSL compilers — the constraint wasn&amp;rsquo;t &amp;ldquo;can AI write the code?&amp;rdquo; It was: &amp;ldquo;can AI write the code without breaking anything for existing users?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The answer turned out to be yes — &lt;strong&gt;~77,000 lines changed across 10 major PRs in about 5 weeks&lt;/strong&gt; — but only because the AI was tightly guided by a human who understood the project&amp;rsquo;s architecture, its compatibility contracts, and its users. This post is about the methodology: what worked, what didn&amp;rsquo;t, and what mature open-source maintainers should know before handing their codebase to AI agents.&lt;/p&gt;
&lt;h2 id=&#34;the-project-in-brief&#34;&gt;The Project in Brief&lt;/h2&gt;
&lt;p&gt;The task was to replace SkyWalking&amp;rsquo;s Groovy-based scripting engines (MAL, LAL, Hierarchy) with a unified ANTLR4 + Javassist bytecode compilation pipeline, matching the architecture already proven by the OAL compiler. The internal tech stack was completely overhauled; the external interface had to remain identical.&lt;/p&gt;
&lt;p&gt;Beyond the compiler rewrites, the scope included a new queue infrastructure (threads dropped from 36 to 15), virtual thread support for JDK 25+, and E2E test modernization. By conventional estimates, this was 5-8 months of senior engineer work.&lt;/p&gt;
&lt;p&gt;For the full technical details on the compiler architecture, see the &lt;a href=&#34;https://github.com/apache/skywalking/discussions/13716&#34;&gt;Groovy elimination discussion&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;what-is-agentic-vibe-coding&#34;&gt;What is Agentic Vibe Coding?&lt;/h2&gt;
&lt;p&gt;&amp;ldquo;Vibe coding&amp;rdquo; — a term coined by Andrej Karpathy — describes a style of programming where you describe intent and let AI write the code. It&amp;rsquo;s powerful for prototyping, but on its own, it&amp;rsquo;s risky for production systems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agentic vibe coding&lt;/strong&gt; takes this further: instead of a single AI autocomplete, you orchestrate multiple AI agents — each with different strengths — under your architectural direction, with automated tests as the safety net. In my workflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude Code (plan mode)&lt;/strong&gt;: Primary coding agent. Plan mode lets me review the approach before any code is generated. This is critical for architectural decisions — I steer the design, Claude handles the implementation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemini&lt;/strong&gt;: Code review, concurrency analysis, and verification reports. Gemini reviewed every major PR for thread-safety, feature parity, and edge cases.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Codex&lt;/strong&gt;: Autonomous task execution for well-defined, bounded work items.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The key insight: &lt;strong&gt;AI writes the code, but the architect owns the design.&lt;/strong&gt; Without deep domain knowledge of SkyWalking&amp;rsquo;s internals, no AI could have planned these changes. Without AI, I couldn&amp;rsquo;t have executed them in 5 weeks.&lt;/p&gt;
&lt;h2 id=&#34;how-tdd-made-ai-coding-safe&#34;&gt;How TDD Made AI Coding Safe&lt;/h2&gt;
&lt;p&gt;The reason I could move this fast without breaking things comes down to one principle: &lt;strong&gt;never let AI code without a test harness.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My workflow for each major change:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Plan mode first&lt;/strong&gt;: Describe the goal to Claude, review the plan, iterate on architecture before any code is written.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Write the test contract&lt;/strong&gt;: Define what &amp;ldquo;correct&amp;rdquo; means — for the compiler rewrites, this meant cross-version comparison tests that run every expression through both the old and new engines, asserting identical results across 1,290+ expressions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Let AI implement&lt;/strong&gt;: With the test contract in place, Claude can write thousands of lines of implementation code. If it&amp;rsquo;s wrong, the tests catch it immediately.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E2E as the final gate&lt;/strong&gt;: Every PR must pass the full E2E test suite — Docker-based integration tests that boot the entire server with real storage backends.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI code review&lt;/strong&gt;: Gemini reviewed each PR for concurrency issues, thread-safety, and feature parity — catching things that unit tests alone wouldn&amp;rsquo;t find.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is the opposite of &amp;ldquo;hope it works&amp;rdquo; vibe coding. The AI writes fast, the tests verify fast, and I steer the architecture. The feedback loop is tight enough that I can iterate on complex compiler code in minutes instead of days.&lt;/p&gt;
&lt;h2 id=&#34;lessons-learned&#34;&gt;Lessons Learned&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;AI is a force multiplier, not a replacement.&lt;/strong&gt; Before any AI agent wrote a single line, a human had to define the replacement solution: &lt;em&gt;what&lt;/em&gt; gets replaced, &lt;em&gt;how&lt;/em&gt; it gets replaced, and — critically — &lt;em&gt;where the boundaries are&lt;/em&gt;. Which APIs could break? The internal compilation pipeline was fair game for a complete overhaul. Which APIs must stay aligned? Every external-facing DSL syntax, every YAML configuration key, every metrics name and tag structure had to remain byte-for-byte identical — because hundreds of deployed dashboards, alerting rules, and user scripts depend on them. Drawing these boundaries required deep knowledge of the codebase and its users. AI executed the plan at extraordinary speed, but the plan itself — the scope, the invariants, the compatibility contract — had to come from a human who understood the blast radius of every change.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Plan mode is non-negotiable for architectural work.&lt;/strong&gt; Letting AI jump straight to code on a compiler rewrite would be a disaster. Plan mode&amp;rsquo;s strength is that it collects code context — scanning imports, tracing call chains, mapping class hierarchies — and uses that context to help me fill in implementation details I&amp;rsquo;d otherwise have to look up manually. But it can&amp;rsquo;t tell you the design principles. That direction had to come from me, stated clearly upfront, so the AI&amp;rsquo;s planning stayed on the right track instead of optimizing toward a locally reasonable but architecturally wrong solution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Know when to hit ESC.&lt;/strong&gt; Claude has a clear tendency to dive deep into solution code writing once it starts — and it won&amp;rsquo;t stop on its own when it encounters something that conflicts with the original plan&amp;rsquo;s concept. Instead of pausing to flag the conflict, it will push forward, improvising around the obstacle in ways that silently violate the design intent. I had to learn to watch for this: when Claude&amp;rsquo;s output started drifting from the plan, I&amp;rsquo;d manually cancel the task (ESC), call it off, identify where the plan and reality diverged, adjust the plan, and restart. This interrupt-replan cycle was a regular part of the workflow, not an exception. The architect has to stay in the loop — not just at planning time, but during execution — because AI agents don&amp;rsquo;t yet know when to stop and ask.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Spec-driven testing is necessary but not sufficient — the logic workflow matters more.&lt;/strong&gt; It&amp;rsquo;s tempting to think that if you define the input/output spec clearly enough, AI can fill in the implementation and tests will catch any mistakes. I tried this. It doesn&amp;rsquo;t work for anything non-trivial. During the expression compiler rewrite, Claude would sometimes change code in unreasonable ways just to make the spec tests pass — the inputs went in, the expected outputs came out, and everything looked green. But the internal logic was wrong: inconsistent with the design patterns the rest of the codebase relied on, impossible to extend, or solving the specific test case through a hack rather than a general mechanism. A spec only checks &lt;em&gt;what&lt;/em&gt; the code produces; it says nothing about &lt;em&gt;how&lt;/em&gt; the code produces it. For a mature project, the &amp;ldquo;how&amp;rdquo; matters enormously — the solution needs to be consistent with the existing architecture, widely adoptable by contributors, and maintainable long-term. That&amp;rsquo;s why I needed cross-version testing &lt;em&gt;and&lt;/em&gt; human review of the implementation path, not just the results.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Testing at two levels kept the rewrite honest.&lt;/strong&gt; Cross-version testing was part of my design plan from the start — I architected the dual-path comparison framework so that every production DSL expression runs through both the old and new engines, asserting identical results across 1,290+ expressions. This gave me confidence no human review could match, and it was a deliberate planning decision: I knew AI-generated compiler code needed a mechanical proof of behavioral equivalence, not just eyeball review. On top of that, E2E tests served as the project&amp;rsquo;s existing infrastructure safety net — Docker-based integration tests that boot the entire server with real storage backends. Unit tests and cross-version tests verify logic in isolation; E2E tests verify the system actually works end-to-end. For infrastructure-level changes like queue replacement and thread model changes, E2E is the only gate that truly matters. Together, the two layers — designed-for-this-rewrite cross-version tests and pre-existing E2E infrastructure — caught different classes of bugs and made shipping with confidence possible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Multiple AIs have different strengths.&lt;/strong&gt; Claude excels at large-scale code generation with plan mode. Gemini is exceptional at logic review — it can mentally trace code branches with given input data, simulating execution without actually running the code. This is significant for reviewing AI-generated code: Gemini would walk through a generated compiler method step by step, flagging where a null check was missing or where a branch would produce wrong output for a specific edge case. Codex proved most valuable as a test reviewer and honesty checker. AI-generated code has a subtle failure mode: the coding agent can make wrong assumptions and then write tests that pass by setting expected values to match the wrong behavior — effectively bypassing the test safety net. Codex caught cases where Claude had set unreasonable expected values that happened to make tests green, masking logic errors that would have surfaced in production. Using all three as checks on each other was far more effective than relying on any single one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Mythical Man-Month still applies — and so does the Mythical Token-Month.&lt;/strong&gt; Brooks taught us that a task requiring 12 person-months does not mean 12 people can finish it in one month. The same law applies to AI: you cannot simply throw more tokens, more agents, or more parallel sessions at a problem and expect it to converge faster. Communication costs, coordination overhead, requirements analysis, and conceptual integrity — these software engineering fundamentals do not disappear just because your workforce is artificial. Worse, when the direction is wrong — when there&amp;rsquo;s a conceptual error in the design or an unreasonable architectural choice — AI will not recognize it. It will charge down the wrong path at extraordinary speed, burning tokens furiously while trapped in a vortex of self-justification: patching code to make failing tests pass, adjusting expected values to match wrong behavior, adding workarounds on top of workarounds — each iteration making the codebase look more &amp;ldquo;complete&amp;rdquo; while drifting further from correctness. AI vibe coding cannot break out of this spiral on its own. Only a human who understands the domain can recognize &amp;ldquo;this is fundamentally wrong, stop,&amp;rdquo; discard the work, and redirect. Speed without direction is just expensive chaos.&lt;/p&gt;
&lt;h2 id=&#34;the-bigger-picture&#34;&gt;The Bigger Picture&lt;/h2&gt;
&lt;p&gt;The agentic vibe coding approach worked because it combined AI&amp;rsquo;s speed with human architectural judgment and automated test discipline. It&amp;rsquo;s not magic — it&amp;rsquo;s engineering, accelerated.&lt;/p&gt;
&lt;p&gt;Brooks also gave us &amp;ldquo;No Silver Bullet,&amp;rdquo; and its core distinction matters more than ever: software complexity comes in two kinds. &lt;strong&gt;Essential complexity&lt;/strong&gt; comes from the problem itself — the domain semantics, the behavioral contracts, the concurrency invariants. No tool can eliminate this; it must be understood, modeled, and reasoned about by someone who knows the domain. &lt;strong&gt;Accidental complexity&lt;/strong&gt; comes from the tools and implementation — boilerplate code, manual refactoring across hundreds of files, the mechanical work of translating a design into compilable source. This is exactly where AI excels. What made this project work was recognizing which complexity was which: I owned the essential complexity (architecture, API boundaries, correctness invariants), and AI demolished the accidental complexity (generating 77K lines of implementation, scaffolding test harnesses, rewriting repetitive patterns across dozens of config files). Confuse the two — let AI make essential decisions, or waste human time on accidental work — and you get the worst of both worlds.&lt;/p&gt;
&lt;p&gt;Qian Xuesen(Tsien Hsue-shen)&amp;rsquo;s &lt;em&gt;Engineering Cybernetics&lt;/em&gt; offers another lens that proved surprisingly relevant. His core framework — &lt;strong&gt;feedback&lt;/strong&gt;, &lt;strong&gt;control&lt;/strong&gt;, &lt;strong&gt;optimization&lt;/strong&gt; — describes how to keep complex systems running toward their target. AI vibe coding at full speed is like a hypersonic missile: extraordinarily fast, but without a guidance system it just creates a bigger crater in the wrong place. The feedback loop in my workflow was the test harness — cross-version tests and E2E tests providing continuous signal on whether the system was still on course. Control was the human architect deciding when to intervene: reviewing plans before execution, hitting ESC when the direction drifted, choosing which AI to trust for which task. Optimization was iterative: each interrupt-replan cycle refined the approach, each Gemini review tightened the logic, each Codex audit caught assumptions the coding agent had smuggled past the tests. Without all three — feedback to detect deviation, control to correct course, optimization to converge — the speed of AI coding would be not an advantage but a liability. The faster the missile, the more precise the guidance must be.&lt;/p&gt;
&lt;p&gt;For more details or to share your own experience with agentic coding on production systems, feel free to reach me on &lt;a href=&#34;https://github.com/wu-sheng&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Apache SkyWalking 2025 in Review: Making BanyanDB Ready for Production</title>
      <link>/blog/2026-01-01-skywalking-2025-year-in-review/</link>
      <pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate>
      <guid>/blog/2026-01-01-skywalking-2025-year-in-review/</guid>
      <description>
        
        
        &lt;p&gt;2025 was a very focused year for the Apache SkyWalking community: &lt;strong&gt;moving BanyanDB from “native storage” to a “production-ready default”&lt;/strong&gt;, and making SkyWalking APM fully benefit from that foundation.&lt;/p&gt;
&lt;p&gt;This post summarizes the key milestones, with an emphasis on BanyanDB.&lt;/p&gt;
&lt;h2 id=&#34;storage-strategy-saying-goodbye-to-h2&#34;&gt;Storage strategy: saying goodbye to H2&lt;/h2&gt;
&lt;p&gt;We started 2025 with a clear direction: the &lt;strong&gt;H2 storage option is permanently removed&lt;/strong&gt;.
This change reduced long-term maintenance burden and removed a storage choice that was not aligned with production and cloud-native deployments.&lt;/p&gt;
&lt;h2 id=&#34;banyandb-from-080-foundations-to-090-production-features&#34;&gt;BanyanDB: from 0.8.0 foundations to 0.9.0 production features&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;BanyanDB 0.8.0&lt;/strong&gt; delivered the “day-2 operations” foundation that a default storage backend needs. The community put a lot of effort into making queries faster and more predictable (for example &lt;code&gt;index_mode&lt;/code&gt;, numeric index types, and multiple query-path optimizations), while also making the system safer under real production pressure. Disk-usage thresholds and a query &lt;strong&gt;memory protector&lt;/strong&gt; were added as guardrails, and the operational toolbox matured with snapshot/backup/restore utilities and improved metadata synchronization.&lt;/p&gt;
&lt;p&gt;Just as importantly, 0.8.0 started filling in the missing pieces of a full platform: native property storage and lifecycle-related capabilities that later enabled stronger HA and stage-based deployment patterns.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BanyanDB 0.9.0&lt;/strong&gt; was the “production features” milestone. It introduced the &lt;strong&gt;Trace&lt;/strong&gt; data model as a first-class citizen, which unlocked much deeper trace storage and query capabilities. On the reliability and scaling side, the release brought configurable replicas, liaison-side improvements (including load balancing and moving some TopN flow), and broader correctness work such as migrations, version compatibility checks, and access logs.&lt;/p&gt;
&lt;p&gt;It also made long-term operations more cloud-friendly with backup/restore support for AWS S3, GCS, and Azure Blob Storage, and added authentication primitives needed in shared environments. In short, 0.9.0 is where BanyanDB clearly moved beyond a “fast storage engine” into a “production platform”.&lt;/p&gt;
&lt;h2 id=&#34;skywalking-apm-banyandb-becomes-the-default-path&#34;&gt;SkyWalking APM: BanyanDB becomes the default path&lt;/h2&gt;
&lt;p&gt;With &lt;strong&gt;APM 10.2.0&lt;/strong&gt;, the project made the strategic shift official: H2 was removed permanently, and BanyanDB 0.8.0 became the default path that SkyWalking invests in. A lot of the work here was not flashy, but essential — refining OAP behavior (group settings, index model changes, Progressive TTL, query limits, and more) so running BanyanDB in production felt stable and predictable.&lt;/p&gt;
&lt;p&gt;With &lt;strong&gt;APM 10.3.0&lt;/strong&gt;, SkyWalking and BanyanDB moved forward together: BanyanDB 0.9.0’s new trace model was adopted end-to-end, reducing inefficient query round-trips and enabling new query views that significantly lowered page latency. The integration also expanded into lifecycle-aware operations with hot/warm/cold stage configuration (including TTL and query support), and added BanyanDB &lt;strong&gt;self-monitoring&lt;/strong&gt; through OAP and the UI — the kind of end-to-end polish that turns a storage backend into a truly native solution.&lt;/p&gt;
&lt;p&gt;If you’d like this review to cover &lt;strong&gt;APM 10.4.x&lt;/strong&gt; as well, please point me to the corresponding release content in this repo (I didn’t find an APM 10.4.0 release announcement in the current checkout).&lt;/p&gt;
&lt;h2 id=&#34;packaging-and-deployment-ecosystem-helm&#34;&gt;Packaging and deployment ecosystem (Helm)&lt;/h2&gt;
&lt;p&gt;BanyanDB’s production readiness is not only server features — it also depends on deployment maturity.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Helm charts:
&lt;ul&gt;
&lt;li&gt;SkyWalking Kubernetes Helm Chart 4.8.0 improved BanyanDB deployment defaults by updating the bundled BanyanDB Helm dependency, fixing an init-job volume-mount mismatch, and aligning OAP/UI images with the APM 10.3.0 line.&lt;/li&gt;
&lt;li&gt;BanyanDB Helm 0.4.0 added backup/restore sidecars and a default volume for property storage.&lt;/li&gt;
&lt;li&gt;BanyanDB Helm 0.5.0 introduced stage-aware patterns (hot/warm/cold), improved lifecycle-sidecar scheduling, moved liaison to StatefulSet, refined internal networking, and expanded configuration options.&lt;/li&gt;
&lt;li&gt;BanyanDB Helm 0.5.1 refined liaison configuration and fixed restore-init environment issues.&lt;/li&gt;
&lt;li&gt;BanyanDB Helm 0.5.3 fixed a liaison/data-node port issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-rest-of-the-community-agents-and-tooling-kept-moving&#34;&gt;The rest of the community: agents and tooling kept moving&lt;/h2&gt;
&lt;p&gt;While storage was the “main storyline”, the community shipped releases across agents, clients, and surrounding components throughout 2025.&lt;/p&gt;
&lt;p&gt;Below is a consolidated view of the other releases, grouped by project, with the most important notes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking Java Agent&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;9.4.0&lt;/strong&gt;: agent self-observability; async-profiler support; broader plugin improvements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;9.5.0&lt;/strong&gt;: virtual thread executor plugin; compatibility and stability fixes; dependency upgrades.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking Go&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.6.0&lt;/strong&gt;: richer manual APIs (events/logs/metrics, set span error); goframev2 plugin; bug fixes including Redis cluster mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking for NodeJS&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.8.0&lt;/strong&gt;: Express 4/5 compatibility, keep-alive HTTP trace fix, and test/dependency maintenance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking Python&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1.2.0&lt;/strong&gt;: sampling service, &lt;code&gt;sw_grpc&lt;/code&gt; plugin, async/profiling stability fixes, Python 3.13 support, and dropping Python 3.7.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking PHP&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1.0.0&lt;/strong&gt;: reach 1.0; add PSR-3 log reporting; upgrade toolchain/dependencies.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking Rust&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.9.0&lt;/strong&gt;: migrate to Rust edition 2024 and upgrade dependencies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0.10.0&lt;/strong&gt;: Kafka client configuration refactor, &lt;code&gt;rdkafka&lt;/code&gt; upgrade, CI maintenance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking Ruby&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.1.0&lt;/strong&gt;: initialize agent core and e2e tests; add plugins for Sinatra, redis-rb, net-http, memcached, and Elasticsearch.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking Client JS&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1.0.0&lt;/strong&gt;: add Core Web Vitals and static resource metrics; fix fetch/resource error handling; dependency and e2e/test improvements.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking Satellite&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1.3.0&lt;/strong&gt;: support native eBPF Access Log protocol and async-profiler protocol; upgrade Go toolchain.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking Eyes&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.7.0&lt;/strong&gt;: improve installation/docs, respect gitignore behavior, upgrade Go, and simplify release steps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0.8.0&lt;/strong&gt;: add Elixir support and stronger dependency-license scanning (notably Ruby via Gemfile.lock), plus stability fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;looking-ahead-possible-directions-in-2026&#34;&gt;Looking ahead: possible directions in 2026&lt;/h2&gt;
&lt;p&gt;2025 was about making BanyanDB ready for production. In 2026, the community is exploring the next set of improvements that could make the whole stack simpler to operate, more stable under stress, and easier to integrate into broader observability ecosystems.&lt;/p&gt;
&lt;p&gt;Possible areas include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BanyanDB: remove the etcd dependency&lt;/strong&gt;: the direction under discussion is to move away from etcd (given ecosystem activity and maintenance concerns) and rely more on DNS-based discovery plus BanyanDB’s native property capabilities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BanyanDB: stronger stability testing&lt;/strong&gt;: more systematic testing, including chaos testing, to validate behavior under failures and noisy conditions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BanyanDB: better observability export&lt;/strong&gt;: introducing First Occurrence Data Collection (FODC) as a sidecar and proxy server to provide a unified stream of observability data to third-party systems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SkyWalking APM: broader runtime and query capabilities&lt;/strong&gt;: cold-stage data query support, a newer Java runtime (Java 25), and consideration of TraceQL protocol (Temper) support.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;closing&#34;&gt;Closing&lt;/h2&gt;
&lt;p&gt;Thanks to everyone who contributed to SkyWalking in 2025. Every contribution is high-value — code, documentation, reviews, testing, issue triage, and operational experience — and each of them helped move the project forward.&lt;/p&gt;
&lt;p&gt;We also want to say a special thank you to the countless end users across global companies. Many of the most valuable improvements don’t start from a pull request: they start from real-world use cases, performance investigations, production feedback, bug reports, and the patience to help us reproduce and validate fixes.&lt;/p&gt;
&lt;p&gt;As another milestone, SkyWalking reached &lt;strong&gt;968 GitHub contributors&lt;/strong&gt; globally, and we expect the &lt;strong&gt;1000th&lt;/strong&gt; contributor milestone to arrive soon in 2026. But the community is much larger than the number suggests, and SkyWalking’s progress has always been driven by collaboration between contributors, adopters, and maintainers.&lt;/p&gt;
&lt;p&gt;Apache SkyWalking was originally created by Sheng Wu as a personal project in May 2015. It would never have grown into what it is today without the whole community — and it will keep moving forward because of the community.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Improving Alert Accuracy with Dynamic Baselines</title>
      <link>/blog/2025-02-24-improving-alert-accuracy-with-dynamic-baselines/</link>
      <pubDate>Mon, 24 Feb 2025 00:00:00 +0000</pubDate>
      <guid>/blog/2025-02-24-improving-alert-accuracy-with-dynamic-baselines/</guid>
      <description>
        
        
        &lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://skywalking.apache.org/&#34;&gt;Apache SkyWalking&lt;/a&gt; is an open-source application performance monitoring (APM) system
that collects various data from business applications, including metrics, logs, and distributed tracing information,
and visualizes them through its UI.
It also allows users to configure alerting rules by setting threshold values for specific metrics in the configuration file.
When a metric associated with a particular service exceeds the predefined threshold within a given period, an alert is triggered.&lt;/p&gt;
&lt;p&gt;However, in real-world scenarios, traffic patterns and invocation behaviors vary across different time periods.
For example, in a shopping system, the number of purchases is significantly lower during late-night hours compared to daytime.
As a result, system metrics fluctuate within different ranges depending on the time of day.
This makes it challenging to rely solely on static threshold values for accurate alerting.&lt;/p&gt;
&lt;p&gt;Therefore, dynamically generating thresholds for each time period based on historical data becomes crucial.&lt;/p&gt;
&lt;h2 id=&#34;introduce-skyapm-skypredictor&#34;&gt;Introduce SkyAPM SkyPredictor&lt;/h2&gt;
&lt;p&gt;Based on the above scenario, we developed the &lt;a href=&#34;https://github.com/SkyAPM/SkyPredictor/&#34;&gt;SkyAPM SkyPredictor&lt;/a&gt; project to fix this issue.
SkyAPM SkyPredictor periodically collects data from SkyWalking and generates dynamic baselines.
Meanwhile, SkyWalking queries from SkyPredictor to obtain predicted metric values for the recent period, enabling more precise and adaptive alerting.&lt;/p&gt;
&lt;p&gt;NOTE: SkyWalking does not have a hard dependency on the SkyPredictor service.
If SkyPredictor is not configured, no predicted values would be retrieved, and not cause any failures in SkyWalking.
Additionally, you can use your own AI engine to build a custom prediction system. Simply implement the required protocol as outlined in the official documentation:
&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/ai-pipeline/metrics-baseline-integration/&#34;&gt;https://skywalking.apache.org/docs/main/next/en/setup/ai-pipeline/metrics-baseline-integration/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;architecture-diagram&#34;&gt;Architecture diagram&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;./architecture.png&#34; alt=&#34;Architecture&#34;&gt;&lt;/p&gt;
&lt;p&gt;As shown in the diagram, the process consists of two steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Data Collection &amp;amp; Prediction&lt;/strong&gt;: The Predictor queries history metrics from SkyWalking&amp;rsquo;s OAP via its HTTP service.
Then processes this data to generate dynamic predicted values for a future time period.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Baseline Query &amp;amp; Alerting&lt;/strong&gt;: The OAP periodically sends queries to the Predictor to fetch the predicted dynamic baseline.
Then evaluates the current metric values with prediction result using &lt;strong&gt;MQE&lt;/strong&gt;. If the deviation exceeds a certain threshold, an alert is triggered.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;data-collection&#34;&gt;Data Collection&lt;/h3&gt;
&lt;p&gt;The Predictor utilizes the following three APIs to query data:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/status/query_ttl_setup/&#34;&gt;&lt;strong&gt;Status API&lt;/strong&gt;&lt;/a&gt;: Retrieves the TTL (Time-to-Live) of history data stored in OAP, helping to determine the available time range for exporting all history metrics.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/api/query-protocol/#v2-apis&#34;&gt;&lt;strong&gt;Metadata API&lt;/strong&gt;&lt;/a&gt;: Fetches the list of services within a specified Layer from OAP, providing insights into which services are generating data.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/api/metrics-query-expression/&#34;&gt;&lt;strong&gt;MQE API&lt;/strong&gt;&lt;/a&gt;: Iterates through the required metrics and the list of services to fetch all history metrics values for each metric associated with each service.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These APIs collectively enable the Predictor to gather history metrics data, which is then used to compute dynamic baselines for future alerting.&lt;/p&gt;
&lt;h3 id=&#34;prediction&#34;&gt;Prediction&lt;/h3&gt;
&lt;p&gt;Once the Prediction service collects data from OAP, it proceeds with forecasting using the &lt;a href=&#34;https://github.com/facebook/prophet&#34;&gt;open-source Prophet library&lt;/a&gt;.
The prediction process consists of the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Data Preparation&lt;/strong&gt;: The collected metric data is split into multiple &lt;a href=&#34;https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html&#34;&gt;DataFrames&lt;/a&gt;, each corresponding to a unique combination of service + metric name.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Sufficiency Check&lt;/strong&gt;: If a DataFrame contains less than &lt;strong&gt;two days&lt;/strong&gt; (configurable) of data, the prediction is skipped. This is to ensure accuracy, as an insufficient data volume may lead to unreliable forecasts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Forecasting&lt;/strong&gt;: Using Prophet, the Predictor estimates the metric values for &lt;strong&gt;each hour over the next day&lt;/strong&gt; (configurable).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Result Storage&lt;/strong&gt;: The generated predictions are stored in local files, enabling querying from external services.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;predicted-value&#34;&gt;Predicted Value&lt;/h4&gt;
&lt;p&gt;The Prediction service supports calculating the following two types of values:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Predicted Value&lt;/strong&gt;: Computes the expected metric value for the next hour based on history metrics data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prediction Range&lt;/strong&gt;: Determines the possible &lt;strong&gt;upper and lower bounds&lt;/strong&gt; for the metric in the next hour, representing its expected fluctuation range.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These values help establish a dynamic baseline, allowing the alerting system to account for natural variations while accurately detecting anomalies.&lt;/p&gt;
&lt;h3 id=&#34;baseline-mqe-with-alarm&#34;&gt;Baseline MQE with Alarm&lt;/h3&gt;
&lt;p&gt;In OAP, predicted values can be queried directly using an MQE within MQE operation. This operation enables retrieving forecasted values for a future time period.&lt;/p&gt;
&lt;p&gt;Since SkyWalking&amp;rsquo;s alerting system already supports query through MQE expressions, users can configure alerts directly in the alerting configuration file using MQE.&lt;/p&gt;
&lt;p&gt;For more details, please refer to the &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/api/metrics-query-expression/#baseline-operation&#34;&gt;official documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;impact-of-data-collection-on-prediction-accuracy&#34;&gt;Impact of Data Collection on Prediction Accuracy&lt;/h3&gt;
&lt;p&gt;The Predictor service supports two different data collection and prediction granularity, each with its own trade-offs in accuracy and resource consumption.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Minute Level: Collects minutes level metrics data.
&lt;ol&gt;
&lt;li&gt;More effective for metrics with high fluctuations, as it captures finer details.&lt;/li&gt;
&lt;li&gt;Consumes more resources (OAP, DB CPU and System Load resources, Predictor CPU and Memory resources).&lt;/li&gt;
&lt;li&gt;Alerts are configured based on current value comparisons.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Hour Level: Collects hourly metrics data.
&lt;ol&gt;
&lt;li&gt;Less resource-intensive compared to minute-level collection.&lt;/li&gt;
&lt;li&gt;Less data volume, resource, and processing cost.&lt;/li&gt;
&lt;li&gt;Alerts are configured based on predicted range values.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Granularity&lt;/th&gt;
          &lt;th&gt;Data Fluctuation&lt;/th&gt;
          &lt;th&gt;Data Volume&lt;/th&gt;
          &lt;th&gt;Current Value Prediction Accuracy&lt;/th&gt;
          &lt;th&gt;Range Prediction Accuracy&lt;/th&gt;
          &lt;th&gt;Best Use Case&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Minute&lt;/td&gt;
          &lt;td&gt;Higher fluctuation&lt;/td&gt;
          &lt;td&gt;Large&lt;/td&gt;
          &lt;td&gt;Less accurate&lt;/td&gt;
          &lt;td&gt;More accurate&lt;/td&gt;
          &lt;td&gt;Ideal for highly fluctuating metrics, using range-based alerting rules&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Hour&lt;/td&gt;
          &lt;td&gt;Lower fluctuation&lt;/td&gt;
          &lt;td&gt;Small&lt;/td&gt;
          &lt;td&gt;More accurate&lt;/td&gt;
          &lt;td&gt;Relatively accurate&lt;/td&gt;
          &lt;td&gt;Suitable for stable metrics, using current value-based predictions&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Choosing the appropriate granularity depends on the nature of the metric and the desired alerting method.
For metrics with high volatility, minute-level collection provides better accuracy when using range-based alerts.
For stable metrics, hourly aggregation is sufficient and allows for efficient predictions using current-value comparisons.&lt;/p&gt;
&lt;p&gt;Predict use Hourly level by default.&lt;/p&gt;
&lt;h3 id=&#34;oap-and-predictor-scheduling--caching&#34;&gt;OAP and Predictor Scheduling &amp;amp; Caching&lt;/h3&gt;
&lt;p&gt;Both SkyWalking OAP and SkyAPM Predictor implement caching strategies to prevent excessive execution and optimize resource usage.&lt;/p&gt;
&lt;p&gt;By default, Predictor runs at 00:10, 08:10, and 16:10 every day. It forecasts the next 24 hours and stores the results locally.
Updating predictions every 8 hours balances resource efficiency and real-time accuracy. The 10-minute delay
(instead of running at exactly 00:00, 08:00, etc.) ensures historical data is fully written to the database before querying.&lt;/p&gt;
&lt;p&gt;OAP queries Predictor for all required predicted metrics of a single service. The query covers a ±24-hour time range from the current moment.
Results are cached for one hour to reduce redundant queries and improve efficiency.&lt;/p&gt;
&lt;p&gt;These mechanisms ensure that predictions remain up-to-date, while minimizing unnecessary processing and system load.&lt;/p&gt;
&lt;h2 id=&#34;demo&#34;&gt;Demo&lt;/h2&gt;
&lt;p&gt;In this section, I will demonstrate how to preview the predicted values of a metric by deploying a SkyWalking cluster along with the Predictor service
in a Kubernetes cluster. This hands-on example will help you understand how to use these components effectively.&lt;/p&gt;
&lt;h3 id=&#34;deploy-skywalking-showcase&#34;&gt;Deploy SkyWalking Showcase&lt;/h3&gt;
&lt;p&gt;SkyWalking Showcase contains a complete set of example services and can be monitored using SkyWalking.
For more information, please check the &lt;a href=&#34;https://skywalking.apache.org/docs/skywalking-showcase/next/readme/&#34;&gt;official documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this demo, we only deploy the predictor service, SkyWalking OAP, and UI.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#6639ba&#34;&gt;export&lt;/span&gt; &lt;span style=&#34;color:#953800&#34;&gt;FEATURE_FLAGS&lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;single-node,banyandb,baseline
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make deploy.kubernetes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;import-history-data&#34;&gt;Import History Data&lt;/h3&gt;
&lt;p&gt;Since a newly deployed cluster does not contain history data,
I have created a Python script to simulate data. This allows the Predictor service to import data and generate baseline predictions for a future period.&lt;/p&gt;
&lt;p&gt;Before importing data, you must expose the &lt;code&gt;11800&lt;/code&gt; port of the OAP service in your Kubernetes cluster.
You can achieve this using kubectl by running the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl port-forward -n skywalking-showcase   service/demo-oap 11800:11800
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, you can download and run the demo script using the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# clone and get into the demo repository&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/mrproliu/SkyPredictorDemo &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#6639ba&#34;&gt;cd&lt;/span&gt; SkyPredictorDemo
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# installing dependencies&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;make install
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# import data(7 days)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python3 -m client.generate localhost:11800 &lt;span style=&#34;color:#0550ae&#34;&gt;7&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Finally, you can see the output in the console: &lt;strong&gt;Metrics send success!&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;prediction-metrics&#34;&gt;Prediction metrics&lt;/h3&gt;
&lt;p&gt;Since the Predictor service runs based on a &lt;strong&gt;cron schedule&lt;/strong&gt;, it does not automatically execute immediately after data import.
To force it to collect data and perform a prediction, you can manually delete the Predictor pod, prompting Kubernetes to restart it:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl delete pod -n skywalking-showcase &lt;span style=&#34;color:#cf222e&#34;&gt;$(&lt;/span&gt;kubectl get pods -n skywalking-showcase --no-headers -o custom-columns&lt;span style=&#34;color:#0550ae&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;:metadata.name&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt; grep &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;skywalking-predictor&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once the Predictor pod restarts, you can check its logs to confirm that the prediction process has been completed.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Predicted for e2e-test-dest-service of service_xxx to xxxx-xx-xx xx:xx:xx.
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;view-in-skywalking-ui&#34;&gt;View in SkyWalking UI&lt;/h3&gt;
&lt;p&gt;Once the prediction process is complete, you can visualize the predicted values in the SkyWalking UI by configuring the appropriate metric widgets.&lt;/p&gt;
&lt;p&gt;First, Run the following command to forward the UI service port to your local machine:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl port-forward svc/demo-ui 8080:80 --namespace skywalking-showcase
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, you can access this page to view the service traffic that was generated using the Python script earlier:
http://localhost:8080/dashboard/MESH/Service/ZTJlLXRlc3QtZGVzdC1zZXJ2aWNl.1/Mesh-Service&lt;/p&gt;
&lt;p&gt;To display predicted values, edit the Service Avg Resp Time Widget and add the following MQE:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# The maximum predicted response time.
baseline(service_resp_time, upper)
# The predicted response time.
baseline(service_resp_time, value)
# The minimum predicted response time.
baseline(service_resp_time, lower)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Finally, you can see the predicted values displayed in the widget.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;predicted_widget.png&#34; alt=&#34;Predicted Widget&#34;&gt;&lt;/p&gt;
&lt;p&gt;Since the default data collection is hourly and the metric has significant fluctuations,
the predicted values are derived from hourly averages rather than minute-level granularity.
This approach smooths out fluctuations and provides a more stable baseline for monitoring.&lt;/p&gt;
&lt;p&gt;Now, you should see the predicted response times visualized alongside actual values, helping you analyze trends and configure dynamic alerting thresholds effectively.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;SkyAPM SkyPredictor enhances alert accuracy by using dynamic baselines instead of static thresholds.
It collects history metrics data, forecasts future values with Prophet, and supports minute or hour-level collection for better precision.
By integrating predictions into SkyWalking UI, users can optimize alerting and improve system observability.&lt;/p&gt;
&lt;p&gt;By integrating dynamic thresholds, SkyWalking can adapt to traffic patterns and detect anomalies more effectively,
reducing false positives and improving system observability.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: [Video] Coffee &#43; Software with Josh Long - Apache SkyWalking with Sheng Wu and Apache ShardingSphere with Trista Pan</title>
      <link>/blog/2023-12-04-coffee&#43;software-with-josh-long/</link>
      <pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate>
      <guid>/blog/2023-12-04-coffee&#43;software-with-josh-long/</guid>
      <description>
        
        
        &lt;p&gt;🚀 Dive into the World of Cutting-Edge Technology with Apache&amp;rsquo;s Finest! 🌐 Join me today as we embark on an exhilarating journey with two of Apache&amp;rsquo;s most brilliant minds - Sheng Wu and Trista Pan. We&amp;rsquo;re exploring the realms of Apache SkyWalking and Apache ShardingSphere, two groundbreaking initiatives that are reshaping the landscape of open-source technology. 🌟&lt;/p&gt;
&lt;p&gt;In this exclusive session, we delve deep into Apache SkyWalking - an innovative observability platform that&amp;rsquo;s revolutionizing how we monitor and manage distributed systems in the cloud. Witness firsthand how SkyWalking is empowering developers and organizations to gain unparalleled insights into their applications, ensuring performance, reliability, and efficient troubleshooting. 🛰️🔍&lt;/p&gt;
&lt;p&gt;But there&amp;rsquo;s more! We&amp;rsquo;re also unveiling the secrets of Apache ShardingSphere, a dynamic distributed database ecosystem. Learn how ShardingSphere is making waves in the world of big data, offering scalable, high-performance solutions for data sharding, encryption, and more. This is your gateway to understanding how these technologies are pivotal in handling massive data sets across various industries. 🌐💾&lt;/p&gt;
&lt;p&gt;Whether you&amp;rsquo;re a developer, tech enthusiast, or just curious about the future of open-source technology, this is a conversation you don&amp;rsquo;t want to miss! Get ready to be inspired and informed as we unlock new possibilities and applications of Apache SkyWalking and ShardingSphere. 🚀🌟&lt;/p&gt;
&lt;p&gt;Join us, and let&amp;rsquo;s decode the future together!&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/96ZacpHObmM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;Please join and follow Josh&amp;rsquo;s 龙之春 Youtube &lt;a href=&#34;https://www.youtube.com/@coffeesoftware&#34;&gt;Coffee + Software with Josh Long&lt;/a&gt; Channel to learn more about technology and open source from telanted engineers and industry leads.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: The Statement for SkyWalking users on HashiCorp license changes</title>
      <link>/blog/2023-08-13-hashicorp-bsl/</link>
      <pubDate>Sun, 13 Aug 2023 00:00:00 +0000</pubDate>
      <guid>/blog/2023-08-13-hashicorp-bsl/</guid>
      <description>
        
        
        &lt;p&gt;On Aug. 10th, 2023, HashiCorp announced to adopt the Business Source License (BSL) from Mozilla Public License v2.0 (MPL 2.0), here is their &lt;a href=&#34;https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license&#34;&gt;post&lt;/a&gt;.
They officially annouced they have changed the license for the &lt;strong&gt;ALL&lt;/strong&gt; of their open-source products from the previous MPL 2.0 to a source-available license, BSL 1.1.
Meanwhile, HashiCorp APIs, SDKs, and almost all other libraries will remain MPL 2.0.&lt;/p&gt;
&lt;p&gt;HashiCorp Inc. is one of the most important vendors in the cloud-native landscape, as well as Golang ecosystem. This kind of changes would have potential implications for
SkyWalking, which is closely integrated with cloud-native technology stacks.&lt;/p&gt;
&lt;h1 id=&#34;conclusion-first&#34;&gt;Conclusion First&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What does that mean for SkyWalking users?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SkyWalking community has evaluated our dependencies from HashiCorp products and libraries, the current conclusion is&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SkyWalking users would NOT suffer any implication. All components of SkyWalking don&amp;rsquo;t have hard-dependency on BSL license affected codes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;SkyWalking community have found out all following dependencies of all relative repositories, all licenses are TRUELY stayed unchanged, and compatible with Apache 2.0 License.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; OAP Server @kezhenxu94 @wu-sheng
&lt;ul&gt;
&lt;li&gt;consul-client Apache 2.0 Repo archived on Jul 27, 2023&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; BanyanDB @hanahmily @lujiajing1126
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Server @hanahmily
&lt;ul&gt;
&lt;li&gt;hashicorp/golang-lru MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/hcl MPL-2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; CLI @hanahmily &lt;strong&gt;No HashiCorp Dependency&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; SkyWalking OAP CLI @kezhenxu94
&lt;ul&gt;
&lt;li&gt;github.com/hashicorp/hcl v1.0.0 MPL-2.0&lt;/li&gt;
&lt;li&gt;All under swck as transitive dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; SWCK @hanahmily
&lt;ul&gt;
&lt;li&gt;hashicorp/consul/api MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/consul/sdk MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/errwrap MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-cleanhttp MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-immutable-radix MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-msgpack MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-multierror MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-rootcerts MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-sockaddr MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-syslog MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-uuid MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go.net BSD-3&lt;/li&gt;
&lt;li&gt;hashicorp/golang-lru MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/hcl MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/logutils MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/mdns MIT&lt;/li&gt;
&lt;li&gt;hashicorp/memberlist MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/serf MPL-2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Go agent @mrproliu
&lt;ul&gt;
&lt;li&gt;hashicorp/consul/api MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/consul/sdk MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/errwrap MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-cleanhttp MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-hclog MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-immutable-radix MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-kms-wrapping/entropy MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-kms-wrapping/entropy/v2 MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-msgpack MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-multierror MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-plugin MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-retryablehttp MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-rootcerts MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-secure-stdlib/base62 MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-secure-stdlib/mlock MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-secure-stdlib/parseutil MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-secure-stdlib/password MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-secure-stdlib/tlsutil MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-sockaddr MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-syslog MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-uuid MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-version MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go.net BSD-3-Clause&lt;/li&gt;
&lt;li&gt;hashicorp/golang-lru MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/logutils MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/mdns MIT&lt;/li&gt;
&lt;li&gt;hashicorp/memberlist MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/serf MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/vault/api MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/vault/sdk MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/yamux MPL-2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; SkyWalking eyes @kezhenxu94
&lt;ul&gt;
&lt;li&gt;none&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; SkyWalking Infra e2e @kezhenxu94
&lt;ul&gt;
&lt;li&gt;all under swck as transitive dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; SkyWalking rover(ebpf agent) @mrproliu
&lt;ul&gt;
&lt;li&gt;hashicorp/consul/api MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/consul/sdk MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/errwrap MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-cleanhttp MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-hclog MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-immutable-radix MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-msgpack MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-multierror MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-retryablehttp MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-rootcerts MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-sockaddr MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-syslog MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-uuid MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/golang-lru MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/hcl MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/logutils MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/mdns MIT&lt;/li&gt;
&lt;li&gt;hashicorp/memberlist MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/serf MPL-2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; SkyWalking satellite @mrproliu
&lt;ul&gt;
&lt;li&gt;hashicorp/consul/api MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/consul/sdk MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/errwrap MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-cleanhttp MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-immutable-radix MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-msgpack MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-multierror MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-rootcerts MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-sockaddr MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go-syslog MIT&lt;/li&gt;
&lt;li&gt;hashicorp/go-uuid MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/go.net BSD-3-Clause&lt;/li&gt;
&lt;li&gt;hashicorp/golang-lru MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/hcl MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/logutils MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/mdns MIT&lt;/li&gt;
&lt;li&gt;hashicorp/memberlist MPL-2.0&lt;/li&gt;
&lt;li&gt;hashicorp/serf MPL-2.0&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; SkyWalking Terraform (scripts) @kezhenxu94
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No HashiCorp Dependency&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The scripts for Terraform users only. No hard requirement.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;The GitHub ID is listed about the PMC members did the evaluations.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;faq&#34;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&#34;if-i-am-using-consul-to-manage-skywalking-cluster-or-configurations-does-this-license-change-bring-an-implication&#34;&gt;If I am using Consul to manage SkyWalking Cluster or configurations, does this license change bring an implication?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;YES&lt;/strong&gt;, anyone using their server sides would be affected once you upgrade to later released versions after Aug. 10th, 2023.&lt;/p&gt;
&lt;p&gt;This is HashiCorp&amp;rsquo;s statement&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;End users can continue to copy, modify, and redistribute the code for all non-commercial and commercial use, except where providing a competitive offering to HashiCorp. Partners can continue to build integrations for our joint customers. We will continue to work closely with the cloud service providers to ensure deep support for our mutual technologies. Customers of enterprise and cloud-managed HashiCorp products will see no change as well.
Vendors who provide competitive services built on our community products will no longer be able to incorporate future releases, bug fixes, or security patches contributed to our products.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, notice that, the implication about whether voilating BSL 1.1 is determined by the HashiCorp Inc about the status of the identified competitive relationship. We can&amp;rsquo;t provide any suggestions.
Please refer to &lt;a href=&#34;https://www.hashicorp.com/license-faq&#34;&gt;FAQs and contacts&lt;/a&gt; for the official explanations.&lt;/p&gt;
&lt;h3 id=&#34;will-skywalking-continoue-to-use-hashicorp-consul-as-an-optional-cluster-coordinator-andor-an-optional-dynamic-configuration-server&#34;&gt;Will SkyWalking continoue to use HashiCorp Consul as an optional cluster coordinator and/or an optional dynamic configuration server?&lt;/h3&gt;
&lt;p&gt;For short term, &lt;strong&gt;YES&lt;/strong&gt;, we will keep that part of codes, as the licenses of the SDK and the APIs are still in the MPL 2.0.&lt;/p&gt;
&lt;p&gt;But, during the evaluation, we noticed the consul client we are using is &lt;a href=&#34;https://github.com/rickfast/consul-client&#34;&gt;rickfast/consul-client&lt;/a&gt; which had been archived by the owner on Jul 27, 2023. So, we are facing the issues that no maintaining and no version to upgrade.
If there is not a new consul Java client lib available, we may have to remove this to avoid CVEs or version incompatible with new released servers.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Celebrate 22k stars</title>
      <link>/blog/2023-06-13-celebrate-22k-stars/</link>
      <pubDate>Tue, 13 Jun 2023 00:00:00 +0000</pubDate>
      <guid>/blog/2023-06-13-celebrate-22k-stars/</guid>
      <description>
        
        
        &lt;h1 id=&#34;celebrating-22k-stars&#34;&gt;Celebrating 22k Stars!&lt;/h1&gt;
&lt;p&gt;&lt;img src=&#34;./skywalking-22k.png&#34; alt=&#34;Stars&#34;&gt;&lt;/p&gt;
&lt;p&gt;The Apache SkyWalking community is thrilled to reach the milestone of 22k stars on GitHub! This showcases its popularity and impact as an APM and observability tool.&lt;/p&gt;
&lt;p&gt;Since launching in 2016 to provide an open source APM solution, SkyWalking has evolved into a full stack observability platform with distributed tracing, metrics monitoring and alerting. It&amp;rsquo;s seeing widespread adoption globally, especially in Asia where APM needs are expanding rapidly.&lt;/p&gt;
&lt;p&gt;The growing user base has enabled SkyWalking to achieve massive deployments demonstrating its ability to scale to extreme levels. There have been reported deployments collecting over 100TB of data from companies&amp;rsquo; complex distributed applications, monitoring over 8000 microservices and analyzing 100 billion distributed traces - providing end-to-end visibility, performance monitoring and issue troubleshooting for some of the largest distributed systems in the world.&lt;/p&gt;
&lt;p&gt;This success and widespread adoption has attracted an active community of nearly 800 contributors, thanks in part to programs like GSoC and OSPP(Open Source Promotion Plan) that bring in university contributors. The SkyWalking team remains focused on building a reliable, performant platform to observe complex distributed systems. We&amp;rsquo;ll continue innovating with features like service mesh monitoring and metric analytics.Your ongoing support, feedback and contributions inspire us!&lt;/p&gt;
&lt;p&gt;Thank you for helping SkyWalking reach 22k stars on GitHub! This is just the beginning - we have ambitious plans and can&amp;rsquo;t wait to have you along our journey!&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Monitoring DynamoDB with SkyWalking</title>
      <link>/blog/2023-03-13-skywalking-aws-dynamodb/</link>
      <pubDate>Mon, 13 Mar 2023 00:00:00 +0000</pubDate>
      <guid>/blog/2023-03-13-skywalking-aws-dynamodb/</guid>
      <description>
        
        
        &lt;p&gt;&lt;img src=&#34;./icon.png&#34; alt=&#34;icon.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://skywalking.apache.org/&#34;&gt;Apache SkyWalking&lt;/a&gt; is an open-source application performance management system that helps users collect and aggregate logs, traces, metrics, and events, and display them on the UI. Starting from OAP 9.4.0, SkyWalking has added &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/aws-firehose-receiver/&#34;&gt;AWS Firehose receiver&lt;/a&gt;, which is used to receive and calculate the data of CloudWatch metrics. In this article, we will take DynamoDB as an example to show how to use SkyWalking to receive and calculate CloudWatch metrics data for monitoring Amazon Web Services.&lt;/p&gt;
&lt;h2 id=&#34;what-are-amazon-cloudwatch-and-amazon-kinesis-data-firehose&#34;&gt;What are Amazon CloudWatch and Amazon Kinesis Data Firehose？&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://aws.amazon.com/cloudwatch/&#34;&gt;Amazon CloudWatch&lt;/a&gt; is a metrics repository, this tool can collect raw data from AWS (e.g. DynamoDB) and process it into readable metrics in near real-time. Also, we can use &lt;strong&gt;Metric Stream&lt;/strong&gt; to continuously stream CloudWatch metrics to a selected target location for near real-time delivery and low latency. SkyWalking takes advantage of this feature to create metric streams and direct them to Amazon Kinesis Data Firehose transport streams for further transport processing.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://aws.amazon.com/kinesis/data-firehose/&#34;&gt;Amazon Kinesis Data Firehose&lt;/a&gt;is an extract, transform, and load (ETL) service that reliably captures, transforms, and delivers streaming data to data lakes, data stores, and analytics services. SkyWalking takes advantage of this feature to eventually direct the metrics stream to the aws-firehose-receiver for OAP to calculate and ultimately display the metrics.&lt;/p&gt;
&lt;p&gt;The flow chart is as follows.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./aws-service.png&#34; alt=&#34;aws-service.png&#34;&gt;&lt;/p&gt;
&lt;h6 id=&#34;notice&#34;&gt;Notice&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Due to Kinesis Data Firehose specifications, the URL of the HTTP endpoint must use the HTTPS protocol and must use port 443. Also, this URL must be proxied by Gateway and forwarded to the real aws-firehose-receiver.&lt;/li&gt;
&lt;li&gt;The TLS certificate must be signed by a CA and the self-signed certificate will not be trusted by Kinesis Data Firehose.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;setting-up-dynamodb-monitoring&#34;&gt;Setting up DynamoDB monitoring&lt;/h2&gt;
&lt;p&gt;Next, let&amp;rsquo;s take DynamoDB as an example to illustrate the necessary settings in aws before using OAP to collect CloudWatch metrics:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a href=&#34;https://console.aws.amazon.com/kinesis/home&#34;&gt;Kinesis Console&lt;/a&gt;, create a data stream, and select &lt;code&gt;Direct PUT&lt;/code&gt; for &lt;code&gt;Source&lt;/code&gt; and &lt;code&gt;HTTP Endpoint&lt;/code&gt; for &lt;code&gt;Destination&lt;/code&gt;. And set &lt;code&gt;HTTP Endpoint URL&lt;/code&gt; to &lt;code&gt;Gateway URL&lt;/code&gt;. The rest of the configuration options can be configured as needed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;./kinesis.png&#34; alt=&#34;image.png&#34;&gt;&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Go to the &lt;a href=&#34;https://console.aws.amazon.com/cloudwatch/home&#34;&gt;CloudWatch Console&lt;/a&gt;, select &lt;code&gt;Metrics-Stream&lt;/code&gt; in the left control panel, and click Create metric stream. Select &lt;code&gt;AWS/DynamoDB&lt;/code&gt; for &lt;code&gt;namespace&lt;/code&gt;. Also, you can add other namespaces as needed. &lt;code&gt;Kinesis Data Firehose&lt;/code&gt; selects the data stream created in the first step. Finally, set the output format to opentelemetry0.7. The rest of the configuration options can be configured as needed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;./cloudwatch.png&#34; alt=&#34;cloudwatch.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;At this point, the AWS side of DynamoDB monitoring configuration is set up.&lt;/p&gt;
&lt;h2 id=&#34;skywalking-oap-metrics-processing-analysis&#34;&gt;SkyWalking OAP metrics processing analysis&lt;/h2&gt;
&lt;p&gt;SkyWalking uses aws-firehose-receiver to receive and decode AWS metrics streams forwarded by Gateway, and send it to &lt;a href=&#34;https://github.com/apache/skywalking/tree/master/oap-server/server-receiver-plugin/otel-receiver-plugin&#34;&gt;Opentelemetry-receiver&lt;/a&gt; for processing and transforming into SkyWalking metrics. Then, the metrics are analyzed and aggregated by &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/concepts-and-designs/mal/&#34;&gt;Meter Analysis Language (MAL)&lt;/a&gt; and finally presented on the UI.&lt;/p&gt;
&lt;p&gt;The MAL part and the UI part of SkyWalking support users&amp;rsquo; customization, to display the metrics data in a more diversified way. For details, please refer to &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/concepts-and-designs/mal/&#34;&gt;MAL doc&lt;/a&gt; and &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/ui/readme/&#34;&gt;UI doc&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./gateway_to_ui.png&#34; alt=&#34;gateway_to_ui.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;typical-metrics-analysis&#34;&gt;Typical metrics analysis&lt;/h2&gt;
&lt;h3 id=&#34;scope&#34;&gt;Scope&lt;/h3&gt;
&lt;p&gt;In SkyWalking, there is the concept of scope. By using scopes, we can classify and aggregate metrics more rationally. In the monitoring of DynamoDB, two of these scopes are used - Service and Endpoint.&lt;/p&gt;
&lt;p&gt;Service represents a set of workloads that provide the same behavior for incoming requests. Commonly used as cluster-level scopes for services, user accounts are closer to the concept of clusters in AWS. So SkyWalking uses AWS account id as a key to map AWS accounts to Service types.&lt;/p&gt;
&lt;p&gt;Similarly, Endpoint represents a logical concept, often used in services for the path of incoming requests, such as HTTP URI path or gRPC service class + method signature, and can also represent the table structure in the database. So SkyWalking maps DynamoDB tables to Endpoint type.&lt;/p&gt;
&lt;h3 id=&#34;metrics&#34;&gt;Metrics&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Metric Name&lt;/th&gt;
          &lt;th&gt;Meaning&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;AccountMaxReads / AccountMaxWrites&lt;/td&gt;
          &lt;td&gt;The maximum number of read/write capacity units that can be used by an account.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AccountMaxTableLevelReads / AccountMaxTableLevelWrites&lt;/td&gt;
          &lt;td&gt;The maximum number of read/write capacity units that can be used by a table or global secondary index of an account.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AccountProvisionedReadCapacityUtilization / AccountProvisionedWriteCapacityUtilization&lt;/td&gt;
          &lt;td&gt;The percentage of provisioned read/write capacity units utilized by an account.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MaxProvisionedTableReadCapacityUtilization / MaxProvisionedTableWriteCapacityUtilization&lt;/td&gt;
          &lt;td&gt;The percentage of provisioned read/write capacity utilized by the highest provisioned read table or global secondary index of an account.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Above are some common account metrics (Serivce scope). They are various configuration information in DynamoDB, and SkyWalking can show a complete picture of the database configuration changes by monitoring these metrics.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Metric Name&lt;/th&gt;
          &lt;th&gt;Meaning&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;ConsumedReadCapacityUnits / ConsumedWriteCapacityUnits&lt;/td&gt;
          &lt;td&gt;The number of read/write capacity units consumed over the specified time period.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ReturnedItemCount&lt;/td&gt;
          &lt;td&gt;The number of items returned by Query, Scan or ExecuteStatement (select) operations during the specified time period.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SuccessfulRequestLatency&lt;/td&gt;
          &lt;td&gt;The latency of successful requests to DynamoDB or Amazon DynamoDB Streams during the specified time period.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;TimeToLiveDeletedItemCount&lt;/td&gt;
          &lt;td&gt;The number of items deleted by Time to Live (TTL) during the specified time period.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The above are some common table metrics (Endpoint scope), which will also be aggregated into account metrics. These metrics are generally used to analyze the performance of the database, and users can use them to determine the reasonable level of database configuration. For example, users can track how much of their provisioned throughput is used through ConsumedReadCapicityUnits / ConsumedReadCapicityUnits to determine the reasonableness of the preconfigured throughput of a table or account. For more information about provisioned throughput, see &lt;a href=&#34;https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html&#34;&gt;Provisioned Throughput Intro&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Metric Name&lt;/th&gt;
          &lt;th&gt;Meaning&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;UserErrors&lt;/td&gt;
          &lt;td&gt;Requests to DynamoDB or Amazon DynamoDB Streams that generate an HTTP 400 status code during the specified time period.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;SystemErrors&lt;/td&gt;
          &lt;td&gt;The requests to DynamoDB or Amazon DynamoDB Streams that generate an HTTP 500 status code during the specified time period.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ThrottledRequests&lt;/td&gt;
          &lt;td&gt;Requests to DynamoDB that exceed the provisioned throughput limits on a resource.&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;TransactionConflict&lt;/td&gt;
          &lt;td&gt;Rejected item-level requests due to transactional conflicts between concurrent requests on the same items.&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The above are some common error metrics, among which UserErrors are account-level metrics and the rest are table-level metrics. Users can set alarms on these metrics, and if warnings appear, then it may indicate that there are some problems with the use of the database, and users need to check and verify by themselves.&lt;/p&gt;
&lt;h3 id=&#34;notice-1&#34;&gt;Notice&lt;/h3&gt;
&lt;p&gt;SkyWalking&amp;rsquo;s metrics selection for DynamoDB comes directly from CloudWatch metrics, which can also be found at &lt;a href=&#34;https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html&#34;&gt;CloudWatch metrics doc&lt;/a&gt; to get metrics details.&lt;/p&gt;
&lt;h2 id=&#34;demo&#34;&gt;Demo&lt;/h2&gt;
&lt;p&gt;In this section, we will demonstrate how to use terraform to create a DynamoDB table and other AWS services that can generate metrics streams, and deploy Skywalking to complete the metrics collection.&lt;/p&gt;
&lt;p&gt;First, you need a running gateway instance, such as &lt;a href=&#34;https://www.nginx.com/&#34;&gt;NGINX&lt;/a&gt;, which is responsible for receiving metrics streams from AWS and forwarding them to the aws-firehose-receiver. Note that the gateway needs to be configured with certificates to accept HTTPS protocol requests.&lt;/p&gt;
&lt;p&gt;Below is an example configuration for NGINX. The configuration does not need to be identical, as long as it can send incoming HTTPS requests to &lt;code&gt;oap host:12801/aws/firehose/metrics&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;server {
        listen       443 ssl;
        
        ssl_certificate     /crt/test.pem;
        ssl_certificate_key  /crt/test.key; 
        
        ssl_session_timeout  5m;   
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; 
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  
        ssl_prefer_server_ciphers on; 
    
        location /aws/firehose/metrics {
            proxy_pass http://test.xyz:12801/aws/firehose/metrics;
        }
    }
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;deploying-skywalking&#34;&gt;Deploying SkyWalking&lt;/h3&gt;
&lt;p&gt;There are various ways to deploy SkyWalking, and you can get them directly from the &lt;a href=&#34;https://github.com/apache/skywalking/releases/tag/v9.4.0&#34;&gt;release page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course, if you are more comfortable with Kubernetes, you can also find the appropriate deployment method from &lt;a href=&#34;https://github.com/apache/skywalking-kubernetes&#34;&gt;SkyWalking-kubernetes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Please note that no matter which deployment method you use, please make sure that the OAP and UI version is 9.4.0 or higher and that port 12801 needs to be open.&lt;/p&gt;
&lt;p&gt;The following is an example of a deployment using the helm command.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;export SKYWALKING_RELEASE_VERSION=4.3.0 
export SKYWALKING_RELEASE_NAME=skywalking  
export SKYWALKING_RELEASE_NAMESPACE=default

helm install &amp;#34;${SKYWALKING_RELEASE_NAME}&amp;#34; \
  oci://registry-1.docker.io/apache/skywalking-helm \
  --version &amp;#34;${SKYWALKING_RELEASE_VERSION}&amp;#34; \
  -n &amp;#34;${SKYWALKING_RELEASE_NAMESPACE}&amp;#34; \
  --set oap.image.tag=9.4.0 \
  --set oap.storageType=elasticsearch \
  --set ui.image.tag=9.4.0 \
  --set oap.ports.firehose=12801
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;start-the-corresponding-aws-service&#34;&gt;Start the corresponding AWS service&lt;/h3&gt;
&lt;p&gt;The terraform configuration file is as follows (example modified in&lt;a href=&#34;https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/kinesis_firehose_delivery_stream&#34;&gt;Terraform Registry - kinesis_firehose_delivery_stream&lt;/a&gt;）：&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;terraform configuration file &lt;/summary&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;provider &amp;#34;aws&amp;#34; {
  region = &amp;#34;ap-northeast-1&amp;#34;
  access_key = &amp;#34;[need change]your access_key&amp;#34;
  secret_key = &amp;#34;[need change]your secret_key&amp;#34;
}
resource &amp;#34;aws_dynamodb_table&amp;#34; &amp;#34;basic-dynamodb-table&amp;#34; {
  name           = &amp;#34;GameScores&amp;#34;
  billing_mode   = &amp;#34;PROVISIONED&amp;#34;
  read_capacity  = 20
  write_capacity = 20
  hash_key       = &amp;#34;UserId&amp;#34;
  range_key      = &amp;#34;GameTitle&amp;#34;

  attribute {
    name = &amp;#34;UserId&amp;#34;
    type = &amp;#34;S&amp;#34;
  }

  attribute {
    name = &amp;#34;GameTitle&amp;#34;
    type = &amp;#34;S&amp;#34;
  }

  attribute {
    name = &amp;#34;TopScore&amp;#34;
    type = &amp;#34;N&amp;#34;
  }

  ttl {
    attribute_name = &amp;#34;TimeToExist&amp;#34;
    enabled        = true
  }

  global_secondary_index {
    name               = &amp;#34;GameTitleIndex&amp;#34;
    hash_key           = &amp;#34;GameTitle&amp;#34;
    range_key          = &amp;#34;TopScore&amp;#34;
    write_capacity     = 10
    read_capacity      = 10
    projection_type    = &amp;#34;INCLUDE&amp;#34;
    non_key_attributes = [&amp;#34;UserId&amp;#34;]
  }

  tags = {
    Name        = &amp;#34;dynamodb-table-1&amp;#34;
    Environment = &amp;#34;production&amp;#34;
  }
}

resource &amp;#34;aws_cloudwatch_metric_stream&amp;#34; &amp;#34;main&amp;#34; {
  name          = &amp;#34;my-metric-stream&amp;#34;
  role_arn      = aws_iam_role.metric_stream_to_firehose.arn
  firehose_arn  = aws_kinesis_firehose_delivery_stream.http_stream.arn
  output_format = &amp;#34;opentelemetry0.7&amp;#34;

  include_filter {
    namespace = &amp;#34;AWS/DynamoDB&amp;#34;
  }
}

# https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-trustpolicy.html
data &amp;#34;aws_iam_policy_document&amp;#34; &amp;#34;streams_assume_role&amp;#34; {
  statement {
    effect = &amp;#34;Allow&amp;#34;

    principals {
      type        = &amp;#34;Service&amp;#34;
      identifiers = [&amp;#34;streams.metrics.cloudwatch.amazonaws.com&amp;#34;]
    }

    actions = [&amp;#34;sts:AssumeRole&amp;#34;]
  }
}

resource &amp;#34;aws_iam_role&amp;#34; &amp;#34;metric_stream_to_firehose&amp;#34; {
  name               = &amp;#34;metric_stream_to_firehose_role&amp;#34;
  assume_role_policy = data.aws_iam_policy_document.streams_assume_role.json
}

# https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-trustpolicy.html
data &amp;#34;aws_iam_policy_document&amp;#34; &amp;#34;metric_stream_to_firehose&amp;#34; {
  statement {
    effect = &amp;#34;Allow&amp;#34;

    actions = [
      &amp;#34;firehose:PutRecord&amp;#34;,
      &amp;#34;firehose:PutRecordBatch&amp;#34;,
    ]

    resources = [aws_kinesis_firehose_delivery_stream.http_stream.arn]
  }
}
resource &amp;#34;aws_iam_role_policy&amp;#34; &amp;#34;metric_stream_to_firehose&amp;#34; {
  name   = &amp;#34;default&amp;#34;
  role   = aws_iam_role.metric_stream_to_firehose.id
  policy = data.aws_iam_policy_document.metric_stream_to_firehose.json
}

resource &amp;#34;aws_s3_bucket&amp;#34; &amp;#34;bucket&amp;#34; {
  bucket = &amp;#34;metric-stream-test-bucket&amp;#34;
}

resource &amp;#34;aws_s3_bucket_acl&amp;#34; &amp;#34;bucket_acl&amp;#34; {
  bucket = aws_s3_bucket.bucket.id
  acl    = &amp;#34;private&amp;#34;
}

data &amp;#34;aws_iam_policy_document&amp;#34; &amp;#34;firehose_assume_role&amp;#34; {
  statement {
    effect = &amp;#34;Allow&amp;#34;

    principals {
      type        = &amp;#34;Service&amp;#34;
      identifiers = [&amp;#34;firehose.amazonaws.com&amp;#34;]
    }

    actions = [&amp;#34;sts:AssumeRole&amp;#34;]
  }
}

resource &amp;#34;aws_iam_role&amp;#34; &amp;#34;firehose_to_s3&amp;#34; {
  assume_role_policy = data.aws_iam_policy_document.firehose_assume_role.json
}

data &amp;#34;aws_iam_policy_document&amp;#34; &amp;#34;firehose_to_s3&amp;#34; {
  statement {
    effect = &amp;#34;Allow&amp;#34;

    actions = [
      &amp;#34;s3:AbortMultipartUpload&amp;#34;,
      &amp;#34;s3:GetBucketLocation&amp;#34;,
      &amp;#34;s3:GetObject&amp;#34;,
      &amp;#34;s3:ListBucket&amp;#34;,
      &amp;#34;s3:ListBucketMultipartUploads&amp;#34;,
      &amp;#34;s3:PutObject&amp;#34;,
    ]

    resources = [
      aws_s3_bucket.bucket.arn,
      &amp;#34;${aws_s3_bucket.bucket.arn}/*&amp;#34;,
    ]
  }
}

resource &amp;#34;aws_iam_role_policy&amp;#34; &amp;#34;firehose_to_s3&amp;#34; {
  name   = &amp;#34;default&amp;#34;
  role   = aws_iam_role.firehose_to_s3.id
  policy = data.aws_iam_policy_document.firehose_to_s3.json
}

resource &amp;#34;aws_kinesis_firehose_delivery_stream&amp;#34; &amp;#34;http_stream&amp;#34; {
  name        = &amp;#34;metric-stream-test-stream&amp;#34;
  destination = &amp;#34;http_endpoint&amp;#34;

  http_endpoint_configuration {
    name       = &amp;#34;test_http_endpoint&amp;#34;
    url        = &amp;#34;[need change]Gateway url&amp;#34;
    role_arn   = aws_iam_role.firehose_to_s3.arn
  }
  s3_configuration {
    role_arn   = aws_iam_role.firehose_to_s3.arn
    bucket_arn = aws_s3_bucket.bucket.arn
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;/details&gt;
&lt;p&gt;Steps to use.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Get the access_key and secret_key of the AWS account.( For how to get them, please refer to &lt;a href=&#34;https://aws.amazon.com/premiumsupport/knowledge-center/create-access-key/&#34;&gt;create-access-key&lt;/a&gt; )&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fill in the access_key and secret_key you got in the previous step, and fill in the corresponding URL of your gateway in the corresponding location of &lt;code&gt;aws_kinesis_firehose_delivery_stream&lt;/code&gt; configuration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy the above content and save it to the main.tf file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Execute the following code in the corresponding path.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;terraform init
terraform apply
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;At this point, all the required AWS services have been successfully created, and you can check your console to see if the services were successfully created.&lt;/p&gt;
&lt;h3 id=&#34;done&#34;&gt;Done!&lt;/h3&gt;
&lt;p&gt;If all the above steps were successful, please wait for about five minutes. After that, you can visit the SkyWalking UI to see the metrics.&lt;/p&gt;
&lt;p&gt;Currently, the metrics collected by SkyWalking by default are displayed as follows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;account metrics:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./service.png&#34; alt=&#34;service.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;table metrics：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./endpoint.png&#34; alt=&#34;endpoint.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;other-services&#34;&gt;Other services&lt;/h3&gt;
&lt;p&gt;Currently, SkyWalking officially supports EKS, S3, DynamoDB monitoring. Users also refer to &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/opentelemetry-receiver/&#34;&gt;the OpenTelemetry receiver&lt;/a&gt; to configure OTel rules to collect and analyze CloudWatch metrics of other AWS services and display them through &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/ui/readme/&#34;&gt;a custom dashboard&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;material&#34;&gt;Material&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudwatch-monitoring.html&#34;&gt;Monitoring S3 metrics with Amazon CloudWatch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/monitoring-cloudwatch.html&#34;&gt;Monitoring DynamoDB metrics with Amazon CloudWatch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/aws-firehose-receiver/&#34;&gt;Supported metrics in AWS Firehose receiver of OAP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/configuration-vocabulary/&#34;&gt;Configuration Vocabulary | Apache SkyWalking&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Monitoring AWS EKS and S3 with SkyWalking</title>
      <link>/blog/2023-03-12-skywalking-aws-s3-eks/</link>
      <pubDate>Sun, 12 Mar 2023 00:00:00 +0000</pubDate>
      <guid>/blog/2023-03-12-skywalking-aws-s3-eks/</guid>
      <description>
        
        
        &lt;p&gt;&lt;img src=&#34;./icon.png&#34; alt=&#34;icon.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;SKyWalking OAP&amp;rsquo;s existing &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/opentelemetry-receiver/&#34;&gt;OpenTelemetry receiver&lt;/a&gt; can receive metrics through the &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md&#34;&gt;OTLP protocol, and use &lt;/a&gt;&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/concepts-and-designs/mal/&#34;&gt;MAL&lt;/a&gt; to analyze related metrics in real time. Starting from OAP 9.4.0, SkyWalking has added &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/aws-firehose-receiver/&#34;&gt;an AWS Firehose receiver&lt;/a&gt; to receive and analyze CloudWatch metrics data. This article will take EKS and S3 as examples to introduce the process of SkyWalking OAP receiving and analyzing the indicator data of AWS services.&lt;/p&gt;
&lt;h3 id=&#34;eks&#34;&gt;EKS&lt;/h3&gt;
&lt;h4 id=&#34;opentelemetry-collector&#34;&gt;OpenTelemetry Collector&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://opentelemetry.io/&#34;&gt;OpenTelemetry (OTel)&lt;/a&gt; is a series of tools, APIs, and SDKs that can generate, collect, and export telemetry data, such as metrics, logs, and traces. OTel Collector is mainly responsible for collecting, processing, and exporting. For telemetry data, Collector consists of the following main components:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Receiver&lt;/strong&gt;: Responsible for obtaining telemetry data, different receivers support different data sources, such as prometheus, kafka, otlp.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Processor&lt;/strong&gt;: Process data between receiver and exporter, such as adding or deleting attributes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exporter&lt;/strong&gt;: Responsible for sending data to different backends, such as kafka, SkyWalking OAP (via OTLP).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Service&lt;/strong&gt;: Components enabled as a unit configuration, only configured components will be enabled.&lt;/li&gt;
&lt;/ol&gt;
&lt;h6 id=&#34;opentelemetry-protocol-specificationotlp&#34;&gt;OpenTelemetry Protocol Specification(OTLP)&lt;/h6&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/otlp.md&#34;&gt;OTLP&lt;/a&gt; mainly describes how to receive (pull) indicator data through gRPC and HTTP protocols. &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/opentelemetry-receiver/&#34;&gt;The OpenTelemetry receiver&lt;/a&gt; of SKyWalking OAP implements the OTLP/gRPC protocol, and the indicator data can be exported to OAP through the OTLP/gRPC exporter. Usually the data flow of a Collector is as follows:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./collector.png&#34; alt=&#34;collector.png&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;monitor-eks-with-otel&#34;&gt;Monitor EKS with OTel&lt;/h4&gt;
&lt;p&gt;EKS monitoring is realized through OTel. You only need to deploy OpenTelemetry Collector in the EKS cluster in the way of &lt;code&gt;DaemonSet &lt;/code&gt; &amp;ndash; use &lt;a href=&#34;https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/awscontainerinsightreceiver/README.md&#34;&gt;AWS Container Insights Receiver&lt;/a&gt; as the receiver, and set the address of otlp exporter to the address of OAP. In addition, it should be noted that OAP is used &lt;code&gt;job_name : aws-cloud-eks-monitoring&lt;/code&gt; as the identifier of EKS metrics according to the attribute, so it is necessary to configure a processor in the collector to add this attribute.&lt;/p&gt;
&lt;h6 id=&#34;otel-collector-configuration-demo&#34;&gt;OTel Collector configuration demo&lt;/h6&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;extensions&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;health_check&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;receivers&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;awscontainerinsightreceiver&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;processors&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# To enable OAP to correctly identify EKS metrics, add the job_name attribute&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resource/job-name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;attributes&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;job_name   &lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;value&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-cloud-eks-monitoring&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;action&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;insert     &lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# Specify OAP as exporters&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;exporters&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;otlp&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;endpoint&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;oap-service:11800 &lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;tls&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;insecure&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;logging&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;loglevel&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;debug          &lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;service&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;pipelines&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;metrics&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;receivers&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;awscontainerinsightreceiver]&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;processors&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;resource/job-name]&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;exporters&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;otlp,logging]&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;extensions&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;health_check]&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;By default, SkyWalking OAP counts the network, disk, CPU and other related indicator data in the three dimensions of Node, Pod, and Service. Only part of the content is shown here.&lt;/p&gt;
&lt;h6 id=&#34;pod-dimensions&#34;&gt;Pod dimensions&lt;/h6&gt;
&lt;p&gt;&lt;img src=&#34;./eks-pod.png&#34; alt=&#34;eks-pod.png&#34;&gt;&lt;/p&gt;
&lt;h6 id=&#34;service-dimensions&#34;&gt;Service dimensions&lt;/h6&gt;
&lt;p&gt;&lt;img src=&#34;./eks-service.png&#34; alt=&#34;eks-service.png&#34;&gt;&lt;/p&gt;
&lt;h6 id=&#34;eks-monitoring-complete-configuration&#34;&gt;EKS monitoring complete configuration&lt;/h6&gt;
&lt;details&gt;
&lt;summary&gt;Click here to view complete k8s resource configuration &lt;/summary&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;v1&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;ServiceAccount&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-sa&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-eks&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#24292e&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;ClusterRole&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;rbac.authorization.k8s.io/v1&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aoc-agent-role&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;rules&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;pods&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;nodes&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;endpoints&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;list&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;watch&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;apps&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;replicasets&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;list&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;watch&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;batch&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;jobs&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;list&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;watch&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;nodes/proxy&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;get&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;nodes/stats&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;configmaps&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;events&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;create&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;get&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;configmaps&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resourceNames&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;otel-container-insight-clusterleader&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;get&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;update&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;apiGroups&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;coordination.k8s.io&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;leases&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;verbs&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;create&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;get&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;update&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#24292e&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;ClusterRoleBinding&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;rbac.authorization.k8s.io/v1&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aoc-agent-role-binding&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;subjects&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;ServiceAccount&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-sa&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-eks&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;roleRef&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;ClusterRole&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aoc-agent-role&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;apiGroup&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;rbac.authorization.k8s.io&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#24292e&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;v1&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;ConfigMap&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-agent-conf&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-eks&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;labels&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;app&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;opentelemetry&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;component&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-agent-conf&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;data&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;otel-agent-config&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;    extensions:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;      health_check:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;    receivers:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;      awscontainerinsightreceiver:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;    processors:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;      resource/job-name:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;        attributes:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;        - key: job_name   
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;          value: aws-cloud-eks-monitoring
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;          action: insert     
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;    exporters:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;      otlp:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;        endpoint: oap-service:11800
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;        tls:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;          insecure: true
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;      logging:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;          loglevel: debug          
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;    service:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;      pipelines:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;        metrics:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;          receivers: [awscontainerinsightreceiver]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;          processors: [resource/job-name]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;          exporters: [otlp,logging]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;      extensions: [health_check]&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#24292e&#34;&gt;---&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;apiVersion&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;apps/v1&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;kind&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;DaemonSet&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-eks-ci&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;namespace&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-eks&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;selector&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;matchLabels&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-eks-ci&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;template&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;metadata&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;labels&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-eks-ci&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;spec&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;containers&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-collector&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;image&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;amazon/aws-otel-collector:v0.23.0&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;env&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;         	  &lt;/span&gt;&lt;span style=&#34;color:#57606a&#34;&gt;# Specify region&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;AWS_REGION&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;value&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;ap-northeast-1&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;K8S_NODE_NAME&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;valueFrom&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;fieldRef&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;fieldPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;spec.nodeName&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;HOST_IP&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;valueFrom&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;fieldRef&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;fieldPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;status.hostIP&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;HOST_NAME&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;valueFrom&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;fieldRef&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                  &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;fieldPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;spec.nodeName&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;K8S_NAMESPACE&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;valueFrom&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                 &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;fieldRef&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                   &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;fieldPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;metadata.namespace&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;imagePullPolicy&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;Always&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;command&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;/awscollector&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;--config=/conf/otel-agent-config.yaml&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;volumeMounts&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;rootfs&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;mountPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/rootfs&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;readOnly&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;dockersock&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;mountPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/var/run/docker.sock&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;readOnly&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;varlibdocker&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;mountPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/var/lib/docker&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;readOnly&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;containerdsock&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;mountPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/run/containerd/containerd.sock&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;readOnly&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;sys&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;mountPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/sys&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;readOnly&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;devdisk&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;mountPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/dev/disk&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;readOnly&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#cf222e&#34;&gt;true&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-agent-config-vol&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;mountPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/conf&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-output-vol  &lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;mountPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/otel-output&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;resources&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;limits&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;cpu&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;  &lt;/span&gt;200m&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;memory&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;200Mi&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;requests&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;cpu&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;200m&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;memory&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;200Mi&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;volumes&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;configMap&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-agent-conf&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;items&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;              &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;key&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-agent-config&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;                &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-agent-config.yaml&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-agent-config-vol&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;rootfs&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;hostPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;dockersock&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;hostPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/var/run/docker.sock&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;varlibdocker&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;hostPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/var/lib/docker&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;containerdsock&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;hostPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/run/containerd/containerd.sock&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;sys&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;hostPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/sys&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;devdisk&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;hostPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/dev/disk/&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        &lt;/span&gt;- &lt;span style=&#34;color:#0550ae&#34;&gt;name&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;otel-output-vol  &lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;hostPath&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;path&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;/otel-output&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#0550ae&#34;&gt;serviceAccountName&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#fff&#34;&gt; &lt;/span&gt;aws-otel-sa&lt;span style=&#34;color:#fff&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#fff&#34;&gt;        
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/details&gt;
&lt;h3 id=&#34;s3&#34;&gt;S3&lt;/h3&gt;
&lt;h4 id=&#34;amazon-cloudwatch&#34;&gt;Amazon CloudWatch&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html&#34;&gt;Amazon CloudWatch&lt;/a&gt; is a monitoring service provided by AWS. It is responsible for collecting indicator data of AWS services and resources. CloudWatch metrics stream is responsible for converting indicator data into stream processing data, and supports output in two formats: json and OTel v0.7.0.&lt;/p&gt;
&lt;h4 id=&#34;amazon-kinesis-data-firehose-firehose&#34;&gt;Amazon Kinesis Data Firehose (Firehose)&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://aws.amazon.com/cn/kinesis/data-firehose/&#34;&gt;Firehose&lt;/a&gt; is an extract, transform, load (ETL) service that reliably captures, transforms, and serves streaming data into data lakes, data stores (such as S3), and analytics services.&lt;/p&gt;
&lt;p&gt;To ensure that external services can correctly receive indicator data, AWS provides &lt;a href=&#34;https://docs.aws.amazon.com/firehose/latest/dev/httpdeliveryrequestresponse.html&#34;&gt;Kinesis Data Firehose HTTP Endpoint Delivery Request and Response Specifications (Firehose Specifications)&lt;/a&gt; . Firhose pushes Json data by POST&lt;/p&gt;
&lt;h6 id=&#34;json-data-example&#34;&gt;Json data example&lt;/h6&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;requestId&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;ed4acda5-034f-9f42-bba1-f29aea6d7d8f&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0550ae&#34;&gt;1578090901599&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;records&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#1f2328&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#1f2328&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;aGVsbG8=&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#1f2328&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#1f2328&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#0550ae&#34;&gt;&amp;#34;data&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#0a3069&#34;&gt;&amp;#34;aGVsbG8gd29ybGQ=&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#1f2328&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#1f2328&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#1f2328&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;requestId&lt;/strong&gt;: Request id, which can achieve deduplication and debugging purposes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;timestamp&lt;/strong&gt;: Firehose generated the timestamp of the request (in milliseconds).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;records&lt;/strong&gt;: Actual delivery records
&lt;ol&gt;
&lt;li&gt;data: The delivered data, encoded in base64, can be in json or OTel v0.7.0 format, depending on the format of CloudWatch data (described later). Skywalking currently supports OTel v0.7.0 format.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&#34;aws-firehose-receiver&#34;&gt;aws-firehose-receiver&lt;/h5&gt;
&lt;p&gt;&lt;code&gt;aws-firehose-receiver&lt;/code&gt;  provides an HTTP Endpoint that implements Firehose Specifications: &lt;code&gt;/aws/firehose/metrics&lt;/code&gt;. The figure below shows the data flow of monitoring DynamoDB, S3 and other services through CloudWatch, and using Firehose to send indicator data to SKywalking OAP.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./aws-service.png&#34; alt=&#34;aws-service.png&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;step-by-step-setup-of-s3-monitoring&#34;&gt;Step-by-step setup of S3 monitoring&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Enter the S3 console and create a filter for&lt;code&gt;Request metrics&lt;/code&gt;: &lt;code&gt;Amazon S3 &amp;gt;&amp;gt; Buckets &amp;gt;&amp;gt; (Your Bucket) &amp;gt;&amp;gt; Metrics &amp;gt;&amp;gt; metrics &amp;gt;&amp;gt; View additional charts &amp;gt;&amp;gt; Request metrics&lt;/code&gt;
&lt;img src=&#34;./s3-create-filter.png&#34; alt=&#34;s3-create-filter.png&#34;&gt;&lt;/li&gt;
&lt;li&gt;Enter the Amazon Kinesis console, create a delivery stream, &lt;code&gt;Source&lt;/code&gt; select &lt;code&gt;Direct PUT&lt;/code&gt;, &lt;code&gt;Destination&lt;/code&gt; select &lt;code&gt;HTTP Endpoint&lt;/code&gt;. And set &lt;code&gt;HTTP endpoint URL&lt;/code&gt; to &lt;code&gt;https://your_domain/aws/firehose/metrics&lt;/code&gt;. Other configuration items:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Buffer hints&lt;/code&gt;: Set the size and period of the cache&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Access key&lt;/code&gt; just matches the AccessKey in aws-firehose-receiver&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Retry duration&lt;/code&gt;:  Retry period&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Backup settings&lt;/code&gt;: Backup settings, optionally backup the posted data to S3 at the same time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;./firehose-stream-create.png&#34; alt=&#34;firehose-stream-create.png&#34;&gt;&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Enter the CloudWatch console &lt;code&gt;Streams&lt;/code&gt; and click Create CloudWatch Stream. And &lt;code&gt;Select your Kinesis Data Firehose stream&lt;/code&gt; configure the delivery stream created in the second step in the item. Note that it needs to be set &lt;code&gt;Change output format&lt;/code&gt; to &lt;code&gt;OpenTelemetry v0.7.0&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;./cloud-watch-stream.png&#34; alt=&#34;cloud-watch-stream.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;At this point, the S3 monitoring configuration settings are complete. The S3 metrics currently collected by SkyWalking by default are shown below:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./s3-metrics.png&#34; alt=&#34;s3-metrics.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;other-service&#34;&gt;Other service&lt;/h3&gt;
&lt;p&gt;Currently SkyWalking officially supports EKS, S3, DynamoDB monitoring. Users also refer to &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/opentelemetry-receiver/&#34;&gt;the OpenTelemetry receiver&lt;/a&gt; to configure OTel rules to collect and analyze CloudWatch metrics of other AWS services, and display them through &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/ui/readme/&#34;&gt;a custom dashboard&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;material&#34;&gt;Material&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudwatch-monitoring.html&#34;&gt;Monitoring S3 metrics with Amazon CloudWatch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/monitoring-cloudwatch.html&#34;&gt;Monitoring DynamoDB metrics with Amazon CloudWatch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/aws-firehose-receiver/&#34;&gt;Supported metrics in AWS Firehose receiver of OAP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/setup/backend/configuration-vocabulary/&#34;&gt;Configuration Vocabulary | Apache SkyWalking&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: [License Issue] Aliyun(阿里云)&#39;s trace analysis service copied SkyWalking&#39;s trace profiling page.</title>
      <link>/blog/2023-01-03-aliyun-copy-page/</link>
      <pubDate>Tue, 03 Jan 2023 00:00:00 +0000</pubDate>
      <guid>/blog/2023-01-03-aliyun-copy-page/</guid>
      <description>
        
        
        &lt;p&gt;&lt;a href=&#34;https://skywalking.apache.org&#34;&gt;Apache SkyWalking&lt;/a&gt; is an open-source APM for a distributed system, Apache Software Foundation top-level project.&lt;/p&gt;
&lt;p&gt;On Jan. 3rd, 2023, we received reports about &lt;a href=&#34;https://help.aliyun.com/document_detail/90277.html&#34;&gt;Aliyun Trace Analysis Service&lt;/a&gt;. It provides a cloud service compatible
with SkyWalking trace APIs and agents.&lt;/p&gt;
&lt;p&gt;On their product page, there is a &lt;a href=&#34;https://help.aliyun.com/document_detail/178204.html&#34;&gt;&lt;code&gt;best-practice&lt;/code&gt; document&lt;/a&gt; describing about their service is not SkyWalking OAP, but can work with SkyWalking agents to
support &lt;a href=&#34;https://skywalking.apache.org/docs/main/next/en/concepts-and-designs/profiling/#in-process-profiling&#34;&gt;SkyWalking&amp;rsquo;s In-Process(Trace) Profiling&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BUT, they copied the whole page of SkyWalking&amp;rsquo;s profiling UI, including page layout, words,  and profiling task setup.&lt;/strong&gt; The only difference is the color schemes.&lt;/p&gt;
&lt;h3 id=&#34;skywalking-ui&#34;&gt;SkyWalking UI&lt;/h3&gt;
&lt;img src=&#34;skywalking.jpeg&#34;&gt;
&lt;h3 id=&#34;aliyun-trace-analysis-ui-on-their-document-page&#34;&gt;Aliyun Trace Analysis UI on their document page&lt;/h3&gt;
&lt;img src=&#34;aliyun.jpeg&#34;&gt;
&lt;hr&gt;
&lt;p&gt;The UI visualization is a part of the copyright. Aliyun declared their backend is NOT a re-distribution of SkyWalking repeatedly on their website,
and they never mentioned this page is actually copied from upstream.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This is a LICENSE issue, violating SkyWalking&amp;rsquo;s copyright and Apache 2.0 License. They don&amp;rsquo;t respect Apache Software Foundation and Apache SkyWalking&amp;rsquo;s IP and Branding.&lt;/strong&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: [Video] Distributed tracing demo using Apache SkyWalking and Kong API Gateway</title>
      <link>/blog/2022-08-11-kongcast-20-distributed-tracing-using-skywalking-kong/</link>
      <pubDate>Thu, 11 Aug 2022 00:00:00 +0000</pubDate>
      <guid>/blog/2022-08-11-kongcast-20-distributed-tracing-using-skywalking-kong/</guid>
      <description>
        
        
        &lt;p&gt;Observability essential when working with distributed systems. Built on 3 pillars of metrics, logging and
tracing, having the right tools in place to quickly identify and determine the root cause of an issue in production
is imperative. In this Kongcast interview, we explore the benefits of having observability and demo the use of
Apache SkyWalking. We walk through the capabilities that SkyWalking offers out of the box and debug a common HTTP 500
error using the tool.&lt;/p&gt;
&lt;p&gt;Andrew Kew is interviewed by Viktor Gamov, a developer advocate at &lt;a href=&#34;https://konghq.com/&#34;&gt;Kong Inc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Andrew is a highly passionate technologist with over 16 valuable years experience in building server side and cloud
applications. Having spent the majority of his time in the Financial Services domain, his meritocratic rise to CTO of an
Algorithmic Trading firm allowed him to not only steer the business from a technology standpoint, but build robust and
scalable trading algorithms. His mantra is &amp;ldquo;right first time&amp;rdquo;, thus ensuring the projects or clients he is involved in
are left in a better place than they were before he arrived.&lt;/p&gt;
&lt;p&gt;He is the founder of a boutique software consultancy in the United Kingdom, &lt;a href=&#34;https://quadcorps.co.uk&#34;&gt;QuadCorps Ltd&lt;/a&gt;, working in the API and
Integration Ecosystem space and is currently on a residency programme at &lt;a href=&#34;https://konghq.com/&#34;&gt;Kong Inc&lt;/a&gt; as a senior field engineer and
technical account manager working across many of their enterprise strategic accounts.&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/r8e9ib0powM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Blog: Integrating Apache SkyWalking with source code</title>
      <link>/blog/2022-04-14-integrating-skywalking-with-source-code/</link>
      <pubDate>Thu, 14 Apr 2022 00:00:00 +0000</pubDate>
      <guid>/blog/2022-04-14-integrating-skywalking-with-source-code/</guid>
      <description>
        
        
        &lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it. - Mark Weiser&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mark Weiser prophetically argued in the late 1980s, that the most far-reaching technologies are those which vanish into thin air. According to Weiser, &amp;ldquo;Whenever people learn something sufficiently well, they cease to be aware of it.&amp;rdquo; This disappearing act, as Weiser claimed, is not limited to technology but rather human psychology. It is this very experience that allows us to escape lower-level thinking into higher-level thinking. For once we are no longer impeded by mundane details, we are then free to focus on new goals.&lt;/p&gt;
&lt;p&gt;This realization becomes more relevant as APMs become increasingly popular. As more applications are deployed with APMs, the number of abstract representations of the underlying source code also increases. While this provides great value to many non-development roles within an organization, it does pose additional challenges to those in development roles who must translate these representations into concepts they can work with (i.e. source code). Weiser sums this difficultly up rather succinctly when he states that &amp;ldquo;Programmers should no more be asked to work without access to source code than auto-mechanics should be asked to work without looking at the engine.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Still, APMs collect more information only to produce a plethora of new abstract representations. In this article, we will introduce a new concept in &lt;a href=&#34;https://github.com/sourceplusplus/live-platform&#34;&gt;Source++&lt;/a&gt;, the open-source live-coding platform, specifically designed to allow developers to monitor production applications more intuitively.&lt;/p&gt;
&lt;h2 id=&#34;live-views&#34;&gt;Live Views&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;And we really don&amp;rsquo;t understand even yet, hundreds of metrics later, what make a program easier to understand or modify or reuse or borrow. I don&amp;rsquo;t think we&amp;rsquo;ll find out by looking away from programs to their abstract interfaces. The answers are in the source code. - Mark Weiser&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As APMs move from the &amp;ldquo;nice to have&amp;rdquo; category to the &amp;ldquo;must-have&amp;rdquo; category, there is a fundamental feature holding them back from ubiquity. They must disappear from consciousness. As developers, we should feel no impulse to open our browsers to better understand the underlying source code. The answers are literally in the source code. Instead, we should improve our tools so the source code conveniently tells us what we need to know. Think of how simple life could be if failing code always indicated how and why it failed. This is the idea behind Source++.&lt;/p&gt;
&lt;p&gt;In our last blog post, we discussed &lt;a href=&#34;https://skywalking.apache.org/blog/2021-12-06-extend-skywalking-with-nbb/&#34;&gt;Extending Apache SkyWalking with non-breaking breakpoints&lt;/a&gt;. In that post, we introduced a concept called &lt;strong&gt;Live Instruments&lt;/strong&gt;, which developers can use to easily debug live production applications without leaving their IDE. Today, we will discuss how existing SkyWalking installations can be integrated into your IDE via a new concept called &lt;strong&gt;Live Views&lt;/strong&gt;. Unlike Live Instruments, which are designed for debugging live applications, Live Views are designed for increasing application comprehension and awareness. This is accomplished through a variety of commands which are input into the Live Command Palette.&lt;/p&gt;
&lt;h3 id=&#34;live-command-palette&#34;&gt;Live Command Palette&lt;/h3&gt;
&lt;p&gt;The Live Command Palette (LCP) is a contextual command prompt, included in the &lt;a href=&#34;https://github.com/sourceplusplus/interface-jetbrains&#34;&gt;Source++ JetBrains Plugin&lt;/a&gt;, that allows developers to control and query live applications from their IDE. Opened via keyboard shortcut (&lt;code&gt;Ctrl+Shift+S&lt;/code&gt;), the LCP allows developers to easily view metrics relevant to the source code they&amp;rsquo;re currently viewing. The following Live View commands are currently supported:&lt;/p&gt;
&lt;h4 id=&#34;command-view-overviewactivitytraceslogs&#34;&gt;Command: view (overview/activity/traces/logs)&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;view&lt;/code&gt; commands display contextual popups with live operational data of the current source code. These commands allow developers to view traditional SkyWalking operational data filtered down to the relevant metrics.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;view_command.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;command-watch-log&#34;&gt;Command: watch log&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;watch log&lt;/code&gt; command allows developers to follow individual log statements of a running application in real-time. This command allows developers to negate the need for manually scrolling through the logs to find instances of a specific log statement.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;watch_log_command.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h4 id=&#34;command-showhide-quick-stats&#34;&gt;Command: (show/hide) quick stats&lt;/h4&gt;
&lt;p&gt;The &lt;code&gt;show quick stats&lt;/code&gt; command displays live endpoint metrics for a quick idea of an endpoint&amp;rsquo;s activity. Using this command, developers can quickly assess the status of an endpoint and determine if the endpoint is performing as expected.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;show_quick_stats_command.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;future-work&#34;&gt;Future Work&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;A good tool is an invisible tool. By invisible, I mean that the tool does not intrude on your consciousness; you focus on the task, not the tool. Eyeglasses are a good tool &amp;ndash; you look at the world, not the eyeglasses. - Mark Weiser&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Source++ aims to extend SkyWalking in such a way that SkyWalking itself becomes invisible. To accomplish this, we plan to support custom developer commands. Developers will be able to build customized commands for themselves, as well as commands to share with their team. These commands will recognize context, types, and conditions allowing for a wide possibility of operations. As more commands are added, developers will be able to expose everything SkyWalking has to offer while focusing on what matters most, the source code.&lt;/p&gt;
&lt;p&gt;If you find these features useful, please consider giving Source++ a try. You can install the plugin directly from your JetBrains IDE, or through the &lt;a href=&#34;https://plugins.jetbrains.com/plugin/12033-source-&#34;&gt;JetBrains Marketplace&lt;/a&gt;. If you have any issues or questions, please &lt;a href=&#34;https://github.com/sourceplusplus/interface-jetbrains/issues&#34;&gt;open an issue&lt;/a&gt;. Feedback is always welcome!&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: [Resolved][License Issue] Volcengine Inc.(火山引擎) violates the Apache 2.0 License when using SkyWalking.</title>
      <link>/blog/2022-01-28-volcengine-violates-aplv2/</link>
      <pubDate>Fri, 28 Jan 2022 00:00:00 +0000</pubDate>
      <guid>/blog/2022-01-28-volcengine-violates-aplv2/</guid>
      <description>
        
        
        &lt;p&gt;&lt;a href=&#34;https://skywalking.apache.org&#34;&gt;Apache SkyWalking&lt;/a&gt; is an open-source APM for a distributed system, Apache Software Foundation top-level project.&lt;/p&gt;
&lt;p&gt;On Jan. 28th, we received a License violation report from one of the committers (anonymously). They have a cloud service called &lt;a href=&#34;https://www.volcengine.com/docs/6431/69088&#34;&gt;Application Performance Monitoring - Distributed Tracing (应用性能监控全链路版)&lt;/a&gt;.
At the &lt;a href=&#34;https://www.volcengine.com/docs/6431/81123&#34;&gt;Java service monitoring section&lt;/a&gt;, it provides this agent download link&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;wget &lt;a href=&#34;https://datarangers.com.cn/apminsight/repo/v2/download/java-agent/apminsight-java-agent_latest.tar.gz&#34;&gt;https://datarangers.com.cn/apminsight/repo/v2/download/java-agent/apminsight-java-agent_latest.tar.gz&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We downloaded it at 23:15 Jan. 28th UTC+8(Beijing), and archived it at &lt;a href=&#34;https://drive.google.com/file/d/1UCITmAfoKWfQpBXoQWfhaSA_5C88_sgO/view?usp=sharing&#34;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We have confirmed this is a distribution of SkyWalking Java agent.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We listed several pieces of evidence to prove this here, every reader could compare with the official &lt;a href=&#34;https://github.com/apache/skywalking-java&#34;&gt;SkyWalking source codes&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The first and the easiest one is &lt;code&gt;agent.config&lt;/code&gt; file, which is using the same config keys, and the same config format.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is the Volcengine&amp;rsquo;s version, and check &lt;a href=&#34;https://github.com/apache/skywalking-java/blob/395ce4f86ae14cf24af489a6aa7e849b1d9a27ed/apm-sniffer/config/agent.config&#34;&gt;SkyWalking agent.config&lt;/a&gt;
&lt;img src=&#34;config.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;In the &lt;code&gt;apmplus-agent.jar&lt;/code&gt;, Volcengine&amp;rsquo;s agent core jar, you could easily find several core classes exactly as same as SkyWalking&amp;rsquo;s.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;strong&gt;ComponentsDefine&lt;/strong&gt; class is unchanged, even with component ID and name. This is Volcengine&amp;rsquo;s version, and check &lt;a href=&#34;https://github.com/apache/skywalking-java/blob/395ce4f86ae14cf24af489a6aa7e849b1d9a27ed/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java&#34;&gt;SkyWalking&amp;rsquo;s version&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;components.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;The whole code names, package names, and hierarchy structure are all as same as SkyWalking 6.x version.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is the Volcengine package hierarchy structure, and check the &lt;a href=&#34;https://github.com/apache/skywalking-java/tree/v6.6.0/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context&#34;&gt;SkyWalking&amp;rsquo;s version&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;code-hierarchy.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Volcengine Inc.&amp;rsquo;s team changed all package names, removed the Apache Software Foundation&amp;rsquo;s header, and don&amp;rsquo;t keep Apache Software Foundation and Apache SkyWalking&amp;rsquo;s LICENSE and NOTICE file in their redistribution&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Also, we can&amp;rsquo;t find anything on their website to declare they are distributing SkyWalking.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;All above have proved they are violating the Apache 2.0 License, and don&amp;rsquo;t respect Apache Software Foundation and Apache SkyWalking&amp;rsquo;s IP and Branding&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We have contacted their legal team, and wait for their official response.&lt;/p&gt;
&lt;h2 id=&#34;resolution&#34;&gt;Resolution&lt;/h2&gt;
&lt;p&gt;On Jan. 30th night, UTC+8, 2022. We received a response from Volcengine&amp;rsquo;s APMPlus team. They admitted their violation behaviors, and made the following changes.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Volcengine&amp;rsquo;s APMPlus service page was updated on January 30th and stated that the agent is a fork version(re-distribution) of Apache SkyWalking agent. Below is the screenshot of Volcengine&amp;rsquo;s APMPlus product page.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;service-page.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Volcengine&amp;rsquo;s APMPlus agent distributions were also updated and include SkyWalking&amp;rsquo;s License and NOTICE now. Below is the screenshot of Volcengine&amp;rsquo;s APMPlus latest agent, you could download from the product page. We keep a copy of their Jan. 30th 2022 at &lt;a href=&#34;https://drive.google.com/file/d/1tDWEO5mIGKPzYVtPvQijzvHS7ZFDdAwx/view&#34;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;agent-hierarchy.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;Volcengine&amp;rsquo;s APMPlus team had restored all license headers of SkyWalking in the agent, and the modifications of the project files are also listed in &amp;ldquo;SkyWalking-NOTICE&amp;rdquo;, which you could download from the product page.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;modify-list.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;We have updated the status to the PMC mail list. This license violation issue has been resolved for now.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;appendix&#34;&gt;Appendix&lt;/h2&gt;
&lt;h3 id=&#34;inquiries-of-committers&#34;&gt;Inquiries of committers&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Q&lt;/strong&gt;: I hope Volcengine Inc. can give a reason for this license issue, not just an afterthought PR. This will not only let us know where the issue is but also avoid similar problems in the future.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A(apmplus &lt;a href=&#34;mailto:apmplus@volcengine.com&#34;&gt;apmplus@volcengine.com&lt;/a&gt;)&lt;/strong&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;The developers neglected this repository during submitting compliance
assessment.
Currently, APMPlus team had introduced advanced tools provided by the
company for compliance assessment, and we also strengthened training for
our developers.
In the future, the compliance assessment process will be further improved
from tool assessment and manual assessment.
&lt;/code&gt;&lt;/pre&gt;
      </description>
    </item>
    
    <item>
      <title>Blog: Extending Apache SkyWalking with non-breaking breakpoints</title>
      <link>/blog/2021-12-06-extend-skywalking-with-nbb/</link>
      <pubDate>Mon, 06 Dec 2021 00:00:00 +0000</pubDate>
      <guid>/blog/2021-12-06-extend-skywalking-with-nbb/</guid>
      <description>
        
        
        &lt;p&gt;Non-breaking breakpoints are breakpoints specifically designed for live production environments. With non-breaking breakpoints, reproducing production bugs locally or in staging is conveniently replaced with capturing them directly in production.&lt;/p&gt;
&lt;p&gt;Like regular breakpoints, non-breaking breakpoints can be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;placed almost anywhere&lt;/li&gt;
&lt;li&gt;added and removed at will&lt;/li&gt;
&lt;li&gt;set to fire on specific conditions&lt;/li&gt;
&lt;li&gt;expose internal application state&lt;/li&gt;
&lt;li&gt;persist as long as desired (even between application reboots)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The last feature is especially useful given non-breaking breakpoints can be left in production for days, weeks, and even months at a time while waiting to capture behavior that happens rarely and unpredictably.&lt;/p&gt;
&lt;h4 id=&#34;how-do-non-breaking-breakpoints-work&#34;&gt;How do non-breaking breakpoints work?&lt;/h4&gt;
&lt;p&gt;If you&amp;rsquo;re familiar with general distributed tracing concepts, such as &amp;ldquo;traces&amp;rdquo; and &amp;ldquo;spans&amp;rdquo;, then you&amp;rsquo;re already broadly familiar with how non-breaking breakpoints work. Put simply, non-breaking breakpoints are small fragments of code added during runtime that, upon the proper conditions, save a portion of the application&amp;rsquo;s current state, and resume normal execution. In SkyWalking, this can be implemented by simply opening a new local span, adding some tags, and closing the local span.&lt;/p&gt;
&lt;p&gt;While this process is relatively simple, the range of functionality that can be achieved through this technique is quite impressive.
Save the current and global variables to create a non-breaking breakpoint; add the ability to format log messages to create just-in-time logging; add the ability to trigger metric telemetry to create real-time KPI monitoring. If you keep moving in this direction, you eventually enter the realm of live debugging/coding, and this is where Source++ comes in.&lt;/p&gt;
&lt;h4 id=&#34;live-coding-platform&#34;&gt;Live Coding Platform&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/sourceplusplus&#34;&gt;Source++&lt;/a&gt; is an open-source live coding platform designed for production environments, powered by Apache SkyWalking. Using Source++, developers can add breakpoints, logs, metrics, and distributed tracing to live production software in real-time on-demand, right from their IDE or CLI. While capable of stand-alone deployment, the latest version of Source++ makes it easier than ever to integrate into existing Apache SkyWalking installations. This process can be completed in a few minutes and is easy to customize for your specific needs.&lt;/p&gt;
&lt;p&gt;For a better idea of how Source++ works, take a look at the following diagram:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./enhanced_sw_setup.svg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;In this diagram, blue components represent existing SkyWalking architecture, black components represent new Source++ architecture, and the red arrows show how non-breaking breakpoints make their way from production to IDEs. A process that is facilitated by Source++ components: Live Probe, Live Processors, Live Platform, and Live Interface.&lt;/p&gt;
&lt;h4 id=&#34;live-probe&#34;&gt;Live Probe&lt;/h4&gt;
&lt;p&gt;The Live Probe is currently available for &lt;a href=&#34;https://github.com/sourceplusplus/probe-jvm&#34;&gt;JVM&lt;/a&gt; and &lt;a href=&#34;https://github.com/sourceplusplus/probe-python&#34;&gt;Python&lt;/a&gt; applications. It runs alongside the SkyWalking agent and is responsible for dynamically adding and removing code fragments based on valid instrumentation requests from developers. These code fragments in turn make use of the SkyWalking agent&amp;rsquo;s internal APIs to facilitate production instrumentation.&lt;/p&gt;
&lt;h4 id=&#34;live-processors&#34;&gt;Live Processors&lt;/h4&gt;
&lt;p&gt;Live Processors are responsible for finding, extracting, and transforming data found in distributed traces produced via live probes. They run alongside SkyWalking collectors and implement additional post-processing logic, such as PII redaction. Live processors work via uniquely identifiable tags (prefix &lt;code&gt;spp.&lt;/code&gt;) added previously by live probes.&lt;/p&gt;
&lt;p&gt;One could easily view a non-breaking breakpoint ready for processing using Rocketbot, however, it will look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./rocketbot_nbb.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Even though the above does not resemble what&amp;rsquo;s normally thought of as a breakpoint, the necessary information is there. With live processors added to your SkyWalking installation, this data is refined and may be viewed more traditionally via live interfaces.&lt;/p&gt;
&lt;h4 id=&#34;live-platform&#34;&gt;Live Platform&lt;/h4&gt;
&lt;p&gt;The &lt;a href=&#34;https://github.com/sourceplusplus/live-platform&#34;&gt;Live Platform&lt;/a&gt; is the core part of the Source++ architecture. Unlike the live probe and processors, the live platform does not have a direct correlation with SkyWalking components. It is a standalone server responsible for validating and distributing production breakpoints, logs, metrics, and traces. Each component of the Source++ architecture (probes, processors, interfaces) communicates with each other through the live platform. It is important to ensure the live platform is accessible to all of these components.&lt;/p&gt;
&lt;h4 id=&#34;live-interface&#34;&gt;Live Interface&lt;/h4&gt;
&lt;p&gt;Finally, with all the previous parts installed, we&amp;rsquo;re now at the component software developers will find the most useful. A Live Interface is what developers use to create, manage, and view non-breaking breakpoints, and so on. There are a few live interfaces available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sourceplusplus/interface-jetbrains&#34;&gt;JetBrains Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sourceplusplus/interface-cli&#34;&gt;CLI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With the &lt;a href=&#34;https://github.com/sourceplusplus/processor-live-instrument&#34;&gt;Live Instrument Processor&lt;/a&gt; enabled, and the &lt;a href=&#34;https://github.com/sourceplusplus/interface-jetbrains&#34;&gt;JetBrains Plugin&lt;/a&gt; installed, non-breaking breakpoints appear as such:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./ide_breakpoint.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;The above should be a sight far more familiar to software developers. Beyond the fact that you can&amp;rsquo;t step through execution, non-breaking breakpoints look and feel just like regular breakpoints.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;For more details and complete setup instructions, please visit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/sourceplusplus/deploy-skywalking&#34;&gt;https://github.com/sourceplusplus/deploy-skywalking&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: [Webinar] SkyWalking 8.x Introduction</title>
      <link>/blog/2021-08-01-skywalking-8-intro/</link>
      <pubDate>Wed, 04 Aug 2021 00:00:00 +0000</pubDate>
      <guid>/blog/2021-08-01-skywalking-8-intro/</guid>
      <description>
        
        
        &lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/company/goupaz/&#34;&gt;GOUP&lt;/a&gt; hosted a webinar, and invited &lt;a href=&#34;https://twitter.com/wusheng1108&#34;&gt;Sheng Wu&lt;/a&gt; to introduce
Apache SkyWalking. This is a 1.5 hours presentation including the full landscape of Apache SkyWalking 8.x.&lt;/p&gt;
&lt;h2 id=&#34;chapter04-session10---apache-skywalking-by-sheng-wu&#34;&gt;Chapter04 Session10 - Apache Skywalking by Sheng Wu&lt;/h2&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/6lmHU3XtN10?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Blog: [Community win] SkyWalking achieved 500 contributors milestone.</title>
      <link>/blog/2021-07-12-500-contributors-mark/</link>
      <pubDate>Sat, 10 Jul 2021 00:00:00 +0000</pubDate>
      <guid>/blog/2021-07-12-500-contributors-mark/</guid>
      <description>
        
        
        &lt;p&gt;&lt;img src=&#34;500-mark.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;SkyWalking is an open source APM (application performance monitor) system, especially designed for microservices, cloud native, and container-based architectures.&lt;/p&gt;
&lt;p&gt;From 2020, it has dominated the open source APM market in China, and expanded aggressively in North American, Europe and Asia&amp;rsquo;s other countries.&lt;/p&gt;
&lt;p&gt;With over 6 years (2015-2021) of development, driven by the global open source community, SkyWalking now provides full stack observability covering metrics, tracing and logging, plus event detector, which are built based on various native and ecosystem solutions.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Language agent-based(Java, Dot Net, Golang, PHP, NodeJS, Python, C++, LUA) in-process monitoring, is as powerful as commercial APM vendors&amp;rsquo; agents. Mostly auto-instrumentation, and good interactivity.&lt;/li&gt;
&lt;li&gt;Service Mesh Observability, working closely with Envoy and Istio teams.&lt;/li&gt;
&lt;li&gt;Transparent integration of popular metrics ecosystem. Accept metrics from Prometheus SDK, OpenTelemetry collectors, Zabbix agents, etc.&lt;/li&gt;
&lt;li&gt;Log collection with analysis capability from FluentD, Fluent-bit, Filebeat, etc. agents.&lt;/li&gt;
&lt;li&gt;Infrastructure monitoring, such as Linux and k8s, is out of the box.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The SkyWalking ecosystem was started by very few people. The community drives the project to cover real scenarios, from tracing to the whole APM field. Even today, more professional open source developers, powered by the vendors behind them, are bringing the project to a different level.&lt;/p&gt;
&lt;p&gt;Typically and most attractively, SkyWalking is going to build the first known open source APM specific database in the world, at least providing&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Time series-based database engine.&lt;/li&gt;
&lt;li&gt;Support traces/logs and metrics in the database core level.&lt;/li&gt;
&lt;li&gt;High performance with cluster mode and HPA.&lt;/li&gt;
&lt;li&gt;Reasonable resource cost.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&#34;500-trend.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;We nearly doubled the number of contributors in the last year, from ~300 to over 500. The whole community is very energetic. Here, we want to thank our 47 committers(28 PMC members included), listed &lt;a href=&#34;https://skywalking.apache.org/team/&#34;&gt;here&lt;/a&gt;, and over 400 other contributors.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We together built this humongous Apache Top Level project, and proved the stronge competitiveness of an open-source project.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This is a hard-won and impressive achievement. We won&amp;rsquo;t stop here. The trend is there, the ground is solid. We are going to build the top-level APM system relying on our open-source community.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;500-contributors-list&#34;&gt;500 Contributors List&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;GitHub&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1095071913&lt;/td&gt;
          &lt;td&gt;182148432**&lt;/td&gt;
          &lt;td&gt;295198088**&lt;/td&gt;
          &lt;td&gt;394102339**&lt;/td&gt;
          &lt;td&gt;437376068**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;50168383&lt;/td&gt;
          &lt;td&gt;55846420**&lt;/td&gt;
          &lt;td&gt;826245622**&lt;/td&gt;
          &lt;td&gt;844067874&lt;/td&gt;
          &lt;td&gt;Ahoo-Wang&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AirTrioa&lt;/td&gt;
          &lt;td&gt;AlexanderWert&lt;/td&gt;
          &lt;td&gt;AlseinX&lt;/td&gt;
          &lt;td&gt;AngryMills&lt;/td&gt;
          &lt;td&gt;Ax1an&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;BFergerson&lt;/td&gt;
          &lt;td&gt;BZFYS&lt;/td&gt;
          &lt;td&gt;CalvinKirs&lt;/td&gt;
          &lt;td&gt;CharlesMaster&lt;/td&gt;
          &lt;td&gt;ChaunceyLin5152&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;CommissarXia&lt;/td&gt;
          &lt;td&gt;Cvimer&lt;/td&gt;
          &lt;td&gt;DeadLion&lt;/td&gt;
          &lt;td&gt;Doublemine&lt;/td&gt;
          &lt;td&gt;Du-fei&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ElderJames&lt;/td&gt;
          &lt;td&gt;EvanLjp&lt;/td&gt;
          &lt;td&gt;FatihErdem&lt;/td&gt;
          &lt;td&gt;FeynmanZhou&lt;/td&gt;
          &lt;td&gt;Fine0830&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;FingerLiu&lt;/td&gt;
          &lt;td&gt;FrankyXu&lt;/td&gt;
          &lt;td&gt;Gallardot&lt;/td&gt;
          &lt;td&gt;GerryYuan&lt;/td&gt;
          &lt;td&gt;HackerRookie&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;HarryFQ&lt;/td&gt;
          &lt;td&gt;Heguoya&lt;/td&gt;
          &lt;td&gt;Hen1ng&lt;/td&gt;
          &lt;td&gt;HendSame&lt;/td&gt;
          &lt;td&gt;Humbertzhang&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;IanCao&lt;/td&gt;
          &lt;td&gt;IluckySi&lt;/td&gt;
          &lt;td&gt;Indifer&lt;/td&gt;
          &lt;td&gt;J-Cod3r&lt;/td&gt;
          &lt;td&gt;JaredTan95&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Jargon96&lt;/td&gt;
          &lt;td&gt;Jijun&lt;/td&gt;
          &lt;td&gt;JoeKerouac&lt;/td&gt;
          &lt;td&gt;JohnNiang&lt;/td&gt;
          &lt;td&gt;Johor03&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Jozdortraz&lt;/td&gt;
          &lt;td&gt;Jtrust&lt;/td&gt;
          &lt;td&gt;Just-maple&lt;/td&gt;
          &lt;td&gt;KangZhiDong&lt;/td&gt;
          &lt;td&gt;LazyLei&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;LiWenGu&lt;/td&gt;
          &lt;td&gt;Lin1997&lt;/td&gt;
          &lt;td&gt;Linda-pan&lt;/td&gt;
          &lt;td&gt;LiteSun&lt;/td&gt;
          &lt;td&gt;Liu-XinYuan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;MiracleDx&lt;/td&gt;
          &lt;td&gt;Miss-you&lt;/td&gt;
          &lt;td&gt;MoGuGuai-hzr&lt;/td&gt;
          &lt;td&gt;MrYzys&lt;/td&gt;
          &lt;td&gt;O-ll-O&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Patrick0308&lt;/td&gt;
          &lt;td&gt;QHWG67&lt;/td&gt;
          &lt;td&gt;Qiliang&lt;/td&gt;
          &lt;td&gt;QuanjieDeng&lt;/td&gt;
          &lt;td&gt;RandyAbernethy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;RedzRedz&lt;/td&gt;
          &lt;td&gt;Runrioter&lt;/td&gt;
          &lt;td&gt;SataQiu&lt;/td&gt;
          &lt;td&gt;ScienJus&lt;/td&gt;
          &lt;td&gt;SevenBlue2018&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ShaoHans&lt;/td&gt;
          &lt;td&gt;Shikugawa&lt;/td&gt;
          &lt;td&gt;SoberChina&lt;/td&gt;
          &lt;td&gt;SummerOfServenteen&lt;/td&gt;
          &lt;td&gt;Switch-vov&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;TJ666&lt;/td&gt;
          &lt;td&gt;Technoboy-&lt;/td&gt;
          &lt;td&gt;TerrellChen&lt;/td&gt;
          &lt;td&gt;TeslaCN&lt;/td&gt;
          &lt;td&gt;TheRealHaui&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;TinyAllen&lt;/td&gt;
          &lt;td&gt;TomMD&lt;/td&gt;
          &lt;td&gt;ViberW&lt;/td&gt;
          &lt;td&gt;Videl&lt;/td&gt;
          &lt;td&gt;WALL-E&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;WeihanLi&lt;/td&gt;
          &lt;td&gt;WildWolfBang&lt;/td&gt;
          &lt;td&gt;WillemJiang&lt;/td&gt;
          &lt;td&gt;Wooo0&lt;/td&gt;
          &lt;td&gt;XhangUeiJong&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Xlinlin&lt;/td&gt;
          &lt;td&gt;YczYanchengzhe&lt;/td&gt;
          &lt;td&gt;Yebemeto&lt;/td&gt;
          &lt;td&gt;YoungHu&lt;/td&gt;
          &lt;td&gt;YunaiV&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;YunfengGao&lt;/td&gt;
          &lt;td&gt;Z-Beatles&lt;/td&gt;
          &lt;td&gt;ZS-Oliver&lt;/td&gt;
          &lt;td&gt;ZhHong&lt;/td&gt;
          &lt;td&gt;ZhuoSiChen&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;a198720&lt;/td&gt;
          &lt;td&gt;a1vin-tian&lt;/td&gt;
          &lt;td&gt;a526672351&lt;/td&gt;
          &lt;td&gt;acurtain&lt;/td&gt;
          &lt;td&gt;adamni135&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;adermxzs&lt;/td&gt;
          &lt;td&gt;adriancole**&lt;/td&gt;
          &lt;td&gt;aeolusheath&lt;/td&gt;
          &lt;td&gt;agile6v&lt;/td&gt;
          &lt;td&gt;aix3&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;aiyanbo&lt;/td&gt;
          &lt;td&gt;ajanthan&lt;/td&gt;
          &lt;td&gt;alexkarezin&lt;/td&gt;
          &lt;td&gt;alonelaval&lt;/td&gt;
          &lt;td&gt;amogege&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;amwyyyy&lt;/td&gt;
          &lt;td&gt;andyliyuze&lt;/td&gt;
          &lt;td&gt;andyzzl&lt;/td&gt;
          &lt;td&gt;aoxls&lt;/td&gt;
          &lt;td&gt;arugal&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ascrutae&lt;/td&gt;
          &lt;td&gt;ascrutae**&lt;/td&gt;
          &lt;td&gt;augustowebd&lt;/td&gt;
          &lt;td&gt;aviaviavi&lt;/td&gt;
          &lt;td&gt;bai-yang&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;beckhampu&lt;/td&gt;
          &lt;td&gt;beckjin&lt;/td&gt;
          &lt;td&gt;beiwangnull&lt;/td&gt;
          &lt;td&gt;bigflybrother&lt;/td&gt;
          &lt;td&gt;bootsrc&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;bostin&lt;/td&gt;
          &lt;td&gt;brucewu-fly&lt;/td&gt;
          &lt;td&gt;buxingzhe&lt;/td&gt;
          &lt;td&gt;buzuotaxuan&lt;/td&gt;
          &lt;td&gt;bwh12398**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;c feng&lt;/td&gt;
          &lt;td&gt;c1ay&lt;/td&gt;
          &lt;td&gt;candyleer&lt;/td&gt;
          &lt;td&gt;carllhw&lt;/td&gt;
          &lt;td&gt;carlvine500&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;carrypann&lt;/td&gt;
          &lt;td&gt;cheenursn&lt;/td&gt;
          &lt;td&gt;cheetah012&lt;/td&gt;
          &lt;td&gt;chenbeitang&lt;/td&gt;
          &lt;td&gt;chenglei**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;chengshiwen&lt;/td&gt;
          &lt;td&gt;chenmudu&lt;/td&gt;
          &lt;td&gt;chenpengfei&lt;/td&gt;
          &lt;td&gt;chenvista&lt;/td&gt;
          &lt;td&gt;chess-equality&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;chestarss&lt;/td&gt;
          &lt;td&gt;chidaodezhongsheng&lt;/td&gt;
          &lt;td&gt;chopin-d&lt;/td&gt;
          &lt;td&gt;clevertension&lt;/td&gt;
          &lt;td&gt;clk1st&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;cngdkxw&lt;/td&gt;
          &lt;td&gt;cnlangzi&lt;/td&gt;
          &lt;td&gt;codeglzhang&lt;/td&gt;
          &lt;td&gt;codelipenghui&lt;/td&gt;
          &lt;td&gt;coder-yqj&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;coki230&lt;/td&gt;
          &lt;td&gt;compilerduck&lt;/td&gt;
          &lt;td&gt;constanine&lt;/td&gt;
          &lt;td&gt;coolbeevip&lt;/td&gt;
          &lt;td&gt;crystaldust&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;cui-liqiang&lt;/td&gt;
          &lt;td&gt;cuiweiwei&lt;/td&gt;
          &lt;td&gt;cutePanda123&lt;/td&gt;
          &lt;td&gt;cyberdak&lt;/td&gt;
          &lt;td&gt;cyejing&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;cyhii&lt;/td&gt;
          &lt;td&gt;dafu-wu&lt;/td&gt;
          &lt;td&gt;dagmom&lt;/td&gt;
          &lt;td&gt;dalekliuhan**&lt;/td&gt;
          &lt;td&gt;darcydai&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;dengliming&lt;/td&gt;
          &lt;td&gt;devkanro&lt;/td&gt;
          &lt;td&gt;devon-ye&lt;/td&gt;
          &lt;td&gt;dickens7&lt;/td&gt;
          &lt;td&gt;dimaaan&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;dingdongnigetou&lt;/td&gt;
          &lt;td&gt;dio&lt;/td&gt;
          &lt;td&gt;divyakumarjain&lt;/td&gt;
          &lt;td&gt;dmsolr&lt;/td&gt;
          &lt;td&gt;dominicqi&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;donbing007&lt;/td&gt;
          &lt;td&gt;dsc6636926&lt;/td&gt;
          &lt;td&gt;dvsv2&lt;/td&gt;
          &lt;td&gt;dzx2018&lt;/td&gt;
          &lt;td&gt;echooymxq&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;efekaptan&lt;/td&gt;
          &lt;td&gt;elk-g&lt;/td&gt;
          &lt;td&gt;emschu&lt;/td&gt;
          &lt;td&gt;eoeac&lt;/td&gt;
          &lt;td&gt;evanljp**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;evanxuhe&lt;/td&gt;
          &lt;td&gt;feelwing1314&lt;/td&gt;
          &lt;td&gt;fgksgf&lt;/td&gt;
          &lt;td&gt;fredster33&lt;/td&gt;
          &lt;td&gt;fuhuo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;fulmicoton&lt;/td&gt;
          &lt;td&gt;fushiqinghuan111&lt;/td&gt;
          &lt;td&gt;geektcp&lt;/td&gt;
          &lt;td&gt;geomonlin&lt;/td&gt;
          &lt;td&gt;ggndnn&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;gitter-badger&lt;/td&gt;
          &lt;td&gt;givingwu&lt;/td&gt;
          &lt;td&gt;glongzh&lt;/td&gt;
          &lt;td&gt;gnr163&lt;/td&gt;
          &lt;td&gt;gonedays&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;grissom-grissom&lt;/td&gt;
          &lt;td&gt;grissomsh&lt;/td&gt;
          &lt;td&gt;guodongq&lt;/td&gt;
          &lt;td&gt;guyukou&lt;/td&gt;
          &lt;td&gt;gxthrj&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;gy09535&lt;/td&gt;
          &lt;td&gt;gzshilu&lt;/td&gt;
          &lt;td&gt;hailin0&lt;/td&gt;
          &lt;td&gt;hanahmily&lt;/td&gt;
          &lt;td&gt;haotian2015&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;haoyann&lt;/td&gt;
          &lt;td&gt;hardzhang&lt;/td&gt;
          &lt;td&gt;harvies&lt;/td&gt;
          &lt;td&gt;heihaozi&lt;/td&gt;
          &lt;td&gt;hepyu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;heyanlong&lt;/td&gt;
          &lt;td&gt;hi-sb&lt;/td&gt;
          &lt;td&gt;honganan&lt;/td&gt;
          &lt;td&gt;horber&lt;/td&gt;
          &lt;td&gt;hsoftxl&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;huangyoje&lt;/td&gt;
          &lt;td&gt;huliangdream&lt;/td&gt;
          &lt;td&gt;huohuanhuan&lt;/td&gt;
          &lt;td&gt;iluckysi&lt;/td&gt;
          &lt;td&gt;innerpeacez&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;itsvse&lt;/td&gt;
          &lt;td&gt;jasper-zsh&lt;/td&gt;
          &lt;td&gt;jbampton&lt;/td&gt;
          &lt;td&gt;jialong121&lt;/td&gt;
          &lt;td&gt;jinlongwang&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;jjlu521016&lt;/td&gt;
          &lt;td&gt;jjtyro&lt;/td&gt;
          &lt;td&gt;jmjoy&lt;/td&gt;
          &lt;td&gt;jsbxyyx&lt;/td&gt;
          &lt;td&gt;justeene&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;juzhiyuan&lt;/td&gt;
          &lt;td&gt;jy00464346&lt;/td&gt;
          &lt;td&gt;kaanid&lt;/td&gt;
          &lt;td&gt;kagaya85&lt;/td&gt;
          &lt;td&gt;karott&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;kayleyang&lt;/td&gt;
          &lt;td&gt;kevinyyyy&lt;/td&gt;
          &lt;td&gt;kezhenxu94&lt;/td&gt;
          &lt;td&gt;kikupotter&lt;/td&gt;
          &lt;td&gt;kilingzhang&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;killGC&lt;/td&gt;
          &lt;td&gt;kkl129&lt;/td&gt;
          &lt;td&gt;klboke&lt;/td&gt;
          &lt;td&gt;ksewen&lt;/td&gt;
          &lt;td&gt;kuaikuai&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;kun-song&lt;/td&gt;
          &lt;td&gt;kylixs&lt;/td&gt;
          &lt;td&gt;landonzeng&lt;/td&gt;
          &lt;td&gt;langke93&lt;/td&gt;
          &lt;td&gt;langyan1022&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;langyizhao&lt;/td&gt;
          &lt;td&gt;lazycathome&lt;/td&gt;
          &lt;td&gt;leemove&lt;/td&gt;
          &lt;td&gt;leizhiyuan&lt;/td&gt;
          &lt;td&gt;libinglong&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;lijial&lt;/td&gt;
          &lt;td&gt;lilien1010&lt;/td&gt;
          &lt;td&gt;limfriend&lt;/td&gt;
          &lt;td&gt;linkinshi&lt;/td&gt;
          &lt;td&gt;linliaoy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;liqiangz&lt;/td&gt;
          &lt;td&gt;liu-junchi&lt;/td&gt;
          &lt;td&gt;liufei**&lt;/td&gt;
          &lt;td&gt;liuhaoXD&lt;/td&gt;
          &lt;td&gt;liuhaoyang&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;liuweiyi**&lt;/td&gt;
          &lt;td&gt;liuyanggithup&lt;/td&gt;
          &lt;td&gt;liuzhengyang&lt;/td&gt;
          &lt;td&gt;liweiv&lt;/td&gt;
          &lt;td&gt;lixin40**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;lizl9**&lt;/td&gt;
          &lt;td&gt;lkxiaolou&lt;/td&gt;
          &lt;td&gt;llissery&lt;/td&gt;
          &lt;td&gt;louis-zhou&lt;/td&gt;
          &lt;td&gt;lpcy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;lpf32&lt;/td&gt;
          &lt;td&gt;lsyf&lt;/td&gt;
          &lt;td&gt;lucperkins&lt;/td&gt;
          &lt;td&gt;lujiajing1126&lt;/td&gt;
          &lt;td&gt;lunamagic1978&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;lunchboxav&lt;/td&gt;
          &lt;td&gt;lxin96**&lt;/td&gt;
          &lt;td&gt;lxliuxuankb&lt;/td&gt;
          &lt;td&gt;lytscu&lt;/td&gt;
          &lt;td&gt;lyzhang1999&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;mage3k&lt;/td&gt;
          &lt;td&gt;makefriend8&lt;/td&gt;
          &lt;td&gt;makingtime&lt;/td&gt;
          &lt;td&gt;mantuliu&lt;/td&gt;
          &lt;td&gt;maolie&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;margauxcabrera&lt;/td&gt;
          &lt;td&gt;masterxxo&lt;/td&gt;
          &lt;td&gt;maxiaoguang64&lt;/td&gt;
          &lt;td&gt;me**&lt;/td&gt;
          &lt;td&gt;membphis&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;mestarshine&lt;/td&gt;
          &lt;td&gt;mgsheng&lt;/td&gt;
          &lt;td&gt;michaelsembwever&lt;/td&gt;
          &lt;td&gt;mikkeschiren&lt;/td&gt;
          &lt;td&gt;ming_flycash**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;minquan.chen**&lt;/td&gt;
          &lt;td&gt;misaya&lt;/td&gt;
          &lt;td&gt;momo0313&lt;/td&gt;
          &lt;td&gt;moonming&lt;/td&gt;
          &lt;td&gt;mrproliu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;mrproliu**&lt;/td&gt;
          &lt;td&gt;muyun12&lt;/td&gt;
          &lt;td&gt;nacx&lt;/td&gt;
          &lt;td&gt;neatlife&lt;/td&gt;
          &lt;td&gt;neeuq&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;nic-chen&lt;/td&gt;
          &lt;td&gt;nickwongwong&lt;/td&gt;
          &lt;td&gt;nikitap492&lt;/td&gt;
          &lt;td&gt;nileblack&lt;/td&gt;
          &lt;td&gt;nisiyong&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;novayoung&lt;/td&gt;
          &lt;td&gt;oatiz&lt;/td&gt;
          &lt;td&gt;oflebbe&lt;/td&gt;
          &lt;td&gt;olzhy&lt;/td&gt;
          &lt;td&gt;onecloud360&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;osiriswd&lt;/td&gt;
          &lt;td&gt;panniyuyu&lt;/td&gt;
          &lt;td&gt;peng-yongsheng&lt;/td&gt;
          &lt;td&gt;pengweiqhca&lt;/td&gt;
          &lt;td&gt;potiuk&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;probeyang&lt;/td&gt;
          &lt;td&gt;purgeyao&lt;/td&gt;
          &lt;td&gt;qijianbo010&lt;/td&gt;
          &lt;td&gt;qinhang3&lt;/td&gt;
          &lt;td&gt;qiuyu-d&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;qjgszzx&lt;/td&gt;
          &lt;td&gt;qq362220083&lt;/td&gt;
          &lt;td&gt;qqeasonchen&lt;/td&gt;
          &lt;td&gt;qxo&lt;/td&gt;
          &lt;td&gt;ralphgj&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;raybi-asus&lt;/td&gt;
          &lt;td&gt;refactor2&lt;/td&gt;
          &lt;td&gt;remicollet&lt;/td&gt;
          &lt;td&gt;rlenferink&lt;/td&gt;
          &lt;td&gt;rootsongjc&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;rovast&lt;/td&gt;
          &lt;td&gt;ruibaby&lt;/td&gt;
          &lt;td&gt;s00373198&lt;/td&gt;
          &lt;td&gt;scolia&lt;/td&gt;
          &lt;td&gt;sdanzo&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;seifeHu&lt;/td&gt;
          &lt;td&gt;sergicastro&lt;/td&gt;
          &lt;td&gt;shiluo34&lt;/td&gt;
          &lt;td&gt;sikelangya&lt;/td&gt;
          &lt;td&gt;simonlei&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;sk163&lt;/td&gt;
          &lt;td&gt;snakorse&lt;/td&gt;
          &lt;td&gt;songzhendong&lt;/td&gt;
          &lt;td&gt;songzhian&lt;/td&gt;
          &lt;td&gt;songzhian**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;sonxy&lt;/td&gt;
          &lt;td&gt;spacewander&lt;/td&gt;
          &lt;td&gt;stalary&lt;/td&gt;
          &lt;td&gt;stenio2011&lt;/td&gt;
          &lt;td&gt;stevehu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;stone-wlg&lt;/td&gt;
          &lt;td&gt;sungitly&lt;/td&gt;
          &lt;td&gt;surechen&lt;/td&gt;
          &lt;td&gt;swartz-k&lt;/td&gt;
          &lt;td&gt;sxzaihua&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;tangxqa&lt;/td&gt;
          &lt;td&gt;tanjunchen&lt;/td&gt;
          &lt;td&gt;tankilo&lt;/td&gt;
          &lt;td&gt;tanzhen**&lt;/td&gt;
          &lt;td&gt;taskmgr&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;tbdpmi&lt;/td&gt;
          &lt;td&gt;terranhu&lt;/td&gt;
          &lt;td&gt;terrymanu&lt;/td&gt;
          &lt;td&gt;tevahp&lt;/td&gt;
          &lt;td&gt;thanq&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;thebouv&lt;/td&gt;
          &lt;td&gt;tianyk&lt;/td&gt;
          &lt;td&gt;tianyuak&lt;/td&gt;
          &lt;td&gt;tincopper&lt;/td&gt;
          &lt;td&gt;tinyu0&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;tom-pytel&lt;/td&gt;
          &lt;td&gt;tristaZero&lt;/td&gt;
          &lt;td&gt;tristan-tsl&lt;/td&gt;
          &lt;td&gt;trustin&lt;/td&gt;
          &lt;td&gt;tsuilouis&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;tuohai666&lt;/td&gt;
          &lt;td&gt;tzsword-2020&lt;/td&gt;
          &lt;td&gt;tzy1316106836&lt;/td&gt;
          &lt;td&gt;vcjmhg&lt;/td&gt;
          &lt;td&gt;viktoryi&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;vision-ken&lt;/td&gt;
          &lt;td&gt;viswaramamoorthy&lt;/td&gt;
          &lt;td&gt;wallezhang&lt;/td&gt;
          &lt;td&gt;wang-yeliang&lt;/td&gt;
          &lt;td&gt;wang_weihan**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;wangrzneu&lt;/td&gt;
          &lt;td&gt;wankai123&lt;/td&gt;
          &lt;td&gt;wbpcode&lt;/td&gt;
          &lt;td&gt;web-xiaxia&lt;/td&gt;
          &lt;td&gt;webb2019&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;weiqiang-w&lt;/td&gt;
          &lt;td&gt;weiqiang333&lt;/td&gt;
          &lt;td&gt;wendal&lt;/td&gt;
          &lt;td&gt;wengangJi&lt;/td&gt;
          &lt;td&gt;wenjianzhang&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;whfjam&lt;/td&gt;
          &lt;td&gt;whl12345&lt;/td&gt;
          &lt;td&gt;willseeyou&lt;/td&gt;
          &lt;td&gt;wilsonwu&lt;/td&gt;
          &lt;td&gt;wind2008hxy&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;wingwong-knh&lt;/td&gt;
          &lt;td&gt;withlin&lt;/td&gt;
          &lt;td&gt;wl4g&lt;/td&gt;
          &lt;td&gt;wqr2016&lt;/td&gt;
          &lt;td&gt;wu-sheng&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;wuguangkuo&lt;/td&gt;
          &lt;td&gt;wujun8&lt;/td&gt;
          &lt;td&gt;wuwen5&lt;/td&gt;
          &lt;td&gt;wuxingye&lt;/td&gt;
          &lt;td&gt;x22x22&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;xbkaishui&lt;/td&gt;
          &lt;td&gt;xcaspar&lt;/td&gt;
          &lt;td&gt;xdRight&lt;/td&gt;
          &lt;td&gt;xiaoweiyu**&lt;/td&gt;
          &lt;td&gt;xiaoxiangmoe&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;xiaoy00&lt;/td&gt;
          &lt;td&gt;xinfeingxia85&lt;/td&gt;
          &lt;td&gt;xingren23&lt;/td&gt;
          &lt;td&gt;xinzhuxiansheng&lt;/td&gt;
          &lt;td&gt;xonze&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;xuanyu66&lt;/td&gt;
          &lt;td&gt;xuchangjunjx&lt;/td&gt;
          &lt;td&gt;xudianyang&lt;/td&gt;
          &lt;td&gt;yanbw&lt;/td&gt;
          &lt;td&gt;yanfch&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;yang-xiaodong&lt;/td&gt;
          &lt;td&gt;yangxb2010000&lt;/td&gt;
          &lt;td&gt;yanickxia&lt;/td&gt;
          &lt;td&gt;yanmaipian&lt;/td&gt;
          &lt;td&gt;yanmingbi&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;yantaowu&lt;/td&gt;
          &lt;td&gt;yaojingguo&lt;/td&gt;
          &lt;td&gt;yaowenqiang&lt;/td&gt;
          &lt;td&gt;yazong&lt;/td&gt;
          &lt;td&gt;ychandu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;ycoe&lt;/td&gt;
          &lt;td&gt;yimeng&lt;/td&gt;
          &lt;td&gt;yu199195&lt;/td&gt;
          &lt;td&gt;yuqichou&lt;/td&gt;
          &lt;td&gt;yushuqiang**&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;yuyujulin&lt;/td&gt;
          &lt;td&gt;yxudong&lt;/td&gt;
          &lt;td&gt;yymoth&lt;/td&gt;
          &lt;td&gt;zaunist&lt;/td&gt;
          &lt;td&gt;zaygrzx&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;zcai2&lt;/td&gt;
          &lt;td&gt;zeaposs&lt;/td&gt;
          &lt;td&gt;zhang98722&lt;/td&gt;
          &lt;td&gt;zhanghao001&lt;/td&gt;
          &lt;td&gt;zhangjianweibj&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;zhangkewei&lt;/td&gt;
          &lt;td&gt;zhangsean&lt;/td&gt;
          &lt;td&gt;zhangxin**&lt;/td&gt;
          &lt;td&gt;zhaoyuguang&lt;/td&gt;
          &lt;td&gt;zhe1926&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;zhentaoJin&lt;/td&gt;
          &lt;td&gt;zhongjianno1**&lt;/td&gt;
          &lt;td&gt;zhousiliang163&lt;/td&gt;
          &lt;td&gt;zhuCheer&lt;/td&gt;
          &lt;td&gt;zhyyu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;zifeihan&lt;/td&gt;
          &lt;td&gt;zijin-m&lt;/td&gt;
          &lt;td&gt;zkscpqm&lt;/td&gt;
          &lt;td&gt;zoidbergwill&lt;/td&gt;
          &lt;td&gt;zoumingzm&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;zouyx&lt;/td&gt;
          &lt;td&gt;zpf1989&lt;/td&gt;
          &lt;td&gt;zshit&lt;/td&gt;
          &lt;td&gt;zxbu&lt;/td&gt;
          &lt;td&gt;zygfengyuwuzu&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: OpenSearch, a new storage option to avoid ElasticSearch&#39;s SSPL</title>
      <link>/blog/2021-05-09-opensearch-supported/</link>
      <pubDate>Sun, 09 May 2021 00:00:00 +0000</pubDate>
      <guid>/blog/2021-05-09-opensearch-supported/</guid>
      <description>
        
        
        &lt;p&gt;We posted our &lt;a href=&#34;/blog/2021-01-17-elastic-change-license/&#34;&gt;&lt;strong&gt;Response to Elastic 2021 License Change&lt;/strong&gt;&lt;/a&gt; blog 4 months ago. It doesn&amp;rsquo;t have a big impact in
the short term, but because of the incompatibility between SSPL and Apache 2.0, we lost the chance of upgrading the storage server,
which concerns the community and our users. So, we have to keep looking for a new option as a replacement.&lt;/p&gt;
&lt;p&gt;There was an open source project, Open Distro for Elasticsearch, maintained by the AWS team. It is an Apache 2.0-licensed distribution of Elasticsearch enhanced with enterprise security, alerting, SQL, and more. After Elastic relicensed its projects, we talked with their team, and they have an agenda
to take over the community leadship and keep maintaining Elasticsearch, as it was licensed by Apache 2.0. So, they are good to fork and continue.&lt;/p&gt;
&lt;p&gt;On April 12th, 2021, AWS announced the new project, OpenSearch, driven by the community, which is initialized from people of AWS, Red Hat, SAP, Capital One, and Logz.io. Read this &lt;a href=&#34;https://aws.amazon.com/cn/blogs/opensource/introducing-opensearch/&#34;&gt;Introducing OpenSearch&lt;/a&gt; blog for more detail.&lt;/p&gt;
&lt;p&gt;Once we had this news in public, we begin to plan the process of evaluating and testing OpenSearch as SkyWalking&amp;rsquo;s storage option.
Read our &lt;a href=&#34;https://github.com/apache/skywalking/issues/6745&#34;&gt;issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Today, we are glad to ANNOUNCE, OpenSearch could replace ElastcSearch as the storage, and it is still licensed under Apache 2.0.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This has been merged in the main stream, and you can find it in the dev doc already.&lt;/p&gt;
&lt;h3 id=&#34;opensearch&#34;&gt;OpenSearch&lt;/h3&gt;
&lt;p&gt;OpenSearch storage shares the same configurations as Elasticsearch 7.
In order to activate Elasticsearch 7 as storage, set storage provider to &lt;strong&gt;elasticsearch7&lt;/strong&gt;.
Please download the &lt;code&gt;apache-skywalking-bin-es7.tar.gz&lt;/code&gt; if you want to use OpenSearch as storage.&lt;/p&gt;
&lt;p&gt;SkyWalking community will keep our eyes on the OpenSearch project, and look forward to their first GA release.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;NOTE: we have to add a warning NOTICE to the Elasticsearch storage doc:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTICE:&lt;/strong&gt; Elastic announced through their blog that Elasticsearch will be moving over to a Server Side Public
License (SSPL), which is incompatible with Apache License 2.0. This license change is effective from Elasticsearch
version 7.11. So please choose the suitable Elasticsearch version according to your usage.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: [Resolved][License Issue] Tencent Cloud TSW service violates the Apache 2.0 License when using SkyWalking.</title>
      <link>/blog/2021-01-23-tencent-cloud-violates-aplv2/</link>
      <pubDate>Fri, 22 Jan 2021 00:00:00 +0000</pubDate>
      <guid>/blog/2021-01-23-tencent-cloud-violates-aplv2/</guid>
      <description>
        
        
        &lt;p&gt;&lt;a href=&#34;https://skywalking.apache.org&#34;&gt;Apache SkyWalking&lt;/a&gt; is an open source APM for distributed system, Apache Software Foundation top-level project.&lt;/p&gt;
&lt;p&gt;At Jan. 11th, 2021, we noticed the Tencent Cloud Service, &lt;a href=&#34;https://cloud.tencent.com/product/tsw&#34;&gt;Tencent Service Watcher - TSW&lt;/a&gt;, for first time.
Due to the similar short name, which SkyWalking is also called SW in the community, we connected with the service team of Tencent Cloud, and kindly asked.&lt;/p&gt;
&lt;p&gt;They used to replay, &lt;strong&gt;TSW is purely developed by Tencent team itself, which doesn&amp;rsquo;t have any code dependency on SkyWalking.&lt;/strong&gt;. We didn&amp;rsquo;t push harder.&lt;/p&gt;
&lt;p&gt;But one week later, Jan 18th, 2021, our V.P., Sheng got the report again from Haoyang SkyWalking PMC member, through WeChat DM(direct message),.
He provided complete evidence to prove TSW actually re-distributed the SkyWalking&amp;rsquo;s Java agent.
We keep one copy of their agent&amp;rsquo;s distribution(at Jan. 18th), you could be downloaded &lt;a href=&#34;https://drive.google.com/file/d/1wCnUW0n-0qIoHuNI2pw8iAaVyRBrSuI7/view&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Some typically evidences are here&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/apache/skywalking/blob/v8.3.0/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/boot/ServiceManager.java&#34;&gt;ServiceManager&lt;/a&gt; is copied and package-name changed in the TSW&amp;rsquo;s agent.
&lt;img src=&#34;copy1.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/apache/skywalking/blob/v8.3.0/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextManager.java&#34;&gt;ContextManager&lt;/a&gt; is copied and ackage-name changed in the TSW&amp;rsquo;s agent.
&lt;img src=&#34;copy2.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At the same time, we checked their tsw-client-package.zip, it didn&amp;rsquo;t include the SkyWalking&amp;rsquo;s LICENSE and NOTICE. Also, they didn&amp;rsquo;t mention TSW agent is the re-ditribution SkyWalking on their website.&lt;/p&gt;
&lt;p&gt;With all above information, we had enough reason to believe, from the tech perspective, &lt;strong&gt;they were violating the Apache 2.0 License.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From the 18th Jan., 2021, we sent mail &lt;code&gt;[Apache 2.0 License Violation] Tencent Cloud TSW service doesn&#39;t follow the Apache 2.0 License&lt;/code&gt; to brief the SkyWalking PMC, and
took the following actions to connect with Tencent.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Made direct call to Tencent Open Source Office.&lt;/li&gt;
&lt;li&gt;Connected with Tencent Cloud TVP program committee, as Sheng Wu(Our VP) is a Tencent Cloud TVP.&lt;/li&gt;
&lt;li&gt;Talked with the Tencent Cloud team lead.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;In all above channels, we provided the evidences of copy-redistribution hebaviors, requested them to revaluate their statements on the website, and follow the License&amp;rsquo;s requirements.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;resolution&#34;&gt;Resolution&lt;/h2&gt;
&lt;p&gt;At Jan. 19th night, UTC+8, 2021. We received response from the Tencent cloud team. They admited their violation behaviors, and did following changes&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Tencent Cloud TSW service page states, the agent is the fork version(re-distribution) of Apache SkyWalking agent.
&lt;img src=&#34;tencent-cloud.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TSW agent distributions include the SkyWalking&amp;rsquo;s License and NOTICE. Below is the screenshot, you could download from their product page. We keep a copy of their Jan. 19th 2021 at &lt;a href=&#34;https://drive.google.com/file/d/1Z9EkOpi-lyFosmvuoqPZ57sY-gLdwNLq/view&#34;&gt;here&lt;/a&gt;.
&lt;img src=&#34;agent.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We have updated the status to the PMC mail list. This license violation issue has been resolved for now.&lt;/p&gt;
&lt;h5 id=&#34;the-skywalking-community-and-program-management-committee-will-keep-our-eyes-on-tencent-tsw&#34;&gt;The SkyWalking community and program management committee will keep our eyes on Tencent TSW.&lt;/h5&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Response to Elastic 2021 License Change</title>
      <link>/blog/2021-01-17-elastic-change-license/</link>
      <pubDate>Sun, 17 Jan 2021 00:00:00 +0000</pubDate>
      <guid>/blog/2021-01-17-elastic-change-license/</guid>
      <description>
        
        
        &lt;p&gt;&lt;a href=&#34;https://elastic.co&#34;&gt;Elastic&lt;/a&gt; announced their license change, &lt;a href=&#34;https://www.elastic.co/blog/licensing-change&#34;&gt;&lt;strong&gt;Upcoming licensing changes to Elasticsearch and Kibana&lt;/strong&gt;.&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are moving our Apache 2.0-licensed source code in Elasticsearch and Kibana to be dual licensed under Server Side Public License (SSPL) and the Elastic License, giving users the choice of which license to apply. This license change ensures our community and customers have free and open access to use, modify, redistribute, and collaborate on the code. It also protects our continued investment in developing products that we distribute for free and in the open by restricting cloud service providers from offering Elasticsearch and Kibana as a service without contributing back. This will apply to all maintained branches of these two products and will take place before our upcoming 7.11 release. Our releases will continue to be under the Elastic License as they have been for the last three years.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Also, they provide the &lt;a href=&#34;https://www.elastic.co/pricing/faq/licensing&#34;&gt;FAQ page&lt;/a&gt; for more information about the impact for the users, developers, and vendors.&lt;/p&gt;
&lt;p&gt;In the perspective of Apache Software Foundation, SSPL has been confirmed as a Catalog X LICENSE(&lt;a href=&#34;https://www.apache.org/legal/resolved.html#category-x)&#34;&gt;https://www.apache.org/legal/resolved.html#category-x)&lt;/a&gt;,
which means hard-dependency as a part of the core is not allowed.
With that, we can&amp;rsquo;t only focus on it anymore. We need to consider other storage options. Right now, we still have InfluxDB, TiDB, H2 server still in Apache 2.0 licensed.
Right now, we still have InfluxDB, TiDB, H2 server as storage options still in Apache 2.0 licensed.&lt;/p&gt;
&lt;p&gt;As one optional plugin, we need to focus on the client driver license.
Right now, we are only using ElasticSearch 7.5.0 and 6.3.2 drivers, which are both Apache 2.0 licensed. So, we are safe.
For further upgrade, here is their announcement. They answer these typical cases in the FAQ page.&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;I build a SaaS application using Elasticsearch as the backend, how does this affect me?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This source code license change should not affect you - you can use our default distribution or develop applications on top of it for free, under the Elastic License. This source-available license does not contain any copyleft provisions and the default functionality is free of charge. For a specific example, you can see our response to a question around this at Magento.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Our users still could use, redistribute, sale the products/services, based on SkyWalking, even they are using self hosting Elastic Search unmodified server.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;m using Elasticsearch via APIs, how does this change affect me?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This change does not affect how you use client libraries to access Elasticsearch. Our client libraries remain licensed under
Apache 2.0, with the exception of our Java High Level Rest Client (Java HLRC).
The Java HLRC has dependencies on the core of Elasticsearch, and as a result this client library will be licensed under the
Elastic License. Over time, we will eliminate this dependency and move the Java HLRC to be licensed under Apache 2.0. Until
that time, for the avoidance of doubt, we do not consider using the Java HLRC as a client library in development of an
application or library used to access Elasticsearch to constitute a derivative work under the Elastic License, and this will not
have any impact on how you license the source code of your application using this client library or how you distribute it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The client driver license incompatible issue will exist, we can&amp;rsquo;t upgrade the driver(s) until they release the Apache 2.0 licensed driver jars.&lt;/strong&gt;
&lt;strong&gt;But users are still safe to upgrade the drivers by themselves.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Apache SkyWalking will discuss the further actions &lt;a href=&#34;https://github.com/apache/skywalking/issues/6219&#34;&gt;here&lt;/a&gt;. If you have any question, welcome to ask.
In the later 2021, we will begin to invest the posibility of creating SkyWalking&amp;rsquo;s observability database implementation.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Celebrate SkyWalking single repository hits the 300 contributors mark</title>
      <link>/blog/2021-01-01-300-contributors-mark/</link>
      <pubDate>Tue, 22 Dec 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2021-01-01-300-contributors-mark/</guid>
      <description>
        
        
        &lt;p&gt;Apache SkyWalking is an open source APM for distributed system. Provide tracing, service mesh observability, metrics analysis, alarm and visualization.&lt;/p&gt;
&lt;p&gt;Just 11 months ago, on Jan. 20th, 2020, &lt;a href=&#34;http://skywalking.apache.org/blog/2020-01-20-celebrate-200th-contributor/&#34;&gt;SkyWalking hit the 200 contributors mark&lt;/a&gt;.
With the growth of the project and the community, SkyWalking now includes over 20 sub(ecosystem) projects covering multiple language agents and service mesh,
integration with mature open source projects, like Prometheus, Spring(Sleuth), hundreds of libraries to support all tracing/metrics/logs fields.
In the past year, the number of contributors grows super astoundingly , and all its metrics point to its community vibrancy. Many corporate titans are already using
SkyWalking in a large-scale production environment, including, Alibaba, Huawei, Baidu, Tencent, etc.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;300-contributors.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Recently, our &lt;a href=&#34;https://github.com/apache/skywalking&#34;&gt;SkyWalking main repository&lt;/a&gt; overs 300 contributors.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;website-access.png&#34; alt=&#34;&#34;&gt;
Our &lt;a href=&#34;https://skywalking.apache.org&#34;&gt;website&lt;/a&gt; has thousands of views from most countries in the world every week.&lt;/p&gt;
&lt;p&gt;Although we know that, the metrics like GitHub stars and the numbers of open users and contributors, are not a determinant of vibrancy,
they do show the trend, we are very proud to share the increased numbers here, too.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;community-metrics.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;We double those numbers and are honored with the development of our community.&lt;/p&gt;
&lt;p&gt;Thank you, all of our contributors. Not just these 300 contributors of the main repository, or nearly 400 contributors in all repositories, counted by GitHub.
There are countless people contributing codes to SkyWalking&amp;rsquo;s subprojects, ecosystem projects, and private fork versions;
writing blogs and guidances, translating documents, books, and presentations;
setting up learning sessions for new users;
convincing friends to join the community as end-users, contributors, even committers.
Companies behinds those contributors support their employees to work with the community to provide feedback and
contribute the improvements and features upstream.
Conference organizers share the stages with speakers from the SkyWalking community.&lt;/p&gt;
&lt;p&gt;SkyWalking can’t make this happen without your help. You made this community extraordinary.&lt;/p&gt;
&lt;p&gt;At this crazy distributed computing and cloud native age, we as a community could make DEV, OPS, and SRE teams&amp;rsquo; work easier by locating the issue(s) in the haystack
quicker than before, like why we named the project as SkyWalking, we will have a clear site line  when you stand on the glass bridge Skywalk at Grand Canyon West.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;376 Contributors counted by GitHub account are following. Dec. 22st, 2020. Generated by a tool deveoped by &lt;a href=&#34;https://github.com/miss-you&#34;&gt;Yousa&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1095071913&lt;/li&gt;
&lt;li&gt;50168383&lt;/li&gt;
&lt;li&gt;Ahoo-Wang&lt;/li&gt;
&lt;li&gt;AirTrioa&lt;/li&gt;
&lt;li&gt;AlexanderWert&lt;/li&gt;
&lt;li&gt;AlseinX&lt;/li&gt;
&lt;li&gt;Ax1an&lt;/li&gt;
&lt;li&gt;BFergerson&lt;/li&gt;
&lt;li&gt;BZFYS&lt;/li&gt;
&lt;li&gt;CharlesMaster&lt;/li&gt;
&lt;li&gt;ChaunceyLin5152&lt;/li&gt;
&lt;li&gt;CommissarXia&lt;/li&gt;
&lt;li&gt;Cvimer&lt;/li&gt;
&lt;li&gt;Doublemine&lt;/li&gt;
&lt;li&gt;ElderJames&lt;/li&gt;
&lt;li&gt;EvanLjp&lt;/li&gt;
&lt;li&gt;FatihErdem&lt;/li&gt;
&lt;li&gt;FeynmanZhou&lt;/li&gt;
&lt;li&gt;Fine0830&lt;/li&gt;
&lt;li&gt;FingerLiu&lt;/li&gt;
&lt;li&gt;Gallardot&lt;/li&gt;
&lt;li&gt;GerryYuan&lt;/li&gt;
&lt;li&gt;HackerRookie&lt;/li&gt;
&lt;li&gt;Heguoya&lt;/li&gt;
&lt;li&gt;Hen1ng&lt;/li&gt;
&lt;li&gt;Humbertzhang&lt;/li&gt;
&lt;li&gt;IanCao&lt;/li&gt;
&lt;li&gt;IluckySi&lt;/li&gt;
&lt;li&gt;Indifer&lt;/li&gt;
&lt;li&gt;J-Cod3r&lt;/li&gt;
&lt;li&gt;JaredTan95&lt;/li&gt;
&lt;li&gt;Jargon96&lt;/li&gt;
&lt;li&gt;Jijun&lt;/li&gt;
&lt;li&gt;JohnNiang&lt;/li&gt;
&lt;li&gt;Jozdortraz&lt;/li&gt;
&lt;li&gt;Jtrust&lt;/li&gt;
&lt;li&gt;Just-maple&lt;/li&gt;
&lt;li&gt;KangZhiDong&lt;/li&gt;
&lt;li&gt;LazyLei&lt;/li&gt;
&lt;li&gt;LiWenGu&lt;/li&gt;
&lt;li&gt;Liu-XinYuan&lt;/li&gt;
&lt;li&gt;Miss-you&lt;/li&gt;
&lt;li&gt;O-ll-O&lt;/li&gt;
&lt;li&gt;Patrick0308&lt;/li&gt;
&lt;li&gt;QHWG67&lt;/li&gt;
&lt;li&gt;Qiliang&lt;/li&gt;
&lt;li&gt;RandyAbernethy&lt;/li&gt;
&lt;li&gt;RedzRedz&lt;/li&gt;
&lt;li&gt;Runrioter&lt;/li&gt;
&lt;li&gt;SataQiu&lt;/li&gt;
&lt;li&gt;ScienJus&lt;/li&gt;
&lt;li&gt;SevenPointOld&lt;/li&gt;
&lt;li&gt;ShaoHans&lt;/li&gt;
&lt;li&gt;Shikugawa&lt;/li&gt;
&lt;li&gt;SoberChina&lt;/li&gt;
&lt;li&gt;SummerOfServenteen&lt;/li&gt;
&lt;li&gt;TJ666&lt;/li&gt;
&lt;li&gt;TerrellChen&lt;/li&gt;
&lt;li&gt;TheRealHaui&lt;/li&gt;
&lt;li&gt;TinyAllen&lt;/li&gt;
&lt;li&gt;TomMD&lt;/li&gt;
&lt;li&gt;ViberW&lt;/li&gt;
&lt;li&gt;Videl&lt;/li&gt;
&lt;li&gt;WALL-E&lt;/li&gt;
&lt;li&gt;WeihanLi&lt;/li&gt;
&lt;li&gt;WildWolfBang&lt;/li&gt;
&lt;li&gt;WillemJiang&lt;/li&gt;
&lt;li&gt;Wooo0&lt;/li&gt;
&lt;li&gt;XhangUeiJong&lt;/li&gt;
&lt;li&gt;Xlinlin&lt;/li&gt;
&lt;li&gt;YczYanchengzhe&lt;/li&gt;
&lt;li&gt;YoungHu&lt;/li&gt;
&lt;li&gt;YunaiV&lt;/li&gt;
&lt;li&gt;ZhHong&lt;/li&gt;
&lt;li&gt;ZhuoSiChen&lt;/li&gt;
&lt;li&gt;ZS-Oliver&lt;/li&gt;
&lt;li&gt;a198720&lt;/li&gt;
&lt;li&gt;a526672351&lt;/li&gt;
&lt;li&gt;acurtain&lt;/li&gt;
&lt;li&gt;adamni135&lt;/li&gt;
&lt;li&gt;adermxzs&lt;/li&gt;
&lt;li&gt;adriancole&lt;/li&gt;
&lt;li&gt;aeolusheath&lt;/li&gt;
&lt;li&gt;agile6v&lt;/li&gt;
&lt;li&gt;aix3&lt;/li&gt;
&lt;li&gt;aiyanbo&lt;/li&gt;
&lt;li&gt;ajanthan&lt;/li&gt;
&lt;li&gt;alexkarezin&lt;/li&gt;
&lt;li&gt;alonelaval&lt;/li&gt;
&lt;li&gt;amogege&lt;/li&gt;
&lt;li&gt;amwyyyy&lt;/li&gt;
&lt;li&gt;arugal&lt;/li&gt;
&lt;li&gt;ascrutae&lt;/li&gt;
&lt;li&gt;augustowebd&lt;/li&gt;
&lt;li&gt;bai-yang&lt;/li&gt;
&lt;li&gt;beckhampu&lt;/li&gt;
&lt;li&gt;beckjin&lt;/li&gt;
&lt;li&gt;beiwangnull&lt;/li&gt;
&lt;li&gt;bigflybrother&lt;/li&gt;
&lt;li&gt;bostin&lt;/li&gt;
&lt;li&gt;brucewu-fly&lt;/li&gt;
&lt;li&gt;c1ay&lt;/li&gt;
&lt;li&gt;candyleer&lt;/li&gt;
&lt;li&gt;carlvine500&lt;/li&gt;
&lt;li&gt;carrypann&lt;/li&gt;
&lt;li&gt;cheenursn&lt;/li&gt;
&lt;li&gt;cheetah012&lt;/li&gt;
&lt;li&gt;chenpengfei&lt;/li&gt;
&lt;li&gt;chenvista&lt;/li&gt;
&lt;li&gt;chess-equality&lt;/li&gt;
&lt;li&gt;chestarss&lt;/li&gt;
&lt;li&gt;chidaodezhongsheng&lt;/li&gt;
&lt;li&gt;chopin-d&lt;/li&gt;
&lt;li&gt;clevertension&lt;/li&gt;
&lt;li&gt;clk1st&lt;/li&gt;
&lt;li&gt;cngdkxw&lt;/li&gt;
&lt;li&gt;codeglzhang&lt;/li&gt;
&lt;li&gt;codelipenghui&lt;/li&gt;
&lt;li&gt;coder-yqj&lt;/li&gt;
&lt;li&gt;coki230&lt;/li&gt;
&lt;li&gt;coolbeevip&lt;/li&gt;
&lt;li&gt;crystaldust&lt;/li&gt;
&lt;li&gt;cui-liqiang&lt;/li&gt;
&lt;li&gt;cuiweiwei&lt;/li&gt;
&lt;li&gt;cyberdak&lt;/li&gt;
&lt;li&gt;cyejing&lt;/li&gt;
&lt;li&gt;dagmom&lt;/li&gt;
&lt;li&gt;dengliming&lt;/li&gt;
&lt;li&gt;devkanro&lt;/li&gt;
&lt;li&gt;devon-ye&lt;/li&gt;
&lt;li&gt;dimaaan&lt;/li&gt;
&lt;li&gt;dingdongnigetou&lt;/li&gt;
&lt;li&gt;dio&lt;/li&gt;
&lt;li&gt;dmsolr&lt;/li&gt;
&lt;li&gt;dominicqi&lt;/li&gt;
&lt;li&gt;donbing007&lt;/li&gt;
&lt;li&gt;dsc6636926&lt;/li&gt;
&lt;li&gt;duotai&lt;/li&gt;
&lt;li&gt;dvsv2&lt;/li&gt;
&lt;li&gt;dzx2018&lt;/li&gt;
&lt;li&gt;echooymxq&lt;/li&gt;
&lt;li&gt;efekaptan&lt;/li&gt;
&lt;li&gt;eoeac&lt;/li&gt;
&lt;li&gt;evanxuhe&lt;/li&gt;
&lt;li&gt;feelwing1314&lt;/li&gt;
&lt;li&gt;fgksgf&lt;/li&gt;
&lt;li&gt;fuhuo&lt;/li&gt;
&lt;li&gt;geektcp&lt;/li&gt;
&lt;li&gt;geomonlin&lt;/li&gt;
&lt;li&gt;ggndnn&lt;/li&gt;
&lt;li&gt;gitter-badger&lt;/li&gt;
&lt;li&gt;glongzh&lt;/li&gt;
&lt;li&gt;gnr163&lt;/li&gt;
&lt;li&gt;gonedays&lt;/li&gt;
&lt;li&gt;grissom-grissom&lt;/li&gt;
&lt;li&gt;grissomsh&lt;/li&gt;
&lt;li&gt;guodongq&lt;/li&gt;
&lt;li&gt;guyukou&lt;/li&gt;
&lt;li&gt;gxthrj&lt;/li&gt;
&lt;li&gt;gzshilu&lt;/li&gt;
&lt;li&gt;hailin0&lt;/li&gt;
&lt;li&gt;hanahmily&lt;/li&gt;
&lt;li&gt;haotian2015&lt;/li&gt;
&lt;li&gt;haoyann&lt;/li&gt;
&lt;li&gt;hardzhang&lt;/li&gt;
&lt;li&gt;harvies&lt;/li&gt;
&lt;li&gt;hepyu&lt;/li&gt;
&lt;li&gt;heyanlong&lt;/li&gt;
&lt;li&gt;hi-sb&lt;/li&gt;
&lt;li&gt;honganan&lt;/li&gt;
&lt;li&gt;hsoftxl&lt;/li&gt;
&lt;li&gt;huangyoje&lt;/li&gt;
&lt;li&gt;huliangdream&lt;/li&gt;
&lt;li&gt;huohuanhuan&lt;/li&gt;
&lt;li&gt;innerpeacez&lt;/li&gt;
&lt;li&gt;itsvse&lt;/li&gt;
&lt;li&gt;jasonz93&lt;/li&gt;
&lt;li&gt;jialong121&lt;/li&gt;
&lt;li&gt;jinlongwang&lt;/li&gt;
&lt;li&gt;jjlu521016&lt;/li&gt;
&lt;li&gt;jjtyro&lt;/li&gt;
&lt;li&gt;jmjoy&lt;/li&gt;
&lt;li&gt;jsbxyyx&lt;/li&gt;
&lt;li&gt;justeene&lt;/li&gt;
&lt;li&gt;juzhiyuan&lt;/li&gt;
&lt;li&gt;jy00464346&lt;/li&gt;
&lt;li&gt;kaanid&lt;/li&gt;
&lt;li&gt;karott&lt;/li&gt;
&lt;li&gt;kayleyang&lt;/li&gt;
&lt;li&gt;kevinyyyy&lt;/li&gt;
&lt;li&gt;kezhenxu94&lt;/li&gt;
&lt;li&gt;kikupotter&lt;/li&gt;
&lt;li&gt;kilingzhang&lt;/li&gt;
&lt;li&gt;killGC&lt;/li&gt;
&lt;li&gt;klboke&lt;/li&gt;
&lt;li&gt;ksewen&lt;/li&gt;
&lt;li&gt;kuaikuai&lt;/li&gt;
&lt;li&gt;kun-song&lt;/li&gt;
&lt;li&gt;kylixs&lt;/li&gt;
&lt;li&gt;landonzeng&lt;/li&gt;
&lt;li&gt;langke93&lt;/li&gt;
&lt;li&gt;langyan1022&lt;/li&gt;
&lt;li&gt;langyizhao&lt;/li&gt;
&lt;li&gt;lazycathome&lt;/li&gt;
&lt;li&gt;leemove&lt;/li&gt;
&lt;li&gt;leizhiyuan&lt;/li&gt;
&lt;li&gt;libinglong&lt;/li&gt;
&lt;li&gt;lilien1010&lt;/li&gt;
&lt;li&gt;limfriend&lt;/li&gt;
&lt;li&gt;linkinshi&lt;/li&gt;
&lt;li&gt;linliaoy&lt;/li&gt;
&lt;li&gt;liuhaoXD&lt;/li&gt;
&lt;li&gt;liuhaoyang&lt;/li&gt;
&lt;li&gt;liuyanggithup&lt;/li&gt;
&lt;li&gt;liuzhengyang&lt;/li&gt;
&lt;li&gt;liweiv&lt;/li&gt;
&lt;li&gt;lkxiaolou&lt;/li&gt;
&lt;li&gt;llissery&lt;/li&gt;
&lt;li&gt;louis-zhou&lt;/li&gt;
&lt;li&gt;lpf32&lt;/li&gt;
&lt;li&gt;lsyf&lt;/li&gt;
&lt;li&gt;lucperkins&lt;/li&gt;
&lt;li&gt;lujiajing1126&lt;/li&gt;
&lt;li&gt;lunamagic1978&lt;/li&gt;
&lt;li&gt;lunchboxav&lt;/li&gt;
&lt;li&gt;lxliuxuankb&lt;/li&gt;
&lt;li&gt;lytscu&lt;/li&gt;
&lt;li&gt;lyzhang1999&lt;/li&gt;
&lt;li&gt;magic-akari&lt;/li&gt;
&lt;li&gt;makingtime&lt;/li&gt;
&lt;li&gt;maolie&lt;/li&gt;
&lt;li&gt;masterxxo&lt;/li&gt;
&lt;li&gt;maxiaoguang64&lt;/li&gt;
&lt;li&gt;membphis&lt;/li&gt;
&lt;li&gt;mestarshine&lt;/li&gt;
&lt;li&gt;mgsheng&lt;/li&gt;
&lt;li&gt;michaelsembwever&lt;/li&gt;
&lt;li&gt;mikkeschiren&lt;/li&gt;
&lt;li&gt;mm23504570&lt;/li&gt;
&lt;li&gt;momo0313&lt;/li&gt;
&lt;li&gt;moonming&lt;/li&gt;
&lt;li&gt;mrproliu&lt;/li&gt;
&lt;li&gt;muyun12&lt;/li&gt;
&lt;li&gt;nacx&lt;/li&gt;
&lt;li&gt;neatlife&lt;/li&gt;
&lt;li&gt;neeuq&lt;/li&gt;
&lt;li&gt;nic-chen&lt;/li&gt;
&lt;li&gt;nikitap492&lt;/li&gt;
&lt;li&gt;nileblack&lt;/li&gt;
&lt;li&gt;nisiyong&lt;/li&gt;
&lt;li&gt;novayoung&lt;/li&gt;
&lt;li&gt;oatiz&lt;/li&gt;
&lt;li&gt;oflebbe&lt;/li&gt;
&lt;li&gt;olzhy&lt;/li&gt;
&lt;li&gt;onecloud360&lt;/li&gt;
&lt;li&gt;osiriswd&lt;/li&gt;
&lt;li&gt;peng-yongsheng&lt;/li&gt;
&lt;li&gt;pengweiqhca&lt;/li&gt;
&lt;li&gt;potiuk&lt;/li&gt;
&lt;li&gt;purgeyao&lt;/li&gt;
&lt;li&gt;qijianbo010&lt;/li&gt;
&lt;li&gt;qinhang3&lt;/li&gt;
&lt;li&gt;qiuyu-d&lt;/li&gt;
&lt;li&gt;qqeasonchen&lt;/li&gt;
&lt;li&gt;qxo&lt;/li&gt;
&lt;li&gt;raybi-asus&lt;/li&gt;
&lt;li&gt;refactor2&lt;/li&gt;
&lt;li&gt;remicollet&lt;/li&gt;
&lt;li&gt;rlenferink&lt;/li&gt;
&lt;li&gt;rootsongjc&lt;/li&gt;
&lt;li&gt;rovast&lt;/li&gt;
&lt;li&gt;scolia&lt;/li&gt;
&lt;li&gt;sdanzo&lt;/li&gt;
&lt;li&gt;seifeHu&lt;/li&gt;
&lt;li&gt;shiluo34&lt;/li&gt;
&lt;li&gt;sikelangya&lt;/li&gt;
&lt;li&gt;simonlei&lt;/li&gt;
&lt;li&gt;sk163&lt;/li&gt;
&lt;li&gt;snakorse&lt;/li&gt;
&lt;li&gt;songzhendong&lt;/li&gt;
&lt;li&gt;songzhian&lt;/li&gt;
&lt;li&gt;sonxy&lt;/li&gt;
&lt;li&gt;spacewander&lt;/li&gt;
&lt;li&gt;stalary&lt;/li&gt;
&lt;li&gt;stenio2011&lt;/li&gt;
&lt;li&gt;stevehu&lt;/li&gt;
&lt;li&gt;stone-wlg&lt;/li&gt;
&lt;li&gt;sungitly&lt;/li&gt;
&lt;li&gt;surechen&lt;/li&gt;
&lt;li&gt;swartz-k&lt;/li&gt;
&lt;li&gt;sxzaihua&lt;/li&gt;
&lt;li&gt;tanjunchen&lt;/li&gt;
&lt;li&gt;tankilo&lt;/li&gt;
&lt;li&gt;taskmgr&lt;/li&gt;
&lt;li&gt;tbdpmi&lt;/li&gt;
&lt;li&gt;terranhu&lt;/li&gt;
&lt;li&gt;terrymanu&lt;/li&gt;
&lt;li&gt;tevahp&lt;/li&gt;
&lt;li&gt;thanq&lt;/li&gt;
&lt;li&gt;thebouv&lt;/li&gt;
&lt;li&gt;tianyuak&lt;/li&gt;
&lt;li&gt;tincopper&lt;/li&gt;
&lt;li&gt;tinyu0&lt;/li&gt;
&lt;li&gt;tom-pytel&lt;/li&gt;
&lt;li&gt;tristaZero&lt;/li&gt;
&lt;li&gt;tristan-tsl&lt;/li&gt;
&lt;li&gt;trustin&lt;/li&gt;
&lt;li&gt;tsuilouis&lt;/li&gt;
&lt;li&gt;tuohai666&lt;/li&gt;
&lt;li&gt;tzsword-2020&lt;/li&gt;
&lt;li&gt;tzy1316106836&lt;/li&gt;
&lt;li&gt;vcjmhg&lt;/li&gt;
&lt;li&gt;vision-ken&lt;/li&gt;
&lt;li&gt;viswaramamoorthy&lt;/li&gt;
&lt;li&gt;wankai123&lt;/li&gt;
&lt;li&gt;wbpcode&lt;/li&gt;
&lt;li&gt;web-xiaxia&lt;/li&gt;
&lt;li&gt;webb2019&lt;/li&gt;
&lt;li&gt;weiqiang333&lt;/li&gt;
&lt;li&gt;wendal&lt;/li&gt;
&lt;li&gt;wengangJi&lt;/li&gt;
&lt;li&gt;wenjianzhang&lt;/li&gt;
&lt;li&gt;whfjam&lt;/li&gt;
&lt;li&gt;wind2008hxy&lt;/li&gt;
&lt;li&gt;withlin&lt;/li&gt;
&lt;li&gt;wqr2016&lt;/li&gt;
&lt;li&gt;wu-sheng&lt;/li&gt;
&lt;li&gt;wuguangkuo&lt;/li&gt;
&lt;li&gt;wujun8&lt;/li&gt;
&lt;li&gt;wuxingye&lt;/li&gt;
&lt;li&gt;x22x22&lt;/li&gt;
&lt;li&gt;xbkaishui&lt;/li&gt;
&lt;li&gt;xcaspar&lt;/li&gt;
&lt;li&gt;xiaoxiangmoe&lt;/li&gt;
&lt;li&gt;xiaoy00&lt;/li&gt;
&lt;li&gt;xinfeingxia85&lt;/li&gt;
&lt;li&gt;xinzhuxiansheng&lt;/li&gt;
&lt;li&gt;xudianyang&lt;/li&gt;
&lt;li&gt;yanbw&lt;/li&gt;
&lt;li&gt;yanfch&lt;/li&gt;
&lt;li&gt;yang-xiaodong&lt;/li&gt;
&lt;li&gt;yangxb2010000&lt;/li&gt;
&lt;li&gt;yanickxia&lt;/li&gt;
&lt;li&gt;yanmaipian&lt;/li&gt;
&lt;li&gt;yanmingbi&lt;/li&gt;
&lt;li&gt;yantaowu&lt;/li&gt;
&lt;li&gt;yaowenqiang&lt;/li&gt;
&lt;li&gt;yazong&lt;/li&gt;
&lt;li&gt;ychandu&lt;/li&gt;
&lt;li&gt;ycoe&lt;/li&gt;
&lt;li&gt;yimeng&lt;/li&gt;
&lt;li&gt;yu199195&lt;/li&gt;
&lt;li&gt;yuqichou&lt;/li&gt;
&lt;li&gt;yuyujulin&lt;/li&gt;
&lt;li&gt;yymoth&lt;/li&gt;
&lt;li&gt;zaunist&lt;/li&gt;
&lt;li&gt;zaygrzx&lt;/li&gt;
&lt;li&gt;zcai2&lt;/li&gt;
&lt;li&gt;zeaposs&lt;/li&gt;
&lt;li&gt;zhang98722&lt;/li&gt;
&lt;li&gt;zhanghao001&lt;/li&gt;
&lt;li&gt;zhangjianweibj&lt;/li&gt;
&lt;li&gt;zhangkewei&lt;/li&gt;
&lt;li&gt;zhangsean&lt;/li&gt;
&lt;li&gt;zhaoyuguang&lt;/li&gt;
&lt;li&gt;zhentaoJin&lt;/li&gt;
&lt;li&gt;zhousiliang163&lt;/li&gt;
&lt;li&gt;zhuCheer&lt;/li&gt;
&lt;li&gt;zifeihan&lt;/li&gt;
&lt;li&gt;zkscpqm&lt;/li&gt;
&lt;li&gt;zoidbergwill&lt;/li&gt;
&lt;li&gt;zoumingzm&lt;/li&gt;
&lt;li&gt;zouyx&lt;/li&gt;
&lt;li&gt;zshit&lt;/li&gt;
&lt;li&gt;zxbu&lt;/li&gt;
&lt;li&gt;zygfengyuwuzu&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: [Video] Another backend storage solution for the APM system</title>
      <link>/blog/2020-11-21-apachecon-obs-shardingsphere/</link>
      <pubDate>Sat, 21 Nov 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020-11-21-apachecon-obs-shardingsphere/</guid>
      <description>
        
        
        &lt;p&gt;The APM system provides the tracing or metrics for distributed systems or microservice architectures. Back to APM themselves, they always need backend storage to store the necessary massive data. What are the features required for backend storage? Simple, fewer dependencies, widely used query language, and the efficiency could be into your consideration. Based on that, traditional SQL databases (like MySQL) or NoSQL databases would be better choices. However, this topic will present another backend storage solution for the APM system viewing from NewSQL. Taking Apache Skywalking for instance, this talking will share how to make use of Apache ShardingSphere, a distributed database middleware ecosystem to extend the APM system&amp;rsquo;s storage capability.&lt;/p&gt;
&lt;p&gt;As a senior DBA worked at JD.com, the responsibility is to develop the distributed database and middleware, and the automated management platform for database clusters. As a PMC of Apache ShardingSphere, I am willing to contribute to the OS community and explore the area of distributed databases and NewSQL.&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/OazS_3r3NM4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Blog: [Video] Improve Apache APISIX observability with Apache SkyWalking</title>
      <link>/blog/2020-11-21-apachecon-obs-apisix/</link>
      <pubDate>Sat, 21 Nov 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020-11-21-apachecon-obs-apisix/</guid>
      <description>
        
        
        &lt;p&gt;Apache APISIX is a cloud-native microservices API gateway, delivering the ultimate performance, security, open-source and scalable platform for all your APIs and microservices. Apache SkyWalking: an APM(application performance monitor) system, especially designed for microservices, cloud-native and container-based (Docker, Kubernetes, Mesos) architectures. Through the powerful plug-in mechanism of Apache APISIX, Apache Skywalking is quickly supported, so that we can see the complete life cycle of requests from the edge to the internal service. Monitor and manage each request in a visual way, and improve the observability of the service.&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/DleVJwPs4i4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Blog: [Video] SourceMarker - Continuous Feedback for Developers</title>
      <link>/blog/2020-11-21-apachecon-obs-sourcemarker/</link>
      <pubDate>Sat, 21 Nov 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020-11-21-apachecon-obs-sourcemarker/</guid>
      <description>
        
        
        &lt;p&gt;Today&amp;rsquo;s monitoring solutions are geared towards operational tasks, displaying behavior as time-series graphs inside dashboards and other abstractions. These abstractions are immensely useful but are largely designed for software operators, whose responsibilities require them to think in systems, rather than the underlying source code. This is problematic given that an ongoing trend of software development is the blurring boundaries between building and operating software. This trend makes it increasingly necessary for programming environments to not just support development-centric activities, but operation-centric activities as well. Such is the goal of the feedback-driven development approach. By combining IDE and APM technology, software developers can intuitively explore multiple dimensions of their software simultaneously with continuous feedback about their software from inception to production.&lt;/p&gt;
&lt;p&gt;Brandon Fergerson is an open-source software developer who does not regard himself as a specialist in the field of programming, but rather as someone who is a devoted admirer. He discovered the beauty of programming at a young age and views programming as an art and those who do it well to be artists. He has an affinity towards getting meta and combining that with admiration of programming, has found source code analysis to be exceptionally interesting. Lately, his primary focus involves researching and building AI-based pair programming technology.&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/IWounkxhfi0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Blog: [Video] The history of distributed tracing storage</title>
      <link>/blog/2020-11-21-apachecon-obs-storage/</link>
      <pubDate>Sat, 21 Nov 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020-11-21-apachecon-obs-storage/</guid>
      <description>
        
        
        &lt;p&gt;Over the past few years, and coupled with the growing adoption of microservices, distributed tracing has emerged as one of the most commonly used monitoring and troubleshooting methodologies. New tracing tools are increasingly being introduced, driving adoption even further. One of these tools is Apache SkyWalking, a popular open-source tracing, and APM platform. This talk explores the history of the SkyWalking storage module, shows the evolution of distributed tracing storage layers, from the traditional relational database to document-based search engine. I hope that this talk contributes to the understanding of history and also that it helps to clarify the different types of storage that are available to organizations today.&lt;/p&gt;
&lt;p&gt;Hongtao Gao is the engineer of tetrate.io and the former Huawei Cloud expert. One of PMC members of Apache SkyWalking and participates in some popular open-source projects such as Apache ShardingSphere and Elastic-Job. He has an in-depth understanding of distributed databases, container scheduling, microservices, ServicMesh, and other technologies.&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/iQ0tODBoh1k?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Blog: [Video] Apache grows in China</title>
      <link>/blog/2020-11-21-apachecon-keynote/</link>
      <pubDate>Fri, 20 Nov 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020-11-21-apachecon-keynote/</guid>
      <description>
        
        
        &lt;p&gt;Sheng Wu is a founding engineer at tetrate.io, leads the observability for service mesh and hybrid cloud. A searcher, evangelist, and developer in the observability, distributed tracing, and APM. He is a member of the Apache Software Foundation. Love open source software and culture. Created the Apache SkyWalking project and being its VP and PMC member. Co-founder and PMC member of Apache ShardingSphere. Also as a PMC member of Apache Incubator and APISIX. He is awarded as Microsoft MVP, Alibaba Cloud MVP, Tencent Cloud TVP.&lt;/p&gt;
&lt;p&gt;In the Apache FY2020 report, China is on the top of the download statistics. More China initiated projects joined the incubator, and some of them graduated as the Apache TLP. Sheng joined the Apache community since 2017, in the past 3 years, he witnessed the growth of the open-source culture and Apache way in China.
Many developers have joined the ASF as new contributors, committers, foundation members. Chinese enterprises and companies paid more attention to open source contributions, rather than simply using the project like before. In the keynote, he would share the progress about China embracing the Apache culture, and willing of enhancing the whole Apache community.&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/26aFGdbZvac?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Blog: Observability at Scale: SkyWalking it is</title>
      <link>/blog/2020-08-11-observability-at-scale/</link>
      <pubDate>Tue, 11 Aug 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020-08-11-observability-at-scale/</guid>
      <description>
        
        
        &lt;ul&gt;
&lt;li&gt;Author: Sheng Wu&lt;/li&gt;
&lt;li&gt;Original link, &lt;a href=&#34;https://www.tetrate.io/blog/observability-at-scale-skywalking-it-is/&#34;&gt;Tetrate.io blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;SkyWalking, a top-level Apache project, is the open source APM and observability analysis platform that is solving the problems of 21st-century systems that are increasingly large, distributed, and heterogenous. It&amp;rsquo;s built for the struggles system admins face today: To identify and locate needles in a haystack of interdependent services, to get apples-to-apples metrics across polyglot apps, and to get a complete and meaningful view of performance.&lt;/p&gt;
&lt;p&gt;SkyWalking is a holistic platform that can observe microservices on or off a mesh, and can provide consistent monitoring with a lightweight payload.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s take a look at how SkyWalking evolved to address the problem of observability at scale, and grew from a pure tracing system to a feature-rich observability platform that is now used to analyze deployments that collect tens of billions of traces per day.&lt;/p&gt;
&lt;h3 id=&#34;designing-for-scale&#34;&gt;Designing for scale&lt;/h3&gt;
&lt;p&gt;When SkyWalking was first initialized back in 2015, its primary use case was monitoring the first-generation distributed core system of China Top Telecom companies, China Unicom and China Mobile. In 2013-2014, the telecom companies planned to replace their old traditional monolithic applications with a distributed system. Supporting a super-large distributed system and scaleablity were the high-priority design goals from Day one. So, what matters at scale?&lt;/p&gt;
&lt;h3 id=&#34;pull-vs-push&#34;&gt;Pull vs. push&lt;/h3&gt;
&lt;p&gt;Pull and push modes relate to the direction of data flow. If the agent collects data and pushes them to the backend for further analysis, we call it &amp;ldquo;push&amp;rdquo; mode. Debate over pull vs. push has gone on for a long time. The key for an observability system is to minimize the cost of the agent, and to be generally suitable for different kinds of observability data.&lt;/p&gt;
&lt;p&gt;The agent would send the data out a short period after it is collected. Then, we would have less concern about overloading the local cache. One typical case would be endpoint (URI of HTTP, service of gRPC) metrics. Any service could easily have hundreds, even thousands of endpoints. An APM system must have these metrics analysis capabilities.&lt;/p&gt;
&lt;p&gt;Furthermore, metrics aren&amp;rsquo;t the only thing in the observability landscape; traces and logs are important too. SkyWalking is designed to provide a 100% sampling rate tracing capability in the production environment. Clearly, push mode is the only solution.&lt;/p&gt;
&lt;p&gt;At the same time, using push mode natively doesn&amp;rsquo;t mean SkyWalking can&amp;rsquo;t do data pulling. In recent 8.x releases, SkyWalking supports fetching data from Prometheus-instrumented services for reducing the Non-Recurring Engineering of the end users. Also, pull mode is popular in the MQ based transport, typically as a Kafka consumer. The SkyWalking agent side uses the push mode, and the OAP server uses the pull mode.&lt;/p&gt;
&lt;p&gt;The conclusion: push mode is the native way, but pull mode works in some special cases too.&lt;/p&gt;
&lt;h3 id=&#34;metrics-analysis-isnt-just-mathematical-calculation&#34;&gt;Metrics analysis isn&amp;rsquo;t just mathematical calculation&lt;/h3&gt;
&lt;p&gt;Metrics rely on mathematical theories and calculations. Percentile is a good measure for identifying the long tail issue, and reasonable average response time and successful rate are good SLO(s). But those are not all. Distributed tracing provides not just traces with detailed information, but high values metrics that can be analyzed.&lt;/p&gt;
&lt;p&gt;The service topology map is required from Ops and SRE teams for the NOC dashboard and confirmation of system data flow. SkyWalking uses the &lt;a href=&#34;https://wu-sheng.github.io/STAM/&#34;&gt;STAM (Streaming Topology Analysis Method)&lt;/a&gt; to analyze topology from the traces, or based on ALS (Envoy Access Log Service) in the service mesh environment. This topology and metrics of nodes (services) and lines (service relationships) can&amp;rsquo;t be pulled from simple metrics SDKs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;topology-v8.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;As with fixing the limitation of endpoint metrics collection, SkyWalking needs to do endpoint dependency analysis from trace data too. Endpoint dependency analysis provides more important and specific information, including upstream and downstream. Those dependency relationships and metrics help the developer team to locate the boundaries of a performance issue, to specific code blocks.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;endpoint-dependency-v8.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;pre-calculation-vs-query-stage-calculation&#34;&gt;Pre-calculation vs. query stage calculation?&lt;/h3&gt;
&lt;p&gt;Query stage calculation provides flexibility. Pre-calculation, in the analysis stage, provides better and much more stable performance. Recall our design principle: SkyWalking targets a large-scale distributed system. Query stage calculation was very limited in scope, and most metrics calculations need to be pre-defined and pre-calculated. The key of supporting large datasets is reducing the size of datasets in the design level. Pre-calculation allows the original data to be merged into aggregated results downstream, to be used in a query or even for an alert check.&lt;/p&gt;
&lt;p&gt;TTL of metrics is another important business enabler. With the near linear performance offered by queries because of pre-calculation, with a similar query infrastructure, organizations can offer higher TTL, thereby providing extended visibility of performance.&lt;/p&gt;
&lt;p&gt;Speaking of alerts, query-stage calculation also means the alerting query is required to be based on the query engine. But in this case, when the dataset increasing, the query performance could be inconsistent. The same thing happens in a different metrics query.&lt;/p&gt;
&lt;h3 id=&#34;cases-today&#34;&gt;Cases today&lt;/h3&gt;
&lt;p&gt;Today, SkyWalking is monitoring super large-scale distributed systems in many large enterprises, including Alibaba, Huawei, Tencent, Baidu, China Telecom, and various banks and insurance companies. The online service companies have more traffic than the traditional companies, like banks and telecom suppliers.&lt;/p&gt;
&lt;p&gt;SkyWalking is the observability platform used for a variety of use cases for distributed systems that are super-large by many measures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lagou.com, an online job recruitment platform
&lt;ul&gt;
&lt;li&gt;SkyWalking is observing &amp;gt;100 services, 500+ JVM instances&lt;/li&gt;
&lt;li&gt;SkyWalking collects and analyzes 4+ billion traces per day to analyze performance data, including metrics of 300k+ endpoints and dependencies&lt;/li&gt;
&lt;li&gt;Monitoring &amp;gt;50k traffic per second in the whole cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Yonghui SuperMarket, online service
&lt;ul&gt;
&lt;li&gt;SkyWalking analyzes at least 10+ billion (3B) traces with metrics per day&lt;/li&gt;
&lt;li&gt;SkyWalking&amp;rsquo;s second, smaller deployment, analyzes 200+ million traces per day&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Baidu, internet and AI company, Kubernetes deployment
&lt;ul&gt;
&lt;li&gt;SkyWalking collects 1T+ traces a day from 1,400+ pods of 120+ services&lt;/li&gt;
&lt;li&gt;Continues to scale out as more services are added&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Beike Zhaofang(ke.com), a Chinese online property brokerage backed by Tencent Holdings and SoftBank Group
&lt;ul&gt;
&lt;li&gt;Has used SkyWalking from its very beginning, and has two members in the PMC team.&lt;/li&gt;
&lt;li&gt;Deployments collect 16+ billion traces per day&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Ali Yunxiao, DevOps service on the Alibaba Cloud,
&lt;ul&gt;
&lt;li&gt;SkyWalking collects and analyzes billions of spans per day&lt;/li&gt;
&lt;li&gt;SkyWalking keeps AliCloud&amp;rsquo;s 45 services and ~300 instances stable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A department of Alibaba TMall, one of the largest business-to-consumer online retailers, spun off from Taobao
&lt;ul&gt;
&lt;li&gt;A customized version of SkyWalking monitors billions of traces per day&lt;/li&gt;
&lt;li&gt;At the same time, they are building a load testing platform based on SkyWalking&amp;rsquo;s agent tech stack, leveraging its tracing and context propagation cabilities&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;SkyWalking&amp;rsquo;s approach to observability follows these principles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Understand the logic model: don&amp;rsquo;t treat observability as a mathematical tool.&lt;/li&gt;
&lt;li&gt;Identify dependencies first, then their metrics.&lt;/li&gt;
&lt;li&gt;Scaling should be accomplished easily and natively.&lt;/li&gt;
&lt;li&gt;Maintain consistency across different architectures, and in the performance of APM itself.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;resources&#34;&gt;Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Read about the &lt;a href=&#34;https://github.com/apache/skywalking/blob/master/CHANGES.md&#34;&gt;SkyWalking 8.1 release highlights&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Get more SkyWalking updates on &lt;a href=&#34;https://twitter.com/asfskywalking?lang=en&#34;&gt;Twitter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Sign up to hear more about SkyWalking and observability from &lt;a href=&#34;https://www.tetrate.io/contact-us/&#34;&gt;Tetrate&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: SkyWalking hits 200 contributors mark</title>
      <link>/blog/2020-01-20-celebrate-200th-contributor/</link>
      <pubDate>Mon, 20 Jan 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020-01-20-celebrate-200th-contributor/</guid>
      <description>
        
        
        &lt;ul&gt;
&lt;li&gt;Author: Wu Sheng, tetrate.io, SkyWalking original creator, SkyWalking V.P.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/wu-sheng&#34;&gt;GitHub&lt;/a&gt;, &lt;a href=&#34;https://twitter.com/wusheng1108&#34;&gt;Twitter&lt;/a&gt;, &lt;a href=&#34;https://www.linkedin.com/in/wusheng1108&#34;&gt;Linkedin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;200th-celebration.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;The SkyWalking project provides distributed tracing, topology map analysis, service mesh telemetry analysis, metrics analysis and a super cool visualization
targeting distributed systems in k8s or traditional VM deployments.&lt;/p&gt;
&lt;p&gt;The project is widely used in Alibaba, Huawei, Tencent, DiDi, xiaomi, Pingan, China’s top 3 telecom companies (China Mobile, China telecom, China Unicom), airlines, banks and more. It has over 140 company users listed on our &lt;a href=&#34;https://github.com/apache/skywalking/blob/master/docs/powered-by.md&#34;&gt;powered by&lt;/a&gt; page.&lt;/p&gt;
&lt;p&gt;Today, we welcome and celebrate reaching 200 code contributors on our main repo. We hereby mark this milestone as official today, : &lt;strong&gt;Jan. 20th 2020&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;At this great moment, I would like to share SkyWalking’s 4-year open source journey.&lt;/p&gt;
&lt;p&gt;I wrote the first line on Nov. 1st, 2015, guiding people to understand a distributed system just as  micro-services and distributed architecture were becoming popular.
In the first 2 years, I never thought it would become such a big and active community. I didn’t even expect it would be an open source project.
Initially, the goal was primarily to teach others about distributed tracing and analysis.&lt;/p&gt;
&lt;p&gt;It was a typical open source project in obscurity in its first two years. But
people still showed up, asked questions, and tried to improve the project. I got several invitations to share the project at local meetups.All these made me realize people really needed a good open source APM project.&lt;/p&gt;
&lt;p&gt;In 2017, I decided to dedicate myself as much as possible to make the project successful, and it became my day job. To be honest, I had no clue about how to do that; at that time in China, it was rare to have this kind of job.
So, I began to ask friends around me, “Do you want to collaborate on the open source APM with me?” Most people were busy and gave a clear &lt;strong&gt;NO&lt;/strong&gt;, but two of them agreed to help: Xin Zhang and Yongsheng Peng. We built SkyWalking 3.x and shared the 3.2 release at GOPS Shanghai, China.&lt;/p&gt;
&lt;p&gt;It became the first adoption version used in production&lt;/p&gt;
&lt;p&gt;Compared to today&amp;rsquo;s SkyWalking, it was a toy prototype, but it had the same tracing design, protocol and analysis method.&lt;/p&gt;
&lt;p&gt;That year the contributor team was 15-20, and the project had obvious potential to expand. I began to consider bringing the project into a worldwide, top-level open source foundation. Thanks to our initial incubator mentors, Michael Semb Wever, William Jiang, and Luke Han, this really worked.
At the end of 2017, SkyWalking joined the Apache Incubator, and kept following the Apache Way to build community. More contributors joined the community.&lt;/p&gt;
&lt;p&gt;With more people spending time on the project collaborations, including codes, tests, blogs, conference talks, books and uses of the project, a chemical reaction happens. New developers begin to provide bug fixes, new feature requirements and new proposals.
At the moment of graduation in spring 2019, the project had 100 contributors. Now, only 9 months later, it’s surged to 200 super quickly. They enhance the project and extend it to frontiers we never imaged: 5 popular language agents, service mesh adoption, CLI tool, super cool visualization. We are even moving on thread profiling, browser performance and Nginx tracing NOW.&lt;/p&gt;
&lt;p&gt;Over the whole 4+ years open source journey, we have had supports from leaders in the tracing open source community around the world, including Adrian Cole, William Jiang, Luke Han, Michael Semb Wever, Ben Sigelman, and Jonah Kowall. And we’ve had critical  foundations&amp;rsquo; help, especially Apache Software Foundation and the Cloud Native Computing Foundation.&lt;/p&gt;
&lt;p&gt;Our contributors also have their support from their employers, including, to the best of my knowledge, Alibaba, Huawei, China Mobile, ke.com, DaoCloud, Lizhi.fm, Yonghui Supermarket, and dangdang.com. I also have support from my employers, &lt;a href=&#34;https://www.tetrate.io/&#34;&gt;tetrate.io&lt;/a&gt;, Huawei, and OneAPM.&lt;/p&gt;
&lt;p&gt;Thanks to our 200+ contributors and the companies behind them. You make this magic happen.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
