mirror of
https://github.com/SigNoz/signoz.git
synced 2026-06-20 23:30:31 +01:00
nv/schema-changes
171 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9efa0f757d | fix: add back enum values | ||
|
|
d1248ab5a3 | chore: remove unsupported enum values (causing errors right now) | ||
|
|
ddf2f3ec53 | chore: replicate variable.sort into signoz | ||
|
|
8be973ac14 | Merge branch 'main' into nv/schema-changes | ||
|
|
f2422c1fdd | fix: replicate text variable spec in signoz to make name required | ||
|
|
9150c2ac87 |
feat: introduce dashboard views for list dashboards page (#11465)
* feat: functional unique index in sql schema * fix: only ascii in regex * fix: use sync tags method in update * fix: use sync tags method in update * fix: correct the method name being called * chore: rename create method to createOrGet * chore: use tagtypestest package for mock store * chore: combine functional unique index with unique index * chore: move tag resolution to module * test: add unit tests for new idx type * feat: delete dashboard v2 API * chore: comment out tags unique index for now * chore: add a todo comment * chore: comment out unique index test * feat: add created at to tag relations * chore: comment out unique index test * chore: bump migration number * chore: remove uploaded grafana flag from metadata * Merge branch 'main' into nv/v2-dashboard-create * chore: revert idx generation to resolve conflicts * fix: use store.RunInTx instead of taking in sqlstore * fix: use binding package to get request * chore: move NewDashboardV2 to NewDashboardV2WithoutTags * chore: rename module to m * fix: add ctx needed in sqlstore * fix: remove sqlstore passage in ee pkg * chore: change dashboardData to dashboardSpec * feat: follow the metadata+spec key structure * feat: follow the metadata+spec key structure in open api spec * feat: v2 dashboard GET API (#11136) * feat: v2 dashboard GET API * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * chore: update api specs * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: fix build error * chore: revert all frontend changes * fix: remove public dashboard from get v2 call * chore: revert all frontend changes * fix: fix build errors post merge conflict resolution * feat: lock, unlock, create public, update public v2 dashboard APIs (#11167) * feat: lock, unlock, create public, update public v2 dashboard APIs * chore: update api specs * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * chore: revert all frontend changes * fix: fix build errors and remove v2 create/update public apis * chore: use v1 methods wherever possible * fix: use update v2 store method * chore: update frontend schema * chore: update frontend schema * chore: generate api specs * chore: generate api specs * feat: patch dashboard api (#11182) * feat: lock, unlock, create public, update public v2 dashboard APIs * feat: delete dashboard v2 API and hard delete cron job * feat: patch dashboard api * chore: update api specs * chore: update api specs * chore: update api specs * chore: remove delete related work * fix: add examples of structs for value param in param description * test: unit test fixes * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * test: key value tags in test * fix: build error in patch module method * fix: build error in Apply method * fix: use sync tags method in update * fix: fix build errors * fix: fix all patch application tests * chore: add more mapper methods * fix: fix build errors * chore: generate api specs * fix: update migration numbering * fix: add missing request struct in list api * fix: remove hasMore from list response * chore: bump migration number * fix: send total count in response + bug fixes * fix: add source for v2 dashboards * chore: incorporate source * chore: incorporate source in api spec * chore: incorporate source * fix: remove system dashboards from list v2 response * fix: add some required fields * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 api specs * fix: remove unused param in constructor * fix: improve api descriptions * fix: remove unneeded comment * chore: increase MaxTagsPerDashboard to 10 * fix: set display name in unmarshal json * chore: remove integration test for now (will add along with list api) * feat: add validation on dashboard name * test: fix build errors and tests based on name related changes * chore: bump migration number * chore: generate api specs * fix: fix tests based on name related changes * fix: dont include full data in list response * fix: add quotes around tag relation kind * chore: bump migration number * fix: fix post merge build and spec errors * fix: correct convertor method name * test: add unit tests for type conversions * chore: remove enum def of threshold comparison operator * feat: add flag to generate unique name in backend * chore: generate api specs * chore: make tags required in postable * fix: build error fix * chore: bump migration number * feat: introduce dashboard views for list dashboards page * fix: fix build error in test after merge conflict * fix: remove unused store method * fix: remove unused module methods * fix: use v1 store update method * fix: change data to spec in api param description * chore: add back accidentally removed tests * chore: update api spec * chore: bump migration number * feat: delete dashboard v2 API (#11299) * feat: delete dashboard v2 API * fix: fix post merge build and spec errors * fix: address review comments * chore: generate frontend api spec * fix: add missing name fetch in listv2 store method * fix: change title to name in api description * fix: add all error codes for new apis * test: change data to spec in unit tests * fix: remove join to public dashboard table in list call * fix: use valuer string for list order and sort * test: integration test and fixes found through it * chore: use same jsonpatch package as done in zeus * chore: remove JSONPatchDocument and use patchable everywhere * fix: make remove idempotent in patch * chore: separate file for patch types * chore: better error passage * fix: remove extra decodePatch calls * fix: fix post merge build and schema errors * fix: remove omitempty * chore: bump migration number * fix: remove user auditable * chore: dont pass email to create and update methods * chore: dont pass email to create and update methods * chore: regenerate api specs * chore: rearrange * fix: return better err * chore: add all err codes in api spec * chore: rearrange * fix: use must new org id * fix: proper error passage * chore: rename updateable to updatable * fix: use must new org id * fix: use must new org id * feat: include list of all dashboard tags in list api response * fix: remove wrong api description msg * fix: use must method for user id as well * chore: add nolint comment * fix: add missing image field in list response * chore: regenerate api specs * chore: regenerate api specs * fix: make GettableTag a defined type instead of an alias * fix: dont allow system dashboards to be deleted * fix: remove public filter from visitor * chore: use go sqlbuilder * fix: use ESCAPE literal in contains and like operators * fix: use correct perses package in list v2 file * feat: change pinned dashboard table to user dashboard preference table * fix: delete preferences on dashboard delete * test: add integration test for pinning * fix: wrap naked errors * fix: integration dashboards should not be deletable either * fix: remove org column in preferences and add foreign key to users table * chore: add fk from prefs to dashbaord table * chore: remove outer parenthesis removal function * test: add unit test to ensure that all reserved keys have handlers * fix: proper url for pin apis * fix: delete preferences on user deletion * test: address integration test comments * test: change limit * fix: revert the check in can delete * fix: remove unit test from ee package * fix: move list filter to impl to avoid db impl logic in types * chore: code movement * feat: add a pin free list dashboards api * fix: update api specs * fix: use request query in api defs for list apis * chore: explicitly mark request as nil in list apis * fix: remove extra noop assignment * chore: remove separate gettable view typedef * chore: rearrange structs * fix: cover errors, fix column type, add tests * test: add unit tests for dashboard view validations * fix: move view create/edit/delete to edit access * fix: move view create/edit/delete to edit access * fix: change url and fix api descriptions * chore: add query max length check for views * fix: wrong spelling for UpdatableDashboardView * fix: extract common validation logic between list api and saved views * test: add integration tests for dashboard views * test: add similar tests for dashboards as well * fix: dont trim name in views * fix: add integration test for trailing whitespace rejection * fix: return name required err for name with only spaces * test: fix python formatting * fix: generate api specs --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
b0a065591f | Merge branch 'main' into nv/schema-changes | ||
|
|
eb4b11295b |
feat: add clone dashboard API for perses dashboards (#11742)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: add clone dashboard API for perses dashboards * fix: allow integration dashboards to be cloned * test: add integration test for cloning of integration dashboards * test: fix lint in test * test: revert the integration dashboard test |
||
|
|
c0e0ebab4a | Merge branch 'main' into nv/schema-changes | ||
|
|
5d711377ec |
feat: adding support for Azure DB services (#11679)
* feat: adding support for Azure SQL DB * refactor: adding missing metrics in data collected and panels in dash * feat: adding support for Azure SQL DB Managed Instances * feat: generating openapi spec * feat: adding nosql and cache services in azure integration |
||
|
|
9e8464f3eb | Merge branch 'main' into nv/schema-changes | ||
|
|
58b55c922d |
fix(openapi): omit content type for responses without a body (#11720)
Some checks failed
build-staging / staging (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
ServeOpenAPI's nil-response branch still passed WithContentType, so any route
with Response == nil but a ResponseContentType set (notably 204 No Content)
emitted a content block in the generated spec. Clients then try to decode an
empty body and fail — e.g. "unexpected end of JSON input" on
DELETE /api/v1/service_accounts/{id}.
Omit the content type when Response is nil. Regenerate docs/api/openapi.yml (18
bodyless responses drop their content block) and the frontend orval client.
Signed-off-by: grandwizard28 <vibhupandey28@gmail.com>
|
||
|
|
629ea3b8be |
feat: extend error responses with new error struct (#11542)
Some checks failed
build-staging / js-build (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: extend error responses with new error struct
* fix: enriched error for dashboard api
* fix: merge issues
* fix: reverted dashboards changes and add for cloud integrations
* fix: delete file
* fix: add back file
* fix: added a helper
* fix: removed invlaid referencess
* fix: generate openapi
* fix: keeping additional along with suggestion
* Revert "fix: keeping additional along with suggestion"
This reverts commit
|
||
|
|
287b60cbe6 |
feat(statsreporter): expose collected stats via GET /api/v1/stats (#11698)
* feat(statsreporter): expose collected stats via GET /api/v1/stats Extract per-org stats collection out of the analytics reporter into an always-on Aggregator (collector fan-out + telemetry-store counts) shared by the reporter and a new HTTP handler. The GET /api/v1/stats endpoint returns the caller's org stats regardless of whether scheduled reporting is enabled. * refactor(statsreporter): collect telemetry stats via the querier Move the trace/log/metric row-count and last-observed queries out of the stats aggregator and into the querier, which now implements statsreporter.StatsCollector. The aggregator becomes a pure collector fan-out and no longer depends on telemetrystore; the querier is wired in as one of the stats collectors. * chore: regenerate openapi spec and frontend client Backend docs/api/openapi.yml gains the GET /api/v1/stats (GetStats) operation; the Orval client gains a useGetStats hook and GetStats200 type. * chore: remove comment from querier Collect * fix(statsreporter): use MustNewUUID for org from claims Claims come from validated auth context, so the org UUID is guaranteed valid; drop the dead NewUUID error branch. * fix(flagger): use MustNewUUID for org from claims Claims come from validated auth context, so the org UUID is guaranteed valid; drop the dead NewUUID error branch. * docs(contributing): note MustNewUUID for IDs from claims * perf(querier): combine count and last-observed into one query per signal Each signal's COUNT(*) and max(timestamp) scan the same table, so fetch both in a single query — 3 queries instead of 6. Same emitted keys and empty-table guard. |
||
|
|
9b53561c31 | fix: change schema properties based on UI integration review | ||
|
|
3e51b9556e |
refactor(planned-maintenance): remove time bounds from recurrence (#11500)
Some checks failed
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / staging (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
* feat(alertmanager): migrate recurrence bounds to schedule level Promote startTime/endTime from a planned maintenance's nested recurrence up to the schedule level. For recurring maintenances the recurrence bounds were the source of truth; the recurrence struct loses these fields in the next step, so the values are moved while they can still be read. The migration operates on raw JSON for that reason. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor(alertmanager): drop start/end bounds from Recurrence Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor: code cleanup * fix: upcoming check for recurring maintenances * fix: remove recurrence.startTime/endTime usages * fix: use embedded timezone in start/end times Accept times in any timezone, but always convert them to the selected timezone. The conversion is required to correctly handle the recurring maintenances for timezones where DST is involved. * refactor: remove redundant code * fix: make startTime a required field * test: cover fixed schedule active window in IsActive Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * test: cover recurring schedule active window in IsActive Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: add justification for unreachable code * fix: don't let one corrupt maintenance abort the migration * fix: don't let one corrupt maintenance break the list ListPlannedMaintenance now reads the schedule as raw text and parses each row individually, skipping and logging the bad ones so the rest survive. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix: tests to use UTC instead of utc * fix: return proper errors from schedule.Unmarshal * fix: copy schedule type to migration * chore: move tz conversion to checkX methods --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
df26eb1c1d |
chore: make some fields required in perses replicated spec (#11612)
* chore: make some fields required in perses replicated spec * chore: build frondend spec * revert: revert accidental change * fix: make duration optional * chore: add todo for duration and refresh interval |
||
|
|
b22eef6a65 |
feat: v2 list, delete, pin, unpin dashboards api (#11219)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* fix: compile error fix * fix: remove soft delete references * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * test: key value tags in test * fix: build error in patch module method * feat: method to build postable tags from tags * fix: build error in Apply method * chore: remove newline * fix: remove soft delete references * fix: build error fix * chore: embed StorableDashboard in listedRow * fix: visitor should follow new tag struct * fix: diff error codes for invalid keys and values * fix: correct pk in bun model for tag relations * fix: created and updated by schema * fix: use coretypes.Kind instead of defining entity type * fix: singular table name * chore: remove org ID from tag relation * feat: foreign key on tag id * feat: add SyncTags method that covers creation and linking * fix: remove entity type definition * fix: fix build errors in dashboard module * chore: bump migration number * chore: change entity id to resource id * fix: add org id filter in all list and delete queries * fix: remove user auditable * fix: add ID in tag relation * fix: fix build error * fix: fix build error * chore: bump migration number * fix: add len check on tags keys and values * fix: add regex for tags * chore: remove methods that shouldn't be exposed * fix: use sync tags in create api * feat: functional unique index in sql schema * fix: only ascii in regex * fix: use sync tags method in update * fix: use sync tags method in update * fix: correct the method name being called * chore: rename create method to createOrGet * chore: use tagtypestest package for mock store * chore: combine functional unique index with unique index * chore: move tag resolution to module * test: add unit tests for new idx type * chore: comment out tags unique index for now * chore: add a todo comment * chore: comment out unique index test * feat: add created at to tag relations * chore: comment out unique index test * chore: bump migration number * chore: remove uploaded grafana flag from metadata * Merge branch 'main' into nv/v2-dashboard-create * chore: revert idx generation to resolve conflicts * fix: use store.RunInTx instead of taking in sqlstore * fix: use binding package to get request * chore: move NewDashboardV2 to NewDashboardV2WithoutTags * chore: rename module to m * fix: add ctx needed in sqlstore * fix: remove sqlstore passage in ee pkg * chore: change dashboardData to dashboardSpec * feat: follow the metadata+spec key structure * feat: follow the metadata+spec key structure in open api spec * feat: v2 dashboard GET API (#11136) * feat: v2 dashboard GET API * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * chore: update api specs * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: fix build error * chore: revert all frontend changes * fix: remove public dashboard from get v2 call * chore: revert all frontend changes * fix: fix build errors post merge conflict resolution * feat: lock, unlock, create public, update public v2 dashboard APIs (#11167) * feat: lock, unlock, create public, update public v2 dashboard APIs * chore: update api specs * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * chore: revert all frontend changes * fix: fix build errors and remove v2 create/update public apis * chore: use v1 methods wherever possible * fix: use update v2 store method * chore: update frontend schema * chore: update frontend schema * chore: generate api specs * chore: generate api specs * feat: patch dashboard api (#11182) * feat: lock, unlock, create public, update public v2 dashboard APIs * feat: delete dashboard v2 API and hard delete cron job * feat: patch dashboard api * chore: update api specs * chore: update api specs * chore: update api specs * chore: remove delete related work * fix: add examples of structs for value param in param description * test: unit test fixes * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * test: key value tags in test * fix: build error in patch module method * fix: build error in Apply method * fix: use sync tags method in update * fix: fix build errors * fix: fix all patch application tests * chore: add more mapper methods * fix: fix build errors * chore: generate api specs * fix: update migration numbering * fix: add missing request struct in list api * fix: remove hasMore from list response * chore: bump migration number * fix: send total count in response + bug fixes * fix: add source for v2 dashboards * chore: incorporate source * chore: incorporate source in api spec * chore: incorporate source * fix: remove system dashboards from list v2 response * fix: add some required fields * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 api specs * fix: remove unused param in constructor * fix: improve api descriptions * fix: remove unneeded comment * chore: increase MaxTagsPerDashboard to 10 * fix: set display name in unmarshal json * chore: remove integration test for now (will add along with list api) * feat: add validation on dashboard name * test: fix build errors and tests based on name related changes * chore: bump migration number * chore: generate api specs * fix: fix tests based on name related changes * fix: dont include full data in list response * fix: add quotes around tag relation kind * chore: bump migration number * fix: correct convertor method name * test: add unit tests for type conversions * chore: remove enum def of threshold comparison operator * feat: add flag to generate unique name in backend * chore: generate api specs * chore: make tags required in postable * fix: build error fix * chore: bump migration number * fix: fix build error in test after merge conflict * fix: remove unused store method * fix: remove unused module methods * fix: use v1 store update method * fix: change data to spec in api param description * chore: add back accidentally removed tests * chore: update api spec * chore: bump migration number * feat: delete dashboard v2 API (#11299) * feat: delete dashboard v2 API * fix: fix post merge build and spec errors * fix: address review comments * chore: generate frontend api spec * fix: add missing name fetch in listv2 store method * fix: change title to name in api description * fix: add all error codes for new apis * test: change data to spec in unit tests * fix: remove join to public dashboard table in list call * fix: use valuer string for list order and sort * test: integration test and fixes found through it * chore: use same jsonpatch package as done in zeus * chore: remove JSONPatchDocument and use patchable everywhere * fix: make remove idempotent in patch * chore: separate file for patch types * chore: better error passage * fix: remove extra decodePatch calls * fix: use must new org id * fix: proper error passage * chore: rename updateable to updatable * fix: use must new org id * feat: include list of all dashboard tags in list api response * fix: remove wrong api description msg * fix: use must method for user id as well * chore: add nolint comment * fix: add missing image field in list response * chore: regenerate api specs * fix: make GettableTag a defined type instead of an alias * fix: dont allow system dashboards to be deleted * fix: remove public filter from visitor * chore: use go sqlbuilder * fix: use ESCAPE literal in contains and like operators * fix: use correct perses package in list v2 file * feat: change pinned dashboard table to user dashboard preference table * fix: delete preferences on dashboard delete * test: add integration test for pinning * fix: wrap naked errors * fix: integration dashboards should not be deletable either * fix: remove org column in preferences and add foreign key to users table * chore: add fk from prefs to dashbaord table * chore: remove outer parenthesis removal function * test: add unit test to ensure that all reserved keys have handlers * fix: proper url for pin apis * fix: delete preferences on user deletion * test: address integration test comments * test: change limit * fix: revert the check in can delete * fix: remove unit test from ee package * fix: move list filter to impl to avoid db impl logic in types * chore: code movement * feat: add a pin free list dashboards api * fix: update api specs * fix: use request query in api defs for list apis * chore: explicitly mark request as nil in list apis --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
c775d7e398 |
chore: add discriminator on kind in perses spec (#11635)
* chore: add discriminator on kind in perses spec * chore: add discriminator to builder query spec * chore: update in query builder directly * docs: add info about discriminator in handler.md * fix: move back to restrictKindToOneValue * fix: move back to restrictKindToOneValue |
||
|
|
a014e9c0cb |
chore(trace-detail): waterfall v3 and v2 cleanup (#11609)
* chore: cleanup waterfall v3 api We've moved to v4 as part of memory allocation optimisation * chore: remove select all limit from waterfall request It was added for testing only and fine tuning the limit value * chore: update openapi specs * chore: remove waterfall v2 since we've moved to v4 now |
||
|
|
73c2c15200 |
feat: adding support for VMs in Azure integration (#11573)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: adding supoprt for virtual machines to azure one click integration * chore: generating openapi spec * chore: updating dashboard title |
||
|
|
1ba9b90855 |
feat: adding assets and dashboards for azure app services (#11565)
* feat: adding assets and dashboards for azure app services * refactor: updating metric names * chore: openapi spec changes * chore: generating frontend types |
||
|
|
922800ff98 | feat: adding support for Azure Container Apps (#11580) | ||
|
|
b072095a9d |
feat: adding support for Azure AKS (#11615)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: adding support for Azure AKS * refactor: updating metric names in integration config * chore: generating OpenAPI spec * chore: adding note in overview * refactor: updating spatial aggregation and other names * refactor: updating reduceTo to empty value * refactor: updating title |
||
|
|
c688170a13 |
feat(trace-detail): add flamegraph v3 with optimized memory consumption (part 1) (#11462)
* feat: add types for flamegraph v3 in module structure * chore: remove limit from request payload It's a new api so doesn't need to be backward compatible * feat: add config for flamegraph * feat: add method to enrich selected spans * feat: add api and module for flamegraph v3 * feat: query full spans for smaller traces * chore: move exported methods to the top * chore: ignore nil assigment lint error * chore: extract out flamegraph building logic for easier review * chore: update openapi specs * chore: move flamegraph after aggregation to reduce diff * chore: remove un related changes to keep diff minimum * chore: avoid passing request type to module * feat: return selected fields only in flamegraph And reduce the no. of fields scanned from db * chore: make array fields required and non nullable * chore: update openapi specs * chore: mark all fields in response as required * refactor: switch to using group by instead of distinct on Since group by is faster is enough no. of threads are used * chore: remove service name root level field from flamegraph span * chore: update openapi specs * fix: update alias in order by of the query * chore: remove unnecessary nil check * fix: set empty array for missing data * chore: use single line for error creation * chore: mark response fields as required * chore: update openapi specs * chore: add test to verify the flamegraph query sql * chore: update openapi specs * chore: use orderbyasc instead of order by |
||
|
|
7da7fda283 |
chore(alertmanager): support custom receiver configs (#11473)
Some checks failed
build-staging / js-build (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore(alertmanager): support custom receiver configs * chore: update * chore: update types * chore: regenerate * chore: copy type and function |
||
|
|
97191eb7a2 |
chore: replace perses/perses with perses/spec and introduce kind enum values (#11559)
* chore: replace perses/perses with perses/spec and introduce kind enum values * fix: enforce query kind values * chore: generate frontend api spec * test: fix patch unit tests using correct query kind value * feat: add validation to query builder request type |
||
|
|
b3b245ebc5 |
feat: adding get cloud integration service for account handler (#11497)
* feat: adding get cloud integration service for account handler * feat: adding integration test for new API endpoint * ci: fix py fmt lint * refactor: cloudfront integration service (#11570) Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> * fix: update tests --------- Co-authored-by: Gaurav Tewari <gauravtewari111@gmail.com> Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
ce26458b9f |
feat(cloud-integrations): adding endpoint services metadata for account (#11563)
* feat: adding endpoint services metadata for account * fix: adding missing response writer in error * refactor(cloud-integrations): use account-scoped ListAccountServices endpoint when an account is connected (#11569) * fix: frontend changes for issue 4616 * fix: update frontend changes --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> --------- Co-authored-by: Gaurav Tewari <gauravtewari111@gmail.com> Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
7932917f5f |
refactor: service response changes and dashboardID handling (#11485)
* refactor: service response changes and dashboardID handling * refactor: removing unused enrichDashboardIDs func * revert: restore frontend files to main state * refactor: updating response * refactor: updating nullable tag * chore: adding required tags * chore: adding required tags for ServiceDashboard struct * refactor(integrations): align service-details UI with new cloud-integration API + disabled-dashboard state (#11547) * refactor: cloud integration service * fix: update schemas * fix: update schema * fix: minor fixes * refactor: review comments --------- Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> --------- Co-authored-by: Gaurav Tewari <gauravtewari111@gmail.com> Co-authored-by: Gaurav Tewari <tewarig@users.noreply.github.com> |
||
|
|
df7ef3cdb5 |
feat: v2 dashboard update, lock, unlock, and patch API (#11481)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: follow proper unmarshal json method structure * feat: v2 create dashboard API * fix: only return name of a tag in dashboard response * fix: use existing tag's casing if new tag is a prefix of an existing tag * fix: go lint fix * fix: more dashboard request validations * chore: separate method for validation * fix: module should also validate postable dashboard * test: integration tests for create API * test: integration test fixes * chore: use existing mapper * fix: remove extra spec from builder query marshalling * fix: merge conflicts * feat: v2 dashboard GET API * feat: v2 dashboard update API * fix: add allowed values in err messages * fix: remove extra (un)marshal cycle * fix: return 500 err if spec is nil for composite kind w/ code comment * fix: no need for copying textboxvariablespec * fix: wrap errors * chore: no v2 subpackage * fix: no v2 package and its consequences * fix: no v2 package and its consequences * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * fix: merge fixes * fix: query-less panels not allowed * feat: consolidate tag module and tagtypes changes from downstream branches * chore: update api specs * chore: update api specs * fix: allow only 1 query in a panel * test: unit test fixes * feat: method to fetch tags for multiple entries at once * test: fix mock interface in test * feat: move tags to key:value pairs model * feat: entity type column in tags * fix: pass entity type in create many * feat: reserved DSL key validation for tags * feat: new module for tags * chore: merge conflicts error fixing pt 1 * fix: lint fix regarding nil, nil return in test file * chore: change where tag module is instantiated * fix: add back api endpoint * chore: generate api spec * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: extend bun in joinedRow * fix: compile error fix * fix: remove soft delete references * feat: method to build postable tags from tags * fix: diff error codes for invalid keys and values * fix: correct pk in bun model for tag relations * fix: created and updated by schema * fix: use coretypes.Kind instead of defining entity type * fix: singular table name * chore: remove org ID from tag relation * feat: foreign key on tag id * feat: add SyncTags method that covers creation and linking * fix: remove entity type definition * fix: fix build errors in dashboard module * chore: bump migration number * chore: change entity id to resource id * fix: add org id filter in all list and delete queries * fix: remove user auditable * fix: add ID in tag relation * fix: fix build error * fix: fix build error * chore: bump migration number * fix: add len check on tags keys and values * fix: add regex for tags * chore: remove methods that shouldn't be exposed * fix: use sync tags in create api * feat: functional unique index in sql schema * fix: only ascii in regex * fix: use sync tags method in update * chore: rename create method to createOrGet * chore: use tagtypestest package for mock store * chore: combine functional unique index with unique index * chore: move tag resolution to module * test: add unit tests for new idx type * chore: comment out tags unique index for now * chore: add a todo comment * chore: comment out unique index test * feat: add created at to tag relations * chore: comment out unique index test * chore: bump migration number * chore: remove uploaded grafana flag from metadata * Merge branch 'main' into nv/v2-dashboard-create * chore: revert idx generation to resolve conflicts * fix: use store.RunInTx instead of taking in sqlstore * fix: use binding package to get request * chore: move NewDashboardV2 to NewDashboardV2WithoutTags * chore: rename module to m * fix: add ctx needed in sqlstore * fix: remove sqlstore passage in ee pkg * chore: change dashboardData to dashboardSpec * feat: follow the metadata+spec key structure * feat: follow the metadata+spec key structure in open api spec * feat: v2 dashboard GET API (#11136) * feat: v2 dashboard GET API * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * chore: update api specs * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: fix build error * chore: revert all frontend changes * fix: remove public dashboard from get v2 call * chore: revert all frontend changes * fix: fix build errors post merge conflict resolution * feat: lock, unlock, create public, update public v2 dashboard APIs (#11167) * feat: lock, unlock, create public, update public v2 dashboard APIs * chore: update api specs * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * chore: revert all frontend changes * fix: fix build errors and remove v2 create/update public apis * chore: use v1 methods wherever possible * fix: use update v2 store method * chore: update frontend schema * chore: update frontend schema * chore: generate api specs * chore: generate api specs * feat: patch dashboard api (#11182) * feat: lock, unlock, create public, update public v2 dashboard APIs * feat: delete dashboard v2 API and hard delete cron job * feat: patch dashboard api * chore: update api specs * chore: update api specs * chore: update api specs * chore: remove delete related work * fix: add examples of structs for value param in param description * test: unit test fixes * fix: use new pattern of checking for admin permission * fix: remove soft delete reference * test: key value tags in test * fix: build error in patch module method * fix: build error in Apply method * fix: use sync tags method in update * fix: fix build errors * fix: fix all patch application tests * chore: add more mapper methods * fix: add source for v2 dashboards * chore: incorporate source * chore: incorporate source in api spec * chore: incorporate source * fix: add some required fields * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 api specs * fix: remove unused param in constructor * fix: improve api descriptions * fix: remove unneeded comment * chore: increase MaxTagsPerDashboard to 10 * fix: set display name in unmarshal json * chore: remove integration test for now (will add along with list api) * feat: add validation on dashboard name * test: fix build errors and tests based on name related changes * fix: correct convertor method name * test: add unit tests for type conversions * chore: remove enum def of threshold comparison operator * feat: add flag to generate unique name in backend * chore: generate api specs * chore: make tags required in postable * fix: build error fix * fix: fix build error in test after merge conflict * fix: remove unused store method * fix: remove unused module methods * fix: use v1 store update method * fix: change data to spec in api param description * chore: add back accidentally removed tests * fix: address review comments * chore: generate frontend api spec * chore: use same jsonpatch package as done in zeus * chore: remove JSONPatchDocument and use patchable everywhere * fix: make remove idempotent in patch * chore: separate file for patch types * chore: better error passage * fix: remove extra decodePatch calls * fix: use must new org id * fix: proper error passage * chore: rename updateable to updatable --------- Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
e43aeb8e24 |
fix: add references in waterfall response (#11536)
* fix: add references in waterfall response * chore: update openapi specs * chore: mark reference a non nullable field |
||
|
|
5e94f7ac6e |
feat(trace-details): Add API endpoint & module for trace aggregations (#11452)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: add endpoint & module for trace aggregations * chore: use v1 for aggregations api * chore: update openapi specs * feat: add implementation for aggregation store * chore: use query builder for count by field * chore: remove support for aggregations on attributes Only supporting resource fields for now, since this is not user input but hard coded client experience * chore: extract out inner query as cte * chore: again extract out inner query * chore: move end_ns computation to first cte for simplicity * chore: use notEmpty function instead of having * fix: type cast issue in sum function * chore: use query builder for duration query as well * chore: add tests for trace store sql * chore: remove unnecessary column checks * chore: format the expected sql queries * fix: formating was breaking test * fix: change import and remove formating from sql * chore: remove formating from store impl as well * fix: mark required fields as required * fix: explicitly mark nullable false for required field * fix: mark required fields in response as well |
||
|
|
407d969cd3 |
feat(user): add support for token verification (#11496)
* feat(user): add support for token validation * feat(user): update openapi specs * feat(user): update verify endpoint * feat(user): use binding package * feat(user): update openapi specs |
||
|
|
c6b2fe47d5 |
feat(web): add support for sentry and pylon (#11495)
Some checks failed
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
build-staging / prepare (push) Has been cancelled
* feat(web): add support for sentry and pylon * feat(web): add support for sentry and pylon * feat(web): add support for sentry and pylon * feat(web): removed bootdata.ts and maintaining websettings as single source of truth * feat(web): update the example.yaml --------- Co-authored-by: SagarRajput-7 <sagar@signoz.io> |
||
|
|
1d6fa6e507 |
feat: extend error fields (#11228)
* fix: extended error fields * fix: remove stale comment * fix: removed retry policy enum and added example * fix: generate openapi * fix: stale comments |
||
|
|
c68f237a8a |
feat: v2 create and get dashboard API (#11125)
* feat: openapi spec generation * test: script to generate test dashboard data in a sql db * test: fixes in dashboard perf testing data generator * test: perf test script for both sql flavours * test: data column in perf tests should match real data * test: much bigger json for data column * chore: comment clean up * chore: separate file for perses replicas * test: more descriptive test file name * chore: move plugin maps to correct file * chore: comment cleanup * test: add tests for spec wrappers * chore: better file names * chore: better file name * chore: too many comments * fix: js lint errors * fix: dot at the end of a comment * chore: better error messages * fix: strict decode variable spec as well * fix: remove textbox plugin from openapi spec * chore: renames and code rearrangement * chore: better comment to explain what restrictKindToLiteral does * chore: cleaner comment * chore: cleaner comment * chore: cleaner comment * chore: better method name * chore: cleanup testing code * chore: code movement * chore: code movement * chore: code movement * chore: go lint fix (godot) * chore: code movement * chore: cleanup comments * chore: better method name extractKindAndSpec * test: test for drift detection mechanics * feat: define tags module for v2 dashboard creation * feat: enum for entity type that other modules can register * chore: follow proper unmarshal json method structure * feat: v2 create dashboard API * fix: only return name of a tag in dashboard response * fix: use existing tag's casing if new tag is a prefix of an existing tag * fix: go lint fix * fix: more dashboard request validations * chore: separate method for validation * fix: module should also validate postable dashboard * test: integration tests for create API * test: integration test fixes * chore: use existing mapper * fix: remove extra spec from builder query marshalling * fix: merge conflicts * fix: add allowed values in err messages * fix: remove extra (un)marshal cycle * fix: return 500 err if spec is nil for composite kind w/ code comment * fix: no need for copying textboxvariablespec * fix: wrap errors * chore: no v2 subpackage * fix: no v2 package and its consequences * fix: no v2 package and its consequences * fix: query-less panels not allowed * feat: consolidate tag module and tagtypes changes from downstream branches * fix: allow only 1 query in a panel * test: unit test fixes * feat: method to fetch tags for multiple entries at once * test: fix mock interface in test * feat: move tags to key:value pairs model * feat: entity type column in tags * fix: pass entity type in create many * feat: reserved DSL key validation for tags * feat: new module for tags * chore: merge conflicts error fixing pt 1 * fix: lint fix regarding nil, nil return in test file * chore: change where tag module is instantiated * fix: add back api endpoint * chore: generate api spec * fix: extend bun in joinedRow * feat: method to build postable tags from tags * fix: diff error codes for invalid keys and values * fix: correct pk in bun model for tag relations * fix: created and updated by schema * fix: use coretypes.Kind instead of defining entity type * fix: singular table name * chore: remove org ID from tag relation * feat: foreign key on tag id * feat: add SyncTags method that covers creation and linking * fix: remove entity type definition * fix: fix build errors in dashboard module * chore: bump migration number * chore: change entity id to resource id * fix: add org id filter in all list and delete queries * fix: remove user auditable * fix: add ID in tag relation * fix: fix build error * chore: bump migration number * fix: add len check on tags keys and values * fix: add regex for tags * chore: remove methods that shouldn't be exposed * fix: use sync tags in create api * feat: functional unique index in sql schema * fix: only ascii in regex * chore: rename create method to createOrGet * chore: use tagtypestest package for mock store * chore: combine functional unique index with unique index * chore: move tag resolution to module * test: add unit tests for new idx type * chore: comment out tags unique index for now * chore: add a todo comment * chore: comment out unique index test * feat: add created at to tag relations * chore: comment out unique index test * chore: bump migration number * chore: remove uploaded grafana flag from metadata * Merge branch 'main' into nv/v2-dashboard-create * chore: revert idx generation to resolve conflicts * fix: use store.RunInTx instead of taking in sqlstore * fix: use binding package to get request * chore: move NewDashboardV2 to NewDashboardV2WithoutTags * chore: rename module to m * fix: add ctx needed in sqlstore * fix: remove sqlstore passage in ee pkg * chore: change dashboardData to dashboardSpec * feat: follow the metadata+spec key structure * feat: follow the metadata+spec key structure in open api spec * feat: v2 dashboard GET API (#11136) * feat: v2 dashboard GET API * Merge branch 'nv/v2-dashboard-create' into nv/v2-dashboard-get * chore: update api specs * fix: remove soft delete references * chore: embed StorableDashboard into joinedRow in store method * fix: fix build error * chore: revert all frontend changes * fix: remove public dashboard from get v2 call * chore: update frontend schema * chore: generate api specs * fix: add source for v2 dashboards * chore: incorporate source * fix: add some required fields * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 * feat: add immutable name in dashboard v2 api specs * fix: remove unused param in constructor * fix: improve api descriptions * fix: remove unneeded comment * chore: increase MaxTagsPerDashboard to 10 * fix: set display name in unmarshal json * chore: remove integration test for now (will add along with list api) * feat: add validation on dashboard name * fix: correct convertor method name * test: add unit tests for type conversions * chore: remove enum def of threshold comparison operator * feat: add flag to generate unique name in backend * chore: generate api specs * chore: make tags required in postable * test: fix unit tests referring to > threshold operator * fix: use must new uuid for org id |
||
|
|
1e326159b0 |
feat(tracedetail): add waterfall api with memory optimisations (#11450)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* feat: add store methods for minimal trace fetch * feat: break down waterfall module to handle large spans Handling large traces in two steps to avoid high memory allocation * refactor: keep the waterfall changes in new api version This is to avoid the contract change in existing v3 * chore: avoid unnecessary diffs * refactor: move conversion logic to types * chore: update openapi specs * refactor: use sqlbuider for queries * chore: fix comment * chore: avoid passing request type to module * refactor: avoid passing whole summary object around * chore: remove trace_id from querying since its already known * chore: remove unused reference column from query * chore: update openapi specs |
||
|
|
6cf22e98dd |
feat(planned-downtime): scope maintenance windows to label expressions (#11186)
* add maintenanceMuteStage to move planned maintenance to alertmanager Rules previously skipped rule.Eval() entirely during maintenance windows. This change moves suppression to MaintenanceMuter, injected as a Stage in the alertmanager notification pipeline. Now rules always evaluate and everys suppression is handled by alertmanager. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: wrap routing pipeline once instead of per-route injection Replace the per-route-entry loop with a single MultiStage wrap so maintenance suppression runs once per dispatch group before routing. * refactor: move maintenance mute stage into custom pipelineBuilder Copy notify.PipelineBuilder locally so we can inject mms between the silence stage and the receiver stage (GossipSettle → Inhibit → TimeActive → TimeMute → Silence → mms → Receiver), matching the correct suppression order the team requires. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: add license header to pipeline_builder.go Copied code originates from Apache-2.0 licensed Prometheus Alertmanager; add dual copyright + SPDX identifier following the repo's convention. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: replace SPDX tag with full Apache 2.0 license boilerplate The full license text is unambiguously compliant with Apache 2.0 Section 4(a), which requires giving recipients "a copy of this License". Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: pass MaintenanceMuter directly to pipelineBuilder Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: remove dead orgID param from task constructors Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * rename buildReceiverStage -> createReceiverStage * refactor: replace maintenanceMuteStage with notify.NewMuteStage MaintenanceMuter already satisfies types.Muter, and pipelineBuilder has its own pb.metrics, so the hand-rolled maintenanceMuteStage wrapper is redundant. Use notify.NewMuteStage(pb.muter, pb.metrics) directly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: hoist MuteStage construction out of the receiver loop MuteStage holds no per-receiver state, so one instance shared across all receivers is sufficient — matching how is/ss are handled upstream. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: always initialize maintenanceStore; remove nil guards Tests now use a real sqlrulestore-backed MaintenanceMuter instead of passing nil. With nil no longer a valid input, remove the nil guards in server.go and pipeline_builder.go. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: move MaintenanceMuter to Server and pass it to pipelineBuilder.New - Remove muter from pipelineBuilder struct and newPipelineBuilder(); pass it as a parameter to New() instead, consistent with inhibitor/silencer - Store muter on Server so GetAlerts can call Mutes() alongside the inhibitor and silencer, ensuring maintenance-suppressed alerts show the correct muted status in API responses Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * remove redundant MemMarker wrapper * feat: surface maintenance-suppressed alerts via mutedBy in GetAlerts Alerts suppressed by an active maintenance window were being correctly muted in the notification pipeline but appeared as state=active in the v2 GetAlerts response, since MaintenanceMuter.Mutes had no marker side-effect (unlike inhibitor/silencer). Add MaintenanceMuter.MutedBy returning the matching window IDs, and plumb a mutedByFunc callback through NewGettableAlertsFromAlertProvider into AlertToOpenAPIAlert. The upstream v2 API forces state=suppressed when mutedBy is non-empty, so the frontend's existing state-based rendering picks it up without further changes. Use the dedicated mutedBy field rather than SilencedBy to avoid violating the "complete set of silence IDs" contract that anything querying silences by ID would rely on. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * code cleanup * refactor: move maintenance (planned downtime) to alertmanager packages Types move from pkg/types/ruletypes/ to pkg/types/alertmanagertypes/: - maintenance.go, recurrence.go, schedule.go (+ tests) Store impl moves from pkg/ruler/rulestore/sqlrulestore/ to pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore/. Maintenance windows mute alerts, so they belong with alertmanager rather than the rule types. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * test: add unit tests for MaintenanceMuter Covers Mutes/MutedBy semantics (empty label, rule match, empty-RuleIDs matches-all, future windows, multi-window) and the result cache (single-fetch within TTL, stale-cache fallback on store error, re-fetch after expiry, concurrency safety). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Update schema changes * Re-add marker * fix NewMaintenanceStore in tests * Go lint fixes * test: use mockery-generated mock for MaintenanceStore in muter tests Replace hand-written fakeMaintenanceStore with a mockery-generated MockMaintenanceStore, consistent with the alertmanagertest pattern. Also adds MaintenanceStore to .mockery.yml so the mock stays in sync. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: regenerate mocks via make gen-mocks Picks up new MockHandler for the Handler interface in pkg/alertmanager and regenerates MockMaintenanceStore with canonical mockery formatting. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * cleanup test * test: add e2e muting tests for maintenance window behaviour * Add label expression support to planned downtime Alert instances can now be scoped by label expression (e.g. env == "prod"), scoping suppression below the rule level. A window with no rule IDs and a label expression silences any alert whose labels match, regardless of which rule fired it; when rule IDs are also present, the expression is evaluated only within the matched rules. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Remove redundant || undefined from labelExpression assignment * Move label expression evaluation into ShouldSkip ShouldSkip now owns all three suppression checks in sequence: rule ID match → schedule active → label expression. IsActive passes nil labels so the expression check is skipped (no instance labels available for UI status). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * remove redundant LabelSet->map conversion * implement Down migration to drop label_expression column * fix lset type and update openapi spec * fix(tests): resolve envprovider env isolation, factory name length, and ShouldSkip signature Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * remove unused function `evaluateLabelExpression` * chore: rename label expression to scope * test(maintenance): add tests for scope label expression filtering Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(e2e): verify scope-based maintenance muting in alertmanager flow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Use `AND` instead of `&&` Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> * fix(maintenance): consolidate label-set-to-env conversion to avoid expr panic Move ConvertLabelSetToEnv to alertmanagertypes so both the maintenance scope evaluator and the route-policy evaluator share one implementation. Dotted label keys (e.g. kubernetes.node) are expanded into nested maps, preventing the expr-lang panic that occurs when one key is a prefix of another. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore(planned-downtime): use clickable learn more link in scope tooltip * chore(sqlmigration): renumber add_scope_to_planned_maintenance to 086 078 collided with add_sa_managed_role_txn; bumped to the next free number and reordered registration after add_source_to_dashboard (085). * refactor(maintenance): extract scope expression eval and surface errors - Move ConvertLabelSetToEnv and EvalScopeExpression into expression.go with companion tests in expression_test.go. - EvalScopeExpression now returns (bool, error) instead of swallowing compile/run failures and non-bool outputs; ShouldSkip logs the error via slog.Default() and falls back to not suppressing (safety-first). - Update test fixtures to the SQL-style operator form (`=`, AND, OR) matching the placeholder and reviewer suggestions. * chore: use `=` instead of `==` in expressions * fix(maintenance): satisfy forbidigo/sloglint in scope eval - Replace fmt.Errorf with pkg/errors Wrapf/Newf using a new ErrCodeInvalidScopeExpression code. - Use slog ErrorContext (with context.Background()) instead of Error to satisfy sloglint. * perf(maintenance): fold prefix-conflict detection into ConvertLabelSetToEnv ConvertLabelSetToEnv now returns (env, conflict). The rulebased provider drops its O(n^2) pre-scan and logs based on the flag, restoring the previous O(n*d) cost while keeping the shared helper. * chore: add docs URL for invalid scope * refactor: don't log in types package * remove down migration --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Srikanth Chekuri <srikanth.chekuri92@gmail.com> |
||
|
|
d1f143f675 |
feat(web): add support for generating web settings types (#11445)
* feat(web): add support for generating settings type * feat(web): add support for generating settings type * feat(web): add support for generating settings type * refactor: rename generate settings to generate config web-settings - Rename cmd/settings.go to cmd/genconfig.go - Restructure command as `generate config web-settings` - Move schema output to docs/config/web-settings.json - Update frontend script to generate:config:web-settings - Update CI checks to match new command names - Strip Web prefix from generated JSON Schema definitions |
||
|
|
f47f1ad92b |
Remove unused field from waterfall response (part 1 of memory opt) (#11337)
Some checks failed
build-staging / prepare (push) Has been cancelled
build-staging / js-build (push) Has been cancelled
build-staging / go-build (push) Has been cancelled
build-staging / staging (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
* chore: remove unused field from waterfall v3 * chore: update openapi specs * chore: remove debug statements |
||
|
|
9ba57d323d |
refactor: merge tracedetail typse with spantypes (#11417)
* refactor: merge tracedetail typse with spantypes * chore: update openapi specs |
||
|
|
5c54a2537c | chore: arrays non-nullable (#11388) | ||
|
|
9f60bdf54a |
chore: create source field in dashboards (#11367)
* chore: create source field in dashboards * chore: consolidate checks to module * chore: run generate * chore: address review comments * chore: separate test file * chore: address review comments |
||
|
|
a27b7d3d8e |
move planned maintenance to alertmanager pipeline (#11130)
* add maintenanceMuteStage to move planned maintenance to alertmanager Rules previously skipped rule.Eval() entirely during maintenance windows. This change moves suppression to MaintenanceMuter, injected as a Stage in the alertmanager notification pipeline. Now rules always evaluate and everys suppression is handled by alertmanager. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: wrap routing pipeline once instead of per-route injection Replace the per-route-entry loop with a single MultiStage wrap so maintenance suppression runs once per dispatch group before routing. * refactor: move maintenance mute stage into custom pipelineBuilder Copy notify.PipelineBuilder locally so we can inject mms between the silence stage and the receiver stage (GossipSettle → Inhibit → TimeActive → TimeMute → Silence → mms → Receiver), matching the correct suppression order the team requires. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: add license header to pipeline_builder.go Copied code originates from Apache-2.0 licensed Prometheus Alertmanager; add dual copyright + SPDX identifier following the repo's convention. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: replace SPDX tag with full Apache 2.0 license boilerplate The full license text is unambiguously compliant with Apache 2.0 Section 4(a), which requires giving recipients "a copy of this License". Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: pass MaintenanceMuter directly to pipelineBuilder Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: remove dead orgID param from task constructors Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * rename buildReceiverStage -> createReceiverStage * refactor: replace maintenanceMuteStage with notify.NewMuteStage MaintenanceMuter already satisfies types.Muter, and pipelineBuilder has its own pb.metrics, so the hand-rolled maintenanceMuteStage wrapper is redundant. Use notify.NewMuteStage(pb.muter, pb.metrics) directly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: hoist MuteStage construction out of the receiver loop MuteStage holds no per-receiver state, so one instance shared across all receivers is sufficient — matching how is/ss are handled upstream. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: always initialize maintenanceStore; remove nil guards Tests now use a real sqlrulestore-backed MaintenanceMuter instead of passing nil. With nil no longer a valid input, remove the nil guards in server.go and pipeline_builder.go. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: move MaintenanceMuter to Server and pass it to pipelineBuilder.New - Remove muter from pipelineBuilder struct and newPipelineBuilder(); pass it as a parameter to New() instead, consistent with inhibitor/silencer - Store muter on Server so GetAlerts can call Mutes() alongside the inhibitor and silencer, ensuring maintenance-suppressed alerts show the correct muted status in API responses Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * remove redundant MemMarker wrapper * feat: surface maintenance-suppressed alerts via mutedBy in GetAlerts Alerts suppressed by an active maintenance window were being correctly muted in the notification pipeline but appeared as state=active in the v2 GetAlerts response, since MaintenanceMuter.Mutes had no marker side-effect (unlike inhibitor/silencer). Add MaintenanceMuter.MutedBy returning the matching window IDs, and plumb a mutedByFunc callback through NewGettableAlertsFromAlertProvider into AlertToOpenAPIAlert. The upstream v2 API forces state=suppressed when mutedBy is non-empty, so the frontend's existing state-based rendering picks it up without further changes. Use the dedicated mutedBy field rather than SilencedBy to avoid violating the "complete set of silence IDs" contract that anything querying silences by ID would rely on. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * code cleanup * refactor: move maintenance (planned downtime) to alertmanager packages Types move from pkg/types/ruletypes/ to pkg/types/alertmanagertypes/: - maintenance.go, recurrence.go, schedule.go (+ tests) Store impl moves from pkg/ruler/rulestore/sqlrulestore/ to pkg/alertmanager/alertmanagerstore/sqlalertmanagerstore/. Maintenance windows mute alerts, so they belong with alertmanager rather than the rule types. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * test: add unit tests for MaintenanceMuter Covers Mutes/MutedBy semantics (empty label, rule match, empty-RuleIDs matches-all, future windows, multi-window) and the result cache (single-fetch within TTL, stale-cache fallback on store error, re-fetch after expiry, concurrency safety). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Update schema changes * Re-add marker * fix NewMaintenanceStore in tests * Go lint fixes * test: use mockery-generated mock for MaintenanceStore in muter tests Replace hand-written fakeMaintenanceStore with a mockery-generated MockMaintenanceStore, consistent with the alertmanagertest pattern. Also adds MaintenanceStore to .mockery.yml so the mock stays in sync. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: regenerate mocks via make gen-mocks Picks up new MockHandler for the Handler interface in pkg/alertmanager and regenerates MockMaintenanceStore with canonical mockery formatting. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * cleanup test * test: add e2e muting tests for maintenance window behaviour * fix updates: omit empty endTime from serialization --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
72a58c634b |
feat(infra-monitoring): v2 daemonsets list api (#11149)
* chore: baseline setup * chore: endpoint detail update * chore: added logic for hosts v3 api * fix: bug fix * chore: disk usage * chore: added validate function * chore: added some unit tests * chore: return status as a string * chore: yarn generate api * chore: removed isSendingK8sAgentsMetricsCode * chore: moved funcs * chore: added validation on order by * chore: added pods list logic * chore: updated openapi yml * chore: updated spec * chore: pods api meta start time * chore: nil pointer check * chore: nil pointer dereference fix in req.Filter * chore: added temporalities of metrics * chore: added pods metrics temporality * chore: unified composite key function * chore: code improvements * chore: added pods list api updates * chore: hostStatusNone added for clarity that this field can be left empty as well in payload * chore: yarn generate api * chore: return errors from getMetadata and lint fix * chore: return errors from getMetadata and lint fix * chore: added hostName logic * chore: modified getMetadata query * chore: add type for response and files rearrange * chore: warnings added passing from queryResponse warning to host lists response struct * chore: added better metrics existence check * chore: added a TODO remark * chore: added required metrics check * chore: distributed samples table to local table change for get metadata * chore: frontend fix * chore: endpoint correction * chore: endpoint modification openapi * chore: escape backtick to prevent sql injection * chore: rearrage * chore: improvements * chore: validate order by to validate function * chore: improved description * chore: added TODOs and made filterByStatus a part of filter struct * chore: ignore empty string hosts in get active hosts * feat(infra-monitoring): v2 hosts list - return counts of active & inactive hosts for custom group by attributes (#10956) * chore: add functionality for showing active and inactive counts in custom group by * chore: bug fix * chore: added subquery for active and total count * chore: ignore empty string hosts in get active hosts * fix: sinceUnixMilli for determining active hosts compute once per request * chore: refactor code * chore: rename HostsList -> ListHosts * chore: rearrangement * chore: inframonitoring types renaming * chore: added types package * chore: file structure further breakdown for clarity * chore: comments correction * chore: removed temporalities * chore: pods code restructuring * chore: comments resolve * chore: added json tag required: true * chore: removed pod metric temporalities * chore: removed internal server error * chore: added status unauthorized * chore: remove a defensive nil map check, the function ensure non-nil map when err nil * chore: cleanup and rename * chore: make sort stable in case of tiebreaker by comparing composite group by keys * chore: regen api client for inframonitoring Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added required tags * chore: added support for pod phase unknown * chore: removed pods - order by phase * chore: improved api description to document -1 as no data in numeric fields * fix: rebase fixes * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * feat(infra-monitoring): v2 pods list apis - phase counts when custom grouping (#11088) * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * chore: nodes list v2 full blown * chore: metadata fix * chore: updated comment * chore: namespaces code * chore: v2 nodes api * chore: rename * chore: v2 clusters list api * chore: namespaces code * chore: rename * chore: review clusters PR * chore: pvcs code added * chore: updated endpoint and spec * chore: pvcs todo * chore: added condition * chore: added filter * chore: added code for deployments * chore: query nit * chore: statefulsets code added * chore: base filter added * chore: added base deployments change * chore: added base condition * chore: v2 jobs list api added * chore: added daemonsets api * chore: added pod phase counts * chore: for pods and nodes, replace none with no_data * chore: node and pod counts structs added * chore: namespace record uses PodCountsByPhase * chore: cluster record uses PodCountsByPhase, NodeCountsByReadiness * chore: deployment record uses PodCountsByPhase * chore: statefulset record uses PodCountsByPhase * chore: job record uses PodCountsByPhase * chore: daemonset record uses PodCountsByPhase * chore: added remaining metrics to check * chore: metrics existence check * chore: statefulset metrics added * chore: added jobs metrics * chore: added metrics * chore: updated PR things * chore: changes to generated files --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Ashwin Bhatkal <ashwin96@gmail.com> |
||
|
|
edb30f29c1 |
feat(authz): introduce detach relationship (#11298)
* feat(authz): introduce detach relationship * feat(authz): attach and detach for parent child heirarchy * feat(authz): fix the openapi spec generated schemas * feat(authz): add integration tests * feat(authz): add telemetry metaresource * feat(authz): fix the http response and integration tests * feat(authz): generate frontend openapi schema * feat(authz): remove unwanted tuples |
||
|
|
3b9ee4901e |
feat(infra-monitoring): v2 jobs list api (#11148)
* chore: baseline setup * chore: endpoint detail update * chore: added logic for hosts v3 api * fix: bug fix * chore: disk usage * chore: added validate function * chore: added some unit tests * chore: return status as a string * chore: yarn generate api * chore: removed isSendingK8sAgentsMetricsCode * chore: moved funcs * chore: added validation on order by * chore: added pods list logic * chore: updated openapi yml * chore: updated spec * chore: pods api meta start time * chore: nil pointer check * chore: nil pointer dereference fix in req.Filter * chore: added temporalities of metrics * chore: added pods metrics temporality * chore: unified composite key function * chore: code improvements * chore: added pods list api updates * chore: hostStatusNone added for clarity that this field can be left empty as well in payload * chore: yarn generate api * chore: return errors from getMetadata and lint fix * chore: return errors from getMetadata and lint fix * chore: added hostName logic * chore: modified getMetadata query * chore: add type for response and files rearrange * chore: warnings added passing from queryResponse warning to host lists response struct * chore: added better metrics existence check * chore: added a TODO remark * chore: added required metrics check * chore: distributed samples table to local table change for get metadata * chore: frontend fix * chore: endpoint correction * chore: endpoint modification openapi * chore: escape backtick to prevent sql injection * chore: rearrage * chore: improvements * chore: validate order by to validate function * chore: improved description * chore: added TODOs and made filterByStatus a part of filter struct * chore: ignore empty string hosts in get active hosts * feat(infra-monitoring): v2 hosts list - return counts of active & inactive hosts for custom group by attributes (#10956) * chore: add functionality for showing active and inactive counts in custom group by * chore: bug fix * chore: added subquery for active and total count * chore: ignore empty string hosts in get active hosts * fix: sinceUnixMilli for determining active hosts compute once per request * chore: refactor code * chore: rename HostsList -> ListHosts * chore: rearrangement * chore: inframonitoring types renaming * chore: added types package * chore: file structure further breakdown for clarity * chore: comments correction * chore: removed temporalities * chore: pods code restructuring * chore: comments resolve * chore: added json tag required: true * chore: removed pod metric temporalities * chore: removed internal server error * chore: added status unauthorized * chore: remove a defensive nil map check, the function ensure non-nil map when err nil * chore: cleanup and rename * chore: make sort stable in case of tiebreaker by comparing composite group by keys * chore: regen api client for inframonitoring Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added required tags * chore: added support for pod phase unknown * chore: removed pods - order by phase * chore: improved api description to document -1 as no data in numeric fields * fix: rebase fixes * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * feat(infra-monitoring): v2 pods list apis - phase counts when custom grouping (#11088) * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * chore: nodes list v2 full blown * chore: metadata fix * chore: updated comment * chore: namespaces code * chore: v2 nodes api * chore: rename * chore: v2 clusters list api * chore: namespaces code * chore: rename * chore: review clusters PR * chore: pvcs code added * chore: updated endpoint and spec * chore: pvcs todo * chore: added condition * chore: added filter * chore: added code for deployments * chore: query nit * chore: statefulsets code added * chore: base filter added * chore: added base deployments change * chore: added base condition * chore: v2 jobs list api added * chore: added pod phase counts * chore: for pods and nodes, replace none with no_data * chore: node and pod counts structs added * chore: namespace record uses PodCountsByPhase * chore: cluster record uses PodCountsByPhase, NodeCountsByReadiness * chore: deployment record uses PodCountsByPhase * chore: statefulset record uses PodCountsByPhase * chore: job record uses PodCountsByPhase * chore: metrics existence check * chore: statefulset metrics added * chore: added jobs metrics * chore: added metrics --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Ashwin Bhatkal <ashwin96@gmail.com> |
||
|
|
83fa73c3e8 |
feat(infra-monitoring): v2 statefulsets list api (#11146)
* chore: baseline setup * chore: endpoint detail update * chore: added logic for hosts v3 api * fix: bug fix * chore: disk usage * chore: added validate function * chore: added some unit tests * chore: return status as a string * chore: yarn generate api * chore: removed isSendingK8sAgentsMetricsCode * chore: moved funcs * chore: added validation on order by * chore: added pods list logic * chore: updated openapi yml * chore: updated spec * chore: pods api meta start time * chore: nil pointer check * chore: nil pointer dereference fix in req.Filter * chore: added temporalities of metrics * chore: added pods metrics temporality * chore: unified composite key function * chore: code improvements * chore: added pods list api updates * chore: hostStatusNone added for clarity that this field can be left empty as well in payload * chore: yarn generate api * chore: return errors from getMetadata and lint fix * chore: return errors from getMetadata and lint fix * chore: added hostName logic * chore: modified getMetadata query * chore: add type for response and files rearrange * chore: warnings added passing from queryResponse warning to host lists response struct * chore: added better metrics existence check * chore: added a TODO remark * chore: added required metrics check * chore: distributed samples table to local table change for get metadata * chore: frontend fix * chore: endpoint correction * chore: endpoint modification openapi * chore: escape backtick to prevent sql injection * chore: rearrage * chore: improvements * chore: validate order by to validate function * chore: improved description * chore: added TODOs and made filterByStatus a part of filter struct * chore: ignore empty string hosts in get active hosts * feat(infra-monitoring): v2 hosts list - return counts of active & inactive hosts for custom group by attributes (#10956) * chore: add functionality for showing active and inactive counts in custom group by * chore: bug fix * chore: added subquery for active and total count * chore: ignore empty string hosts in get active hosts * fix: sinceUnixMilli for determining active hosts compute once per request * chore: refactor code * chore: rename HostsList -> ListHosts * chore: rearrangement * chore: inframonitoring types renaming * chore: added types package * chore: file structure further breakdown for clarity * chore: comments correction * chore: removed temporalities * chore: pods code restructuring * chore: comments resolve * chore: added json tag required: true * chore: removed pod metric temporalities * chore: removed internal server error * chore: added status unauthorized * chore: remove a defensive nil map check, the function ensure non-nil map when err nil * chore: cleanup and rename * chore: make sort stable in case of tiebreaker by comparing composite group by keys * chore: regen api client for inframonitoring Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added required tags * chore: added support for pod phase unknown * chore: removed pods - order by phase * chore: improved api description to document -1 as no data in numeric fields * fix: rebase fixes * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * feat(infra-monitoring): v2 pods list apis - phase counts when custom grouping (#11088) * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * chore: nodes list v2 full blown * chore: metadata fix * chore: updated comment * chore: namespaces code * chore: v2 nodes api * chore: rename * chore: v2 clusters list api * chore: namespaces code * chore: rename * chore: review clusters PR * chore: pvcs code added * chore: updated endpoint and spec * chore: pvcs todo * chore: added condition * chore: added filter * chore: added code for deployments * chore: query nit * chore: statefulsets code added * chore: base filter added * chore: added base deployments change * chore: added base condition * chore: added pod phase counts * chore: for pods and nodes, replace none with no_data * chore: node and pod counts structs added * chore: namespace record uses PodCountsByPhase * chore: cluster record uses PodCountsByPhase, NodeCountsByReadiness * chore: deployment record uses PodCountsByPhase * chore: statefulset record uses PodCountsByPhase * chore: metrics existence check * chore: statefulset metrics added * chore: availablePods -> renamed to currentPods * chore: restored to main --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Ashwin Bhatkal <ashwin96@gmail.com> |
||
|
|
951f55b062 |
feat(infra-monitoring): v2 deployments list api (#11140)
* chore: baseline setup * chore: endpoint detail update * chore: added logic for hosts v3 api * fix: bug fix * chore: disk usage * chore: added validate function * chore: added some unit tests * chore: return status as a string * chore: yarn generate api * chore: removed isSendingK8sAgentsMetricsCode * chore: moved funcs * chore: added validation on order by * chore: added pods list logic * chore: updated openapi yml * chore: updated spec * chore: pods api meta start time * chore: nil pointer check * chore: nil pointer dereference fix in req.Filter * chore: added temporalities of metrics * chore: added pods metrics temporality * chore: unified composite key function * chore: code improvements * chore: added pods list api updates * chore: hostStatusNone added for clarity that this field can be left empty as well in payload * chore: yarn generate api * chore: return errors from getMetadata and lint fix * chore: return errors from getMetadata and lint fix * chore: added hostName logic * chore: modified getMetadata query * chore: add type for response and files rearrange * chore: warnings added passing from queryResponse warning to host lists response struct * chore: added better metrics existence check * chore: added a TODO remark * chore: added required metrics check * chore: distributed samples table to local table change for get metadata * chore: frontend fix * chore: endpoint correction * chore: endpoint modification openapi * chore: escape backtick to prevent sql injection * chore: rearrage * chore: improvements * chore: validate order by to validate function * chore: improved description * chore: added TODOs and made filterByStatus a part of filter struct * chore: ignore empty string hosts in get active hosts * feat(infra-monitoring): v2 hosts list - return counts of active & inactive hosts for custom group by attributes (#10956) * chore: add functionality for showing active and inactive counts in custom group by * chore: bug fix * chore: added subquery for active and total count * chore: ignore empty string hosts in get active hosts * fix: sinceUnixMilli for determining active hosts compute once per request * chore: refactor code * chore: rename HostsList -> ListHosts * chore: rearrangement * chore: inframonitoring types renaming * chore: added types package * chore: file structure further breakdown for clarity * chore: comments correction * chore: removed temporalities * chore: pods code restructuring * chore: comments resolve * chore: added json tag required: true * chore: removed pod metric temporalities * chore: removed internal server error * chore: added status unauthorized * chore: remove a defensive nil map check, the function ensure non-nil map when err nil * chore: cleanup and rename * chore: make sort stable in case of tiebreaker by comparing composite group by keys * chore: regen api client for inframonitoring Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added required tags * chore: added support for pod phase unknown * chore: removed pods - order by phase * chore: improved api description to document -1 as no data in numeric fields * fix: rebase fixes * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * feat(infra-monitoring): v2 pods list apis - phase counts when custom grouping (#11088) * chore: added phase counts feature * chore: added queries for pod phase counts in custom group by * chore: added unknown phase count * fix: isPodUIDInGroupBy in buildPodRecords * chore: 3 cte --> 2 cte * chore: pod phase with local table of time series as counts * chore: comment correction * chore: corrected comment * chore: value column for samples table added * chore: removed query G for phase counts * chore: rename variable * chore: added PodPhaseNum constants to types * chore: nodes list v2 full blown * chore: metadata fix * chore: updated comment * chore: namespaces code * chore: v2 nodes api * chore: rename * chore: v2 clusters list api * chore: namespaces code * chore: rename * chore: review clusters PR * chore: pvcs code added * chore: updated endpoint and spec * chore: pvcs todo * chore: added condition * chore: added filter * chore: added code for deployments * chore: query nit * chore: added base deployments change * chore: added base condition * chore: added pod phase counts * chore: for pods and nodes, replace none with no_data * chore: node and pod counts structs added * chore: namespace record uses PodCountsByPhase * chore: cluster record uses PodCountsByPhase, NodeCountsByReadiness * chore: deployment record uses PodCountsByPhase * chore: metrics existence check --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Ashwin Bhatkal <ashwin96@gmail.com> |