In origin an undocumented feature (bug?) is that passing null as a host
name for getRack and getDatacenter returns the rack or datacenter
according to the loopbck address.
This follow the same behaviour, so when the host is null, the function
will not fail but will call the API with the local loopback address
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
This set the rmi port to listen on the jmx port, so the java will not
choose a random port for it.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
-Dcom.sun.management.jmemote.ssl=false need to be
-Dcom.sun.management.jmxremote.ssl=false
Signed-off-by: Shlomi Livne <shlomi@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
The startup scripts helps in running the JMX proxy, wrap the java
command with help and default values.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
This update the README to reflect the changes in the maven and with the
updated command line that open the jmx for external connection so the
nodetool will be able to connect to the jmx proxy.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
args must be specified before jar file, updated args
Signed-off-by: Shlomi Livne <shlomi@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
"This series addresses two issues:
It uses the column family timer to verify that the API is available. After a
number of retry (currently set to 30s) the JMX proxy will shutdown.
Second, it reduce the number of unimplemented depricated method, following
origin way of calling the counters implementation from the depricated methods."
Some of the depricated method in column family are replaced by counters
in Origin. Still, some tools, like nodetool uses the depricated API.
This adds an implementation to some of the depricated method that is
based on the column family counters similiar to origin.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This uses the column family timer to check that the API is still
available.
After MAX_RETRY (currently set to 30s) the proxy will shutdown.
This address issue #2
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The prefix should include version without release.
Without this fix I get:
Complete!
Finish: build setup for scylla-jmx-0.8-20150917.b177d24.fc21.src.rpm
Start: rpmbuild scylla-jmx-0.8-20150917.b177d24.fc21.src.rpm
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.gNKOxr
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf scylla-jmx-0.8
+ /usr/bin/tar -xf
/builddir/build/SOURCES/scylla-jmx-0.8-20150917.b177d24.tar
+ cd scylla-jmx-0.8
/var/tmp/rpm-tmp.gNKOxr: line 33: cd: scylla-jmx-0.8: No such file or
directory
error: Bad exit status from /var/tmp/rpm-tmp.gNKOxr (%prep)
Bad exit status from /var/tmp/rpm-tmp.gNKOxr (%prep)
RPM build errors:
ERROR:
Exception(build/rpmbuild/SRPMS/scylla-jmx-0.8-20150917.b177d24.fc21.src.rpm)
Config(fedora-21-x86_64) 0 minutes 51 seconds
INFO: Results and/or logs in: /home/shlomi/urchin-jmx/build/rpms
INFO: Cleaning up build root ('cleanup_on_failure=True')
Signed-off-by: Shlomi Livne <shlomi@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
This adds version proper version numbering for the scylla-jmx RPM. Please note
that the version number in the server is still hard-coded in the Maven POM
file as "1.0". We need to address that later.
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
The javax does not handle parsing JsonValue directly. So it is replaced
for the getString with a direct removal of the quotations.
The alternative is to replace the javax parser with a different one.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Since systemd unit file already has dependency to scylla-server, we need to add
dependency to rpm as well.
Signed-off-by: Takuya ASADA <syuu@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
getString should return the string value without the sarounding quotes.
For getRaw was introduce that return the API values in its raw value,
and getString was changed to use the json parser to get the string
values without the quotes.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudus-systems.com>
This adds the call to the API for the EndpointSnitch, the url are based
on the endpoint_snitch_info.json swagger definition file.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudus-systems.com>
"The API is currently not supporting notification, but the repair
command that perform via the nodetool relays on the notification to know
when the command terminate.
This series adds support for the repair notification, based on a timer
and periodically check if a current repair command was terminated."
This patch adds a notification support for the repair in StorageService.
When a repair command starts a timer is set to check the status of the
repair, when the repair complets it sends notification for the
successful or fail of the repair.
Because jconsole doesn't run method with variable number of parameters
an additional MBean method was added for async repair with only a
keyspace as its parameter.
All the forceAsycRepair methods are mapped to the asyncRepair metod that
replaces them in 2.2, when options will be supported in the repair, it
will be added to the jmx.
After this patch it is possible to register in the jconsole for
notification, perform a forceAsyncRepair and get the notification that
the repair complets
Sometimes a post command need to return, this adds a method to perform a
post command that returns an int value.
The general postGetVal, can be used for other types if needed.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
"This series adds the JMX API to the row estimated histogram. It adds a
get function in the APIClient to fetch the data. The implementation is
based on the column_family.json for the API call and on utils.json for
the estimated histogram definition."
This change adds path parameter support, for the cases that the path
parameter is the last on the path, for example in the ColumnFamily case
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The getEstimatedRowSizeHistogram is based on the column_family.json that
defined in the API.
The implementation in the MBean and in the metrics is now works with the
get histogram as long array method in the client.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This method returns the estimated histogram buckets. It is based on the
module definied in utils.json in the API.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
"This series adds the effectiveOwnership and getOwnership support to
StorageService. After applying the series the methods will be available
from jconsole."
This adds the implementation of the effectiveOwnership and getOwnership
in StorageService. It uses the API that defined in storage_service.json.
After this patch the effectiveOwnership and getOwnership will be
available via jconsole.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This adds the implementation to the stubed getMapInetAddressFloatValue,
it gets an array of 'key', 'value' and translate it into a map of key to
float.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Some of the depricated function in StorgeProxy uses the Metrics object
to get the information.
This adds an implementation for the following:
getReadOperations
getTotalReadLatencyMicros
getRecentReadLatencyMicros
getTotalReadLatencyHistogramMicros
getRangeOperations
getTotalRangeLatencyMicros
getRecentRangeLatencyMicros
getWriteOperations
getTotalWriteLatencyMicros
getRecentWriteLatencyMicros
It uses the implementation in ClientRequestMetrics without adding new
functionality.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
"The series changes the MBean definition to 2.1. The MBean interface where
copied from origin. To the current implementation methods where added as needed
so all interface methods will have an implementation. All added methods are
stubed with a trace line."
This patch changes the MBeans to 2.1 version, with the changes an empty
stub implementation was added to the implementation so the code can
compile.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This patch cleans the file formatting of ColumnFamilyStore, CommitLog,
StorageProxy and StorageService.
Those files will be modified when moving to 2.1
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
"This series modified the Histogram support to get all of its statistic from the
API. By doing that not only the sample will be accurate but also the on going
statistics of count, sum, min, max mean and std.
It also adds a Timer support, Timer are defined in the yammer library and uses
a Histogram that is been updated regularly. The Timer implementation in the
series would use the APITimer that uses the API.
Current code that uses Timer and Histogram was modified to use the updated
implementation with a URL."
This changes the Timer in ColumnFamilyMetrics, CommitLogMetrics and
LatencyMetrics to be an APITimer.
The APITimer is passed the url to get the data from.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The newTimer methods in the APIMetrics where modified to pass the url so
an APITimer would be returned from the registry.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This adds a Timer creation methods to the APIMetricsRegistry, the
newTimer method would create an APITimer and would pass it the url for
quering.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This is a clean up in the APIMetricsRegistry. It replaces snake case to
camel case, and perform a better formatting of the code.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The Timer object in the yammer library is used to regularly check a
histogram.
The APITimer is a Timer that uses the APIHistogram instead that in it
self calls the API to get its values.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>