New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remote storage #10
Comments
This ensures that these files are properly included only in testing. [Fixes #10]
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? |
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... |
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
|
I cannot +1 this enough |
Is InfluxDB on the cards in any way? :) |
Radio Yerevan: "In principle yes." (Please forgive that Eastern European digression... ;) |
:D That was slightly before my time ;) |
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
|
Can I say awesome more than once? Awesome! |
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. |
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... |
@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. |
@pires In that case, why not just run two identically configured Prometheis with a reasonably large disk? |
@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. |
@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 |
http://prometheus.io/docs/querying/rules/#recording-rules are the equivalent to InfluxDB's continuous queries. |
+1 |
1 similar comment
👍 |
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 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. |
Also note that both InfluxDB and OpenTSDB support are somewhat experimental, under-exercised on our side, and in flux. |
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? |
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. |
I think for flat file we'd be talking the external daemon, as it's not something we can ever read back from. |
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? |
For that use case we generally recommend running multiple identical Prometheus servers. Remote storage is about long term data, not redundancy or scaling. |
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 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. |
@brian-brazil Oh yeah, I have multiple vector selector sets, but great point about different offsets! |
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. |
@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. |
There's a WIP PR for the remote read integration here for anyone who would like to take a look early: #2499 |
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? |
@tjboring Neither OpenTSDB nor InfluxDB support float64 OpenTSDB issue: OpenTSDB/opentsdb#183 I am not sure where the |
@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. :) |
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> |
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 |
@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? |
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. |
@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. |
Not able to find the image, can you please share the url. Thanks in advance. |
@prasenforu just run |
Thanks. |
@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/). |
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" |
@prasenforu |
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. |
Make documentation for absent() not, uhm, absent
Revert "Share kubernetes informers in kubernetes discovery to improve performance."
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. |
Prometheus needs to be able to interface with a remote and scalable data store for long-term storage/retrieval.
The text was updated successfully, but these errors were encountered: