What's the best way to determine what version of marvel is running?

monitoring

(Casie Owen) #1

What's the best way to determine what version of marvel is running?

Thanks!
Casie


(Chris Earle) #2

Hi Casie,

Starting with ES 2.x, there's two things at play:

  • The version of the Marvel Agent plugin installed with Elasticsearch.
  • The version of the Marvel UI plugin installed with Kibana.

For the Marvel Agent plugin, Elasticsearch exposes an API to find the version:

$ curl -XGET localhost:9200/_cat/plugins?v

This will show all running plugins in the cluster, broken down by node, alongside their version.

For the Marvel UI plugin, Kibana does not expose an API to get plugin versions, so you have to dig a little bit. Inside of the Kibana directory, you can find it by checking ${KIBANA_HOME}/installedPlugins/marvel/package.json. Within that file, the version is specified there (e.g., "version" : "2.3.1",).


(Casie Owen) #3

Thank you!

We're running ES 1.7.2. Do you happen to the know the options for that version? We can't upgrade yet (there is an azure related bug preventing us from upgrading).

Casie


(Casie Owen) #4

Also, another related question. The command to install the plugin always includes "latest" (For example: bin/plugin install elasticsearch/marvel/latest). If I'm installing an older version that I have downloaded into the plugin directory, what is the 'latest' argument doing?

Thanks!


(Steve Kearns) #5

Hey Casie,

For Elasticsearch 1.x, the latest version of Marvel is 1.3.1. When you run bin/plugin -i elasticsearch/marvel/latest on Elasticsearch 1.7.1, it will grab Marvel 1.3.1, which is the best version for you to run.

We do have some magic in our download service that detects that you are running ES 1.7 and serves you the right version. Starting with ES 2.0, the plugin installer is smart enough to request the right version (so our download service doesn't need constant tweaking), which is why the instructions for installing Marvel 2.0+ don't need the /latest trick.

Hope that helps!
Steve


(Casie Owen) #6

Thanks for the explanation!


(Chris Earle) #7

We're running ES 1.7.2. Do you happen to the know the options for that version?

For ES 1.x, Marvel was a little different from what it has become. For Marvel 1.x, it was both the Marvel Agent and the Marvel UI (based on Kibana 3) in one plugin for Elasticsearch. To check its version, it's as simple as checking the plugins within Elasticsearch in the same way as with Elasticsearch 2.x.

$ curl -XGET localhost:9200/_cat/plugins?v

This should also show the type of plugin as both s (short for site) and j (short for Java). If it only shows s, then you need to restart the node because it was never restarted after installing Marvel. Java plugins always require a node restart.

there is an azure related bug preventing us from upgrading

Interested in hearing what this one is!

The command to install the plugin always includes "latest" (For example: bin/plugin install elasticsearch/marvel/latest). If I'm installing an older version that I have downloaded into the plugin directory, what is the 'latest' argument doing?

Following on what Steve said, plugins for ES 1.x were a bit simpler in terms of allowed compatibility, at the expense of making operations much more complex. For example, Marvel 1.3.0 and Marvel 1.3.1 works with ES 1.5.x, 1.6.x, and 1.7.x. But there's nothing to really tell you that beyond a matrix somewhere.

With ES 1.x, this meant that we needed to have the concept of "latest" to let people just quickly download the latest plugin version of official plugins. As Steve notes, we perform a little magic to make this work, but the gist is that it's just a placeholder for the actual latest version (1.3.1 in this case) based on your Elasticsearch version (in other words, we keep track of the matrix for official plugins).

$ bin/plugin -i elasticsearch/marvel/latest

This does the same thing as:

$ bin/plugin -i elasticsearch/marvel/1.3.1

Obvious, right? It's not, I agree.

With ES 2.x, we rethought the operational experience and decided that requiring Java plugins to be in lock-step with Elasticsearch was useful to guarantee that plugins were actually compatible. That's why you now download things like (note the command syntax changed a little, but the key is that we dropped latest or any version really):

$ bin/plugin install marvel-agent

Now there's no mystery. marvel-agent 2.3.2 goes with Elasticsearch 2.3.2.


(system) #8