# Measuring Capacity Through Utilization

DevFeed: [Measuring Capacity Through Utilization](<https://devfeed.tech/articles/measuring-capacity-through-utilization-21976.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/post/utilization/>)

Author: Nelson Elhage

Published: 2017-01-08T20:09:09Z

Content type: article

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [telemetry](<https://devfeed.tech/topics/telemetry.md>), [Database](<https://devfeed.tech/topics/database.md>), [Process](<https://devfeed.tech/topics/process.md>)

Tags: [capacity](<https://devfeed.tech/tags/capacity.md>), [database](<https://devfeed.tech/tags/database.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [metric](<https://devfeed.tech/tags/metric.md>), [performance](<https://devfeed.tech/tags/performance.md>), [workers](<https://devfeed.tech/tags/workers.md>)

## AI overview

The article introduces "time utilization" as a way to instrument systems by measuring the fraction of a thread or worker's time spent in each kind of work. Using a distributed asynchronous job that reads from a queue and updates a database, it explains how normalized operation-time metrics can reveal whether workers are waiting on the database, idle, or approaching capacity.

## Source excerpt

(This post is cross-posted from Honeycomb's instrumentation series). One of my favorite concepts when thinking about instrumenting a system to understand its overall performance and capacity is what I call "time utilization". By this I mean: If you look at the behavior of a thread over some window of time, what fraction of its time is spent in each "kind" of work that it does? Let's make this notion concrete by examining a toy example.