PricingDocs

Announcing histogram bar charts

Today we are excited to announce a powerful new charting visualization feature for bitdrift Capture: histogram bar charts. (Yes, a bar chart that visualizes histogram data. Meta, we know.) Bar charts allow you to visualize all percentiles of a histogram metric at once, making it simple to understand high level attributes of a population distribution in a way impossible by looking at charts of individual percentiles on their own.

Histogram bar chart showing the full distribution of network request latencies

Charting in Capture

Since we originally launched synthetic metric capabilities in Capture, we have steadily added new features in response to customer requests, including advanced charting and histograms, unique device tracking, multiple group by, table view, and more. Histogram bar charts provide a new visualization option along with line charts and table charts. Before diving into the specifics of histogram bar charts, let’s recap why Capture synthetic metrics are so powerful. Capture provides the ability to produce synthetic metrics from wide logs. This means that you don’t have to know what metrics you want ahead of time. You simply log everything, and then decide dynamically and in real time what counter, rate, average, and histogram metrics you want to collect. In the world of mobile in which app releases take weeks to be fully deployed, this is a super power if there ever was one.

Histogram bar charts

Capture supports two different core metric types:
  1. Counters: increments on a value. Counters form the basis of our rate and average charts as well. An example of a counter is the number of failing network requests.
  2. Histograms: Instead of counting a value, histograms capture the distribution of a population. An example of a histogram is the latency distribution of network requests.
When discussing histograms, one generally looks at the percentiles (or quantiles) of a histogram. For example, P50 is the median value of the distribution, P99 is the 99th percentile of the distribution, and so on. Capture has long supported the ability to chart a specific set of percentiles over time, as well as see summary percentile data in table form. However, what if you want to look at the entire distribution of values at once? The line chart over time and summary table view just don’t cut it. Enter the bar chart view. Bar charts summarize data over a period of time similar to the table view, but instead of providing a single percentile value, it shows all percentiles at once. Each chart shows:
  1. Each histogram bucket range on the X axis
  2. The count of each bucket on the Y axis
This allows very quickly understanding the shape of the entire distribution. Bell curve? Lopsided? Something more esoteric like “camel humps?” Now it’s easy to tell! Trust is, this is the visualization you don’t know you need until you try it. One important implementation note. Capture histogram data is extremely accurate. We produce dynamic range sketches starting all the way at the individual client, merge samples from hundreds of millions of clients in our metrics pipeline, and then produce compressed histograms with variable width buckets that closely match your data shape. This is a fancy way of saying that we show you unsampled data that is a very, very close approximation of the true percentile across your population. In the mobile observability world (and frankly most of the regular observability world) this is unheard of.

Come and get it

Capture is changing the mobile observability game by adding a control plane and local storage on every mobile device, providing extremely detailed telemetry when you need it, and none when you don’t. If lack of histogram bar charts was keeping you away, now is the time to give us a try! Interested in learning more? Choose your adventure:

Frequently asked questions

What is the difference between a histogram and a percentile chart? A histogram shows the full distribution of values across bucket ranges. A percentile chart shows a single derived value (such as p95) over time. Percentiles summarize distribution; histograms reveal its shape. Isn't "histogram bar chart" redundant? Normally, yes. In this context, no. A histogram, by definition, visualizes the distribution of a metric using bucketed ranges and bar heights that represent counts. In bitdrift Capture, we've long exposed histogram metrics as percentiles (p50, p95, p99). This new view shows the actual bucketed distribution itself: the full shape, not just selected cut points. In other words: same underlying metric, new full-distribution visualization. Why are percentiles not enough for debugging latency issues? Percentiles can hide distribution shape. Two populations can have identical p95 values but very different tail behavior. A histogram exposes skew, bimodal patterns, and long-tail clusters that percentiles alone cannot show. Are Capture histograms sampled? No. Capture produces dynamic range sketches on-device and merges them centrally without traditional sampling. The resulting compressed histograms closely approximate the true distribution across your entire mobile population. How are histogram metrics generated in Capture? Capture generates synthetic histogram metrics from wide logs. You log events once, then dynamically derive counters, rates, averages, and histograms without requiring an app redeploy. When should I use a histogram instead of a counter metric? Use a counter when tracking discrete occurrences (e.g., failed requests). Use a histogram when you care about distribution shape, tail behavior, or performance variability (e.g., latency, cold start time, frame render duration).

Stay in the know, sign up to the bitdrift newsletter.

Author