Skip to content

[CouchDB Otel] New Content Pack - #17631

Merged
muthu-mps merged 19 commits into
elastic:mainfrom
muthu-mps:couchdb_otel
Mar 19, 2026
Merged

[CouchDB Otel] New Content Pack#17631
muthu-mps merged 19 commits into
elastic:mainfrom
muthu-mps:couchdb_otel

Conversation

@muthu-mps

Copy link
Copy Markdown
Contributor
  • Enhancement

Proposed commit message

Add CouchDB OTel content pack: dashboard, alert rules, SLOs and docs

Content pack for monitoring Apache CouchDB via the OpenTelemetry
CouchDB receiver (metrics-couchdbreceiver.otel-default).

Dashboard (couchdb_otel-overview):

  • KPIs: average request time, HTTP request rate, error rate, open FDs
  • Traffic & Latency: request time over time, requests by method,
    responses by status code, database operations by type
  • Saturation: open file descriptors/databases, view reads
  • Per-Node Analysis: latency by node, error rate by node,
    409 conflict rate by node, bulk request rate
  • Detail tables: response codes (top 15), HTTP methods (top 10)

Alert rules (6):

  • High 5xx server error rate (>5%)
  • High error rate 4xx+5xx (>10%)
  • High average request time (>1000ms)
  • File descriptor exhaustion (>1000 open FDs)
  • Open databases count high (>100)
  • Conflict storm / elevated 409 responses (>10/s)

SLO templates (2):

  • Average request latency: 99.5% of 1m windows <200ms, rolling 30d
  • File descriptor headroom: 99.5% of 1m windows <1000 FDs, rolling 30d

All 22 ES|QL queries validated against a live cluster.

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

  • Start the 9.3.0 stack version to validate the content pack. This would show Alerting Rule Template.
  • To validate SLOs use 9.4.0-SNAPSHOT verison.

Related issues

Screenshots

Screenshot 2026-03-03 at 12 58 53 PM
@github-actions

github-actions Bot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

✅ Vale Linting Results

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.

@muthu-mps
muthu-mps marked this pull request as ready for review March 3, 2026 08:17
@muthu-mps
muthu-mps requested a review from a team as a code owner March 3, 2026 08:18
@muthu-mps muthu-mps self-assigned this Mar 3, 2026
@muthu-mps
muthu-mps requested a review from ishleenk17 March 3, 2026 09:59
@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 Mar 3, 2026

@mykola-elastic mykola-elastic left a comment

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.

Looks good, please, check my comments

Comment thread packages/couchdb_otel/img/couchdb.svg Outdated

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.

  • HTTP responses by status codes
    Would it be better in UX to have not each response code, but grouping 2xx 3xx 4xx 5xx ? Feels like too many categories if we display all of them separately. What do you think?

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.

  • HTTP Requests by Method
    Noticed that categories (Methods) are not sorted from biggest to smallest amount of requests, is it OK?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@muthu-mps : anything to be addressed here ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Noticed that categories (Methods) are not sorted from biggest to smallest amount of requests, is it OK?

This is fine, As we hover over the chat to see the actual usage.

HTTP responses by status codes
Would it be better in UX to have not each response code, but grouping 2xx 3xx 4xx 5xx ? Feels like too many categories if we display all of them separately. What do you think?

  • Grouping responses may not be useful in certain cases, when user is interested in 400, 401, 403 statuses.
  • Lets show all the response for detailed stats.
Comment thread packages/couchdb_otel/manifest.yml Outdated
juliaElastic added a commit to elastic/kibana that referenced this pull request Mar 4, 2026
## Summary

Closes #255910

Relates #253948

Enable Alerting tab to be displayed for input packages too

Tested with CouchDB Content Pack that has alerting rules
elastic/integrations#17631

[couchdb_otel-0.1.0.zip](https://github.com/user-attachments/files/25736442/couchdb_otel-0.1.0.zip)

Uploaded the package, and checked that the Alerting tab is showing up

<img width="1206" height="766" alt="image"
src="https://github.com/user-attachments/assets/03ab6049-ddd7-4209-bace-013b9e8d9f3c"
/>

<img width="1204" height="703" alt="image"
src="https://github.com/user-attachments/assets/8c102d38-fbc3-4257-9d08-6ffdebca1839"
/>

The Alerting tab is only visible if there are alerting type kibana
assets in the package

<img width="1218" height="436" alt="image"
src="https://github.com/user-attachments/assets/39ddc7e8-4037-4ad3-8a28-1f78871fc36d"
/>



### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [ ] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

### Identify risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...
SoniaSanzV pushed a commit to SoniaSanzV/kibana that referenced this pull request Mar 5, 2026
## Summary

Closes elastic#255910

Relates elastic#253948

Enable Alerting tab to be displayed for input packages too

Tested with CouchDB Content Pack that has alerting rules
elastic/integrations#17631

[couchdb_otel-0.1.0.zip](https://github.com/user-attachments/files/25736442/couchdb_otel-0.1.0.zip)

Uploaded the package, and checked that the Alerting tab is showing up

<img width="1206" height="766" alt="image"
src="https://github.com/user-attachments/assets/03ab6049-ddd7-4209-bace-013b9e8d9f3c"
/>

<img width="1204" height="703" alt="image"
src="https://github.com/user-attachments/assets/8c102d38-fbc3-4257-9d08-6ffdebca1839"
/>

The Alerting tab is only visible if there are alerting type kibana
assets in the package

<img width="1218" height="436" alt="image"
src="https://github.com/user-attachments/assets/39ddc7e8-4037-4ad3-8a28-1f78871fc36d"
/>



### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [ ] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

### Identify risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...
rbrtj pushed a commit to rbrtj/kibana that referenced this pull request Mar 5, 2026
## Summary

Closes elastic#255910

Relates elastic#253948

Enable Alerting tab to be displayed for input packages too

Tested with CouchDB Content Pack that has alerting rules
elastic/integrations#17631

[couchdb_otel-0.1.0.zip](https://github.com/user-attachments/files/25736442/couchdb_otel-0.1.0.zip)

Uploaded the package, and checked that the Alerting tab is showing up

<img width="1206" height="766" alt="image"
src="https://github.com/user-attachments/assets/03ab6049-ddd7-4209-bace-013b9e8d9f3c"
/>

<img width="1204" height="703" alt="image"
src="https://github.com/user-attachments/assets/8c102d38-fbc3-4257-9d08-6ffdebca1839"
/>

The Alerting tab is only visible if there are alerting type kibana
assets in the package

<img width="1218" height="436" alt="image"
src="https://github.com/user-attachments/assets/39ddc7e8-4037-4ad3-8a28-1f78871fc36d"
/>



### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [ ] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

### Identify risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...
@ishleenk17

Copy link
Copy Markdown
Member

@claude review the PR.
Look at the existing OpenTelemetry Assets packages and these PR's
https://github.com/elastic/integrations/pull/17520/changes#top for providing feedback

@github-actions

github-actions Bot commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

Claude finished @ishleenk17's task in 2m 25s —— View job


PR Review: CouchDB OTel Content Pack

I've submitted a detailed review comparing this PR with existing OTel packages (nginx_otel, mysql_otel) and PR #17520.

Summary of findings:

The content pack is well-structured with comprehensive observability coverage. A few improvements to align with other OTel packages:

Item Priority Status
Missing discovery.datasets config Medium New comment
Logo missing OpenTelemetry badge Already flagged Existing review
Status code grouping in dashboard Already flagged Existing review
Typo: "Elastic Datadog" → "EDOT" Low New comment
Consider adding opentelemetry category Low New comment

Full review details: #17631 (review)



Why is Claude responding? | Type @claude to interact further

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

@github-actions github-actions Bot left a comment

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.

Overall Assessment

This is a well-structured CouchDB OpenTelemetry content pack with comprehensive observability coverage including dashboards, alert rules, and SLOs. The ES|QL queries appear thoughtful and the dashboard layout follows a logical structure.

Comparison with Similar OTel Packages

Comparing with nginx_otel (PR #17520) and mysql_otel, this package follows most conventions well, but there are a few improvements to consider:

Existing Review Comments

@mykola-elastic has raised valid points that should be addressed:

  1. Logo needs OpenTelemetry badge - Other OTel packages (nginx_otel, mysql_otel) include a small OpenTelemetry icon combined with the product logo. The current couchdb.svg only has the CouchDB logo.

  2. Status codes grouping - For the "HTTP Responses by Status Code" visualization, grouping by 2xx/3xx/4xx/5xx may provide better UX than individual status codes. The current color mapping does group some codes, but the legend will still show individual codes.

  3. Auto-install configuration - As mentioned, adding discovery.datasets: couchdbreceiver.otel would enable auto-installation when matching data is present.

Additional Observations

Documentation:

  • The README is comprehensive with good setup instructions and a clear metrics reference
  • Consider adding a brief mention of EDOT Collector version compatibility (similar to nginx_otel which mentions "v0.129.0" and "9.0")

Dashboard:

  • Good use of ES|QL time series queries with proper TS prefix
  • Well-organized sections: KPIs, Traffic & Latency, Saturation, Per-Node Analysis, Detail tables
  • Color coding for HTTP status codes in the responses chart is a nice touch

Alert Rules:

  • Good coverage of critical scenarios (5xx errors, file descriptor exhaustion, latency)
  • Alert thresholds are reasonable with helpful comments explaining tunability
  • Consistent structure across all rule templates

SLO Templates:

  • Well-defined objectives with appropriate timeslice windows
  • GroupBy on couchdb.node.name enables per-node SLO tracking

Summary

The content pack is solid. The main action items from existing reviews plus the minor suggestions above would bring this in line with other OTel packages in the repository.


Why is Claude responding? | Type @claude to interact further

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

Comment thread packages/couchdb_otel/manifest.yml Outdated
Comment thread packages/couchdb_otel/manifest.yml Outdated
Comment thread packages/couchdb_otel/docs/README.md Outdated
qn895 pushed a commit to qn895/kibana that referenced this pull request Mar 11, 2026
## Summary

Closes elastic#255910

Relates elastic#253948

Enable Alerting tab to be displayed for input packages too

Tested with CouchDB Content Pack that has alerting rules
elastic/integrations#17631

[couchdb_otel-0.1.0.zip](https://github.com/user-attachments/files/25736442/couchdb_otel-0.1.0.zip)

Uploaded the package, and checked that the Alerting tab is showing up

<img width="1206" height="766" alt="image"
src="https://github.com/user-attachments/assets/03ab6049-ddd7-4209-bace-013b9e8d9f3c"
/>

<img width="1204" height="703" alt="image"
src="https://github.com/user-attachments/assets/8c102d38-fbc3-4257-9d08-6ffdebca1839"
/>

The Alerting tab is only visible if there are alerting type kibana
assets in the package

<img width="1218" height="436" alt="image"
src="https://github.com/user-attachments/assets/39ddc7e8-4037-4ad3-8a28-1f78871fc36d"
/>



### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
- [ ] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

### Identify risks

Does this PR introduce any risks? For example, consider risks like hard
to test bugs, performance regression, potential of data loss.

Describe the risk, its severity, and mitigation for each identified
risk. Invite stakeholders and evaluate how to proceed before merging.

- [ ] [See some risk
examples](https://github.com/elastic/kibana/blob/main/RISK_MATRIX.mdx)
- [ ] ...
Comment thread packages/couchdb_otel/manifest.yml Outdated
Comment thread packages/couchdb_otel/docs/README.md Outdated
Comment thread packages/couchdb_otel/docs/README.md
Comment thread packages/couchdb_otel/manifest.yml Outdated
Comment thread packages/couchdb_otel/manifest.yml Outdated
@ishleenk17

Copy link
Copy Markdown
Member

@muthu-mps : I don't see the yamls of the dashboard here ?

@muthu-mps

Copy link
Copy Markdown
Contributor Author

@muthu-mps : I don't see the yamls of the dashboard here ?

Done.

@muthu-mps

Copy link
Copy Markdown
Contributor Author

Validate dashboard fails with the warnings,

⚠ warning esql-minimum-kibana-version    
          This dashboard uses ES|QL panels but does not declare 
minimum_kibana_version. Set minimum_kibana_version to at least '8.14.0'.
⚠ warning esql-sql-syntax                 → Error Rate by Node
          ES|QL uses == for equality comparison, not =
  • I am not sure this warning is relevant. This dashboard uses ES|QL panels but does not declare

  • I have validated the query for Error Rate by Node panel which is not using = for comparison. This seems to be false positive.

@ishleenk17

Copy link
Copy Markdown
Member

/test

@muthu-mps

Copy link
Copy Markdown
Contributor Author

/test

@elasticmachine

Copy link
Copy Markdown

💚 Build Succeeded

History

cc @muthu-mps

@muthu-mps
muthu-mps merged commit 3940e9b into elastic:main Mar 19, 2026
9 checks passed
@muthu-mps
muthu-mps deleted the couchdb_otel branch March 19, 2026 14:37
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package couchdb_otel - 0.1.0 containing this change is available at https://epr.elastic.co/package/couchdb_otel/0.1.0/

@andrewkroh andrewkroh added the Integration:couchdb_otel CouchDB OpenTelemetry Assets label Mar 19, 2026
srilumpa pushed a commit to srilumpa/elastic-integrations that referenced this pull request Mar 23, 2026
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. Integration:couchdb_otel CouchDB OpenTelemetry Assets New Integration Issue or pull request for creating a new integration package.

5 participants