ERROR: Unknown plugin opensearch-performance-analyzer

Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
OpenSearch 2.18, Kali 2024.4

Describe the issue:
Unable to install opensearch-performance-analyzer plugin.

Configuration:
dockercomposer from OpenSearch with the shm_size: ‘1gb’

Relevant Logs or Screenshots:

@Anderson You need to use Maven repository or download the plugin manually to install in OpenSearch.

Try the following command instead.

/usr/share/opensearchbin/opensearch-plugin install org.opensearch.plugin:performance-analyzer:2.18.0.0

This is my working example.

/usr/share/opensearchbin/opensearch-plugin install org.opensearch.plugin:performance-analyzer:2.18.0.0

-> Installing org.opensearch.plugin:performance-analyzer:2.18.0.0
-> Downloading org.opensearch.plugin:performance-analyzer:2.18.0.0 from maven central
[=================================================] 100%??
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* com.sun.tools.attach.AttachPermission attachVirtualMachine
* com.sun.tools.attach.AttachPermission createAttachProvider
* java.io.FilePermission /-#plus read,write,execute,delete,readlink
* java.io.FilePermission build/tmp/junit_metrics#plus read
* java.lang.RuntimePermission accessClassInPackage.jdk.internal.misc
* java.lang.RuntimePermission accessClassInPackage.sun.tools.attach
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission createClassLoader
* java.lang.RuntimePermission defineClass
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission loadLibrary.attach
* java.lang.RuntimePermission manageProcess
* java.lang.reflect.ReflectPermission suppressAccessChecks
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
-> Installed opensearch-performance-analyzer with folder name opensearch-performance-analyzer

1 Like

I have created new docker containers, and now I have the pluggin running, but cant get any data from the API:

GET http://localhost:9600/_plugins/_performanceanalyzer/metrics/units
sh-5.2$ bin/opensearch-plugin list
opensearch-alerting
opensearch-anomaly-detection
opensearch-asynchronous-search
opensearch-cross-cluster-replication
opensearch-custom-codecs
opensearch-flow-framework
opensearch-geospatial
opensearch-index-management
opensearch-job-scheduler
opensearch-knn
opensearch-ml
opensearch-neural-search
opensearch-notifications
opensearch-notifications-core
opensearch-observability
opensearch-performance-analyzer
opensearch-reports-scheduler
opensearch-security
opensearch-security-analytics
opensearch-skills
opensearch-sql
opensearch-system-templates
query-insights
sh-5.2$ cat plugin-descriptor.properties
#
# SPDX-License-Identifier: Apache-2.0
#
# The OpenSearch Contributors require contributions made to
# this file be licensed under the Apache-2.0 license or a
# compatible open source license.
#
# Modifications Copyright OpenSearch Contributors. See
# GitHub history for details.
#

# OpenSearch plugin descriptor file
# This file must exist as 'plugin-descriptor.properties' inside a plugin.
#
### example plugin for "foo"
#
# foo.zip <-- zip file for the plugin, with this structure:
# |____   <arbitrary name1>.jar <-- classes, resources, dependencies
# |____   <arbitrary nameN>.jar <-- any number of jars
# |____   plugin-descriptor.properties <-- example contents below:
#
# classname=foo.bar.BazPlugin
# description=My cool plugin
# version=6.0
# opensearch.version=6.0
# java.version=1.8
#
### mandatory elements for all plugins:
#
# 'description': simple summary of the plugin
description=OpenSearch Performance Analyzer Plugin
#
# 'version': plugin's version
version=2.18.0.0
#
# 'name': the plugin name
name=opensearch-performance-analyzer
#
# 'classname': the name of the class to load, fully-qualified
classname=org.opensearch.performanceanalyzer.PerformanceAnalyzerPlugin
#
# 'java.version': version of java the code is built against
# use the system property java.specification.version
# version string must be a sequence of nonnegative decimal integers
# separated by "."'s and may have leading zeros
java.version=11
#
# 'opensearch.version': semantic version of opensearch the plugin is compatible with
# does not include -SNAPSHOT if compiled against a snapshot build
opensearch.version=2.18.0
#
### optional elements for plugins:
#
# 'custom.foldername': the custom name of the folder in which the plugin is installed
custom.foldername=
#
# 'extended.plugins': other plugins this plugin extends through SPI
extended.plugins=
#
# 'has.native.controller': whether or not the plugin has a native controller
has.native.controller=false

/usr/share/opensearch/config/opensearch-performance-analyzer/performance-analyzer.properties

sh-5.2$ cat performance-analyzer.properties
# Copyright OpenSearch Contributors
# SPDX-License-Identifier: Apache-2.0
#
# The OpenSearch Contributors require contributions made to
# this file be licensed under the Apache-2.0 license or a
# compatible open source license.

# ======================== OpenSearch performance analyzer plugin config =========================

# NOTE: this is an example for Linux. Please modify the config accordingly if you are using it under other OS.

# Metrics data location
metrics-location = /dev/shm/performanceanalyzer/

# Metrics deletion interval (minutes) for metrics data.
# Interval should be between 1 to 60.
metrics-deletion-interval = 1

# If set to true, the system cleans up the files behind it. So at any point, we should expect only 2
# metrics-db-file-prefix-path files. If set to false, no files are cleaned up. This can be useful, if you are archiving
# the files and wouldn't like for them to be cleaned up.
cleanup-metrics-db-files = true

# WebService exposed by App's port
webservice-listener-port = 9600

# Port for RPC Communication
rpc-port = 9650

# Metric DB File Prefix Path location
metrics-db-file-prefix-path = /tmp/metricsdb_

https-enabled = false

# Setup the correct path for server certificates
certificate-file-path = none
private-key-file-path = none
#trusted-cas-file-path = none

# Setup the correct path for client certificates (by default, the client will just use the server certificates)
#client-certificate-file-path = specify_path
#client-private-key-file-path = specify_path
#client-trusted-cas-file-path = specify_path

# WebService bind host; default only to local interface
webservice-bind-host = 0.0.0.0

# Plugin Stats Metadata file name, expected to be in the same location
plugin-stats-metadata = plugin-stats-metadata

# Agent Stats Metadata file name, expected to be in the same location
agent-stats-metadata = agent-stats-metadata

I need to enable something?

@Anderson Take a look at previously shared documentation. There is a command that enables performance analyzer.