Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
docs
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
docs
Commits
fc7df310
Commit
fc7df310
authored
Jan 06, 2015
by
Julius Volz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reorganize/improve comparison doc a bit.
parent
895fe7b2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
21 deletions
+22
-21
comparison.md
content/docs/introduction/comparison.md
+22
-21
No files found.
content/docs/introduction/comparison.md
View file @
fc7df310
...
@@ -77,38 +77,22 @@ has knowledge about what the world should look like (which endpoints should
...
@@ -77,38 +77,22 @@ has knowledge about what the world should look like (which endpoints should
exist, what time series patterns mean trouble, etc.), and actively tries to find
exist, what time series patterns mean trouble, etc.), and actively tries to find
faults.
faults.
**Architecture**
Prometheus servers run independently of each other and only rely on their local
storage for their core functionality: scraping, rule processing, and alerting.
InfluxDB is by design a distributed storage cluster with storage and queries
being handled by many nodes at once.
This means that InfluxDB will easier to scale horizontally, but it also means
that you have to manage the complexity of a distributed storage system from the
get-go. Prometheus will be simpler to run, but at some point you will need to
shard servers explicitly along scalability boundaries like products, services,
datacenters, or similar. Independent servers (which can be run redundantly in
parallel) may also give you better reliability and failure isolation, though
that is debatable, since InfluxDB also can tolerate node outages due to data
replication.
**Data model / storage**
**Data model / storage**
*Summary:*
InfluxDB stores rows of events with full metadata for each event;
*Summary:*
InfluxDB stores rows of events with full metadata for each event;
Prometheus only stores numeric samples for existing time series.
Prometheus only stores numeric samples for existing time series. Both are good
for different use cases.
While InfluxDB's data model also allows annotation of data with arbitrary
While InfluxDB's data model also allows annotation of data with arbitrary
key-value pairs, it differs significantly from Prometheus in the way this data
key-value pairs, it differs significantly from Prometheus in the way this data
is modeled and stored. InfluxDB stores timestamped events with full metadata
is modeled and stored.
At its core,
InfluxDB stores timestamped events with full metadata
(key-value pairs) attached to each event / row. Prometheus stores only numeric
(key-value pairs) attached to each event / row. Prometheus stores only numeric
time series and stores metadata for each time series exactly once, and then
time series and stores metadata for each time series exactly once, and then
continues to simply append timestamped samples for that existing metadata
continues to simply append timestamped samples for that existing metadata
entry. In a
entry. In a
[
test from March 2014
](
https://docs.google.com/document/d/1OgnI7YBCT_Ub9Em39dEfx9BuiqRNS3oA62i8fJbwwQ8/edit?usp=sharing
)
,
[
test from March 2014
](
https://docs.google.com/document/d/1OgnI7YBCT_Ub9Em39dEfx9BuiqRNS3oA62i8fJbwwQ8/edit?usp=sharing
)
,
storing typical Prometheus time series data in InfluxDB lead to a
**
11x disk
dumping typical Prometheus time series data into InfluxDB required
**
11x more
storage size increase
**
due to this metadata redundancy
.
disk storage in InfluxDB than in Prometheus
**
due to this different data model
.
If you are only interested in tracking the development of existing named
If you are only interested in tracking the development of existing named
time series (for example, the cumulative count of HTTP requests with the method
time series (for example, the cumulative count of HTTP requests with the method
...
@@ -132,6 +116,23 @@ Still, InfluxDB is better geared towards the following use cases:
...
@@ -132,6 +116,23 @@ Still, InfluxDB is better geared towards the following use cases:
There are other storage features, such as downsampling, which InfluxDB supports
There are other storage features, such as downsampling, which InfluxDB supports
and Prometheus doesn't yet.
and Prometheus doesn't yet.
**Architecture**
Prometheus servers run independently of each other and only rely on their local
storage for their core functionality: scraping, rule processing, and alerting.
InfluxDB is by design a distributed storage cluster with storage and queries
being handled by many nodes at once.
This means that InfluxDB will be easier to scale horizontally, but it also
means that you have to manage the complexity of a distributed storage system
from the beginning. Prometheus will be simpler to run, but at some point you
will need to shard servers explicitly along scalability boundaries like
products, services, datacenters, or similar aspects. Independent servers (which
can be run redundantly in parallel) may also give you better reliability and
failure isolation, though that is debatable, since InfluxDB also can tolerate
node outages due to data replication.
## OpenTSDB
## OpenTSDB
TODO: TODO: compare Prometheus to OpenTSDB.
TODO: TODO: compare Prometheus to OpenTSDB.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment