Overview
概述
What Graphite is and is not ?
Graphite能做什么和不能做什么?
Graphite does two things:
Graphite 做两件事情:
-
Store numberic time-series data
存储 numberic time-series 数据
-
Render graphs of this data on demand
使用这些数据按需求渲染图表
What Graphite does not do is collect data for you,
Graphite 不能为你收集数据,
however there are some tools out there that know how to send data to graphite.
然而这里有很多工具,使用它们发送数据给graphite.
Even though if often requires a little code , sending data to Graphite is very simple.
虽然这需要一点代码, 但是发送数据给Graphithe非常简单。
About the project
关于这个项目
Graphite is an enterprise-scale monitoring tool that runs well on cheap hardware.
Graphite 是一个企业级的监控工具, 能够在廉价的硬件上很好的运行。
it was originally designed and written by Chris Davis at Orbitz in 2006 as side project that ultimately grew to ba a foundational monitoring tool.
它最初是由chris Davis 设计和编写 在 2016 Orbitz 做为一个项目, 最终演变为一个基本的监控工具。
——————————————————————————————————————————————— The architecture in a nutshell
基本构架
Graphite consists of 3 software components:
Graphite 有3个软件组成:
- carbon - a Twisted daemon that listens for time-series data
carbon - a Twisted 进程 用于监听 time-series 数据
- whisper - a simple database library for storing time-series data(similar in design to RRD)
whisper - 一个简单的数据库用于存储 time-series 数据(设计类似于RRD)
- graphite webapp - A Django webapp that renders graphs on-demand using Cairo
graphite webapp - 一个 Django webapp 根据需要使用Cairo 渲染图表
Feeding in your data is pretty easy, typically most of the efforts is in collecting the data to begin with.
喂数据是相当的简单。 起初的努力就是收集数据 As you send datapoints to Carbon , they become immediately available for graphing in the webapp.
当你发送一些数据给Carbon。 它们立刻变为有用的图表在webapp里面。
The webapp offers several ways to create and display graphs including a simple URL API for rendering that makes it easy to embed graphs in other webpages.
webapp提供了几种方法去产生和显示图标,包括一个简单的URL API 用于渲染 ,它使得在其他web页面中嵌入图标非常的简单。
FAQ
常见问题
What is Graphite?
Graphite 是什么? Graphite is a highly scaleable real-time graphing system.
Graphite 是一个高度可伸缩的实时图表系统。
As a user, you write an application that collects numeric time-series data that you are interested in graphing,
作为一个使用者, 你编写一个应用用于收集 数值型 time-series 数据,而你对这些数据的图表感兴趣, and send it to Graphite’s processing backend, carbon,
发送这些数据给Graphite的后端处理, carbon which stores the data in Graphite’s specialized database.
它存储数据在Graphite专门的数据库中。
The data can then be visualized through graphite’s web interfaces.
然后,数据被可视化,通过调用graphite的web 接口。
Who should use Graphite?
谁应该使用Graphite?
Anybody who would want to track values of anything over time.
任何人, 它可能想要追踪任何事情随着的值随着时间的变化。
If you have a number that could potentially change over time, and you might want to represent the value over time on a graph,
如果你有一个值,它可能通过时间变化,你想在图表上表示这个值随着时间的变化。
then Graphite can probably meet your needs.
然后 Graphite 可以满足你的需求。
Specifically, Graphite is designed to handle numeric time-series data.
特别地, Graphite被设计于去处理 numeric times-series 数据。
For example, Graphite would be good at graphing stock prices because they are numbers that change over time.
例如, Graphite 擅长绘制股票价格, 因为它们随着时间而变化。
Whether it’s a few data points, or dozens of performance metrics from thousands of servers, then Graphite is for you.
无论是几个数据点,还是几千个服务器的几十个性能指标。
As a bonus, you don’t necessarily know the names of those things in advance (who wants to maintain such huge configuration?);
you simply send a metric name, a timestamp, and a value, and Graphite takes care of the rest! 你简单地发送一个指标名, 一个时间戳,一个值, 其他部分由Graphite关心。
What is Graphite written in?
Graphite用什么写的?
Python2. The Graphite webapp is built on the Django web framework and uses the ExtJS javascript GUI toolkit.
Python2. Graphite 的webap用 Django web 框架构建 和使用 ExtJs Javascript GUI 工具箱。
The graph rendering is done using the Cairo graphics library.
图表的渲染使用的是Cairo图标库。
The backend and database are written in pure Python.
后台和数据库使用纯Python编写. ———————————————————————————————————————————————
Is there a diagram of Graphite’s architecture?
是否有Graphite的架构图?
There sure is! Here it is:
肯定有,这里是: