Skip to content

add websphere_otel package#18182

Open
stefans-elastic wants to merge 4 commits intoelastic:mainfrom
stefans-elastic:websphere-cp
Open

add websphere_otel package#18182
stefans-elastic wants to merge 4 commits intoelastic:mainfrom
stefans-elastic:websphere-cp

Conversation

@stefans-elastic
Copy link
Copy Markdown
Contributor

Proposed commit message

See title

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have verified that all data streams collect metrics or logs.
  • I have added an entry to my package's changelog.yml file.
  • I have verified that Kibana version constraints are current according to guidelines.
  • I have verified that any added dashboard complies with Kibana's Dashboard good practices

Author's Checklist

  • [ ]

How to test this PR locally

Related issues

Screenshots

@stefans-elastic stefans-elastic requested a review from a team as a code owner April 1, 2026 12:20
@stefans-elastic stefans-elastic added enhancement New feature or request Team:Obs-InfraObs Observability Infrastructure Monitoring team [elastic/obs-infraobs-integrations] labels Apr 1, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 1, 2026

Vale Linting Results

Summary: 6 warnings found

⚠️ Warnings (6)
File Line Rule Message
packages/websphere_otel/docs/README.md 18 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'using' instead of 'via'.
packages/websphere_otel/docs/README.md 44 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/websphere_otel/docs/README.md 45 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/websphere_otel/docs/README.md 46 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/websphere_otel/docs/README.md 47 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'for example' instead of 'e.g'.
packages/websphere_otel/docs/README.md 48 Elastic.Latinisms Latin terms and abbreviations are a common source of confusion. Use 'using' instead of 'via'.

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.

@elasticmachine
Copy link
Copy Markdown

💚 Build Succeeded

History

@andrewkroh andrewkroh added documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. New Integration Issue or pull request for creating a new integration package. dashboard Relates to a Kibana dashboard bug, enhancement, or modification. labels Apr 1, 2026
@muthu-mps muthu-mps requested a review from Copilot April 8, 2026 05:00
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new websphere_otel content package that ships Kibana assets (dashboards, alert rule templates, and SLO templates) for IBM WebSphere metrics collected via the OpenTelemetry Collector/Prometheus receiver.

Changes:

  • Introduces the websphere_otel package scaffolding (manifest, license, changelog, docs, images).
  • Adds four Kibana dashboards covering overview, servlet performance, resource pools, and JVM health.
  • Adds ES|QL-based alert rule templates and two SLO templates for servlet error rate and latency.

Reviewed changes

Copilot reviewed 19 out of 28 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
packages/websphere_otel/manifest.yml Package definition (metadata, conditions, discovery, screenshots/icons).
packages/websphere_otel/LICENSE.txt Elastic License 2.0 text for the package.
packages/websphere_otel/changelog.yml Initial changelog entry for v0.1.0.
packages/websphere_otel/docs/README.md Package documentation + setup/config example + asset inventory.
packages/websphere_otel/img/overview.png Overview dashboard screenshot.
packages/websphere_otel/img/servlet_performance.png Servlet performance dashboard screenshot.
packages/websphere_otel/img/resource_pools.png Resource pools dashboard screenshot.
packages/websphere_otel/img/jvm_health.png JVM dashboard screenshot.
packages/websphere_otel/img/webspere_otel_logo.svg Package icon asset.
packages/websphere_otel/kibana/dashboard/websphere_otel-overview.json Overview dashboard saved object.
packages/websphere_otel/kibana/dashboard/websphere_otel-servlet-performance.json Servlet performance dashboard saved object.
packages/websphere_otel/kibana/dashboard/websphere_otel-resource-pools.json Resource pools dashboard saved object.
packages/websphere_otel/kibana/dashboard/websphere_otel-jvm.json JVM health dashboard saved object.
packages/websphere_otel/kibana/alerting_rule_template/websphere_otel-webcontainer-thread-pool-saturation.json Alert rule template for WebContainer thread pool saturation.
packages/websphere_otel/kibana/alerting_rule_template/websphere_otel-transaction-timeouts.json Alert rule template for transaction timeouts.
packages/websphere_otel/kibana/alerting_rule_template/websphere_otel-session-capacity-exhausted.json Alert rule template for session rejection rate.
packages/websphere_otel/kibana/alerting_rule_template/websphere_otel-servlet-error-rate-elevated.json Alert rule template for elevated servlet error rate.
packages/websphere_otel/kibana/alerting_rule_template/websphere_otel-jvm-heap-memory-pressure.json Alert rule template for JVM heap utilization.
packages/websphere_otel/kibana/alerting_rule_template/websphere_otel-hung-threads-detected.json Alert rule template for hung threads.
packages/websphere_otel/kibana/alerting_rule_template/websphere_otel-connection-pool-high-utilization.json Alert rule template for connection pool utilization.
packages/websphere_otel/kibana/alerting_rule_template/websphere_otel-connection-pool-faults.json Alert rule template for connection pool faults.
packages/websphere_otel/kibana/slo_template/websphere_otel-servlet-error-rate-99.5-Rolling30Days.json SLO template for servlet error rate timeslice SLI.
packages/websphere_otel/kibana/slo_template/websphere_otel-avg-servlet-response-time-99.5-Rolling30Days.json SLO template for average servlet response time timeslice SLI.
packages/websphere_otel/_dev/shared/kibana/websphere_otel-overview.yaml Source YAML for generating the overview dashboard.
packages/websphere_otel/_dev/shared/kibana/websphere_otel-servlet-performance.yaml Source YAML for generating the servlet performance dashboard.
packages/websphere_otel/_dev/shared/kibana/websphere_otel-resource-pools.yaml Source YAML for generating the resource pools dashboard.
packages/websphere_otel/_dev/shared/kibana/websphere_otel-jvm.yaml Source YAML for generating the JVM dashboard.
.github/CODEOWNERS Adds package ownership entry for websphere_otel.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

elastic:
subscription: "basic"
discovery:
fields: []
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

discovery uses fields: [], but other type: content packages in this repo use discovery.datasets to declare the dataset(s) the assets apply to (e.g., packages/apache_otel/manifest.yml). Using fields here is likely invalid and may break package validation/discovery. Update this to discovery: { datasets: [ { name: "websphere.otel" } ] } (or the correct dataset name).

Suggested change
fields: []
datasets:
- name: websphere.otel

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stefans-elastic - Can we apply this change?

Comment on lines +38 to +40
icons:
- src: /img/webspere_otel_logo.svg
title: WebSphere OTel logo
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The icon filename/path uses webspere_otel_logo.svg (missing the "h" in "websphere"). While it currently matches the checked-in file, this typo is likely unintentional and can cause confusion/inconsistency with the package name/branding. Consider renaming the asset to websphere_otel_logo.svg and updating this reference accordingly.

Copilot uses AI. Check for mistakes.
Comment on lines +15 to +30
"field": "was_servlet_errors_total"
},
{
"name": "B",
"aggregation": "min",
"field": "was_servlet_errors_total"
},
{
"name": "C",
"aggregation": "max",
"field": "was_servlet_requests_total"
},
{
"name": "D",
"aggregation": "min",
"field": "was_servlet_requests_total"
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SLO metric fields here omit the metrics. prefix (e.g. was_servlet_errors_total). In this package’s dashboards/alerts, the same metrics are referenced as metrics.was_servlet_*, which suggests the indexed field names are under the metrics object. If so, these SLOs will not find the fields and will never evaluate correctly. Align the SLO field values with the actual indexed field paths used elsewhere in the package (likely metrics.was_servlet_errors_total / metrics.was_servlet_requests_total).

Suggested change
"field": "was_servlet_errors_total"
},
{
"name": "B",
"aggregation": "min",
"field": "was_servlet_errors_total"
},
{
"name": "C",
"aggregation": "max",
"field": "was_servlet_requests_total"
},
{
"name": "D",
"aggregation": "min",
"field": "was_servlet_requests_total"
"field": "metrics.was_servlet_errors_total"
},
{
"name": "B",
"aggregation": "min",
"field": "metrics.was_servlet_errors_total"
},
{
"name": "C",
"aggregation": "max",
"field": "metrics.was_servlet_requests_total"
},
{
"name": "D",
"aggregation": "min",
"field": "metrics.was_servlet_requests_total"

Copilot uses AI. Check for mistakes.
Comment on lines +15 to +30
"field": "was_servlet_response_time_seconds_total"
},
{
"name": "B",
"aggregation": "min",
"field": "was_servlet_response_time_seconds_total"
},
{
"name": "C",
"aggregation": "max",
"field": "was_servlet_requests_total"
},
{
"name": "D",
"aggregation": "min",
"field": "was_servlet_requests_total"
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SLO metric fields here omit the metrics. prefix (e.g. was_servlet_response_time_seconds_total, was_servlet_requests_total). This package’s dashboards/alerts reference these metrics as metrics.was_*, so these SLOs likely won’t match any fields and won’t evaluate. Update the SLO field paths to match the actual indexed field names used elsewhere (likely metrics.was_servlet_response_time_seconds_total / metrics.was_servlet_requests_total).

Suggested change
"field": "was_servlet_response_time_seconds_total"
},
{
"name": "B",
"aggregation": "min",
"field": "was_servlet_response_time_seconds_total"
},
{
"name": "C",
"aggregation": "max",
"field": "was_servlet_requests_total"
},
{
"name": "D",
"aggregation": "min",
"field": "was_servlet_requests_total"
"field": "metrics.was_servlet_response_time_seconds_total"
},
{
"name": "B",
"aggregation": "min",
"field": "metrics.was_servlet_response_time_seconds_total"
},
{
"name": "C",
"aggregation": "max",
"field": "metrics.was_servlet_requests_total"
},
{
"name": "D",
"aggregation": "min",
"field": "metrics.was_servlet_requests_total"

Copilot uses AI. Check for mistakes.
"timeWindowUnit": "m",
"groupBy": "row",
"termField": "host.name",
"termSize": 10
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All other .es-query alerting_rule_template definitions in this repo include an explicit excludeHitsFromPreviousRun setting (e.g. packages/apache_otel/kibana/alerting_rule_template/apache_otel-high-server-load.json). This template omits it, which can change default behavior and potentially create duplicate/noisy alerts across runs. Add excludeHitsFromPreviousRun (typically true for these aggregated ES|QL rules) to the params block for consistency and predictable behavior.

Suggested change
"termSize": 10
"termSize": 10,
"excludeHitsFromPreviousRun": true

Copilot uses AI. Check for mistakes.
"timeWindowUnit": "m",
"groupBy": "row",
"termField": "attributes.appname",
"termSize": 10
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This alert rule template omits the excludeHitsFromPreviousRun parameter that is consistently set on .es-query ES|QL templates across this repo. Add an explicit excludeHitsFromPreviousRun value (commonly true) to ensure predictable behavior and avoid repeated alerts from the same matching rows across executions.

Suggested change
"termSize": 10
"termSize": 10,
"excludeHitsFromPreviousRun": true

Copilot uses AI. Check for mistakes.
Comment on lines +33 to +38
"timeWindowSize": 10,
"timeWindowUnit": "m",
"groupBy": "row",
"termField": "host.name",
"termSize": 10
}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This alert rule template omits the excludeHitsFromPreviousRun parameter that is consistently set on .es-query ES|QL templates across this repo. Add an explicit excludeHitsFromPreviousRun value (commonly true) to ensure predictable behavior and avoid repeated alerts from the same matching rows across executions.

Copilot uses AI. Check for mistakes.
Comment on lines +33 to +38
"timeWindowSize": 5,
"timeWindowUnit": "m",
"groupBy": "row",
"termField": "attributes.pool",
"termSize": 10
}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This alert rule template omits the excludeHitsFromPreviousRun parameter that is consistently set on .es-query ES|QL templates across this repo. Add an explicit excludeHitsFromPreviousRun value (commonly true) to ensure predictable behavior and avoid repeated alerts from the same matching rows across executions.

Copilot uses AI. Check for mistakes.
Comment on lines +33 to +38
"timeWindowSize": 10,
"timeWindowUnit": "m",
"groupBy": "row",
"termField": "attributes.jndiname",
"termSize": 10
}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This alert rule template omits the excludeHitsFromPreviousRun parameter that is consistently set on .es-query ES|QL templates across this repo. Add an explicit excludeHitsFromPreviousRun value (commonly true) to ensure predictable behavior and avoid repeated alerts from the same matching rows across executions.

Copilot uses AI. Check for mistakes.
Comment on lines +33 to +38
"timeWindowSize": 5,
"timeWindowUnit": "m",
"groupBy": "row",
"termField": "attributes.jndiname",
"termSize": 10
}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This alert rule template omits the excludeHitsFromPreviousRun parameter that is consistently set on .es-query ES|QL templates across this repo. Add an explicit excludeHitsFromPreviousRun value (commonly true) to ensure predictable behavior and avoid repeated alerts from the same matching rows across executions.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dashboard Relates to a Kibana dashboard bug, enhancement, or modification. documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. enhancement New feature or request New Integration Issue or pull request for creating a new integration package. Team:Obs-InfraObs Observability Infrastructure Monitoring team [elastic/obs-infraobs-integrations]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants