Supabase OTel Assets Package initial draft - #20265
Conversation
Elastic Docs Style Checker (Vale)Summary: 1 suggestion found 💡 Suggestions (1): Optional style improvements. Apply when helpful.
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.
Pull request overview
Adds an initial Supabase OpenTelemetry (OTel) content package under packages/supabase_otel, providing Kibana dashboard assets (plus screenshots/icons) intended to visualize Supabase metrics ingested into metrics-supabase.metrics.otel-*.
Changes:
- Introduces the new
supabase_otelpackage manifest, docs, changelog, and image assets. - Adds three Kibana dashboard saved objects for Node/Infra, Databases/PostgreSQL, and Services/API views.
- Updates
.github/CODEOWNERSto assign ownership for the new package.
Reviewed changes
Copilot reviewed 4 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/supabase_otel/manifest.yml | Defines the new content package metadata, version constraints, screenshots, icons, and dataset discovery. |
| packages/supabase_otel/changelog.yml | Adds initial release notes entry for the new package. |
| packages/supabase_otel/docs/README.md | Documents the dashboards included and prerequisites for data ingestion. |
| packages/supabase_otel/kibana/dashboard/supabase_otel-1980c4f4-952c-47f2-977e-30e7d99ca7af.json | Adds the “[Supabase OTel] Node & Infrastructure” dashboard saved object. |
| packages/supabase_otel/kibana/dashboard/supabase_otel-964608d0-93a3-474b-a8ce-528dbf458c3b.json | Adds the “[Supabase OTel] Databases & PostgreSQL” dashboard saved object. |
| packages/supabase_otel/kibana/dashboard/supabase_otel-c5ff5b39-42a4-442b-a944-a76e9dc7c1a8.json | Adds the “[Supabase OTel] Services & API” dashboard saved object. |
| packages/supabase_otel/img/supabase-logo.svg | Adds an icon asset for the package. |
| .github/CODEOWNERS | Adds CODEOWNERS entry for packages/supabase_otel. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
teresaromero
left a comment
There was a problem hiding this comment.
leaving some comments, thanks!
| "accessControl": { | ||
| "accessMode": "default", | ||
| "owner": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" | ||
| }, |
There was a problem hiding this comment.
| "accessControl": { | |
| "accessMode": "default", | |
| "owner": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" | |
| }, |
This is a reference to your personal data. Please use elastic-package export dashoards to download the dashboards from the kibana instance you are using. This applies to all 3 dashboards.
There was a problem hiding this comment.
Created a PR to fix these issues elastic/elastic-package#3792
@ishleenk17 could you give a try to this branch to export these dashboards?
I've been testing it with this branch, and it works for me 🤞 .
If so, you could export the dashboards again using that elastic-package branch.
There was a problem hiding this comment.
thats strange. I did use export dashboards.
There was a problem hiding this comment.
Even after exporting via elastic package export it adds these fields.
There was a problem hiding this comment.
added the comment on other thread sorry #20265 (comment)
| }, | ||
| "coreMigrationVersion": "8.8.0", | ||
| "created_at": "2026-07-29T10:11:06.988Z", | ||
| "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", |
There was a problem hiding this comment.
| "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", |
This is also a personal reference that is stripped out when using elastic-package tool to export the dashboard.
| }, | ||
| "coreMigrationVersion": "8.8.0", | ||
| "created_at": "2026-07-29T10:16:49.432Z", | ||
| "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", |
There was a problem hiding this comment.
| "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", |
| "accessControl": { | ||
| "accessMode": "default", | ||
| "owner": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" | ||
| }, |
There was a problem hiding this comment.
| "accessControl": { | |
| "accessMode": "default", | |
| "owner": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0" | |
| }, |
There was a problem hiding this comment.
checked this offline and it appears some dashboards from other packages contain this kind of field...
for context pasting here what i found with claude. keeping it for the moment
Kibana intentionally strips accessControl on import for all users (Phase 1).
x-pack/platform/plugins/shared/security/server/saved_objects/access_control_transforms.ts:
// This is needed to strip incoming access control metadata, phase 1 for all users
const mapStream = createMapStream((obj: SavedObject) => {
const typeSupportsAccessControl = typeRegistry.supportsAccessControl(obj.type);
if (typeSupportsAccessControl && obj.accessControl) {
delete obj.accessControl; // ← runs for every import, every user
}
return { ...obj };
});Fleet calls the same import pipeline with managed: true, so this strip always fires. Because accessControl is deleted before the object is written to Elasticsearch, it's never in _source — and the serializer only includes it in export output if it's in _source:
src/core/packages/saved-objects/base-server-internal/src/serialization/serializer.ts:
...(registry.isAccessControlEnabled() && _source.accessControl && {
accessControl: _source.accessControl, // never true for Fleet-installed objects
}),The whole sequence:
- Package JSON (with or without accessControl) → Fleet importer strips it → written to ES without it → export API omits it
- Duplicate in Kibana as a real user → accessControl is set on create (from your user profile UID) → stored in ES → export returns it
So accessControl in package files is inert dead weight — Kibana deletes it before it ever hits the database regardless. The three untracked (1) duplicate files can be discarded, and the three committed files are correct as-is.
| }, | ||
| "coreMigrationVersion": "8.8.0", | ||
| "created_at": "2026-07-29T10:20:17.638Z", | ||
| "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", |
There was a problem hiding this comment.
| "created_by": "u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0", |
There was a problem hiding this comment.
The docs/README.md appears to have been written by hand rather than generated from a _dev/build/docs/README.md template (the auto-generated header is absent, and there is no _dev/build/docs/ directory in the package). As a result, the structure diverges significantly from both the elastic-package archetype template and the convention established by peer OTel content packages such as cassandra_otel. The current file covers only a dashboard list and a short prerequisites note, but is missing the sections that are standard across comparable packages: an opening overview paragraph describing Supabase and the metrics scope, a Compatibility section stating which Supabase and OTel collector versions were tested, a Requirements section (Elasticsearch + Kibana), and a Setup section with the OTel collector configuration (Prometheus receiver YAML) that users need to actually route data into metrics-supabase.metrics.otel-*. Adding the _dev/build/docs/README.md template and regenerating via elastic-package build would also make future updates easier to maintain consistently.
There was a problem hiding this comment.
content packages currently don't support this auto geenrated approach.
We should add that in pakcgae spec.
Anyhow I have now updated to use that structure.
Please check
|
@mykola-elastic I have updated the cluster with the latest dashboards. Looks like the one you were seeing was not the latest updated integration. You can check now. |
|
@ishleenk17 thanks, most of the things are fixed now. |
|
Tick the box to add this pull request to the merge queue (same as
|
|
✅ All changelog entries have the correct PR link. |
💚 Build Succeeded
History
|
|
Package supabase_otel - 0.1.0 containing this change is available at https://epr.elastic.co/package/supabase_otel/0.1.0/ |









Supabase OpenTelemetry Assets
3 dashboards have been developed for the metrics:
[Supabase OTel] Node & Infrastructure
[Supabase OTel] Databases & PostgreSQL
[Supabase OTel] Services & API
Some of the screenshots of the dashboards developed:
Databases & PostgreSQL

Node & Infrastructure_1

Node & Infrastructure_2

Services & API
