How to enable/install performance analyzer on opensearch 3.0 in docker-compose

Versions (relevant - OpenSearch): 3.0

Describe the issue: I specify in docker-compose

shm_size: 1gb
      - “/dev/shm:/dev/shm”
  - “./config/opensearch-performance-analyzer:/usr/share/opensearch/config/opensearch-performance-analyzer”.

I install the maven plugin but it still doesn’t give anything on - “9600:9600”
can someone give clear instructions how to activate it with minimal config???
Thanks a lot!

Configuration:

mkdir -p /etc/opensearch/opensearch-performance-analyzer

nano /etc/opensearch/opensearch-performance-analyzer/performance-analyzer.properties
---
metrics-location = /dev/shm/performanceanalyzer/
metrics-deletion-interval = 1
webservice-port = 9600
batch-metrics-retention-period-minutes = 7
cleanup-metrics-db-files = false
https-enabled = false

touch /etc/opensearch/opensearch-performance-analyzer/plugin-stats-metadata

sudo chown -R opensearch:opensearch /etc/opensearch/opensearch-performance-analyzer

Relevant Logs or Screenshots:

May 19 13:36:00 native-opensearch-node-vm systemd[1]: Started opensearch-performance-analyzer.service - OpenSearch Performance Analyzer.
May 19 13:36:00 native-opensearch-node-vm performance-analyzer-agent-cli[3756]: Error: Could not find or load main class org.opensearch.performanceanalyzer.PerformanceAnalyzerApp
May 19 13:36:00 native-opensearch-node-vm performance-analyzer-agent-cli[3756]: Caused by: java.lang.ClassNotFoundException: org.opensearch.performanceanalyzer.PerformanceAnalyzerApp
May 19 13:36:00 native-opensearch-node-vm systemd[1]: opensearch-performance-analyzer.service: Main process exited, code=exited, status=1/FAILURE
PerformanceAnalyzer.log :
Error: Could not find or load main class org.opensearch.performanceanalyzer.PerformanceAnalyzerApp
Caused by: java.lang.ClassNotFoundException: org.opensearch.performanceanalyzer.PerformanceAnalyzerApp

@progess I’m getting the same error. I’ve checked the performance-analyzer-agent-cli for 2.19.1 and 3.0.0 and both look the same. Both are calling the same main class.

Would you mind opening an issue in the OpenSearch Performance Analyzer GitHub?

Please share the link to the GitHub issue here.

@progess I think I’ve found the root cause of the reported error.
The opensearch-performance-analyzer-cli is looking for org.opensearch.performanceanalyzer.PerformanceAnalyzerApp class as per /usr/share/opensearch/bin/opensearch-performance-analyzer/performance-analyzer-agent-cli

OPENSEARCH_MAIN_CLASS="org.opensearch.performanceanalyzer.PerformanceAnalyzerApp"

This class should be available in the performance-analyzer-rca.

OPENSEARCH_ADDITIONAL_CLASSPATH_DIRECTORIES=performance-analyzer-rca/lib 

However, in 3.0.0 binary and docker installation /usr/share/opensearch/performance-analyzer-rca is missing.

This is 2.19.1 output.

bash-5.2# jar tf performance-analyzer-rca/lib/performance-analyzer-rca-2.19.1.0.jar |grep PerformanceAnalyzerApp
org/opensearch/performanceanalyzer/PerformanceAnalyzerApp.class

@pablo @progess the performance-analyzer-rca is deprecated and is not maintained anymore. There are no plans to have 3.0.0 releases of it sadly. Thank you.

[1] Deprecate performance-analyzer-rca · Issue #591 · opensearch-project/performance-analyzer-rca · GitHub

@reta According to that GitHub issue the PA RCA is deprecated but PA is still maintained. Is that correct?
If that’s the case, then PA won’t start without RCA as the main class for PA was in RCA’s lib.

@pablo that is very correct, there is disconnect here apparently:

  • either we need to detach the PA from RCA
  • or, we need to push back on deprecation plan for RCA (see please [1] as a failed attempt to do so)

[1] Set performance-analyzer-rca 2.0.0 baseline JDK version to JDK-21 by reta · Pull Request #598 · opensearch-project/performance-analyzer-rca · GitHub