Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upRemote storage #10
Comments
bernerdschaefer
added a commit
that referenced
this issue
Apr 9, 2014
This comment has been minimized.
This comment has been minimized.
johann8384
commented
Feb 5, 2015
|
Is there anyone planning to work on this? Is the work done in the opentsdb-integration branch still valid or has the rest of the code-base moved past that? |
This comment has been minimized.
This comment has been minimized.
|
The opentsdb-integration branch is indeed completely outdated (still using the old storage backend etc.). Personally, I'm a great fan of the OpenTSDB integration, but where I work, there is not an urgent enough requirement to justify a high priority from my side... |
This comment has been minimized.
This comment has been minimized.
|
To be clear, the outdated "opentsdb-integration" was only for the Writing into OpenTSDB should be experimentally supported in master, but You initially asked on #10: "I added the storage.remote.url command line flag, but as far as I can tell A couple of questions:
Cheers, On Thu, Feb 5, 2015 at 9:22 AM, Björn Rabenstein notifications@github.com
|
This comment has been minimized.
This comment has been minimized.
|
I cannot +1 this enough |
This comment has been minimized.
This comment has been minimized.
|
Is InfluxDB on the cards in any way? :) |
This comment has been minimized.
This comment has been minimized.
|
Radio Yerevan: "In principle yes." (Please forgive that Eastern European digression... ;) |
This comment has been minimized.
This comment has been minimized.
|
:D That was slightly before my time ;) |
This comment has been minimized.
This comment has been minimized.
|
See also: https://twitter.com/juliusvolz/status/569509228462931968 We're just waiting for InfluxDB 0.9.0, which has a new data model which On Thu, Mar 5, 2015 at 10:31 AM, Michal Witkowski notifications@github.com
|
This comment has been minimized.
This comment has been minimized.
pires
commented
Apr 7, 2015
Can I say awesome more than once? Awesome! |
This comment has been minimized.
This comment has been minimized.
|
Unfortunately, @juliusv ran some tests with 0.9 and InfluxDB consumed 14x more storage than Prometheus. Before it was an overhead of 11x but Prometheus's could reduce storage size significantly since then - so in reality InfluxDB has apparently improved in that regard. |
This comment has been minimized.
This comment has been minimized.
|
At least experimental write support is in master, as of today, so anybody can play with Influxdb receiving Prometheus metrics. Quite possible somebody finds the reason for the blow-up in storage space and everything will be unicorns and rainbows in the end... |
This comment has been minimized.
This comment has been minimized.
pires
commented
Apr 7, 2015
|
@beorn7 that's great. TBH I'm not concerned about disk space, it's the cheapest resource on the cloud after all. Not to mention, I'm expecting to hold data with a very small TTL, i.e. few weeks. |
This comment has been minimized.
This comment has been minimized.
|
@pires In that case, why not just run two identically configured Prometheis with a reasonably large disk? |
This comment has been minimized.
This comment has been minimized.
|
@pires do you have a particular reason to hold the data in another database for that time? "A few weeks" does not seem to require a long-term storage solution. Prometheus's default retention time is 15 days - increasing that to 30 or even 60 days should not be a problem. |
This comment has been minimized.
This comment has been minimized.
pires
commented
Apr 7, 2015
|
@beorn7 @fabxc I am currently using a proprietary & very specific solution that writes monitoring metrics into InfluxDB. This can eventually be replaced with Prometheus. Thing is I have some tailored apps that read metrics from InfluxDB in order to reactively scale up/down, that would need to be rewritten to read from Prometheus instead. Also, I use |
This comment has been minimized.
This comment has been minimized.
|
http://prometheus.io/docs/querying/rules/#recording-rules are the equivalent to InfluxDB's continuous queries. |
This comment has been minimized.
This comment has been minimized.
dever860
commented
Jul 1, 2015
|
+1 |
1 similar comment
This comment has been minimized.
This comment has been minimized.
drawks
commented
Jul 31, 2015
|
|
fabxc
removed this from the
Small Scale Mission Critical Monitoring Use Cases milestone
Sep 21, 2015
This comment has been minimized.
This comment has been minimized.
blysik
commented
Oct 8, 2015
|
How does remote storage as currently implemented interact with PromDash or grafana? I have a use case where I want to run Prometheus in a 'heroku-like' environment, where the instances could conceivably go away at any time. Then I would configure a remote, traditional influxdb cluster to store data in. Could this configuration function normally? |
This comment has been minimized.
This comment has been minimized.
|
This depends on your definition of "normally", but mostly, no. Remote storage as it is is write-only; from Prometheus you would only get what it has locally. To get at older data, you need to query OpenTSDB or InfluxDB directly, using their own interfaces and query languages. With PromDash you're out of luck in that regard; AFAIK Grafana knows all of them. You could build your dashboards fully based on querying them and leave Prometheus to be a collection and rule evaluation engine, but you would miss out on its query language for ad hoc drilldowns over extended time spans. |
This comment has been minimized.
This comment has been minimized.
|
Also note that both InfluxDB and OpenTSDB support are somewhat experimental, under-exercised on our side, and in flux. |
This comment has been minimized.
This comment has been minimized.
|
We're kicking around the idea of a flat file exporter, thus we can start storing long term data and then once bulk import issue is done we can use that #535. Would you guys be open for a PR around this? |
This comment has been minimized.
This comment has been minimized.
|
For #535 take a look at my way outdated branch For the remote storage part, there was this discussion So it might be ok to add a flat file exporter as a remote storage backend directly to Prometheus, or resolve that discussion above and use said well-defined transfer format and an external daemon. |
This comment has been minimized.
This comment has been minimized.
|
I think for flat file we'd be talking the external daemon, as it's not something we can ever read back from. |
This comment has been minimized.
This comment has been minimized.
|
So the more I think about it, it would be nice to have this /import-api (a raw data) api, so we can have backup nodes mirroring the data from the primary prometheus. Would their be appetite for a PR for this and corresponding piece inside of prometheus to import the data. So you can have essentially read slaves? |
This comment has been minimized.
This comment has been minimized.
|
For that use case we generally recommend running multiple identical Prometheus servers. Remote storage is about long term data, not redundancy or scaling. |
This comment has been minimized.
This comment has been minimized.
|
I think running multiple scrapers is not a good solution cause the data won't match, also there is no way to backfill data. So we have issue where I need to spin up some redundant nodes and now they are missing a month of data. If you have an api to raw import the data you could at least catch them up. Also the same interface could be used for backups |
This comment has been minimized.
This comment has been minimized.
This is the use case for remote storage, you pull the older data from remote storage rather than depending on Prometheus being stateful. Similarly in such a setup there's no need for backups, as Prometheues doesn't have any notable state. |
This comment has been minimized.
This comment has been minimized.
|
@brian-brazil Oh yeah, I have multiple vector selector sets, but great point about different offsets! |
This comment has been minimized.
This comment has been minimized.
pilhuhn
commented
Mar 10, 2017
I don't think Prometheus having retention going further back is really an issue here, as long as the remote can (already) provide the data. Worst case is with downsampling that you lose granularity. |
This comment has been minimized.
This comment has been minimized.
|
@pilhuhn I meant it the other way around: if you have a Prometheus retention of 15d and you query only data older than 15d from the remote storage, it doesn't necessarily mean that Prometheus will already have all data younger than 15d (due to storage wipe or whatever). Well, for a first iteration we're just going to query all time ranges from everywhere. |
This comment has been minimized.
This comment has been minimized.
|
There's a WIP PR for the remote read integration here for anyone who would like to take a look early: #2499 |
This comment has been minimized.
This comment has been minimized.
ghost
commented
Apr 15, 2017
•
|
I'm trying to use the remote_storage_adapter to send metrics from prometheus to opentsdb. But I'm getting these errors in the logs:
I've also tried using influxdb instead of opentsdb, with similar results:
Here's how I'm starting the remote_storage_adapter:
Here's the Prometheus config:
Is there something I'm misunderstanding about how to configure the remote_storage_adapter? |
This comment has been minimized.
This comment has been minimized.
|
@tjboring Neither OpenTSDB nor InfluxDB support float64 OpenTSDB issue: OpenTSDB/opentsdb#183 I am not sure where the |
This comment has been minimized.
This comment has been minimized.
ghost
commented
Apr 15, 2017
|
@juliusv Thanks for the pointers to the opentsdb/influxdb issues. I was just seeing the error messages on the console and thought nothing was being written, not realizing those are just samples that are being skipped. I've since confirmed that samples are indeed making it to the remote storage db. :) |
This comment has been minimized.
This comment has been minimized.
|
Now that remote read and write APIs are in place (albeit experimental), should this issue be closed in favour of raising more specific issues as they arise? https://prometheus.io/docs/operating/configuration/#<remote_write> |
This comment has been minimized.
This comment has been minimized.
prasenforu
commented
Apr 21, 2017
|
Any body tried with container ? Please paste Dockerfile Because I am not able to find "remote_storage_adapter" executable file in docker "prom/prometheus" version 1.6
Please |
This comment has been minimized.
This comment has been minimized.
sorrowless
commented
Apr 21, 2017
•
|
@prasenforu I have built a docker image with remote_storage_adapter from current master code: gra2f/remote_storage_adapter, feel free to use it. @juliusv I have a problems similar to @tjboring ones:
but I am using Graphite. Is it okay? |
This comment has been minimized.
This comment has been minimized.
ghost
commented
Apr 21, 2017
|
Do you see other metrics in Graphite that you know came from Prometheus? In my case I verified this by connecting to the Influxdb server I was using, and running a query. It gave me back metrics, which confirmed that Prometheus was indeed writing metrics; it's just that some were being skipped, per the log message. |
This comment has been minimized.
This comment has been minimized.
sorrowless
commented
Apr 21, 2017
|
@tjboring yes, I can see some of the metrics in Graphite and what's more strange for me is that I cannot understand why some are there and some are not. For example, sy and us per CPU stored into Graphite but load average is not. |
This comment has been minimized.
This comment has been minimized.
prasenforu
commented
Apr 22, 2017
|
Not able to find the image, can you please share the url. Thanks in advance. |
This comment has been minimized.
This comment has been minimized.
sorrowless
commented
Apr 22, 2017
|
@prasenforu just run |
This comment has been minimized.
This comment has been minimized.
prasenforu
commented
Apr 22, 2017
|
Thanks. |
This comment has been minimized.
This comment has been minimized.
|
@mattbostock As you suggested, I'm closing this issue. We should open more specific remote-storage related issues in the future. Further usage questions are best asked on our mailing lists or IRC (https://prometheus.io/community/). |
juliusv
closed this
Apr 24, 2017
This comment has been minimized.
This comment has been minimized.
prasenforu
commented
Apr 27, 2017
•
|
I was looking the images, I saw there was file remote_storage_adapter in /usr/bin but rest of prometheus file and volume not there,
Anyway can you please send me the dockerfile of "gra2f/remote_storage_adapter" |
This comment has been minimized.
This comment has been minimized.
sorrowless
commented
Apr 30, 2017
|
@prasenforu |
This comment has been minimized.
This comment has been minimized.
gdmelloatpoints
commented
Aug 16, 2017
|
If anyone wants to test it out (like I need to), I wrote a small docker-compose based setup to get this up and running locally - https://github.com/gdmello/prometheus-remote-storage. |
iksaif
referenced this issue
Sep 25, 2017
Merged
Make a DB aware of the first timestamp stored in it #134
simonpasquier
referenced
this issue
in simonpasquier/prometheus
Oct 12, 2017
cofyc
added a commit
to cofyc/prometheus
that referenced
this issue
Jun 5, 2018
bobmshannon
pushed a commit
to bobmshannon/prometheus
that referenced
this issue
Nov 19, 2018
This comment has been minimized.
This comment has been minimized.
lock
bot
commented
Mar 23, 2019
|
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
juliusv commentedJan 4, 2013
Prometheus needs to be able to interface with a remote and scalable data store for long-term storage/retrieval.