Coder Social home page Coder Social logo

hface's Introduction

hface

Hazelcast cluster monitoring and debugging dashboard

What do you mean?

hface braindump

The Gist

hface monitors a Hazelcast cluster in real time. It currently supports maps, multimaps and queues. Support for other distributed data structures is coming.

In order to monitor a remote Hazelcast cluster add an 8K jar dependency to it:

[org.hface/hface-client "0.1.8"]

or

<dependency>
  <groupId>org.hface</groupId>
  <artifactId>hface-client</artifactId>
  <version>0.1.8</version>
</dependency>

it will be collecting the stats from all the nodes and will be sending these stats to hface for aggregation and visual pleasure. Here is an example of a simple Hazelcast server node with an hface client dependency.

Visual

This is what hface dash currently looks like as it monitors the cluster:

hface dash

ASCII

All the stats are also available in JSON via /stats:

Hazelcast cluster stats

Run it

for pre Hazelcast 4.0+ clusters: hface config and deps are different and to run it follow this

hface config

hface dashboard relies on a small configuraion file that can be pointed to by -Dconf=path-to-config. Here is a sample config:

{:collector {:refresh-interval 4}     ;; refresh cluster stats every 4 seconds
 :hz-client {:hosts ["127.0.0.1"]     ;; hazelcast cluster hosts/ips
             :cluster-name "dev"}}    ;; cluster name to connect to

from releases

download the hface release from releases i.e. let's say the version is 0.1.1:

$ wget https://github.com/tolitius/hface/releases/download/v0.1.1/hface-dash-0.1.1.jar

run it:

$ java -jar -Dconf=/opt/app/hface/hface.conf hface-dash-0.1.1.jar

then, for joy, go to http://localhost:3000/

/opt/app/hface/hface.conf is a sample path to the config file, replace it with your path

from sources

get ready

you would need lein (if you come from Java think maven) to compile and build a single runnable jar, a.k.a. an uberjar.

lein is straighforward to install: just download the script and run it

build and run

  • clone the repo (e.g. git clone https://github.com/tolitius/hface.git)
  • cd hface/dash
  • lein ring uberjar
  • java -jar -Dconf=/path-to/hface.conf target/hface-dash.jar

then, for joy, go to http://localhost:3000/

lein version

starting from 2.9.0+ lein brings newer deps that break backwards compatibility as discussed in this and this issues. If you experience a problem building hface from sources:

$ lein downgrade 2.8.3
$ lein do clean, ring uberjar

which will work, and then:

$ lein upgrade

to bring you back to the latest lein version.

for pre Hazelcast 4.0

In case you are working with a Hazelcast 3.x.x clusters:

hface client

bring 0.1.6 hface client instead of the latest:

[org.hface/hface-client "0.1.6"]

hface config

hface dashboard relies on a small configuraion file that can be pointed to by -Dconf=path-to-config. Here is a sample config:

{:collector {:refresh-interval 4}                       ;; refresh cluster stats every 4 seconds
 :hz-client {:hosts ["127.0.0.1" "127.0.0.2"]           ;; hazelcast cluster hosts/ips
             :retry-ms 5000                             ;; retry to reconnect in 5 seconds
             :retry-max 720000                          ;; 720000 * 5000 = one hour
             :group-name "dev"                          ;; creds to the cluster (dev/dev-pass are hz defaults)
             :group-password "dev-pass"}}

from releases

download the hface 0.1.0 release from releases:

$ wget https://github.com/tolitius/hface/releases/download/v0.1.0/hface-dash-0.1.0.jar

run it:

$ java -jar -Dconf=/opt/app/hface/hface.conf hface-dash-0.1.0.jar

then, for joy, go to http://localhost:3000/

/opt/app/hface/hface.conf is a sample path to the config file, replace it with your path

License

Copyright © 2020 tolitius

Distributed under the Eclipse Public License, the same as Clojure.

hface's People

Contributors

tolitius avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hface's Issues

Building Uberjar is crashing

When following the readme I ran the lein ring uberjar command which gave me the following error:

clojure.lang.Compiler$CompilerException: Syntax error macroexpanding clojure.core/fn at (clojure/core/unify.clj:83:18). #:clojure.error{:phase :macro-syntax-check, :line 83, :column 18, :source "clojure/core/unify.clj", :symbol clojure.core/fn} at clojure.lang.Compiler.checkSpecs (Compiler.java:6971)

Caused by: clojure.lang.ExceptionInfo: Call to clojure.core/fn did not conform to spec. #:clojure.spec.alpha{:problems ({:path [:fn-tail :arity-1 :params], :pred clojure.core/vector?, :val clojure.core.unify/var-unify, :via [:clojure.core.specs.alpha/params+body :clojure.core.specs.alpha/param-list :clojure.core.specs.alpha/param-list], :in [0]} {:path [:fn-tail :arity-n], :pred (clojure.core/fn [%] (clojure.core/or (clojure.core/nil? %) (clojure.core/sequential? %))), :val clojure.core.unify/var-unify, :via [:clojure.core.specs.alpha/params+body :clojure.core.specs.alpha/params+body], :in [0]}), :spec #object[clojure.spec.alpha$regex_spec_impl$reify__2509 0x2a9bc08f "clojure.spec.alpha$regex_spec_impl$reify__2509@2a9bc08f"], :value (clojure.core.unify/var-unify [G__800 G__801 G__802 G__803] (clojure.core/if-let [vb__793__auto__ (G__803 G__801)] (clojure.core.unify/garner-unifiers G__800 vb__793__auto__ G__802 G__803) (clojure.core/if-let [vexpr__794__auto__ (clojure.core/and (G__800 G__802) (G__803 G__802))] (clojure.core.unify/garner-unifiers G__800 G__801 vexpr__794__auto__ G__803) (if (clojure.core.unify/occurs? G__800 G__801 G__802 G__803) (throw (java.lang.IllegalStateException. (clojure.core/str "Cycle found in the path " G__802))) (clojure.core.unify/bind-phase G__803 G__801 G__802))))), :args (clojure.core.unify/var-unify [G__800 G__801 G__802 G__803] (clojure.core/if-let [vb__793__auto__ (G__803 G__801)] (clojure.core.unify/garner-unifiers G__800 vb__793__auto__ G__802 G__803) (clojure.core/if-let [vexpr__794__auto__ (clojure.core/and (G__800 G__802) (G__803 G__802))] (clojure.core.unify/garner-unifiers G__800 G__801 vexpr__794__auto__ G__803) (if (clojure.core.unify/occurs? G__800 G__801 G__802 G__803) (throw (java.lang.IllegalStateException. (clojure.core/str "Cycle found in the path " G__802))) (clojure.core.unify/bind-phase G__803 G__801 G__802)))))}

ClassNotFoundException

Hello,

I just followed the documentation: Checkout the code, compile and run. I'm connected to my Hazelcast cluster, but I obtain that exception, when it tries to read from the nodes

WARNING: could not read stats from node [ #object[com.hazelcast.client.impl.MemberImpl 0x758a46a1 Member [XXXXXXXXX]:XXXX - d300a7fb-a00d-4b4d-8e82-78c93a01058b] ]: com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: org.hface.InstanceStatsTask
Jun 15, 2017 2:24:52 PM clojure.tools.logging$eval1155$fn__1159 invoke
WARNING: could not read stats from node [ #object[com.hazelcast.client.impl.MemberImpl 0x5de34984 Member [XXXXXXXXX]:XXXX - 4e614058-c91d-4383-b972-65c6bf698590] ]: com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: org.hface.InstanceStatsTask
Jun 15, 2017 2:24:52 PM clojure.tools.logging$eval1155$fn__1159 invoke

Any clue what it could be ?
Thanks,
Carl

Integer overflow exception

Upon starting the hface server, it successfully connects to our Hazelcast cluster using the provided configuration, but the following exception is continually thrown:

java.lang.ArithmeticException: integer overflow
	at clojure.lang.Numbers.throwIntOverflow(Numbers.java:1501)
	at clojure.lang.Numbers.add(Numbers.java:1800)
	at clojure.lang.Numbers$LongOps.add(Numbers.java:455)
	at clojure.lang.Numbers.add(Numbers.java:128)
	at clojure.core$_PLUS_.invokeStatic(core.clj:973)
	at clojure.core$_PLUS_.invoke(core.clj:965)
	at clojure.core$merge_with$merge_entry__4881.invoke(core.clj:2954)
	at clojure.core$reduce1.invokeStatic(core.clj:925)
	at clojure.core$merge_with$merge2__4883.invoke(core.clj:2957)
	at clojure.lang.ArrayChunk.reduce(ArrayChunk.java:58)
	at clojure.core$reduce1.invokeStatic(core.clj:923)
	at clojure.core$reduce1.invokeStatic(core.clj:915)
	at clojure.core$merge_with.invokeStatic(core.clj:2950)
	at clojure.core$merge_with.doInvoke(core.clj:2942)
	at clojure.lang.RestFn.applyTo(RestFn.java:139)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$apply.invoke(core.clj:641)
	at hface.stats$merge_stats$fn__1638.invoke(stats.clj:47)
	at hface.util$do_with_values$iter__362__366$fn__367.invoke(util.clj:47)
	at clojure.lang.LazySeq.sval(LazySeq.java:40)
	at clojure.lang.LazySeq.seq(LazySeq.java:49)
	at clojure.lang.RT.seq(RT.java:521)
	at clojure.core$seq__4357.invokeStatic(core.clj:137)
	at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24)
	at clojure.core.protocols$fn__6738.invokeStatic(protocols.clj:75)
	at clojure.core.protocols$fn__6738.invoke(protocols.clj:75)
	at clojure.core.protocols$fn__6684$G__6679__6697.invoke(protocols.clj:13)
	at clojure.core$reduce.invokeStatic(core.clj:6545)
	at clojure.core$into.invokeStatic(core.clj:6610)
	at clojure.core$into.invoke(core.clj:6604)
	at hface.util$do_with_values.invokeStatic(util.clj:45)
	at hface.util$do_with_values.invoke(util.clj:44)
	at hface.stats$merge_stats.invokeStatic(stats.clj:47)
	at hface.stats$merge_stats.invoke(stats.clj:41)
	at hface.stats$aggregate_across_cluster$fn__1642.invoke(stats.clj:51)
	at clojure.core$map$fn__4785.invoke(core.clj:2644)
	at clojure.lang.LazySeq.sval(LazySeq.java:40)
	at clojure.lang.LazySeq.seq(LazySeq.java:49)
	at clojure.lang.RT.seq(RT.java:521)
	at clojure.core$seq__4357.invokeStatic(core.clj:137)
	at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:24)
	at clojure.core.protocols$fn__6738.invokeStatic(protocols.clj:75)
	at clojure.core.protocols$fn__6738.invoke(protocols.clj:75)
	at clojure.core.protocols$fn__6684$G__6679__6697.invoke(protocols.clj:13)
	at clojure.core$reduce.invokeStatic(core.clj:6545)
	at clojure.core$into.invokeStatic(core.clj:6610)
	at clojure.core$into.invoke(core.clj:6604)
	at hface.stats$aggregate_across_cluster.invokeStatic(stats.clj:50)
	at hface.stats$aggregate_across_cluster.invoke(stats.clj:49)
	at hface.stats$cluster_stats.invokeStatic(stats.clj:96)
	at hface.stats$cluster_stats.invoke(stats.clj:94)
	at hface.refresh$refresh_stats.invokeStatic(refresh.clj:50)
	at hface.refresh$refresh_stats.invoke(refresh.clj:47)
	at hface.refresh$collect_stats$fn__1714.invoke(refresh.clj:59)
	at hface.util$every$f__339.invoke(util.clj:13)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:748)

It seems there are many keys in the grouped stats map (stats.clj:47) which are frequently very large (or very small) longs - such as :last-updated-time, :last-accessed-time, :created-time, :min-age, :max-age, etc.

I fixed this temporarily by replacing merge-with + with merge-with +' in stats.clj:47, but that seems like a pretty hacky solution - what does it even mean to sum the last updated times? Or sum the min ages?

Using latest hface and Hazelcast 3.8.6.

add per member stats chart(s)

     cluster wide chart here
================================      ;; per member charts below
                        10.1.1.1
g/s ----------------
p/s -------
h/s ---------
................................
                        10.1.1.2
g/s ----------------
p/s -------
h/s ---------
................................
                        10.1.1.3
g/s ----------------
p/s -------
h/s ---------
................................
...

Hazelcast version issue

While using hazelcast 3.12.5 and spring boot 2.2.4 I get the following error.
WARNING: could not read stats from node [ #object[com.hazelcast.client.impl.MemberImpl 0x216b0803 Member [127.0.0.1]:5701 - 1046b59f-b020-419d-a027-c9dc6fd54de8] ]: Unexpected character (':' (code 58)): was expecting double-quote to start field name
at [Source: java.io.StringReader@927a225; line: 1, column: 3].
How can I get past this ? It looks like there are no issues with <3.12.4

Any solution of jcache metric ?

Hi, is there any solution of jcache metric monitoring ?

Hface looks like extract metrics using RPC with InstanceStatsTask.java.

When I tested with url /stats, I can see extracted JCache metrics.

But I can't see Jcache in Dashboard, Is it supports only Map, MultiMap, Queue now?

Thank you.

NoSuchMethodError in Hazelcast Server

Hi @tolitius, I am trying to run the hface after adding the dependency in the hazelcast pom.xml:

org.hface
hface-client
0.1.8

While running the hface instance we are getting the following error in the hface logs:
WARNING: could not read stats from node [ #object[com.hazelcast.client.impl.MemberImpl 0x13e6cb4c Member [127.0.0.1]:5701 - f947bc0f-09db-453b-ba25-9d7973783336] ]: Unexpected character (':' (code 58)): was expecting double-quote to start field name
at [Source: java.io.StringReader@29f8eb20; line: 1, column: 3]
Sep 25, 2023 11:13:16 AM clojure.tools.logging$eval1155$fn__1159 invoke
WARNING: could not read stats from node [ #object[com.hazelcast.client.impl.MemberImpl 0x13e6cb4c Member [127.0.0.1]:5701 - f947bc0f-09db-453b-ba25-9d7973783336] ]: Unexpected character (':' (code 58)): was expecting double-quote to start field name
at [Source: java.io.StringReader@680251; line: 1, column: 3]
Sep 25, 2023 11:13:21 AM clojure.tools.logging$eval1155$fn__1159 invoke

And the following in the hazelcast server logs:
2023-09-25 05:40:11.011 [cached.thread-2] WARN [---] org.hface.InstanceStatsTask - {:error "could not collect stats from instance"}

java.lang.2023-09-25 05:40:11.011 [cached.thread-2] WARN [---] org.hface.InstanceStatsTask - {:error "could not collect stats from instance"}

java.lang.NoSuchMethodError: com.hazelcast.internal.management.TimedMemberStateFactory.createTimedMemberState()Lcom/hazelcast/internal/management/TimedMemberState;
at org.hface.InstanceStatsTask.call(InstanceStatsTask.java:65)
at org.hface.InstanceStatsTask.call(InstanceStatsTask.java:16)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.hazelcast.executor.impl.DistributedExecutorService$CallableProcessor.run(DistributedExecutorService.java:241)
at com.hazelcast.util.executor.CachedExecutorServiceDelegate$Worker.run(CachedExecutorServiceDelegate.java:227)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:64)
at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:80): com.hazelcast.internal.management.TimedMemberStateFactory.createTimedMemberState()Lcom/hazelcast/internal/management/TimedMemberState;
at org.hface.InstanceStatsTask.call(InstanceStatsTask.java:65)
at org.hface.InstanceStatsTask.call(InstanceStatsTask.java:16)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.hazelcast.executor.impl.DistributedExecutorService$CallableProcessor.run(DistributedExecutorService.java:241)
at com.hazelcast.util.executor.CachedExecutorServiceDelegate$Worker.run(CachedExecutorServiceDelegate.java:227)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:64)
at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:80)

Any help would be highly appreciated!

Building uberjar fails

Hi! When following the README when I attempt to run lein ring uberjar I get:

java.io.FileNotFoundException: Could not locate chazel__init.class or chazel.clj on classpath., compiling:(stats.clj:1:1)
Exception in thread "main" java.io.FileNotFoundException: Could not locate chazel__init.class or chazel.clj on classpath., compiling:(stats.clj:1:1)

add latencies (i.e. response time) for ops

for example, here is relevant stats hz collects for map get ops:

public void incrementGets(long latency) {
  GET_COUNT_UPDATER.incrementAndGet(this);
  TOTAL_GET_LATENCIES_UPDATER.addAndGet(this, latency);
  MAX_GET_LATENCY_UPDATER.set(this, Math.max(maxGetLatency, latency));
}

neither current or average latencies are recorded by hz, for some reason. so calculate it as:

( total get latency now - total get latency before ) / stats pull interval

No data in dashboard

I use the latest version of hface-dash - 0.1.0 and not receive data in dashboard:

Image

Image

My logs when running hface-dash are:

2020-07-10 09:34:43.547:INFO::main: Logging initialized @2344ms
2020-07-10 09:34:48.082:INFO:oejs.Server:main: jetty-9.2.z-SNAPSHOT
2020-07-10 09:34:48.128:INFO:oejs.ServerConnector:main: Started ServerConnector@28a11cb1{HTTP/1.1}{0.0.0.0:3000}
2020-07-10 09:34:48.130:INFO:oejs.Server:main: Started @6927ms
Started server on port 3000
Jul 10, 2020 9:35:42 AM clojure.tools.logging$eval1155$fn__1159 invoke
INFO: [hface]: scheduling cluster stats collector to run every  5  seconds
Jul 10, 2020 9:35:42 AM clojure.tools.logging$eval1155$fn__1159 invoke
INFO: connecting to:  {:hosts [10.100.4.69 10.100.4.70 10.100.7.73], :retry-ms 5000, :retry-max 720000, :group-name ********, :group-password ********}
Jul 10, 2020 9:35:42 AM com.hazelcast.client.HazelcastClient
INFO: hz.client_0 [be-group] [3.12.1] A non-empty group password is configured for the Hazelcast client. Starting with Hazelcast version 3.11, clients with the same group name, but with different group passwords (that do not use authentication) will be accepted to a cluster. The group password configuration will be removed completely in a future release.
Jul 10, 2020 9:35:42 AM com.hazelcast.client.spi.ClientInvocationService
INFO: hz.client_0 [be-group] [3.12.1] Running with 2 response threads, dynamic=false
Jul 10, 2020 9:35:43 AM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [be-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is STARTING
Jul 10, 2020 9:35:43 AM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [be-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is STARTED
Jul 10, 2020 9:35:43 AM com.hazelcast.client.connection.nio.ClusterConnectorService
INFO: hz.client_0 [be-group] [3.12.1] Trying to connect to cluster with name: be-group
Jul 10, 2020 9:35:43 AM com.hazelcast.client.connection.nio.ClusterConnectorService
INFO: hz.client_0 [be-group] [3.12.1] Trying to connect to [10.100.4.70]:5701 as owner member
Jul 10, 2020 9:35:43 AM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [be-group] [3.12.1] Setting ClientConnection{alive=true, connectionId=1, channel=NioChannel{/10.100.7.76:39239->/10.100.4.70:5701}, remoteEndpoint=[10.100.4.70]:5701, lastReadTime=2020-07-10 09:35:43.246, lastWriteTime=2020-07-10 09:35:43.241, closedTime=never, connected server version=3.12.6} as owner with principal ClientPrincipal{uuid='85a4a663-a612-4143-8e32-881de38426df', ownerUuid='7b089e0f-e48d-464f-805f-c90c132d57c8'}
Jul 10, 2020 9:35:43 AM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [be-group] [3.12.1] Authenticated with server [10.100.4.70]:5701, server version:3.12.6 Local address: /10.100.7.76:39239
Jul 10, 2020 9:35:43 AM com.hazelcast.client.spi.impl.ClientMembershipListener
INFO: hz.client_0 [be-group] [3.12.1] 
Members [3] {
	Member [10.100.4.69]:5701 - 0b8b761e-46c9-43a4-882d-338273111e31
	Member [10.100.7.73]:5701 - bb951b25-05c4-44cb-9f84-c2409ecd472c
	Member [10.100.4.70]:5701 - 7b089e0f-e48d-464f-805f-c90c132d57c8
}
Jul 10, 2020 9:35:43 AM com.hazelcast.core.LifecycleService
INFO: hz.client_0 [be-group] [3.12.1] HazelcastClient 3.12.1 (20190611 - 0a0ee66) is CLIENT_CONNECTED
Jul 10, 2020 9:35:43 AM com.hazelcast.internal.diagnostics.Diagnostics
INFO: hz.client_0 [be-group] [3.12.1] Diagnostics started
Jul 10, 2020 9:35:43 AM com.hazelcast.internal.diagnostics.BuildInfoPlugin
INFO: hz.client_0 [be-group] [3.12.1] Plugin:active
Jul 10, 2020 9:35:43 AM com.hazelcast.internal.diagnostics.ConfigPropertiesPlugin
INFO: hz.client_0 [be-group] [3.12.1] Plugin:active
Jul 10, 2020 9:35:43 AM com.hazelcast.internal.diagnostics.SystemPropertiesPlugin
INFO: hz.client_0 [be-group] [3.12.1] Plugin:active
Jul 10, 2020 9:35:43 AM com.hazelcast.internal.diagnostics.MetricsPlugin
INFO: hz.client_0 [be-group] [3.12.1] Plugin:active, period-millis:60000
Jul 10, 2020 9:35:43 AM com.hazelcast.internal.diagnostics.SystemLogPlugin
INFO: hz.client_0 [be-group] [3.12.1] Plugin:active: logPartitions:false
Jul 10, 2020 9:35:43 AM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [be-group] [3.12.1] Authenticated with server [10.100.4.69]:5701, server version:3.12.6 Local address: /10.100.7.76:56743
Jul 10, 2020 9:35:43 AM com.hazelcast.client.connection.ClientConnectionManager
INFO: hz.client_0 [be-group] [3.12.1] Authenticated with server [10.100.7.73]:5701, server version:3.12.6 Local address: /10.100.7.76:43085

Any suggestion? Thanks

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.