OpenSearch Dashboards Included with the Platform

The Zend Enterprise Web Platform ships with OpenSearch as its observability data store and OpenSearch Dashboards as the visualization layer on top of it. Together they give you a searchable, visual view of the logs, metrics, and traces flowing out of your applications and the platform's services with useful dashboards available out of the box, on first install.

This section explains where the observability data comes from, how to access the dashboards, and how to manage them.

What the dashboards show you

Everything the platform observes ends up in OpenSearch:

  • Logs: Gathered from every node by FluentBit (running as a DaemonSet) and shipped to OpenSearch. This includes your application's logs, nginx access/error logs (emitted in a structured JSON format), and the logs of the platform services.
  • Metrics: Scraped from the platform's services by the OpenTelemetry collector via dedicated exporters (MySQL, Redis, PHP-FPM, and ZendHQ), then forwarded through Data Prepper into OpenSearch.
  • Traces: Emitted by your application (and the gateway) through OpenTelemetry and forwarded through Data Prepper into OpenSearch. Because Job Queue requests are traced too, you can follow a single request from the initial web hit through to any background jobs it spawned.

OpenSearch Dashboards visualizes all three, so you can investigate behavior and performance across the whole platform from one place.

Default dashboards on first install

By default, the platform imports a set of pre-configured dashboards automatically the first time it is installed. This behavior is controlled by the dashboard import setting:

Copy
ERROR: Invalid Code Highlighting Language

Leave dashboardImport.enabled set to true (the default) to get the shipped dashboards without any manual setup. If you maintain your own dashboards and don't want the platform's imported, set it to false.

The Data Prepper pipelines write metrics and logs to index aliases (metrics-otel-v1 and logs-otel-v1 by default). The shipped dashboards are built against these aliases. If you change the aliases under zendphp-data-prepper.config, you may need to adjust the dashboards accordingly.

Accessing OpenSearch Dashboards

There are two ways to reach the dashboards: port-forward the service from your control plane, or expose it through the gateway.

Option A - port-forward (no public exposure)

This keeps the dashboards private to whoever has cluster access. First, find the OSD service:

Copy
kubectl -n <namespace> get svc

Then forward a local port to the dashboards' port 5601:

Copy
kubectl -n <namespace> port-forward <service_name> 5601:5601

The first 5601 is the port on the machine running kubectl; the second is the port the service exposes in the cluster. Browse to:

Copy
http://localhost:5601

kubectl port-forward tunnels over your cluster's TLS-secured connection, so it's a secure way to reach the dashboards without exposing them publicly — ideal when you run kubectl from inside your VPN.

Option B - expose through the gateway

To make the dashboards reachable at a hostname, configure the OpenSearch hostname in your global values:

Copy
ERROR: Invalid Code Highlighting Language

The dashboards are then exposed on that hostname through the platform gateway, and you can reach them directly:

Copy
http://dashboards.example.com

Exposing the dashboards through the gateway makes them reachable to anyone who can reach that hostname. Put appropriate access controls (network policy, an authenticating proxy, or TLS termination with authentication) in front of them before exposing observability data beyond your trusted network.

Managing and extending the dashboards

You can open a shell into the OpenSearch Dashboards container to install or manage pre-configured dashboards, and into the OpenSearch container to perform backups, archive old data, or dump data:

Copy
# Shell into a container (use -c to target a specific container)
kubectl -n <namespace> exec -it <pod_name> -- /bin/sh

Tuning the observability stack

The defaults are sufficient for most deployments, but the relevant knobs are:

  • OpenSearch storage and resources: zendphp-opensearch.persistence.size, zendphp-opensearch.resources, and zendphp-opensearch.opensearchJavaOpts (JVM heap). Increase storage as your telemetry volume grows.
  • Dashboards resources and scaling: zendphp-dashboards.resources and zendphp-dashboards.autoscaling.
  • Trace sampling: global.tracingRatio (0–100) controls what percentage of requests are traced. The default is 75.
  • Data Prepper throughput: Enable zendphp-data-prepper.autoscaling if Data Prepper can't keep up with your telemetry volume.