prometheus/web/api/testhelpers
Arve Knudsen f727c5b932 tsdb: remove metric metadata persistence, refactor to generic kind framework
Remove metric metadata persistence (keeping only OTel resource/scope
features) and refactor the native metadata subsystem from hardcoded
resource/scope handling to a generic kind framework.

The kind framework uses Go generics for type-safe hot paths
(Versioned[V], MemStore[V], KindOps[V]) and a KindDescriptor interface
for runtime dispatch at serialization boundaries (WAL, Parquet, head
commit/replay).

Key changes:
- Remove metric metadata persistence feature and related API endpoints
- Add Versioned[V] generic container and MemStore[V] generic store
- Add KindDescriptor interface and global kind registry
- Implement resourceKindDescriptor and scopeKindDescriptor
- Replace memSeries resource/scope fields with kindMeta []kindMetaEntry
- Use kind-aware iteration in compaction and DB.SeriesMetadata()
- Update WAL replay to use CommitToSeries via kind registry
- Wire WAL encode/decode functions via init() to break import cycle
- Fix silent data corruption when RefResolver fails on read or write
- Provide type aliases for backward compatibility

Adding a new metadata kind now requires implementing KindOps +
KindDescriptor and registering in init(), instead of modifying 12+ files.

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2026-03-20 17:56:16 +01:00
..
api.go tsdb: remove metric metadata persistence, refactor to generic kind framework 2026-03-20 17:56:16 +01:00
assertions.go OpenAPI: Add support for stats 2026-01-30 14:21:03 +01:00
fixtures.go Refactor parse.go into an instance-based Parser interface 2026-02-11 11:21:49 +01:00
mocks.go tsdb: remove metric metadata persistence, refactor to generic kind framework 2026-03-20 17:56:16 +01:00
openapi.go Add OpenAPI 3.2 specification generation for Prometheus HTTP API (#17825) 2026-01-29 13:36:13 +01:00
request.go chore: fix httpNoBody issues from gocritic 2026-03-02 20:06:30 +01:00