go-carbon
go-carbon is a high-performance Graphite/Carbon server implementation written in Go, designed to ingest and persist time-series metrics from multiple sources (TCP, UDP, HTTP, Kafka). It replaces the default Python Carbon with a faster, more scalable alternative suitable for high-volume metric ingestion environments.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | go-graphite/go-carbon |
| Owner | go-graphite |
| Primary language | Go |
| License | MIT — OSI-approved |
| Stars | 828 |
| Forks | 116 |
| Open issues | 110 |
| Latest release | v0.19.1 (2026-02-07) |
| Last updated | 2026-07-06 |
| Source | https://github.com/go-graphite/go-carbon |
What go-carbon is
Go-based reimplementation of Graphite Carbon following Agent→Cache→Persister architecture. Supports plaintext, Pickle, HTTP, and Kafka protocols; multi-worker persistent storage; configurable retention schemas; optional GRPC interface; and hot-reload of configuration. Benchmarked at ~950k points/sec sustained with 1.2M peak on high-end hardware.
Get the go-carbon source
Clone the repository and explore it locally.
git clone https://github.com/go-graphite/go-carbon.gitcd go-carbon# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Data directory (Whisper) must be pre-configured; schema migrations are supported but require care. Plan storage capacity based on metric cardinality, retention policies, and performance targets.
- Multi-worker sharding by metric name hash—tune `workers` config based on CPU cores and I/O; test under expected peak load before production rollout.
- Memory footprint scales with cache size (`max-size` config, default 1M points); monitor in-memory cache behavior to prevent OOM in memory-constrained environments.
- Requires explicit configuration of `storage-schemas.conf` and optional `storage-aggregation.conf` to match retention and rollup rules; misalignment with upstream collectors can lead to data loss or query misses.
- Optional hot-reload (HUP signal) for schema changes; full restart needed for major config changes (ports, protocol options). Plan graceful shutdown to avoid metric loss during cache dump/restore.
When to avoid it — and what to weigh
- Need modern time-series database features — go-carbon is a Carbon server focused on ingestion and Whisper persistence. Does not provide query optimization, downsampling policies, or compression comparable to modern time-series DBs (InfluxDB, Prometheus, VictoriaMetrics). Use if Graphite is your backend.
- Require vendor support or SLA guarantees — Community-maintained open-source project with no commercial support contract. Escalations and incident response depend on community contributors. Not suitable for risk-averse enterprises without internal Go expertise.
- Strict isolation or containerized deployment only — Designed for traditional daemon deployment (systemd, init.d). Whisper file-system locking and multi-worker coordination assume local or NFS storage. Kubernetes native storage patterns may require wrapper logic.
- Unfamiliar with Graphite ecosystem — Requires understanding of storage-schemas.conf, aggregation rules, Whisper file format, and Graphite query semantics. Significant operational learning curve if migrating from other metric systems.
License & commercial use
MIT License. Permissive, OSI-approved, allows commercial use, modification, and distribution with minimal restrictions (attribution required, liability disclaimer applies).
MIT license permits commercial use without restrictions or licensing fees. No copyleft requirement; proprietary modifications and derivative works allowed. However, license does not include warranties or support. Verify your specific compliance requirements and consider maintenance/support strategy independently.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Moderate |
| DEV.co fit | Good |
| Assessment confidence | High |
Listens on TCP/UDP ports (default 2003) and optional HTTP endpoint; network ACLs and firewall rules essential in untrusted networks. Accepts metrics from remote sources without authentication by default—restrict via network isolation or firewall. No built-in TLS/mTLS for plaintext/pickle protocols (requires reverse proxy if needed). File permissions on Whisper directory and config files should follow principle of least privilege. No mention of audit logging or compliance features; code is open-source and auditable.
Alternatives to consider
Python Carbon (graphite-carbon)
Original implementation; slower under high load but mature, widely deployed, and simpler resource footprint on low-spec hardware. Choose if you do not face scale constraints or prefer Python-based customization.
VictoriaMetrics
Modern high-performance time-series database with compression, clustering, and advanced query features. Better long-term scalability and query performance, but requires migration away from Whisper and Graphite ecosystem.
InfluxDB (OSS or Cloud)
Purpose-built time-series DB with powerful query language (InfluxQL, Flux) and clustering. Easier long-term scaling and multi-user isolation, but requires rewriting collectors and dashboards; not a Carbon replacement.
Build on go-carbon with DEV.co software developers
Evaluate go-carbon for your monitoring pipeline. Benchmark performance on your load profile, test schema migration, and integrate with existing Graphite dashboards. Contact us to discuss deployment and integration strategy.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
go-carbon FAQ
Can I migrate from Python Carbon without downtime?
What is the recommended instance size and worker count?
Is GRPC API stable and widely used?
How do I handle metrics cardinality and bloom filters?
Work with a software development agency
From first prototype to production, DEV.co delivers software development services around tools like go-carbon. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source devops and beyond.
Ready to scale your Graphite metrics infrastructure?
Evaluate go-carbon for your monitoring pipeline. Benchmark performance on your load profile, test schema migration, and integrate with existing Graphite dashboards. Contact us to discuss deployment and integration strategy.