[APM] Add PHP runtime metrics and SDK health dashboard#277480
Conversation
|
Pinging @elastic/obs-presentation-team (Team:obs-presentation) |
Add OTel-native EDOT PHP dashboard covering: - CPU time and context switches (process.cpu.time, process.context_switches) - Memory usage and limit (php.memory.usage, php.memory.peak_usage, php.memory.limit) - OPcache memory and statistics (php.opcache.*) - Garbage collection activity and timings (php.gc.*) - SDK span/log processor queue health (otel.sdk.processor.*)
358a059 to
fa0e106
Compare
🔍 Preview links for changed docs⏳ Building and deploying preview... View progress This comment will be updated with preview links when the build is complete. |
✅ Elastic Docs Style Checker (Vale)No issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
There was a problem hiding this comment.
Reviewed the dashboard catalog routing, the filename test cases, and the new PHP dashboard JSON. The routing and tests look consistent with getSdkNameAndLanguage/getIngestionPath. One concrete correctness concern on the dashboard JSON, left inline: per-panel state.query and layer query reference divergent metric fields.
Generated by Claude Reviewer for #277480 · 259.9 AIC · ⌖ 7.79 AIC · ⊞ 4.3K
There was a problem hiding this comment.
Reviewed the new PHP EDOT dashboard and its catalog/test wiring. The plumbing looks correct — catalog entries, loadDashboardFile case, getDashboardFileName resolution, and the added test cases are all consistent, and the dashboard JSON is structurally valid (grid layout, panel indices, Lens column references, and {{indexPattern}} templating all check out). Left one inline comment on the dashboard about aggregating monotonic counters with AVG plus a minor stale-query note.
Generated by Claude Reviewer for #277480 · 253.4 AIC · ⌖ 11.5 AIC · ⊞ 4.3K
* Synchronize Lens ES|QL query copies and use reset-aware rates for monotonic PHP runtime counters.
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds a new APM static dashboard JSON for PHP runtime/SDK health metrics and wires it into the APM static dashboard catalog and dashboard selection logic.
Changes:
- Adds a new OTel-native EDOT PHP runtime/SDK health dashboard saved object JSON.
- Registers new PHP dashboard file names in the static dashboard catalog and loader.
- Extends
get_dashboard_file_nametests with PHP agent mappings (EDOT + vanilla OTel variants) and adds a changelog entry.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| x-pack/solutions/observability/plugins/apm/public/components/app/metrics/static_dashboard/dashboards/otel_native-edot-php.json | Adds the saved-object JSON definition for the PHP runtime/SDK health dashboard |
| x-pack/solutions/observability/plugins/apm/public/components/app/metrics/static_dashboard/dashboards/get_dashboard_file_name.test.ts | Adds PHP agent → dashboard filename mappings to the test matrix |
| x-pack/solutions/observability/plugins/apm/public/components/app/metrics/static_dashboard/dashboards/dashboard_catalog.ts | Registers PHP dashboard filenames and adds a dynamic import path for them |
| docs/changelog/277480.yaml | Adds a changelog entry for the new dashboard |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
💛 Build succeeded, but was flaky
Failed CI StepsTest Failures
Metrics [docs]Module Count
Async chunks
History
cc @intuibase |
Summary
Add a shared OTel-native PHP runtime metrics and SDK health dashboard for:
EDOT PHP (opentelemetry/php/elastic)
OpenTelemetry PHP distro (opentelemetry/php/opentelemetry-php-distro)
Vanilla OpenTelemetry PHP instrumentation (opentelemetry/php/opentelemetry-php-instrumentation)
These variants share one dashboard because they expose the same runtime metrics from open-telemetry/opentelemetry-metrics-runtime.
The dashboard covers:
Checklist
Check the PR satisfies following conditions.
Reviewers should verify this PR satisfies this list as well.
release_note:breakinglabel should be applied in these situations.release_note:*label is applied per the guidelinesbackport:*labels.Identify risks
No risk