blob: 2cd48ed7f3cc5aa8d1ad639c4c4cc1f24420d978 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
= Performance Statistics Extension
== Overview
Ignite provides link:monitoring-metrics/performance-statistics[a built-in tool for cluster profiling.]
The extension provides utilities to link:#building-the-report[create the report] and
link:#print-statistics[print statistics] from the collected files.
== Building the Report
Ignite provides a tool to generate the report from the performance statistics files.
Follow these steps to build the performance report:
1. Stop collecting statistics and place files from all nodes under an empty directory. For example:
/path_to_files/
├── node-162c7147-fef8-4ea2-bd25-8653c41fc7fa.prf
├── node-7b8a7c5c-f3b7-46c3-90da-e66103c00001.prf
└── node-faedc6c9-3542-4610-ae10-4ff7e0600000.prf
2. Run the script from the release package of the tool:
[source,shell]
----
performance-statistics-tool/build-report.sh path_to_files
----
The performance report is created in the new directory under the performance statistics files:
`path_to_files/report_yyyy-MM-dd_HH-mm-ss/`.
Open `report_yyyy-MM-dd_HH-mm-ss/index.html` in the browser to see the report.
For more details run the help command:
[source,shell]
----
performance-statistics-tool/build-report.sh --help
----
== Print Statistics
Ignite provides a tool to print statistics to a console or to a file in JSON format.
Run the script from the release package of the tool to print statistics:
[source,shell]
----
performance-statistics-tool/print-statistics.sh path_to_files
----
Note that `path_to_files` is a path to the performance statistics file or files directory.
The script provides the ability to filter operations by operation's type, time, or cache. For more details run the
help command:
[source,shell]
----
performance-statistics-tool/print-statistics.sh --help
----
See the output example below:
{"op":"CACHE_GET","nodeId":"955130d1-5218-4e46-87f6-62755e92e9b4","cacheId":-1809642915,"startTime":1616837094237,"duration":64992213}
{"op":"CACHE_PUT","nodeId":"955130d1-5218-4e46-87f6-62755e92e9b4","cacheId":-1809642915,"startTime":1616837094237,"duration":879869}
{"op":"CACHE_GET_AND_PUT","nodeId":"955130d1-5218-4e46-87f6-62755e92e9b4","cacheId":1328364293,"startTime":1616837094248,"duration":17186240}
{"op":"TX_COMMIT","nodeId":"955130d1-5218-4e46-87f6-62755e92e9b4","cacheIds":[-1809642915],"startTime":1616837094172,"duration":184887787}
{"op":"QUERY","nodeId":"955130d1-5218-4e46-87f6-62755e92e9b4","type":"SQL_FIELDS","text":"create table Person (id int, val varchar, primary key (id))","id":0,"startTime":1616837094143,"duration":258741595,"success":true}