1
Q

whisper

A

DB library storing time-series numeric data w/ create, update, fetch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

carbon-cache

A

backend to store data points for metrics provided by clients

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

front-end webapp

A

renders graphs and provides bsic UI, custom graphs via URL params

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

metrics

A

unique name, with dot-separated hierarchy, e.g. servers.www01.cpuUsage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

data point

A

(timestamp, value) pair corresponding to the measured value of a metric

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Problem: Users’ dashboards w/ identical requests are pinning the CPU

A
  • Render once & cache in memcached with even a few seconds expiry reduces burden significantly
  • Cache underlying data so there’s less processing when a user tweaks and redraws graph
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Problem: Volume of file writes exceeds ability of storage

A
  • Seek time is the major bottleneck, even for whisper files 12 bytes in size, so write files contiguously to disk in a single write
  • buffering queues added to carbon based on metric name
  • adds resiliency to handle temp I/O slowdowns
  • queues simply grow if system must perform other I/O work (as long as there is sufficient memory to hold the queues)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Problem:

Volume of queued data waiting for disk is noticeable to users who don’t see real-time data

A
  • Added a socket listener to carbon to retrieve buffered data
  • Webapp combines buffer + disk data and renders real-time graphs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Problem:

When kernel runs out of memory, writes become synchronous, which slows writes, grows queues, and everything screams

A
  • Configurable limits on carbon: how big of queues, whisper rate limits
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

clustering

A
  • find function was extended to be able to make remote HTTP calls to other graphite servers
  • fetch for remote data also made available
  • remote calls are the same as a client would call, except includes a param specifying that the operation should only be local & not redistributed throughout the cluster
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

efficiency

A

memcached the results of find requests

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

distribution

A

carbon-relay applies rules to determine which server to send metrics to

How well did you know this?
1
Not at all
2
3
4
5
Perfectly