Giter Club home page Giter Club logo

kuzzle-plugin-cluster's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kuzzle-plugin-cluster's Issues

Exposes stats per cluster node

We shall build a system to expose Kuzzle stats for each cluster node.
This can be achieved for instance on AWS by setting up a lambda which will plug itself to redis to fetch the nodes list and retrieve the stats for each node.

The lambda can then be triggered via the API manager.

Ideally, the output format should be modularized to allow standard output formats, such as prometheus one for instance.
An alert mechanism should also be included based on the retrieved activity.

Error launching cluster with MQTT protocol enabled

When running Kuzzle in clsuter mode with the MQTT protocol enabled, you get:

kuzzle_2              |You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection:
kuzzle_2              | PluginImplementationError: this.redis.clusterSubOn(...).then(...).then(...).then(...).then(...).finally is not a function
kuzzle_2              | This is probably not a Kuzzle error, but a problem with a plugin implementation.
kuzzle_2              |     at KuzzleCluster.subscriptionAdded (/var/app/plugins/enabled/cluster/lib/index.js:406:15)

At a first glance, I would suspect the MQTT response room to trigger the event but this requires some further investigation (and fix).

[ZMQ] compilation error

while installing npm dependencies without zeromq library, the process fails with following error:
../binding.cc:28:17: fatal error: zmq.h: No such file or directory
and we cannot use the plugin.

The readme need to explain this requirements and how to install the needed library (see https://www.npmjs.com/package/zmq#installation )

enable 3rd party plugins to propagate events through the cluster

Idea: expose to plugins a method to trigger an event that will be propagated to other cluster nodes.

example :

class MyPlugin {
  // Hook configuration:
  constructor () {
    this.hooks = {
      'plugin-my-plugin:my-custom-event': 'myFunction'
    };
  }
  myFunction(payload) {
    this.doSomething(payload);
  }

  
  // broadcast an event to other nodes:
  myCustomMethod() {
    // (....)
    // if the plugin-cluster is not enabled => the `broadcast` method will do nothing
    // if it is enabled, it will encapsulate the event, send it to other cluster nodes,
    //                         and then in each node, trigger a `plugin-my-plugin:my-custom-event` hook:
    context.accessors.broadcast('my-custom-event', payload);
  }

see also comments here: kuzzleio/documentation#339 (comment)

We need a cluster health report

We already expose the cluster topology.
We are missing some way to check the cluster health, as seen both by the proxy and maybe the cluster itself.

  • create a I'm OK route on Kuzzle kuzzleio/kuzzle#580
  • Implement some mechanism in the proxy query each Kuzzle health and report the info

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.