<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>observability &#8211; Noise</title>
	<atom:link href="https://noise.getoto.net/tag/observability/feed/" rel="self" type="application/rss+xml" />
	<link>https://noise.getoto.net</link>
	<description>The collective thoughts of the interwebz</description>
	<lastBuildDate>Tue, 28 Oct 2025 12:00:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>Announcing Workers automatic tracing, now in open beta</title>
		<link>https://noise.getoto.net/2025/10/28/announcing-workers-automatic-tracing-now-in-open-beta/</link>
		
		<dc:creator><![CDATA[Nevi Shah]]></dc:creator>
		<pubDate>Tue, 28 Oct 2025 12:00:00 +0000</pubDate>
				<category><![CDATA[Cloudflare Workers]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[OpenTelemetry]]></category>
		<category><![CDATA[tracing]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=d6c549033b3cc0d940cc50361d6a90d6</guid>

					<description><![CDATA[Cloudflare Workers' support for automatic tracing is now in open beta! Export traces to any OpenTelemetry-compatible provider for deeper application observability -- no code changes required]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Performance measurements… and the people who love them</title>
		<link>https://noise.getoto.net/2025/05/20/performance-measurements-and-the-people-who-love-them/</link>
		
		<dc:creator><![CDATA[Kevin Guthrie]]></dc:creator>
		<pubDate>Tue, 20 May 2025 13:00:00 +0000</pubDate>
				<category><![CDATA[Internet Performance]]></category>
		<category><![CDATA[Latency]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[TTFB]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=1df39c2f4ecf9ada2b4d8856a64d4f25</guid>

					<description><![CDATA[Developers have a gut-felt understanding for performance, but that intuition breaks down when systems reach Cloudflare’s scale.]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>How Netflix Accurately Attributes eBPF Flow Logs</title>
		<link>https://noise.getoto.net/2025/04/08/how-netflix-accurately-attributes-ebpf-flow-logs/</link>
		
		<dc:creator><![CDATA[Netflix Technology Blog]]></dc:creator>
		<pubDate>Tue, 08 Apr 2025 17:50:58 +0000</pubDate>
				<category><![CDATA[Containers]]></category>
		<category><![CDATA[eBPF]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[observability]]></category>
		<guid isPermaLink="false">https://medium.com/p/afe6d644a3bc</guid>

					<description><![CDATA[By Cheng Xie, Bryan Shultz, and Christine XuIn a previous blog post, we described how Netflix uses eBPF to capture TCP flow logs at scale for enhanced network insights. In this post, we delve deeper into how Netflix solved a core problem: accurately at...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Title Launch Observability at Netflix Scale</title>
		<link>https://noise.getoto.net/2025/03/05/title-launch-observability-at-netflix-scale-3/</link>
		
		<dc:creator><![CDATA[Netflix Technology Blog]]></dc:creator>
		<pubDate>Wed, 05 Mar 2025 01:24:53 +0000</pubDate>
				<category><![CDATA[Netflix]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[system-design-concepts]]></category>
		<guid isPermaLink="false">https://medium.com/p/8efe69ebd653</guid>

					<description><![CDATA[Part 3: System Strategies and ArchitectureBy: Varun KhaitanWith special thanks to my stunning colleagues: Mallika Rao, Esmir Mesic, Hugo MarquesThis blog post is a continuation of Part 2, where we cleared the ambiguity around title launch observability...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Title Launch Observability at Netflix Scale</title>
		<link>https://noise.getoto.net/2025/01/07/title-launch-observability-at-netflix-scale-2/</link>
		
		<dc:creator><![CDATA[Netflix Technology Blog]]></dc:creator>
		<pubDate>Tue, 07 Jan 2025 01:25:58 +0000</pubDate>
				<category><![CDATA[ambiguity]]></category>
		<category><![CDATA[Netflix]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[staff-engineering]]></category>
		<guid isPermaLink="false">https://medium.com/p/19ea916be1ed</guid>

					<description><![CDATA[Part 2: Navigating AmbiguityBy: Varun KhaitanWith special thanks to my stunning colleagues: Mallika Rao, Esmir Mesic, Hugo MarquesBuilding on the foundation laid in Part 1, where we explored the “what” behind the challenges of title launch observabilit...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Title Launch Observability at Netflix Scale</title>
		<link>https://noise.getoto.net/2024/12/17/title-launch-observability-at-netflix-scale/</link>
		
		<dc:creator><![CDATA[Netflix Technology Blog]]></dc:creator>
		<pubDate>Tue, 17 Dec 2024 21:54:37 +0000</pubDate>
				<category><![CDATA[Netflix]]></category>
		<category><![CDATA[observability]]></category>
		<guid isPermaLink="false">https://medium.com/p/c88c586629eb</guid>

					<description><![CDATA[Part 1: Understanding The ChallengesBy: Varun KhaitanWith special thanks to my stunning colleagues: Mallika Rao, Esmir Mesic, Hugo MarquesIntroductionAt Netflix, we manage over a thousand global content launches each month, backed by billions of dollar...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Introducing the AWS Network Firewall CloudWatch Dashboard</title>
		<link>https://noise.getoto.net/2024/12/12/introducing-the-aws-network-firewall-cloudwatch-dashboard/</link>
		
		<dc:creator><![CDATA[Ajinkya Patil]]></dc:creator>
		<pubDate>Thu, 12 Dec 2024 19:04:14 +0000</pubDate>
				<category><![CDATA[Amazon CloudWatch]]></category>
		<category><![CDATA[AWS Network Firewall]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[Monitoring and observability]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Security Blog]]></category>
		<category><![CDATA[Security, Identity & Compliance]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=21c013269b5e5f9efa6dcb80d4e9c5a9</guid>

					<description><![CDATA[Amazon CloudWatch dashboards are customizable pages in the CloudWatch console that you can use to monitor your resources in a single view. This post focuses on deploying a CloudWatch dashboard that you can use to create a customizable monitoring solution for your AWS Network Firewall firewall. It’s designed to provide deeper insights into your firewall’s […]]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Moving Baselime from AWS to Cloudflare: simpler architecture, improved performance, over 80% lower cloud costs</title>
		<link>https://noise.getoto.net/2024/10/31/moving-baselime-from-aws-to-cloudflare-simpler-architecture-improved-performance-over-80-lower-cloud-costs/</link>
		
		<dc:creator><![CDATA[Boris Tane]]></dc:creator>
		<pubDate>Thu, 31 Oct 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[Cloudflare Workers]]></category>
		<category><![CDATA[Developer Platform]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Performance]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=c4ec56fd03719ea207db3834635ba382</guid>

					<description><![CDATA[Post-acquisition, we migrated Baselime from AWS to the Cloudflare Developer Platform and in the process, we improved query times, simplified data ingestion, and now handle far more events, all while cutting costs. Here’s how we built a modern, high-performing observability platform on Cloudflare’s network.]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Noisy Neighbor Detection with eBPF</title>
		<link>https://noise.getoto.net/2024/09/10/noisy-neighbor-detection-with-ebpf/</link>
		
		<dc:creator><![CDATA[Netflix Technology Blog]]></dc:creator>
		<pubDate>Tue, 10 Sep 2024 18:00:21 +0000</pubDate>
				<category><![CDATA[Containers]]></category>
		<category><![CDATA[eBPF]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Performance]]></category>
		<guid isPermaLink="false">https://medium.com/p/64b1f4b3bbdd</guid>

					<description><![CDATA[<p><em>By </em><a href="https://www.linkedin.com/in/josefernandezmn/"><em>Jose Fernandez</em></a><em>, </em><a href="https://www.linkedin.com/in/sebastien-dabdoub-2a5a0958/"><em>Sebastien Dabdoub</em></a><em>, </em><a href="https://www.linkedin.com/in/jason-koch-5692172/"><em>Jason Koch</em></a><em>, </em><a href="https://www.linkedin.com/in/artemtkachuk/"><em>Artem Tkachuk</em></a></p><p>The Compute and Performance Engineering teams at Netflix regularly investigate performance issues in our multi-tenant environment. The first step is determining whether the problem originates from the application or the underlying infrastructure. One issue that often complicates this process is the "noisy neighbor" problem. On <a href="https://netflixtechblog.com/titus-the-netflix-container-management-platform-is-now-open-source-f868c9fb5436">Titus</a>, our multi-tenant compute platform, a "noisy neighbor" refers to a container or system service that heavily utilizes the server's resources, causing performance degradation in adjacent containers. We usually focus on CPU utilization because it is our workload's most frequent source of noisy neighbor issues.</p><p>Detecting the effects of noisy neighbors is complex. Traditional performance analysis tools such as<a href="https://www.brendangregg.com/perf.html"> perf</a> can introduce significant overhead, risking further performance degradation. Additionally, these tools are typically deployed after the fact, which is too late for effective investigation.<em> </em>Another challenge is that debugging noisy neighbor issues requires significant low-level expertise and specialized tooling<em>. </em>In this blog post, we'll reveal how we leveraged eBPF to achieve continuous, low-overhead instrumentation of the Linux scheduler, enabling effective self-serve monitoring of noisy neighbor issues. Learn how Linux kernel instrumentation can improve your infrastructure observability with deeper insights and enhanced monitoring.</p><h3>Continuous Instrumentation of the Linux Scheduler</h3><p>To ensure the reliability of our workloads that depend on low latency responses, we instrumented the <a href="https://en.wikipedia.org/wiki/Run_queue">run queue</a> latency for each container, which measures the time processes spend in the scheduling queue before being dispatched to the CPU. Extended waiting in this queue can be a telltale of performance issues, especially when containers are not utilizing their total CPU allocation. Continuous instrumentation is critical to catching such matters as they emerge, and eBPF, with its hooks into the Linux scheduler with minimal overhead, enabled us to monitor run queue latency efficiently.</p><p>To emit a run queue latency metric, we leveraged three eBPF hooks: <strong>sched_wakeup, sched_wakeup_new,</strong> and <strong>sched_switch</strong>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6bapyclfXZPsUIaXFM-xaQ.png"></figure><p>The <strong>sched_wakeup </strong>and <strong>sched_wakeup_new</strong> hooks are invoked when a process changes state from 'sleeping' to 'runnable.' They let us identify when a process is ready to run and is waiting for CPU time. During this event, we generate a timestamp and store it in an eBPF hash map using the process ID as the key.</p><pre>struct {<br>    __uint(type, BPF_MAP_TYPE_HASH);<br>    __uint(max_entries, MAX_TASK_ENTRIES);<br>    __uint(key_size, sizeof(u32));<br>    __uint(value_size, sizeof(u64));<br>} runq_lat SEC(".maps");<br><br>SEC("tp_btf/sched_wakeup")<br>int tp_sched_wakeup(u64 *ctx)<br>{<br>    struct task_struct *task = (void *)ctx[0];<br>    u32 pid = task-&#62;pid;<br>    u64 ts = bpf_ktime_get_ns();<br><br>    bpf_map_update_elem(&#38;runq_lat, &#38;pid, &#38;ts, BPF_NOEXIST);<br>    return 0;<br>}</pre><p>Conversely, the <strong>sched_switch</strong> hook is triggered when the CPU switches between processes. This hook provides pointers to the process currently utilizing the CPU and the process about to take over. We use the upcoming task's process ID (PID) to fetch the timestamp from the eBPF map. This timestamp represents when the process entered the queue, which we had previously stored. We then calculate the run queue latency by simply subtracting the timestamps.</p><pre>SEC("tp_btf/sched_switch")<br>int tp_sched_switch(u64 *ctx)<br>{<br>    struct task_struct *prev = (struct task_struct *)ctx[1];<br>    struct task_struct *next = (struct task_struct *)ctx[2];<br>    u32 prev_pid = prev-&#62;pid;<br>    u32 next_pid = next-&#62;pid;<br> <br>    // fetch timestamp of when the next task was enqueued<br>    u64 *tsp = bpf_map_lookup_elem(&#38;runq_lat, &#38;next_pid);<br>    if (tsp == NULL) {<br>        return 0; // missed enqueue<br>    }<br><br>    // calculate runq latency before deleting the stored timestamp<br>    u64 now = bpf_ktime_get_ns();<br>    u64 runq_lat = now - *tsp;<br><br>    // delete pid from enqueued map<br>    bpf_map_delete_elem(&#38;runq_lat, &#38;next_pid);<br>    ....</pre><p>One of the advantages of eBPF is its ability to provide pointers to the actual kernel data structures representing processes or threads, also known as tasks in kernel terminology. This feature enables access to a wealth of information stored about a process. We required the process's cgroup ID to associate it with a container for our specific use case. However, the cgroup information in the struct is safeguarded by an<a href="https://elixir.bootlin.com/linux/v6.6.16/source/include/linux/sched.h#L1225"> RCU (Read Copy Update) lock</a>.</p><p>To safely access this RCU-protected information, we can leverage <a href="https://docs.kernel.org/bpf/kfuncs.html">kfuncs</a> in eBPF. kfuncs are kernel functions that can be called from eBPF programs. There are kfuncs available to lock and unlock RCU read-side critical sections. These functions ensure that our eBPF program remains safe and efficient while retrieving the cgroup ID from the task struct.</p><pre>void bpf_rcu_read_lock(void) __ksym;<br>void bpf_rcu_read_unlock(void) __ksym;<br><br>u64 get_task_cgroup_id(struct task_struct *task)<br>{<br>    struct css_set *cgroups;<br>    u64 cgroup_id;<br>    bpf_rcu_read_lock();<br>    cgroups = task-&#62;cgroups;<br>    cgroup_id = cgroups-&#62;dfl_cgrp-&#62;kn-&#62;id;<br>    bpf_rcu_read_unlock();<br>    return cgroup_id;<br>}</pre><p>Having the data ready, we must package it and send it to userspace. For this purpose, we chose the eBPF <a href="https://nakryiko.com/posts/bpf-ringbuf/">ring buffer</a>. It is efficient, high-performing, and user-friendly. It can handle variable-length data records and allows data reading without necessitating extra memory copying or syscalls. However, the sheer amount of data points was causing the userspace program to use too much CPU, so we implemented a rate limiter in eBPF to sample the data effectively.</p><pre>struct {<br>    __uint(type, BPF_MAP_TYPE_RINGBUF);<br>    __uint(max_entries, 256 * 1024);<br>} events SEC(".maps");<br><br>struct {<br>    __uint(type, BPF_MAP_TYPE_PERCPU_HASH);<br>    __uint(max_entries, MAX_TASK_ENTRIES);<br>    __uint(key_size, sizeof(u64));<br>    __uint(value_size, sizeof(u64));<br>} cgroup_id_to_last_event_ts SEC(".maps");<br><br>struct runq_event {<br>    u64 prev_cgroup_id;<br>    u64 cgroup_id;<br>    u64 runq_lat;<br>    u64 ts;<br>};<br><br>SEC("tp_btf/sched_switch")<br>int tp_sched_switch(u64 *ctx)<br>{<br>    // ....<br>    // The previous code<br>    // ....<br> <br>    u64 prev_cgroup_id = get_task_cgroup_id(prev);<br>    u64 cgroup_id = get_task_cgroup_id(next);<br> <br>    // per-cgroup-id-per-CPU rate-limiting <br>    // to balance observability with performance overhead<br>    u64 *last_ts = <br>        bpf_map_lookup_elem(&#38;cgroup_id_to_last_event_ts, &#38;cgroup_id);<br>    u64 last_ts_val = last_ts == NULL ? 0 : *last_ts;<br><br>    // check the rate limit for the cgroup_id in consideration<br>    // before doing more work<br>    if (now - last_ts_val &#60; RATE_LIMIT_NS) {<br>        // Rate limit exceeded, drop the event<br>        return 0;<br>    }<br><br>    struct runq_event *event;<br>    event = bpf_ringbuf_reserve(&#38;events, sizeof(*event), 0);<br>  <br>    if (event) {<br>        event-&#62;prev_cgroup_id = prev_cgroup_id;<br>        event-&#62;cgroup_id = cgroup_id;<br>        event-&#62;runq_lat = runq_lat;<br>        event-&#62;ts = now;<br>        bpf_ringbuf_submit(event, 0);<br>        // Update the last event timestamp for the current cgroup_id<br>        bpf_map_update_elem(&#38;cgroup_id_to_last_event_ts, &#38;cgroup_id,<br>            &#38;now, BPF_ANY);<br><br>    }<br><br>    return 0;<br>}</pre><p>Our userspace application, developed in Go, processes events from the ring buffer to emit metrics to our metrics backend, <a href="https://netflixtechblog.com/introducing-atlas-netflixs-primary-telemetry-platform-bd31f4d8ed9a">Atlas</a>. Each event includes a run queue latency sample with a cgroup ID, which we associate with running containers on the host. We categorize it as a system service if no such association is found. When a cgroup ID correlates with a container, we emit a percentile timer Atlas metric (runq.latency) for that container. We also increment a counter metric (sched.switch.out) to monitor preemptions occurring for the container's processes. Access to the prev_cgroup_id of the preempted process allows us to tag the metric with the cause of the preemption, whether it's due to a process within the same container (or cgroup), a process in another container, or a system service.</p><p>It's important to highlight that both the runq.latency metric and the sched.switch.out metrics are needed to determine if a container is affected by noisy neighbors, which is the goal we aim to achieve — relying solely on the runq.latency metric can lead to misconceptions. For example, if a container is at or over its cgroup CPU limit, the scheduler will throttle it, resulting in an apparent spike in run queue latency due to delays in the queue. If we were only to consider this metric, we might incorrectly attribute the performance degradation to noisy neighbors when it's actually because the container is hitting its CPU request limits. However, simultaneous spikes in both metrics, mainly when the cause is a different container or system process, clearly indicate a noisy neighbor issue.</p><h3>A Noisy Neighbor Story</h3><p>Below is the runq.latency metric for a server running a single container with ample CPU overhead. The 99th percentile averages 83.4µs (microseconds), serving as our baseline. Although there are some spikes reaching 400µs, the latency remains within acceptable parameters.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_DcYxRgeDwX5i07IrdTZyA.png"><figcaption>container1’s 99th percentile runq.latency averages 83µs (microseconds), with spikes up to 400µs, without adjacent containers. This serves as our baseline for a container not contending for CPU on a host.</figcaption></figure><p>At 10:35, launching container2, which fully utilized all CPUs on the host, caused a significant 131-millisecond spike (131,000 microseconds) in container1's P99 run queue latency. This spike would be noticeable in the userspace application if it were serving HTTP traffic. If userspace app owners reported an unexplained latency spike, we could quickly identify the noisy neighbor issue through run queue latency metrics.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DJrwEbrWPOxVMS0JP7uE9A.png"><figcaption>Launching container2 at 10:35, which maxes out all CPUs on the host, <strong>caused a 131-millisecond spike in container1’s P99 run queue latency</strong> due to increased preemptions by system processes. This indicates a noisy neighbor issue, where system services compete for CPU time with containers.</figcaption></figure><p>The sched.switch.out metric indicates that the spike was due to increased preemptions by system processes, highlighting a noisy neighbor issue where system services compete with containers for CPU time. Our metrics show that the noisy neighbors were actually system processes, likely triggered by container2 consuming all available CPU capacity.</p><h3>Optimizing eBPF Code</h3><p>We developed an open-source eBPF process monitor called <a href="https://netflixtechblog.com/announcing-bpftop-streamlining-ebpf-performance-optimization-6a727c1ae2e5">bpftop</a> to measure the overhead of eBPF code in this hot kernel path. Our estimates suggest that the instrumentation adds less than 600 nanoseconds to each sched_* hook. We conducted a performance analysis on a Java service running in a container, and the instrumentation did not introduce significant overhead. The performance variance with the run queue profiling code active versus inactive was not measurable in milliseconds.</p><p>During our research on how eBPF statistics are measured in the kernel, we identified an opportunity to improve its calculation. We submitted this <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ce09cbdd988887662546a1175bcfdfc6c8fdd150">patch</a>, which was included in the Linux kernel 6.10 release.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YD6hkXce9a70AgvSHstgWA.gif"></figure><p>Through trial and error and using bpftop, we identified several optimizations that helped maintain low overhead for this code:</p><ul><li>We found that BPF_MAP_TYPE_HASH was the most performant for storing enqueued timestamps. Using BPF_MAP_TYPE_TASK_STORAGE resulted in nearly a twofold performance decline. BPF_MAP_TYPE_PERCPU_HASH was slightly less performant than BPF_MAP_TYPE_HASH, which was unexpected and requires further investigation.</li><li>The BPF_CORE_READ helper adds 20–30 nanoseconds per invocation. In the case of raw tracepoints, specifically those that are "BTF-enabled" (tp_btf/*), it is safe and more efficient to access the task struct members directly. Andrii Nakryiko recommends this approach in this <a href="https://nakryiko.com/posts/bpf-core-reference-guide/#btf-enabled-bpf-program-types-with-direct-memory-reads">blog post</a>.</li><li>BPF_MAP_TYPE_LRU_HASH maps are 40–50 nanoseconds slower per operation than regular hash maps. Due to space concerns from PID churn, we initially used them for enqueued timestamps. We have since increased the map size, mitigating this risk.</li><li>The sched_switch, sched_wakeup, and sched_wakeup_new are all triggered for kernel tasks, which are identifiable by their PID of 0. We found monitoring these tasks unnecessary, so we implemented several early exit conditions and conditional logic to prevent executing costly operations, such as accessing BPF maps, when dealing with a kernel task. Notably, kernel tasks operate through the scheduler queue like any regular process.</li></ul><h3>Conclusion</h3><p>Our findings highlight the value of low-overhead continuous instrumentation of the Linux kernel with eBPF. We have integrated these metrics into customer dashboards, enabling actionable insights and guiding multitenancy performance discussions. We can also now use these metrics to refine CPU isolation strategies to minimize the impact of noisy neighbors. Additionally, thanks to these metrics, we've gained deeper insights into the Linux scheduler.</p><p>This project has also deepened our understanding of eBPF technology and underscored the importance of tools like bpftop for optimizing eBPF code. As eBPF adoption increases, we foresee more infrastructure observability and business logic shifting to it. One promising project in this space is <a href="https://github.com/sched-ext/scx">sched_ext</a>, potentially revolutionizing how scheduling decisions are made and tailored to specific workload needs.</p><img src="https://medium.com/_/stat?event=post.clientViewed&#38;referrerSource=full_rss&#38;postId=64b1f4b3bbdd" width="1" height="1" alt=""><hr><p><a href="https://netflixtechblog.com/noisy-neighbor-detection-with-ebpf-64b1f4b3bbdd">Noisy Neighbor Detection with eBPF</a> was originally published in <a href="https://netflixtechblog.com/">Netflix TechBlog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Adopting OpenTelemetry for our logging pipeline</title>
		<link>https://noise.getoto.net/2024/06/03/adopting-opentelemetry-for-our-logging-pipeline/</link>
		
		<dc:creator><![CDATA[Colin Douch]]></dc:creator>
		<pubDate>Mon, 03 Jun 2024 13:00:41 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[observability]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=561bffdef2f50b46518d21f223603880</guid>

					<description><![CDATA[Recently, Cloudflare's Observability team undertook an effort to migrate our existing syslog-ng backed logging infrastructure to instead being backed by OpenTelemetry Collectors. In this post, we detail the process that we undertook, and the difficulties we faced along the way]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Reclaiming CPU for free with PGO</title>
		<link>https://noise.getoto.net/2024/05/14/reclaiming-cpu-for-free-with-pgo/</link>
		
		<dc:creator><![CDATA[Colin Douch]]></dc:creator>
		<pubDate>Tue, 14 May 2024 13:00:32 +0000</pubDate>
				<category><![CDATA[observability]]></category>
		<category><![CDATA[Performance]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=32ffbd7298b757b93d96e60feea8ee1b</guid>

					<description><![CDATA[Golang 1.20 introduced support for Profile Guided Optimization (PGO) to the go compiler. This post covers the process we created for experimenting with PGO at Cloudflare, and measuring the CPU savings]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Cloudflare acquires Baselime to expand serverless application observability capabilities</title>
		<link>https://noise.getoto.net/2024/04/05/cloudflare-acquires-baselime-to-expand-serverless-application-observability-capabilities/</link>
		
		<dc:creator><![CDATA[Boris Tane]]></dc:creator>
		<pubDate>Fri, 05 Apr 2024 15:45:56 +0000</pubDate>
				<category><![CDATA[Acquisitions]]></category>
		<category><![CDATA[Cloudflare Workers]]></category>
		<category><![CDATA[Developer Platform]]></category>
		<category><![CDATA[Developer Week]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Product News]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=ed502558dd6859e318e4a1751654cdd3</guid>

					<description><![CDATA[Today, we’re thrilled to announce that Cloudflare has acquired Baselime, a serverless observability company]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>New tools for production safety — Gradual deployments, Source maps, Rate Limiting, and new SDKs</title>
		<link>https://noise.getoto.net/2024/04/04/providing-developers-with-new-tools-for-production-safety/</link>
		
		<dc:creator><![CDATA[Tanushree Sharma]]></dc:creator>
		<pubDate>Thu, 04 Apr 2024 13:00:55 +0000</pubDate>
				<category><![CDATA[Cloudflare Workers]]></category>
		<category><![CDATA[Developer Week]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Rate-limiting]]></category>
		<category><![CDATA[SDK]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=2c1704dd8fd6f21b857a447cf2b21d92</guid>

					<description><![CDATA[Today we are announcing five updates that put more power in your hands – Gradual Deployments, Source mapped stack traces in Tail Workers, a new Rate Limiting API, brand-new API SDKs, and updates to Durable Objects – each built with mission-critical production services in mind]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Minimizing on-call burnout through alerts observability</title>
		<link>https://noise.getoto.net/2024/03/29/minimizing-on-call-burnout-through-alerts-observability/</link>
		
		<dc:creator><![CDATA[Monika Singh]]></dc:creator>
		<pubDate>Fri, 29 Mar 2024 13:00:36 +0000</pubDate>
				<category><![CDATA[Alertmanager]]></category>
		<category><![CDATA[Developer Platform]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Prometheus]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=630d630151df087a68d0a9b4213da06b</guid>

					<description><![CDATA[Learn how Cloudflare used open-source tools to enhance alert observability, leading to increased resilience and improved on-call team well-being.]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Announcing bpftop: Streamlining eBPF performance optimization</title>
		<link>https://noise.getoto.net/2024/02/26/announcing-bpftop-streamlining-ebpf-performance-optimization/</link>
		
		<dc:creator><![CDATA[Netflix Technology Blog]]></dc:creator>
		<pubDate>Mon, 26 Feb 2024 16:43:30 +0000</pubDate>
				<category><![CDATA[eBPF]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Rust]]></category>
		<guid isPermaLink="false">https://medium.com/p/6a727c1ae2e5</guid>

					<description><![CDATA[By Jose FernandezToday, we are thrilled to announce the release of bpftop, a command-line tool designed to streamline the performance optimization and monitoring of eBPF applications. As Netflix increasingly adopts eBPF [1, 2], applying the same rigor ...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Introducing Foundations &#8211; our open source Rust service foundation library</title>
		<link>https://noise.getoto.net/2024/01/24/introducing-foundations-our-open-source-rust-service-foundation-library/</link>
		
		<dc:creator><![CDATA[Ivan Nikulin http://blog.cloudflare.com/author/ivan-nikulin/]]></dc:creator>
		<pubDate>Wed, 24 Jan 2024 14:00:17 +0000</pubDate>
				<category><![CDATA[observability]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Oxy]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Service]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=c6f80cc603f0efd780c228074320e6a1</guid>

					<description><![CDATA[Foundations is a foundational Rust library, designed to help scale programs for distributed, production-grade systems]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>An overview of Cloudflare&#8217;s logging pipeline</title>
		<link>https://noise.getoto.net/2024/01/08/an-overview-of-cloudflares-logging-pipeline/</link>
		
		<dc:creator><![CDATA[Colin Douch http://blog.cloudflare.com/author/colin/]]></dc:creator>
		<pubDate>Mon, 08 Jan 2024 14:00:21 +0000</pubDate>
				<category><![CDATA[Logs]]></category>
		<category><![CDATA[observability]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=f4897188cd7b685a1f3580132f65051c</guid>

					<description><![CDATA[In this post, we’re going to go over what that looks like, how we achieve high availability, and how we meet our Service Level Objectives (SLOs) while shipping close to a million log lines per second]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Cloudflare Integrations Marketplace introduces three new partners: Sentry, Momento and Turso</title>
		<link>https://noise.getoto.net/2023/09/28/cloudflare-integrations-marketplace-introduces-three-new-partners-sentry-momento-and-turso/</link>
		
		<dc:creator><![CDATA[Tanushree Sharma]]></dc:creator>
		<pubDate>Thu, 28 Sep 2023 13:00:36 +0000</pubDate>
				<category><![CDATA[Birthday Week]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Cloudflare Workers]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[Edge Database]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Partners]]></category>
		<category><![CDATA[Product News]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=5e59c3daec313900faff8dbc6d09953a</guid>

					<description><![CDATA[Earlier this year, we introduced integrations with Supabase, PlanetScale, Neon and Upstash. Today, we are thrilled to introduce our newest additions to Cloudflare’s Integrations Marketplace – Sentry, Turso and Momento]]></description>
		
		
		<enclosure url="http://blog.cloudflare.com/content/images/2023/09/Integration-Marketplace-1.png" length="0" type="" />

			</item>
		<item>
		<title>Directing ML-powered Operational Insights from Amazon DevOps Guru to your Datadog event stream</title>
		<link>https://noise.getoto.net/2023/07/13/directing-ml-powered-operational-insights-from-amazon-devops-guru-to-your-datadog-event-stream/</link>
		
		<dc:creator><![CDATA[Bineesh Ravindran]]></dc:creator>
		<pubDate>Thu, 13 Jul 2023 11:43:36 +0000</pubDate>
				<category><![CDATA[AI/ML]]></category>
		<category><![CDATA[AIOps]]></category>
		<category><![CDATA[Amazon DevOps Guru]]></category>
		<category><![CDATA[Amazon Machine Learning]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[AWS CLI]]></category>
		<category><![CDATA[AWS Serverless Application Model (SAM)]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[Integration & Automation]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=d38fa69e1c787985bfceec0104963473</guid>

					<description><![CDATA[Amazon DevOps Guru is a fully managed AIOps service that uses machine learning (ML) to quickly identify when applications are behaving outside of their normal operating patterns and generates insights from its findings. These insights generated by DevOps Guru can be used to alert on-call teams to react to anomalies for business mission critical workloads. […]]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Integrating DevOps Guru Insights with CloudWatch Dashboard</title>
		<link>https://noise.getoto.net/2023/05/04/integrating-devops-guru-insights-with-cloudwatch-dashboard/</link>
		
		<dc:creator><![CDATA[Suresh Babu]]></dc:creator>
		<pubDate>Wed, 03 May 2023 21:31:48 +0000</pubDate>
				<category><![CDATA[Amazon CloudWatch]]></category>
		<category><![CDATA[Amazon DevOps Guru]]></category>
		<category><![CDATA[Customer Solutions]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[DevOps Guru]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[observability]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=fa9d10a4c88c7a8005626812792da486</guid>

					<description><![CDATA[Many customers use Amazon CloudWatch dashboards to monitor applications and often ask how they can integrate Amazon DevOps Guru Insights in order to have a unified dashboard for monitoring.  This blog post showcases integrating DevOps Guru proactive and reactive insights to a CloudWatch dashboard by using Custom Widgets. It can help you to correlate trends […]]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Object Caching 77/375 objects using Memcached
Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Database Caching using Memcached

Served from: noise.getoto.net @ 2025-12-08 09:30:03 by W3 Total Cache
-->