Skip to content
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

Is there a way to support Apache Ignite cluster? #3

Open
dsetrakyan opened this issue Jun 3, 2015 · 4 comments
Open

Is there a way to support Apache Ignite cluster? #3

dsetrakyan opened this issue Jun 3, 2015 · 4 comments

Comments

@dsetrakyan
Copy link

Would it be possible to reuse the same UI to monitor other clusters? For example Apache Ignite which also implements JCache (JSR 107) spec?

https://ignite.incubator.apache.org/

@tolitius
Copy link
Owner

tolitius commented Jun 4, 2015

Interesting question. I did play with GridGain (that is "Apache Ignite" now, right?) several years ago: https://github.com/tolitius/gridy-batch, it was fun :)

As to UI support, I don't see why it won't be possible. It won't be pluggable from the get-go, since hface uses stats sent from the server in the form of: https://github.com/tolitius/hface/blob/master/dash/test/resources/sample/stats.json i.e. Hazelcast specific + it adds up an aggregated portion: "per-node + aggregated".

I don't know whether Apache Ignite has same distributed object concepts as Hazelcast does (map, multimap, queue, list, set, topic, executor, etc..). Depending on whether it does or not, the UI can either be reused or will need to be split in two: Hazelcast and Ignite views.

I see two ways it can be done:

  1. Ignite creates stats in the current format hface can understand and digest with no change
  2. Ignite creates stats in a different format which hface can learn to understand

If you give a bit more details on which part of Ignite you are interested hface to cover, it'll become clear(er) which way to go.

@dsetrakyan
Copy link
Author

Anatoly, thanks for your response!

Apache Ignite was initially based on the GridGain open source edition, but the product and APIs significantly changed over several years. Specifically, Ignite is an implementation of the JCache (JSR 107) specification now. To my knowledge, Hazelcast also implements that specification, so many APIs will be similar. Ignite also significantly improved on its SQL querying and Streaming capabilities.

As far as metrics go, every node in Ignite has information about all other nodes. There is a concept in Ignite, called ClusterGroup, which provides aggregate metrics across a set of nodes. In this way you can get metrics for the whole Cluster quite easily.

If you are using JCache API to collect metrics, then you should have the same metrics in Ignite. Otherwise, I would suggest to use Ignite native metrics, as they have a lot more information.

If you can volunteer to contribute your code to the Apache Ignite project, the Ignite community will greatly appreciate it. Such a valuable contribution will significantly help the project. We also would love to have you as a committer to Apache Ignite, given your expertise in the area.

@tolitius
Copy link
Owner

tolitius commented Jun 6, 2015

Dmitriy,

The reason I recently started hface is simple and quite usual: I have a couple of paying projects where I use Hazelcast clusters. Hazelcast management center is free up to 2 nodes, and costs money for anything beyond. Which makes sense, not only because it is great, but also because Hazelcast itself is a great product and they need to make money. However there is no guarantee that customers would pay, but I still like to have a cluster wide visibility, hence "roll your own, and learn something new in the process", since I am not a front end guru.

Which makes the hface value to be not exactly its GUI piece, but the fact that it collects and aggregates cluster wide stats for any number of Hazelcast nodes.

I skimmed through Apache Ignite docs, it looks very polished and clean. I am not in a position to commit anything to it though. I casually hack on things at my spare time with no "commit"ment :) And mostly on things I need work related / personally, since it's the best motive.

But I am interested in making hface help in non Hazelcast universes. hface does not use JCache, since it needs more stats than just "cache": cluster / node, distributed objects / tasks specific, etc.

As a 5 minute exercise, I stood up a single Ignite node, loaded some data in, but was not able to connect to it via ignitevisorcmd.sh to look at stats. While I understand that I missed something, adopting hface to Ignite would work best against a live cluster:

  • Is there a dev/sample Ignite cluster I can connect to to gather stats?
  • Is there a documentation on how to get (non JCache) stats from a running Ignite cluster?
  • Docs (source is fine) on what stats represent?

@dsetrakyan
Copy link
Author

Anatoly, unfortunately there is no dev/sample Ignite cluster. However, you can easily access Ignite metrics from any Java program. Please take a look at the very simple metrics example provided here: http://apacheignite.readme.io/v1.1/docs/cluster-groups#cluster-group-metrics

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants