DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
VGSources
Blog

How to Install and Use Graphite on an Ubuntu Server

Install and verify Graphite on Ubuntu Server with APT or the /opt/graphite source layout. Configure Carbon, choose Whisper retention before creating metrics, send a plaintext test metric, and troubleshoot empty graphs.
Length11 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Graphite on Ubuntu is a three-part stack: Graphite-web supplies the dashboard and render API, Carbon receives and caches metrics, and Whisper stores them in fixed-size time-series files. For a small server, the practical installation is to use Ubuntu packages, configure Carbon’s retention rules before creating metrics, send a test line to port 2003, and verify the result through Graphite-web’s /render endpoint.

Package availability is release-specific. Ubuntu’s package index lists graphite-carbon 1.1.7-1.1 for Ubuntu 24.04 LTS (Noble) and graphite-web 1.1.8-1ubuntu0.22.04.1 for Ubuntu 22.04 (Jammy), with those pages crawled a few weeks before this article was prepared. Check your exact Ubuntu release and candidate versions before installing.

As an Amazon Associate I earn from qualifying purchases.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What Graphite does and how the pieces fit

Graphite is self-hosted monitoring software for numeric time-series data. Applications or agents send a metric name, value, and timestamp to Carbon. Carbon keeps incoming values in memory, writes them to Whisper files, and makes them available to Graphite-web. Graphite-web renders charts or returns raw data through an HTTP API.

  • Graphite-web: the web interface and the /render API.
  • Carbon: the receiver, cache, relay, and aggregation layer. A small deployment normally starts with one cache process.
  • Whisper: fixed-size files containing the archives for each metric.
  • Ceres: another Graphite component documented by the project, but not required for the basic Ubuntu package installation described here.

A metric is not an arbitrary database row. When Carbon first creates a metric’s .wsp file, Whisper applies one storage-schema rule and allocates archives from that rule. That design makes predictable disk use possible, but it also means retention must be chosen before the metric is first written.

#1 Best Overall
Sale
Gaoye Blue Light Blocking Glasses
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.

Choose packages or a source installation

Ubuntu packages: the maintainable default

APT is the simplest route on an Ubuntu server. It follows the distribution’s dependency and service conventions, receives ordinary system updates, and is easier to inventory later. The trade-off is that package versions and file locations depend on the Ubuntu release; do not assume that a guide written for Jammy applies unchanged to Noble or another release.

Source installation: layout and version control

The official source route installs Graphite-web, Carbon, Whisper, and, where used, Ceres from project source. Its documented default prefix is /opt/graphite/: Carbon configuration and storage live below that prefix, while Graphite-web code is in its web application directory. Source installation gives you control over the project version and layout, but you must handle Python dependencies, upgrades, service definitions, permissions, and web-server integration yourself.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For either route, record the Ubuntu release, the Graphite package or source versions, the Whisper directory, and the schema file used. That record is invaluable when an upgrade changes a package path or when you need to reproduce a server.

Check the Ubuntu release and package candidates

Before changing the server, identify the release and ask APT which versions are actually available:

cat /etc/os-release
sudo apt update
apt-cache policy graphite-carbon graphite-web python3-whisper

Ubuntu’s package pages show graphite-carbon for Noble and graphite-web for Jammy, but repositories, pockets, and package revisions can change. If APT reports no candidate, confirm the release’s enabled repositories and use the package name shown by that release rather than copying a version number from another Ubuntu edition.

Install Graphite with APT

  1. Refresh metadata. Run sudo apt update and resolve any repository or signature errors before continuing.
  2. Install the stack. On releases that provide these packages, run:
sudo apt install graphite-carbon graphite-web python3-whisper

python3-whisper is listed as a dependency or related package in Ubuntu’s package information. APT may install additional Python, database, or web-server dependencies. Read the transaction summary and keep the package list in your server change record.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Find the installed configuration files. Package layouts vary, so use the package database instead of guessing:
dpkg -L graphite-carbon | grep -E 'carbon.conf|storage-schemas.conf'
dpkg -L graphite-web | grep -E 'local_settings.py|manage.py|static'
  1. Identify the service units. Use systemctl list-unit-files | grep -Ei 'carbon|graphite'. The unit may be named for Carbon’s cache process or may be split into multiple units by the distribution package. Enable and start the unit that owns the cache receiver after its configuration is ready.

Do not expose Graphite-web publicly until you have set the correct storage path, created an administrator account if your deployment requires one, and placed the web application behind your chosen web server. A private interface or firewall rule is preferable for Carbon receivers that are only used by hosts on an internal network.

Rank #2
Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
  • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
  • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
  • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
  • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
  • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed

Configure Carbon before sending any metrics

Locate carbon.conf and the cache section

Carbon’s main configuration is carbon.conf. In a package installation it is commonly under an operating-system configuration directory; in the source layout it is under /opt/graphite/conf/. Use the path returned by dpkg -L or the source installation’s documented layout.

The [cache] section controls receiver behavior. Confirm the interface and ports that the process should listen on, the destination for Whisper data, and the log and queue settings supplied by your package or source version. The normal Carbon plaintext receiver is TCP port 2003. Carbon also supports a pickle receiver; use the port shown in your carbon.conf rather than assuming a value from a different release.

Understand plaintext and pickle input

The plaintext protocol is the most straightforward protocol supported by Carbon. Each line contains three fields:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
metric_path value timestamp

For example, test.bash.stats 42 1710000000 records the value 42 at the supplied Unix timestamp. A timestamp of -1 tells Carbon to use arrival time. Pickle input can batch metrics and is more efficient for larger senders, but plaintext is easier to inspect while troubleshooting.

Use a stable namespace

Choose names that describe ownership and location without changing from one deployment to the next. Graphite documentation uses a pattern such as servers.HOSTNAME.METRIC. You might use servers.game01.tick_rate, servers.game01.memory_used, or servers.game01.players_online. Keep names lowercase and consistent, and avoid putting a changing value such as a process ID into a path intended for long-term charts.

Set Whisper retention with storage-schemas.conf

Why the order of rules matters

Storage-schema rules use regular expressions and are evaluated from top to bottom. The first pattern that matches the metric name is used. Put specific application or host rules above a broad fallback rule. If a catch-all expression appears first, every later rule is unreachable for matching metrics.

Edit storage-schemas.conf before sending a new metric. A schema is consulted when Carbon creates that metric’s Whisper file; changing the text later does not automatically resize or rewrite existing .wsp files.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men
  • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
  • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
  • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
  • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
  • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)

A practical two-tier policy

The following is an example policy, not a universal default. It keeps one-minute points for six hours, five-minute points for seven days, and hourly points for one year. Adjust it to the questions your monitoring system must answer and the disk capacity you have:

[servers_recent]
pattern = ^servers..*
retentions = 1m:6h,5m:7d,1h:1y

[default]
pattern = .*
retentions = 5m:30d,1h:1y

The first line in retentions is the finest archive. Every archive has a fixed number of points, so increasing precision or history increases disk consumption. A short high-resolution tier is useful for recent incident investigation; a coarser tier answers long-term trend questions at much lower storage cost.

Changing an existing metric’s retention

Editing the schema affects new Whisper files, not files that already exist. To change an existing metric, plan a migration: preserve or export the old data, stop or isolate writers as appropriate, remove or move the old .wsp file only when you accept the data consequences, then allow Carbon to create it under the new matching rule. Test this procedure on a non-critical metric first.

Start Carbon and check its listener

  1. Validate the edited configuration using the validation or foreground mode documented by your installed Carbon package, if available.
  2. Restart or start the cache service identified with systemctl list-unit-files.
  3. Inspect recent service messages:
sudo systemctl status carbon-cache
sudo journalctl -u carbon-cache -n 100 --no-pager

If your distribution uses a different unit name, substitute it for carbon-cache. A healthy process should bind the configured receiver interface and port without a permission, path, or schema parse error. Check the listening socket with a tool available on your system, such as ss -ltnp, and verify that port 2003 is reachable only from intended senders.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Send a first test metric

Use netcat and the current timestamp

Install a netcat implementation if it is not already present, then send one line to the local Carbon receiver:

printf 'test.bash.stats 42 %sn' "$(date +%s)" | nc -w 2 127.0.0.1 2003

The equivalent form shown in Graphite’s documentation is:

echo "test.bash.stats 42 `date +%s`" | nc graphite.example.com 2003

Replace the host with the Carbon server’s address when the sender is remote. The newline is significant: Carbon processes the complete line after it arrives. Send a few values over several minutes if you want a visible line rather than a single point.

Rank #4
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC

Test a production-style name

Once the smoke test works, send a metric in the namespace you intend to retain:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
printf 'servers.game01.players_online 12 %sn' "$(date +%s)" | nc -w 2 127.0.0.1 2003

Check that the name matches the intended regular expression in storage-schemas.conf. The metric path, not the sender’s hostname or the dashboard label, determines which first-match schema Carbon applies.

Configure Graphite-web and its storage paths

Point Graphite-web at the same Whisper directory

Graphite-web’s local settings define the Whisper directory, log directory, index file, and other deployment-specific values. The source layout places web code below /opt/graphite/webapp/; package installations can use distribution-specific locations. Open the local_settings.py found through the package database and make sure WHISPER_DIR points to the directory where Carbon writes the .wsp files.

A mismatch produces a particularly confusing failure: Carbon appears healthy and creates files, but the web interface shows no metrics because it is searching another directory. The same user or group must have the access required to read Whisper data, write logs, and update the index where your configuration expects one.

Collect static files

Graphite-web’s administration instructions include a static-file collection step. In a source installation, run the project’s management command from the web application directory, using the web application’s Python environment and the account that owns the deployment:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
cd /opt/graphite/webapp
python manage.py collectstatic --noinput

The exact command or interpreter can differ for a packaged installation. Use the manage.py and static directory supplied by that installation, then configure the selected web server to serve the generated static directory.

Expose the application through a web server

Ubuntu Apache deployments commonly place a virtual-host definition in /etc/apache2/sites-available/ and enable it through /etc/apache2/sites-enabled/. Whether you use Apache or another WSGI-capable server, connect it to the Graphite-web application, serve the collected static files, and reload the server only after its configuration passes validation. Keep the Graphite endpoint behind authentication, a private network, or a reverse proxy policy appropriate to your environment.

Best Value
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Verify data through the /render API

Graphite-web provides a /render endpoint for generating graphs and retrieving raw data. A target names a metric or wildcard expression; from and until select the time range. Ask for JSON while testing:

curl -G 'http://127.0.0.1/render' 
  --data-urlencode 'target=test.bash.stats' 
  --data-urlencode 'from=-10minutes' 
  --data-urlencode 'format=json'

A successful response contains the target and a series of timestamped values. You can request an image instead by omitting the raw format or selecting the image format used by your Graphite-web version. For a browser check, open the same endpoint through the web server’s address and confirm that the chart contains the point you sent.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Diagnose an empty graph

Symptom Likely cause What to check
Connection refused on port 2003 Carbon is stopped, listening on another interface, or blocked by a firewall. Inspect the Carbon unit status and journal, then compare its configured receiver interface and port with ss -ltnp.
The sender returns but no file appears The line was malformed, the newline was missing, or Carbon cannot write its storage directory. Send the three-field format exactly, inspect Carbon logs, and check ownership and permissions on the Whisper path.
A .wsp file exists but the API is empty Graphite-web is reading a different directory or the requested time range excludes the timestamp. Compare WHISPER_DIR with Carbon’s storage path and query a window that includes the supplied Unix timestamp.
New data has an unexpected resolution An earlier regular expression matched first. Read storage-schemas.conf from the top down and move the specific rule above the fallback.
Old data did not gain the new retention Whisper archives are fixed when the file is created. Plan a deliberate file migration; changing the schema text alone is not retroactive.
Page loads without styling Static files were not collected or the web server is serving the wrong directory. Run the installation’s collectstatic step and check the enabled site configuration and static-file path.

Permissions, disk use, and basic operations

Make the writer and reader agree

Carbon needs write access to Whisper data, its queues, and its logs. Graphite-web needs read access to the Whisper directory and write access to the log or index locations specified in its local settings. Determine the service accounts used by your package or WSGI server, then assign ownership or group permissions deliberately rather than making the entire tree world-writable.

Watch storage growth

Whisper’s fixed archives make growth predictable from the retention policy and the number of metric files. Inventory the number of active metric paths, estimate the archive sizes for each schema, and leave headroom for operating-system and log files. A policy that keeps seconds-level data for every host indefinitely can exhaust a small VPS even when the individual files look modest.

Back up what matters

Back up carbon.conf, storage-schemas.conf, Graphite-web’s local settings, web-server configuration, and the Whisper directory according to the value of the historical data. Preserve the schema file with the backup: it explains why a newly created metric has the archives it does, while existing files retain their original layout.

When one Carbon process is no longer enough

A single Carbon cache can serve a small server. As senders and metric volume grow, Carbon documentation describes relay and aggregator daemons. A relay distributes incoming paths to other Carbon instances; an aggregator can pre-compute values before storage. Introduce those processes only after measuring queue depth, write latency, CPU, memory, and disk throughput, and keep the same namespace and schema conventions across the receiving nodes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Plaintext remains useful for a human smoke test. Larger senders should consider pickle delivery for batched metrics, using the receiver port and security controls configured on your server. Do not expose either receiver to untrusted networks merely because a port is convenient.

A repeatable installation checklist

  • Record the Ubuntu release and inspect APT candidates for graphite-carbon, graphite-web, and python3-whisper.
  • Install packages or document the source version and /opt/graphite/ layout.
  • Locate carbon.conf, set the receiver and storage paths, and identify the actual service unit.
  • Edit storage-schemas.conf before creating metrics; put specific patterns before the fallback.
  • Start Carbon and confirm the configured listener, especially plaintext port 2003.
  • Send test.bash.stats with a current Unix timestamp and verify that a Whisper file is created.
  • Set Graphite-web’s WHISPER_DIR to the same directory, set permissions, and collect static files.
  • Expose Graphite-web through the selected web server and test /render with JSON.
  • Check logs, permissions, disk capacity, and schema matching before adding production senders.

Package versus source: the decision

Choose Ubuntu packages when ordinary upgrades, distribution integration, and a small operational burden matter most. Choose source when you need a particular Graphite version, the documented /opt/graphite/ layout, or control over components not delivered by your Ubuntu release. In either case, the reliable workflow is the same: establish the paths, define retention first, verify Carbon independently, then verify Graphite-web against the exact storage directory.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.