elasticsearch_exporter icon indicating copy to clipboard operation
elasticsearch_exporter copied to clipboard

Document elasticsearch_exporter supported versions (matrix?)

Open oldthreefeng opened this issue 3 years ago • 9 comments

I dont even found an support version of es.

I have several es clusters . 6.8.8 and 7.4.2 . what version of elasticsearch_exporter i can use ? can any one helps me out?

$ k get es -A             
NAMESPACE            NAME      HEALTH    NODES   VERSION   PHASE             AGE
deps-prod            elastic   green     3       7.4.0     Ready             23h
elastic-system       elastic   green     3       7.4.2     Ready             362d
prod                 elastic   green     3       7.4.2     Ready             346d
rasp-prod            elastic   green     3       6.8.8     Ready             377d
skywalking-prod-v8   elastic   green     3       7.4.2     Ready             151d
sls-prod             elastic   green     3       6.8.8     Ready             350d

oldthreefeng avatar Jun 09 '21 08:06 oldthreefeng

what version of elasticsearch_exporter i can use ?

I think the latest should work with all of them 🤔

caarlos0 avatar Jun 09 '21 12:06 caarlos0

I think that 7.13 does not currently work due to a breaking change in Elasticsearch, but otherwise yes, it should work with all versions to my knowledge.

I think a compatibility matrix or a statement on the README would probably be a good enhancement.

sysadmind avatar Jun 09 '21 13:06 sysadmind

@sysadmind any news on when you'll support v7.13? I've recently upgraded my clusters and I've now notice the exporter is failing with errors.

hartfordfive avatar Jun 10 '21 19:06 hartfordfive

There's no exact timeline. We're working on cutting a 1.2.0 stable release in the next few days before we do larger refactoring like this. After we work through all the breaking changes, we will cut a 2.0 release which should support 7.13

sysadmind avatar Jun 10 '21 20:06 sysadmind

Thank you for taking care of this exporter ! As the fix for ES 7.13 is now merged on master and does not seems to be too invasive, you should cut a fix release (1.2.1 ?) with ES 7.13 support, otherwise people will start to use master and/or fork (and may be afraid of using a "breaking change 2.0" version ?) :)

Skunnyk avatar Jun 22 '21 14:06 Skunnyk

@sysadmind ... thanks again for maintaining this exporter. It's been of great help in running ES clusters for years!

May I point to a rather drastic incoming change in the ES client ecosystem:

  • https://aws.amazon.com/blogs/opensource/keeping-clients-of-opensearch-and-elasticsearch-compatible-with-open-source/

and commits / PRs like https://github.com/elastic/go-elasticsearch/pull/324 and the others around it updating the documenation accordingly. In essence ES clients are being updated to only work with ElasticSearch clusters and not i.e. https://www.opensearch.org anymore.

frittentheke avatar Aug 11 '21 11:08 frittentheke

@frittentheke Thanks for the kind words, but the credit must really go to the JustWatch team and @zwopir who were the creators and did all the heavy lifting.

Thanks for the note about the clients. I have been following the news to some extent. The good news for this exporter is that it is only using the native go net/http client and libraries, so it is not dependent on any official client libraries. That should prevent any collateral damage to this exporter. I do hope to start a compatibility matrix, especially since there are so many versions of Elasticsearch that users may be running.

sysadmind avatar Aug 11 '21 14:08 sysadmind

indeed, the exporter only uses the ES API via the stdlib http client. So to create a version matrix, a comparison between the different ES version json output of all the used endpoints must be created. I'm currently not working on any projects that use ES+prometheus and don't have the time and resources to do this. As a note aside: IIRC the exporter was developed on a 5.x cluster (now EOL) and no major efforts were taken to migrate/test it with versions higher than that.

Incompatibilities between the 2.x and 5.x versions are handled on a case by case basis and I remember not being happy about this. So to minimize the maintenance effort I'd suggest to freeze the exporter for 2.x and 5.x only support (and fix) non EOL versions

zwopir avatar Aug 11 '21 14:08 zwopir

Thanks for the feedback @zwopir. I think the plan is to refactor a lot of the code and like you suggest, the next release will likely be a major version change and will not support EOL versions. I have started adding test cases for newer Elasticsearch versions and I hope to include a full set of test fixtures for compatible Elasticsearch versions as I work through the refactors. Thanks again.

sysadmind avatar Aug 11 '21 15:08 sysadmind