GithubHelp home page GithubHelp logo

isabella232 / perftop Goto Github PK

View Code? Open in Web Editor NEW

This project forked from opensearch-project/perftop

0.0 0.0 0.0 59.22 MB

๐Ÿ“ˆ PerfTop: A client for the OpenSearch Performance Analyzer

Home Page: https://opensearch.org/docs/latest/monitoring-plugins/pa/index/#get-started-with-perftop

License: Apache License 2.0

JavaScript 100.00%

perftop's Introduction

CD Documentation Chat PRs welcome!

OpenSearch PerfTop

The PerfTop CLI provides pre-configured dashboards for analyzing cluster, node, shard performance, and more. Use custom JSON templates to create the dashboards you need to diagnose your cluster performance.

Preset Dashboards

  • All sorts are in decreasing order.
  • Bar graphs show aggregated metrics on cluster-level unless stated otherwise.
  • Line graphs generate random colors. If no data shows up, it's likely that the data is 0.

ClusterOverview

term

This dashboard can be used to see what operations are running on cluster-level and on shard-level. With this, users can measure which operation/node is consuming the most CPU and what latency the cluster is experiencing.
  • "Resource Metrics" is sorted by CPU_Utilization.
  • "Shard Operation Metrics" is sorted by ShardEvents.
  • "Workload" is sorted by HTTP_RequestDocs.

ClusterNetworkMemoryAnalysis

term

This dashboard shows shard-level operation, the network, and memory metrics. It can be used to analyze which shard is doing the most workload, the amount of data being transmitted by the network, which disk is performing poorly, and which circuit breaker type is experiencing OutOfMemory exceptions.
  • "Shard Operation Metrics" is sorted by ShardEvents.
  • "Circuit Breaker - Tripped Events / Estimated and Configured Limits" is sorted by CB_TrippedEvents.

ClusterThreadAnalysis

term

This dashboard shows low-level metrics about threads/threadpools, which can be used to analyze which threadpool type is rejecting operations due to its queue being too large, which thread is running/waiting for too long and results in blocks, and which thread operation is having issues with memory and is having to load it from the disk.
  • "Thread Pool - Queue Size and Rejected Requests" is sorted by ThreadPool_RejectedReqs.
  • "Thread - Blocked Time" is sorted by Thread_Blocked_Time.
  • "Page Faults" is sorted by Paging_MajfltRate.
  • All "Context Switch" tables are sorted by Sched_*.

NodeAnalysis

term

This dashboard has the most wide ranges of metric types. It shows shard-level operation metrics, thread metrics, JVM-related metrics (e.g. heap usage, garbage collection), and network packet drop rate metrics. After gaining some insights from the previous dashboards, users can specify which node to fetch metrics for.

This dashboard supports --nodename $NODENAME command-line argument for displaying metric data for ONLY the node that starts with $NODENAME. If not provided, this dashboard will include all nodes. Users can also define different node names for each type of graphs from the JSON dashboard config.

  • "Shard Operation Metrics" is sorted by ShardEvents.
  • "Shard Request Cache Miss" is sorted by Cache_Request_Miss.
  • "Thread Pool - Queue Size and Rejected Requests" is sorted by ThreadPool_RejectedReqs.
  • "Heap Usage" is sorted by Heap_Used.
  • If no --nodename $NODENAME is provided, the bar graphs will be aggregated metrics on cluster-level.

Installation

Excutables:

Download the executables and preset JSON dashboard configs here.

Supported platforms: Linux, macOS

Usage

Excutables:

./opensearch-perf-top-${PLATFORM} --dashboard $JSON --endpoint $ENDPOINT

Build

Prerequisites:

  • node (version >= v10.0 < v11.0)
  • npm
  1. Clone/download from Github
  2. Run ./gradlew build -Dbuild.linux={true/false} -Dbuild.macos={true/false}. This will run the following:
    1. npm install - locally installs dependencies
    2. npm run build-{linux/macos} - creates "opensearch-perf-top-{linux/macos}" executables.
  3. For cleaning, run ./gradlew clean which will run:
    1. npm run clean - deletes locally installed dependencies and executables

To run PerfTop without (re)creating the executables every code change:

node ./lib/bin.js --dashboard $JSON

Documentation

Please refer to the technical documentation for detailed information on installing and configuring Perftop.

Contributing

See developer guide and how to contribute to this project.

Code of Conduct

This project has adopted the Amazon Open Source Code of Conduct. For more information see the Code of Conduct FAQ, or contact [email protected] with any additional questions or comments.

Security

If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our vulnerability reporting page. Please do not create a public GitHub issue.

License

This project is licensed under the Apache v2.0 License.

Copyright

Copyright OpenSearch Contributors. See NOTICE for details.

perftop's People

Contributors

aditjind avatar aesgithub avatar aetter avatar allenyin96 avatar carlmeadows avatar dependabot[bot] avatar dzane17 avatar elfisher avatar gaiksaya avatar hxiao608 avatar hyandell avatar jotok avatar keety avatar khushbr avatar kjoseph07 avatar ktkrg avatar mend-for-github-com[bot] avatar rguo-aws avatar ricardolstephen avatar ryanbogan avatar sidheart avatar sruti1312 avatar tclin1023 avatar vachashah avatar yeajung avatar

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.