1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-11-24 20:06:55 +01:00
Commit Graph

851 Commits

Author SHA1 Message Date
Nuno Góis
eb238f502a
chore: unknown flags (#9837)
https://linear.app/unleash/issue/2-3406/hold-unknown-flags-in-memory-and-show-them-in-the-ui-somehow

This PR introduces a suggestion for a “unknown flags” feature.

When clients report metrics for flags that don’t exist in Unleash (e.g.
due to typos), we now track a limited set of these unknown flag names
along with the appnames that reported them. The goal is to help users
identify and clean up incorrect flag usage across their apps.

We store up to 10 unknown flag + appName combinations, keeping only the
most recent reports. Data is collected in-memory and flushed
periodically to the DB, with deduplication and merging to ensure we
don’t exceed the cap even across pods.

We were especially careful to make this implementation defensive, as
unknown flags could be reported in very high volumes. Writes are
batched, deduplicated, and hard-capped to avoid DB pressure.

No UI has been added yet — this is backend-only for now and intended as
a step toward better visibility into client misconfigurations.

I would suggest starting with a simple banner that opens a dialog
showing the list of unknown flags and which apps reported them.

<img width="497" alt="image"
src="https://github.com/user-attachments/assets/b7348e0d-0163-4be4-a7f8-c072e8464331"
/>
2025-05-07 11:48:36 +01:00
Mateusz Kwasniewski
20a80142d3
feat: normalize urls in feature links (#9911) 2025-05-06 19:08:04 +02:00
Mateusz Kwasniewski
b9f1d8414c
feat: add links to feature read model (#9905) 2025-05-06 14:57:52 +02:00
Mateusz Kwasniewski
c6ab2a1cf7
feat: sql feature link persistence (#9901) 2025-05-06 11:46:15 +02:00
Mateusz Kwasniewski
4860d73bf7
chore: feature links flag (#9896) 2025-05-06 09:46:18 +02:00
Mateusz Kwasniewski
002233e7f6
feat: feature link backend stub (#9893) 2025-05-06 09:31:45 +02:00
David Leek
1166d00e6d
chore: flag cleanup simplifyDisableFeature (#9892) 2025-05-06 08:41:03 +02:00
Mateusz Kwasniewski
1b9c0e5000
feat: bulk apps should respect multi projects and multi envs (#9879) 2025-05-02 10:12:41 +02:00
Mateusz Kwasniewski
b0223e38ef
refactor: stabilize frontend apps reporting (#9880) 2025-05-01 15:43:03 +02:00
Mateusz Kwasniewski
3ef32dca93
feat: handle nullable sdk type (#9872) 2025-04-30 12:36:18 +02:00
Mateusz Kwasniewski
58a01d0c47
feat: separate frontend and backend applications from edge (#9863) 2025-04-29 15:42:47 +02:00
Mateusz Kwasniewski
3980cfa2a8
feat: show backend and frontend sdks separately (#9857) 2025-04-29 10:36:02 +02:00
Mateusz Kwasniewski
1ccc6cae19
feat: Spike frontend applications registration (#9846) 2025-04-28 09:01:07 +02:00
Mateusz Kwasniewski
bd78a75177
chore: remove flag for global change request config (#9840) 2025-04-25 12:47:18 +02:00
Mateusz Kwasniewski
d24bcff404
feat: remove inactive applications (#9835) 2025-04-24 15:17:47 +02:00
Mateusz Kwasniewski
9911fe89be
feat: lifecycle count query (#9824) 2025-04-24 09:36:06 +02:00
Mateusz Kwasniewski
67d59d6141
chore: aggregate daily metrics query time instrumentation (#9764) 2025-04-15 14:52:03 +02:00
Mateusz Kwasniewski
0efa2585fe
fix: improve status job performance (#9755) 2025-04-15 09:33:13 +02:00
Mateusz Kwasniewski
ff3c17ffa7
refactor: extract flags overview sql builders (#9751) 2025-04-14 10:56:28 +02:00
Mateusz Kwasniewski
b2471633b4
refactor: move release plan stores to OSS (#9747) 2025-04-11 11:37:06 +02:00
Mateusz Kwasniewski
8f117ac18e
feat: add milestones to search results (#9739) 2025-04-10 10:25:39 +02:00
Mateusz Kwasniewski
e876e6438d
feat: total count respect lifecycle filter (#9724) 2025-04-09 08:54:19 +02:00
Nuno Góis
1078dd1c41
fix: return bad data error when failing to patch env variants (#9708)
https://linear.app/unleash/issue/2-3483/variants-endpoint-should-return-400-or-other-more-appropriate-status

Throws BadDataError (returns 400) instead of 500 by wrapping the patch
logic with a try catch.

Added a test that validates the new behavior.
2025-04-08 09:32:40 +01:00
Mateusz Kwasniewski
588e35e759
feat: search by lifecycle stage (#9705) 2025-04-07 14:00:01 +02:00
Mateusz Kwasniewski
4130e06d17
feat: flag overview change requests (#9702) 2025-04-04 14:20:42 +02:00
Gastón Fournier
ef1b6ec227
chore: decrease ui observability to warn (#9658)
These errors are not acted upon and is not something we can act on.
Reducing it's level to WARN following
https://github.com/Unleash/unleash/blob/main/website/docs/contributing/ADRs/overarching/logging-levels.md
2025-03-31 16:02:28 +02:00
Mateusz Kwasniewski
3ced6a3780
refactor: environments in feature directory (#9650) 2025-03-31 13:58:37 +02:00
Mateusz Kwasniewski
9de0e7435b
feat: enforce env change request on project create (#9646) 2025-03-31 09:29:20 +02:00
Mateusz Kwasniewski
1bd328f4e1
feat: create and edit environment required approvals (#9621) 2025-03-26 15:54:46 +01:00
Fredrik Strand Oseberg
832b651f5b
fix: flaky test once an hour (#9615)
This test was flaky once an hour because subminutes 3 made it fall into
the wrong bucket when tests were run exactly or minutes after the our
had passed.

Also, the databases created were created with the system clock. I
altered it to be explicitly UTC.
2025-03-25 22:25:32 +01:00
Mateusz Kwasniewski
4677b28aee
feat: persist env required approvals (#9616) 2025-03-25 16:04:14 +01:00
Fredrik Strand Oseberg
7d7a949093
feat: backend for retrieving tag colors (#9610)
Add backend for retrieving tag colors
2025-03-25 14:45:44 +01:00
Jaanus Sellin
34abb2669e
fix: now hydration event will have segments inside (#9597) 2025-03-24 13:26:48 +02:00
Fredrik Strand Oseberg
d437fc7bdd
fix: s is possibly null (#9578)
Fixes an issue where s was possibly null and Unleash would not build
after turning on strictNullChecks.
2025-03-19 09:50:54 +00:00
Christopher Kolstad
efcf04487d
chore: make it build with strict null checks set to true (#9554)
As part of preparation for ESM and node/TSC updates, this PR will make
Unleash build with strictNullChecks set to true, since that's what's in
our tsconfig file. Hence, this PR also removes the `--strictNullChecks
false` flag in our compile tasks in package.json.

TL;DR - Clean up your code rather than turning off compiler security
features :)
2025-03-19 10:01:49 +01:00
Fredrik Strand Oseberg
a65c8baf56
Feat/tag type colors backend (#9565)
Adds backend color support for tag types
2025-03-18 15:27:41 +01:00
Gastón Fournier
4ffd3e7116
chore: stop using feature service v2 (#9500)
Just replacing references as both are interchangeable


143c8a3074/src/lib/types/services.ts (L81-L82)

Depends on
https://github.com/bricks-software/unleash-enterprise/pull/138
2025-03-12 11:44:47 +01:00
Nuno Góis
6b888abe10
chore: remove project at least one owner constraint (#9517)
https://linear.app/unleash/issue/2-3393/remove-project-at-least-one-owner-constraint

Removes our constraint that the project must have at least one owner.
2025-03-12 10:37:20 +00:00
Nuno Góis
242b0de592
chore: show events IP (#9512)
https://linear.app/unleash/issue/2-3392/visualize-event-log-ip-address-on-unleash-enterprise-ui

Shows events IP for Unleash Enterprise.


![image](https://github.com/user-attachments/assets/3ffbc69b-6dce-4c16-9d3d-77a404623d96)
2025-03-12 10:06:29 +00:00
Gastón Fournier
d1d1a740f3
chore: remove deprecated method from project-service (#9498)
Depends on
https://github.com/bricks-software/unleash-enterprise/pull/137

This method has been deprecated and has an alternative. Migrating to
that alternative
2025-03-12 11:03:31 +01:00
Gastón Fournier
111a676093
chore: remove deprecated getAdmin from client features store (#9497)
This method has been deprecated 2 years ago and is not used
2025-03-11 12:04:25 +01:00
Thomas Heartman
8629cda4d7
chore: remove dataUsageMultiMonthView flag (#9429)
Remove data usage multi month view flag and deprecated components and
functions.
2025-03-05 12:08:33 +01:00
Simon Hornby
e7ac42080d
feat: project environments include visible property (#9427) 2025-03-05 10:09:25 +02:00
Simon Hornby
f3ede7681f
chore: flip UI and backend validation for project env disabling (#9395) 2025-03-03 17:13:41 +02:00
David Leek
836c920154
fix: get all strategies and check if env to be disabled (#9357) 2025-02-28 11:03:28 +01:00
Jaanus Sellin
9ae9221960
feat: now instances are only shown for last 24 hours (#9372) 2025-02-27 09:19:48 +02:00
Gastón Fournier
3f373665ed
feat: ignore events in log when nothing has changed (#9364)
## About the changes
Some automation may keep some data up-to-date (e.g. segments). These
updates sometimes don't generate changes but we're still storing these
events in the event log and triggering reactions to those events.


Arguably, this could be done in each service domain logic, but it seems
to be a pretty straightforward solution: if preData and data are
provided, it means some change happened. Other events that don't have
preData or don't have data are treated as before.

Tests were added to validate we don't break other events.
2025-02-26 09:15:01 +01:00
Nuno Góis
a91876790e
chore: deprecate and undeprecate protected environments (#9360)
https://linear.app/unleash/issue/2-3320/allow-users-to-deprecate-and-undeprecate-protected-environments

Allows users to deprecate and undeprecate protected environments.


![image](https://github.com/user-attachments/assets/621684d3-21e3-4f58-b6b5-2d2731c9fd9e)
2025-02-25 13:41:41 +00:00
Jaanus Sellin
55eb73cf08
feat: now project moving is split into two events (#9358)
When project is moved, then Unleash creates only one event, which is for
target project.
We also need one for source project, to know that project was moved out
of it.

Test will be in enterprise repo.
2025-02-25 12:45:24 +02:00
Jaanus Sellin
4630068b0a
feat: add tests for filterEventsByQuery (#9338) 2025-02-20 14:52:01 +02:00
Ivar Conradi Østhus
7811e4e264
fix: use bucket stop as timestamp for metrics bucket (#9327)
This fixes a problem where the yggdrasil-engine does not send the
correct value for bucket.start. In practice clients sends metrics every
60s and it does not matter if we use start or the stop timestamp to
resolve the nearest full hour.
2025-02-19 10:38:11 +02:00
Jaanus Sellin
ca562c548d
feat: project field to feature removed event (#9322)
Start sending out project for feature deleted, as we need it for edge to
keep exact copy.
2025-02-19 09:37:10 +02:00
Ivar Conradi Østhus
3f730bb7f3
fix: add a metric to track client registrations (#9314)
Adding a counter to track every time a client registers with Unleash.
2025-02-17 09:01:19 +01:00
Jaanus Sellin
4a72580b24
fix: return undefined from delta if no events (#9311)
Nameprefix can remove events from result, so we should send 304 in that
case.
2025-02-14 12:28:43 +02:00
Fredrik Strand Oseberg
fa43420ab9
fix: mutating delta events (#9303)
Fix a bug where delta events would be mutated due to Object.assign.
2025-02-14 10:30:14 +02:00
Jaanus Sellin
aa15fbee9a
fix: hydration event should update with every event (#9310)
We were not updating hydration event id. This fixes it.
2025-02-14 09:35:08 +02:00
Nuno Góis
151db95c2d
feat: frontend API POST endpoint (#9291)
https://linear.app/unleash/issue/2-3260/implement-post-request-support-in-unleashs-frontend-api

Implements the POST endpoint in Unleash's frontend API.
2025-02-12 11:56:51 +00:00
Gastón Fournier
5e9698fe63
chore: Create test db from template (#9265)
## About the changes
Based on the first hypothesis from
https://github.com/Unleash/unleash/pull/9264, I decided to find an
alternative way of initializing the DB, mainly trying to run migrations
only once and removing that from the actual test run.

I found in [Postgres template
databases](https://www.postgresql.org/docs/current/manage-ag-templatedbs.html)
an interesting option in combination with jest global initializer.

### Changes on how we use DBs for testing

Previously, we were relying on a single DB with multiple schemas to
isolate tests, but each schema was empty and required migrations or
custom DB initialization scripts.

With this method, we don't need to use different schema names
(apparently there's no templating for schemas), and we can use new
databases. We can also eliminate custom initialization code.

### Legacy tests

This method also highlighted some wrong assumptions in existing tests.
One example is the existence of `default` environment, that because of
being deprecated is no longer available, but because tests are creating
the expected db state manually, they were not updated to match the
existing db state.

To keep tests running green, I've added a configuration to use the
`legacy` test setup (24 tests). By migrating these, we'll speed up
tests, but the code of these tests has to be modified, so I leave this
for another PR.

## Downsides
1. The template db initialization happens at the beginning of any test,
so local development may suffer from slower unit tests. As a workaround
we could define an environment variable to disable the db migration
2. Proliferation of test dbs. In ephemeral environments, this is not a
problem, but for local development we should clean up from time to time.
There's the possibility of cleaning up test dbs using the db name as a
pattern:
2ed2e1c274/scripts/jest-setup.ts (L13-L18)
but I didn't want to add this code yet. Opinions?

## Benefits
1. It allows us migrate only once and still get the benefits of having a
well known state for tests.
3. It removes some of the custom setup for tests (which in some cases
ends up testing something not realistic)
4. It removes the need of testing migrations:
https://github.com/Unleash/unleash/blob/main/src/test/e2e/migrator.e2e.test.ts
as migrations are run at the start
5. Forces us to keep old tests up to date when we modify our database
2025-02-11 13:01:43 +01:00
Ivar Conradi Østhus
ac1d8b9b70
fix: change log-level to info for filterExistingFlagNames 2025-02-09 22:50:04 +01:00
Ivar Conradi Østhus
d1b9ca00a0
fix: Killwitch to block usage-metrics from non-exiting flag-names (#9266)
Adds a killswitch called "filterExistingFlagNames". When enabled it will
filter out reported SDK metrics and remove all reported metrics for
names that does not match an exiting feature flag in Unleash.

This have proven critical in the rare case of an SDK that start sending
random flag-names back to unleash, and thus filling up the database. At
some point the database will start slowing down due to the noisy data.

In order to not resolve the flagNames all the time we have added a small
cache (10s) for feature flag names. This gives a small delay (10s) from
flag is created until we start allow metrics for the flag when
kill-switch is enabled. We should probably listen to the event-stream
and use that invalidate the cache when a flag is created.
2025-02-09 22:45:44 +01:00
Fredrik Strand Oseberg
af516537bd
fix: return if empty array (#9254)
Fixes an issue where segment-updated event would be added to cache even
though there were no correlated events. Tests needs to be added in
Enterprise.
2025-02-07 14:39:43 +01:00
Jaanus Sellin
43e418e40a
feat: emit delta updated event (#9250)
Start emitting delta updated event and make delta cache service
singleton.
2025-02-07 10:52:11 +02:00
Mateusz Kwasniewski
a11c965bec
feat: productivity report unsubscribed users (#9220) 2025-02-05 11:28:01 +01:00
Mateusz Kwasniewski
ebcbd7b637
feat: productivity report only for seen users (#9204) 2025-02-05 10:05:35 +01:00
Jaanus Sellin
640db0c057
chore: pull delta controller out of OSS (#9206)
We are moving delta controller to enterprise. This sets it up.
2025-02-04 14:37:39 +02:00
Jaanus Sellin
d8a47ce39d
fix: now hydration event is being returned if revision does not exist in cache (#9203)
Now when customer is coming with revision ID that does not exist in
cache, we return hydration.
2025-02-04 13:21:17 +02:00
Mateusz Kwasniewski
cbe0ac475c
feat: separate frontend backend counting (#9167) 2025-01-29 13:31:37 +01:00
Jaanus Sellin
d993b1963a
feat: segment implementation in delta (#9148)
This is implementing the segments events for delta API. Previous version
of delta API, we were just sending all of the segments. Now we will have
`segment-updated` and `segment-removed `events coming to SDK.
2025-01-28 13:38:11 +02:00
Thomas Heartman
ab3531dd51
fix: correct name order -> traffic usage data -> traffic data usage (#9156)
Correcting a slight oversight from when we created the new methods. This
brings the name in line with the other store methods.
2025-01-27 11:20:04 +01:00
Thomas Heartman
85ae6f3b95
chore(1-3293): add new query for daily data that uses date ranges (#9150)
Add new methods to the store behind data usage metrics that accept date
ranges instead of a single month. The old data collection methods
re-route to the new ones instead, so the new methods are tested
implicitly.

Also deprecates the new endpoint that's not in use anywhere except in an
unused service method in Enterprise yet.

## Discussion point:

Accepts from and to params as dates for type safety. You can send unparseable strings, but if you send a date object, you know it'll work.

Leaves the use of the old method in `src/lib/features/instance-stats/instance-stats-service.ts` to keep changes small.
2025-01-27 10:16:36 +01:00
Jaanus Sellin
280710f22a
feat: delta rework (#9133)
We are changing how the Delta API works, as discussed:

1. We have removed the `updated` and `removed` arrays and now keep
everything in the `events` array.
2. We decided to keep the hydration cache separate from the events array
internally. Since the hydration cache has a special structure and may
contain not just one feature but potentially 1,000 features, it behaved
differently, requiring a lot of special logic to handle it.
3. Implemented `nameprefix` filtering, which we were missing before.


Things still to implement:

1.  Segment hydration and updates to it.
2025-01-22 13:57:42 +02:00
Thomas Heartman
4bbff0c554
feat(1-3260): store support for data traffic from a range (#9127)
Add support for querying the traffic data usage store for the aggregated data for an arbitrary number of months back.

Adds a new `getTrafficDataForMonthRange(monthsBack: number)` method to the store that aggregates data on a monthly basis by status code and traffic group. Returns a new type with month data instead of day data.
2025-01-22 09:48:51 +01:00
Jaanus Sellin
013ddd348d
fix: remove deleted event from being update event (#9106)
The feature was getting into updated array due to feature-deleted event.
2025-01-16 11:52:07 +02:00
Jaanus Sellin
3a50750a33
fix: feature-dependencies-removed event should not be created always (#9100)
Currently, every time you archived feature, it created
feature-dependencies-removed event.

This PR adds a check to only create events for those features that have
dependency.
2025-01-15 11:55:01 +02:00
Jaanus Sellin
d6ec0f1776
fix: add removed back after deleting from updated (#9099) 2025-01-15 10:40:28 +02:00
Nuno Góis
4a000b3a40
chore: prioritize milestone strategies in sorting (#9081)
https://linear.app/unleash/issue/2-3100/sorting-issues-with-milestone-strategies-and-regular-strategies

This PR ensures that milestone strategies are always prioritized and
evaluated before regular strategies. It ensures that the order displayed
in the UI matches the internal evaluation order.
2025-01-14 15:25:33 +00:00
Mateusz Kwasniewski
1b4d1df84f
fix: force updated_at date to change (#9092) 2025-01-13 15:51:29 +01:00
Mateusz Kwasniewski
ce73190241
feat: unique connection gauge metric (#9089) 2025-01-13 14:06:09 +01:00
Jaanus Sellin
86bbe62abe
fix: remove archived features from delta (#9088)
Weird thing is that I could not reproduce it locally, but I have a
theory to fix our delta mismatch.

Revisions are added to the delta every second.

This means that in a single revision, you can disable an event, remove a
dependency, and archive it simultaneously. These actions are usually
performed together since archiving an event will inherently disable it,
remove its dependencies, and so on.

Currently, we observe these events happening within the same revision.
However, since we were checking `.updated` last, the event was always
removed from the `removedMap`.

Now, by checking `.removed` last, the archive action will properly
propagate to the revision.
2025-01-13 14:36:34 +02:00
Nuno Góis
b0b2836c67
test: fix timezone-related inconsistencies in tests (#9083)
https://linear.app/unleash/issue/2-3132/fix-tests-to-make-them-timezone-agnostic

Noticed our tests failed for me locally since I'm on a different
timezone (Lisbon time, GMT).
This fixes these timezone-related inconsistencies.

### Before


![image](https://github.com/user-attachments/assets/253bf76b-f269-4f1f-93bf-104bc9cec3d4)

![image](https://github.com/user-attachments/assets/abadacc2-f0a3-462b-b0d8-afb059e51697)

### After


![image](https://github.com/user-attachments/assets/8bdfcee2-8e08-4489-8723-189f1448e4a6)
2025-01-13 11:35:30 +00:00
Mateusz Kwasniewski
e559718581
feat: unique connection counting (#9074) 2025-01-13 11:56:57 +01:00
Jaanus Sellin
fda2252957
fix: etag support RFC 9110 standard (#9077)
ETag must be in double quotes based on standard. Fixing it.

```
If-None-Match: "<etag_value>"
2025-01-10 15:39:00 +02:00
David Leek
0dbecd78a0
chore: featureToggleService use optionallyDisableFeature instead of duplicating logic (#9073) 2025-01-09 11:29:00 +01:00
Tymoteusz Czech
dc4a760172
feat: read logs and update cors maintenance root-role permissions (#8996)
Additional granular permissions related to instance-level access.

- CORS settings
- Reading logs (both instance logs and login history)

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2025-01-08 10:03:40 +01:00
Fredrik Strand Oseberg
2363d99fe7
feat: add migration (#8891) 2025-01-06 14:38:56 +01:00
Jaanus Sellin
8bf1b783e9
fix: delta do not return archived as changed (#9062)
Our delta API was returning archived feature as updated. Now making sure
we do not put `archived-feature `event into `updated` event array.
Also stop returning removed as complex object.
2025-01-06 14:48:30 +02:00
Mateusz Kwasniewski
13fb7c4a63
feat: making context service transactional (#9063) 2025-01-06 13:38:09 +01:00
Mateusz Kwasniewski
c56200e030
feat: ability to delete single legal values (#9058)
Co-authored-by: Thomas Heartman <thomas@getunleash.io>
2025-01-03 15:38:10 +01:00
Mateusz Kwasniewski
20fda186b5
feat: ability to upsert single legal values (#9056) 2025-01-03 14:18:36 +01:00
Mateusz Kwasniewski
4a52247bd9
chore: export context service factory (#9053) 2025-01-03 10:41:34 +01:00
Mateusz Kwasniewski
eb0b7d5e4f
refactor: Context service feature oriented (#9052) 2025-01-03 10:23:47 +01:00
Jaanus Sellin
9003a7eb91
fix: remove archived from delta (#9051) 2025-01-03 09:44:25 +02:00
Jaanus Sellin
54d6bd5b86
feat: log warning if there is diff between client/features and delta api (#9047)
Log out the diff and warn if there is gap between old logic and new
delta.
2025-01-02 12:59:33 +02:00
Fredrik Strand Oseberg
71eb6b1511
feat: delta api e2e test (#9003)
WIP PR for delta-api tests.

---------

Co-authored-by: sjaanus <sellinjaanus@gmail.com>
2024-12-30 14:16:41 +02:00
Christopher Kolstad
66907bfd8e
feat: only display oss included projects/environments when install is oss (#8896)
Trying again, now with a tested function for resolvingIsOss.

Still want to test this on a pro instance in sandbox before we deploy
this to our customers to avoid what happened Friday.

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2024-12-19 14:33:54 +01:00
Jaanus Sellin
b701fec75d
feat: store memory footprints to grafana (#9001)
When there is new revision, we will start storing memory footprint for
old client-api and the new delta-api.
We will be sending it as prometheus metrics.

The memory size will only be recalculated if revision changes, which
does not happen very often.
2024-12-19 13:15:30 +02:00
Melinda Fekete
c8300fed00
Simplify Unleash docs updates (#8925) 2024-12-17 14:36:16 +01:00
Jaanus Sellin
138ba35d7a
feat: segment delta (#8990)
Now the delta endpoint also always returns all the segments.
2024-12-17 10:56:09 +02:00
Jaanus Sellin
3696420c51
chore: rebrand cache to delta (#8986)
The cache is too generic, we will be using delta from now on.
2024-12-16 12:51:03 +02:00
Fredrik Strand Oseberg
39ca516823
feat: add prom metrics (#8980)
This PR adds prometheus metrics that allows us to see whether or not
tags and namePrefix is used at all in our cloud offering.
2024-12-16 10:48:33 +01:00