Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Golang implementation of Graphite/Carbon server with classic architecture: Agent -> Cache -> Persister
| Date | Stars |
|---|---|
| 2026-07-24 | 829 |
| 2026-07-25 | 829 |
| 2026-07-28 | 829 |
| 2026-07-30 | 829 |
| 2026-08-06 | 829 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
[](https://packagecloud.io/go-graphite/stable)
[](https://packagecloud.io/go-graphite/stable)
Table of Contents
=================
- [Table of Contents](#table-of-contents)
- [go-carbon ](#go-carbon-)
- [Features](#features)
- [Performance](#performance)
- [Efficient metric namespace patterns for trie index](#efficient-metric-namespace-patterns-for-trie-index)
- [Installation](#installation)
- [Configuration](#configuration)
- [OS tuning](#os-tuning)
- [Reported stats](#reported-stats)
- [Changelog](#changelog)
go-carbon [](https://travis-ci.org/go-graphite/go-carbon)
============
Golang implementation of Graphite/Carbon server with classic architecture: Agent -> Cache -> Persister

## Features
- Receive metrics from TCP and UDP ([plaintext protocol](http://graphite.readthedocs.org/en/latest/feeding-carbon.html#the-plaintext-protocol))
- Receive metrics with [Pickle protocol](http://graphite.readthedocs.org/en/latest/feeding-carbon.html#the-pickle-protocol) (TCP only)
- Receive metrics from HTTP
- Receive metrics from Apache Kafka
- [storage-schemas.conf](http://graphite.readthedocs.org/en/latest/config-carbon.html#storage-schemas-conf)
- [storage-aggregation.conf](http://graphite.readthedocs.org/en/latest/config-carbon.html#storage-aggregation-conf)
- Carbonlink (requests to cache from graphite-web)
- Carbonlink-like GRPC api
- Logging with rotation support (reopen log if it moves)
- Many persister workers (using many cpu cores)
- Run as daemon
- Optional dump/restore restart on `USR2` signal (config `dump` section): stop persister, start write new data to file, dump cache to file, stop all (and restore from files after next start)
- Reload some config options without restart (HUP signal):
- `whisper` section of main config, `storage-schemas.conf` and `storage-aggregation.conf`
- `graph-prefix`, `metric-interval`, `metric-endpoint`, `max-cpu` from `common` section
- `dump` section
## Performance
Faster than default carbon. In all conditions :) How much faster depends on server hardware, storage-schemas, etc.
The result of replacing "carbon" to "go-carbon" on a server with a load up to 900 thousand metric per minute:

There were some efforts to find out maximum possible performance of go-carbon on a hardware (2xE5-2620v3, 128GB RAM, local SSDs).
The result of that effort (in points per second):

Stable performance was around 950k points per second with short-term peak performance of 1.2M points/sec.
### Efficient metric namespace patterns for trie index
Putting the most common namespaces at the beginning of the metric name could be beneficial for scaling. This doesn't affect the performance of trigram index. But when you decide to switch to trie index for serving higher number metrics in a single go-carbon instance, your query would be more efficient. At the same time, this naming pattern could lead to better metric namespace hierarchy.
For example: querying `sys.cpu.loadavg.app.host-0001` would be faster than querying `sys.app.host-0001.cpu.loadavg` using trie index. Especially when you have tens of thousands hosts (host-0001, ..., host-9999), they all share the same prefix of `sys.cpu.loadavg.app.host-` in trie index, and they are compared only once during query. So this patterns leads to better memory usage and query performance when using trie+nfa/dfa index.
More details could be found in this blog: [To glob 10M metrics: Trie * DFA = Tree² for Go-Carbon](https://www.xhu.buzz/to-glob-10m-metrics-using-trie-and-dfa/).
## Installation
Use binary packages from [releases page](https://github.com/lomik/go-carbon/releaseExcerpt of 33,039 characters
Read on GitHub641
390
150
148
70
27
14
14
14
12
11
11
9
8
6
6
5
4
Quentin Machu · @BitMEX · United States
3
2
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:02f0d6c853f76284, topic:whisper