From f41301036b36ab4badd8832b6f4f7ef1b81bbfcf Mon Sep 17 00:00:00 2001 From: Jan Eitzinger Date: Fri, 23 Jan 2026 07:49:47 +0100 Subject: [PATCH] Move metricstore from internal to pkg --- CLAUDE.md | 4 ++-- README.md | 4 ++-- cmd/cc-backend/main.go | 2 +- cmd/cc-backend/server.go | 2 +- internal/api/api_test.go | 2 +- internal/api/metricstore.go | 2 +- internal/api/nats_test.go | 2 +- internal/metricdispatch/dataLoader.go | 2 +- internal/taskmanager/updateFootprintService.go | 2 +- {internal => pkg}/metricstore/api.go | 0 {internal => pkg}/metricstore/archive.go | 0 {internal => pkg}/metricstore/avroCheckpoint.go | 0 {internal => pkg}/metricstore/avroHelper.go | 0 {internal => pkg}/metricstore/avroStruct.go | 0 {internal => pkg}/metricstore/buffer.go | 0 {internal => pkg}/metricstore/checkpoint.go | 0 {internal => pkg}/metricstore/config.go | 0 {internal => pkg}/metricstore/configSchema.go | 0 {internal => pkg}/metricstore/debug.go | 0 {internal => pkg}/metricstore/healthcheck.go | 0 {internal => pkg}/metricstore/level.go | 0 {internal => pkg}/metricstore/lineprotocol.go | 0 {internal => pkg}/metricstore/metricstore.go | 0 {internal => pkg}/metricstore/metricstore_test.go | 0 {internal => pkg}/metricstore/query.go | 0 {internal => pkg}/metricstore/stats.go | 0 26 files changed, 11 insertions(+), 11 deletions(-) rename {internal => pkg}/metricstore/api.go (100%) rename {internal => pkg}/metricstore/archive.go (100%) rename {internal => pkg}/metricstore/avroCheckpoint.go (100%) rename {internal => pkg}/metricstore/avroHelper.go (100%) rename {internal => pkg}/metricstore/avroStruct.go (100%) rename {internal => pkg}/metricstore/buffer.go (100%) rename {internal => pkg}/metricstore/checkpoint.go (100%) rename {internal => pkg}/metricstore/config.go (100%) rename {internal => pkg}/metricstore/configSchema.go (100%) rename {internal => pkg}/metricstore/debug.go (100%) rename {internal => pkg}/metricstore/healthcheck.go (100%) rename {internal => pkg}/metricstore/level.go (100%) rename {internal => pkg}/metricstore/lineprotocol.go (100%) rename {internal => pkg}/metricstore/metricstore.go (100%) rename {internal => pkg}/metricstore/metricstore_test.go (100%) rename {internal => pkg}/metricstore/query.go (100%) rename {internal => pkg}/metricstore/stats.go (100%) diff --git a/CLAUDE.md b/CLAUDE.md index f30c3923..406f11ba 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -96,7 +96,7 @@ The backend follows a layered architecture with clear separation of concerns: - **internal/auth**: Authentication layer - Supports local accounts, LDAP, OIDC, and JWT tokens - Implements rate limiting for login attempts -- **internal/metricstore**: Metric store with data loading API +- **pkg/metricstore**: Metric store with data loading API - In-memory metric storage with checkpointing - Query API for loading job metric data - **internal/archiver**: Job archiving to file-based archive @@ -209,7 +209,7 @@ applied automatically on startup. Version tracking in `version` table. ### Adding a new metric data backend -1. Implement metric loading functions in `internal/metricstore/query.go` +1. Implement metric loading functions in `pkg/metricstore/query.go` 2. Add cluster configuration to metric store initialization 3. Update config.json schema documentation diff --git a/README.md b/README.md index 00bcb119..475401f4 100644 --- a/README.md +++ b/README.md @@ -163,8 +163,6 @@ ln -s ./var/job-archive GraphQL schema and resolvers - [`importer`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/importer) Job data import and database initialization - - [`metricstore`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/metricstore) - In-memory metric data store with checkpointing and metric loading - [`metricdispatch`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/metricdispatch) Dispatches metric data loading to appropriate backends - [`repository`](https://github.com/ClusterCockpit/cc-backend/tree/master/internal/repository) @@ -179,6 +177,8 @@ ln -s ./var/job-archive contains Go packages that can be used by other projects. - [`archive`](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/archive) Job archive backend implementations (filesystem, S3) + - [`metricstore`](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/metricstore) + In-memory metric data store with checkpointing and metric loading - [`nats`](https://github.com/ClusterCockpit/cc-backend/tree/master/pkg/nats) NATS client and message handling - [`tools/`](https://github.com/ClusterCockpit/cc-backend/tree/master/tools) diff --git a/cmd/cc-backend/main.go b/cmd/cc-backend/main.go index 114ae818..e6753902 100644 --- a/cmd/cc-backend/main.go +++ b/cmd/cc-backend/main.go @@ -24,11 +24,11 @@ import ( "github.com/ClusterCockpit/cc-backend/internal/auth" "github.com/ClusterCockpit/cc-backend/internal/config" "github.com/ClusterCockpit/cc-backend/internal/importer" - "github.com/ClusterCockpit/cc-backend/internal/metricstore" "github.com/ClusterCockpit/cc-backend/internal/repository" "github.com/ClusterCockpit/cc-backend/internal/tagger" "github.com/ClusterCockpit/cc-backend/internal/taskmanager" "github.com/ClusterCockpit/cc-backend/pkg/archive" + "github.com/ClusterCockpit/cc-backend/pkg/metricstore" "github.com/ClusterCockpit/cc-backend/pkg/nats" "github.com/ClusterCockpit/cc-backend/web" ccconf "github.com/ClusterCockpit/cc-lib/v2/ccConfig" diff --git a/cmd/cc-backend/server.go b/cmd/cc-backend/server.go index 8d700823..5473271c 100644 --- a/cmd/cc-backend/server.go +++ b/cmd/cc-backend/server.go @@ -29,8 +29,8 @@ import ( "github.com/ClusterCockpit/cc-backend/internal/config" "github.com/ClusterCockpit/cc-backend/internal/graph" "github.com/ClusterCockpit/cc-backend/internal/graph/generated" - "github.com/ClusterCockpit/cc-backend/internal/metricstore" "github.com/ClusterCockpit/cc-backend/internal/routerConfig" + "github.com/ClusterCockpit/cc-backend/pkg/metricstore" "github.com/ClusterCockpit/cc-backend/pkg/nats" "github.com/ClusterCockpit/cc-backend/web" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" diff --git a/internal/api/api_test.go b/internal/api/api_test.go index 9d6cdea4..7153cd1d 100644 --- a/internal/api/api_test.go +++ b/internal/api/api_test.go @@ -24,9 +24,9 @@ import ( "github.com/ClusterCockpit/cc-backend/internal/config" "github.com/ClusterCockpit/cc-backend/internal/graph" "github.com/ClusterCockpit/cc-backend/internal/metricdispatch" - "github.com/ClusterCockpit/cc-backend/internal/metricstore" "github.com/ClusterCockpit/cc-backend/internal/repository" "github.com/ClusterCockpit/cc-backend/pkg/archive" + "github.com/ClusterCockpit/cc-backend/pkg/metricstore" ccconf "github.com/ClusterCockpit/cc-lib/v2/ccConfig" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" "github.com/ClusterCockpit/cc-lib/v2/schema" diff --git a/internal/api/metricstore.go b/internal/api/metricstore.go index d4ab1dfe..d36df4bf 100644 --- a/internal/api/metricstore.go +++ b/internal/api/metricstore.go @@ -15,7 +15,7 @@ import ( "strconv" "strings" - "github.com/ClusterCockpit/cc-backend/internal/metricstore" + "github.com/ClusterCockpit/cc-backend/pkg/metricstore" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" "github.com/influxdata/line-protocol/v2/lineprotocol" diff --git a/internal/api/nats_test.go b/internal/api/nats_test.go index c1523a19..b1d2a624 100644 --- a/internal/api/nats_test.go +++ b/internal/api/nats_test.go @@ -18,9 +18,9 @@ import ( "github.com/ClusterCockpit/cc-backend/internal/auth" "github.com/ClusterCockpit/cc-backend/internal/config" "github.com/ClusterCockpit/cc-backend/internal/graph" - "github.com/ClusterCockpit/cc-backend/internal/metricstore" "github.com/ClusterCockpit/cc-backend/internal/repository" "github.com/ClusterCockpit/cc-backend/pkg/archive" + "github.com/ClusterCockpit/cc-backend/pkg/metricstore" ccconf "github.com/ClusterCockpit/cc-lib/v2/ccConfig" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" lp "github.com/ClusterCockpit/cc-lib/v2/ccMessage" diff --git a/internal/metricdispatch/dataLoader.go b/internal/metricdispatch/dataLoader.go index fc02f7b0..91f5ecde 100644 --- a/internal/metricdispatch/dataLoader.go +++ b/internal/metricdispatch/dataLoader.go @@ -43,8 +43,8 @@ import ( "math" "time" - "github.com/ClusterCockpit/cc-backend/internal/metricstore" "github.com/ClusterCockpit/cc-backend/pkg/archive" + "github.com/ClusterCockpit/cc-backend/pkg/metricstore" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" "github.com/ClusterCockpit/cc-lib/v2/lrucache" "github.com/ClusterCockpit/cc-lib/v2/resampler" diff --git a/internal/taskmanager/updateFootprintService.go b/internal/taskmanager/updateFootprintService.go index c8f81e37..fad278e2 100644 --- a/internal/taskmanager/updateFootprintService.go +++ b/internal/taskmanager/updateFootprintService.go @@ -10,8 +10,8 @@ import ( "math" "time" - "github.com/ClusterCockpit/cc-backend/internal/metricstore" "github.com/ClusterCockpit/cc-backend/pkg/archive" + "github.com/ClusterCockpit/cc-backend/pkg/metricstore" cclog "github.com/ClusterCockpit/cc-lib/v2/ccLogger" "github.com/ClusterCockpit/cc-lib/v2/schema" sq "github.com/Masterminds/squirrel" diff --git a/internal/metricstore/api.go b/pkg/metricstore/api.go similarity index 100% rename from internal/metricstore/api.go rename to pkg/metricstore/api.go diff --git a/internal/metricstore/archive.go b/pkg/metricstore/archive.go similarity index 100% rename from internal/metricstore/archive.go rename to pkg/metricstore/archive.go diff --git a/internal/metricstore/avroCheckpoint.go b/pkg/metricstore/avroCheckpoint.go similarity index 100% rename from internal/metricstore/avroCheckpoint.go rename to pkg/metricstore/avroCheckpoint.go diff --git a/internal/metricstore/avroHelper.go b/pkg/metricstore/avroHelper.go similarity index 100% rename from internal/metricstore/avroHelper.go rename to pkg/metricstore/avroHelper.go diff --git a/internal/metricstore/avroStruct.go b/pkg/metricstore/avroStruct.go similarity index 100% rename from internal/metricstore/avroStruct.go rename to pkg/metricstore/avroStruct.go diff --git a/internal/metricstore/buffer.go b/pkg/metricstore/buffer.go similarity index 100% rename from internal/metricstore/buffer.go rename to pkg/metricstore/buffer.go diff --git a/internal/metricstore/checkpoint.go b/pkg/metricstore/checkpoint.go similarity index 100% rename from internal/metricstore/checkpoint.go rename to pkg/metricstore/checkpoint.go diff --git a/internal/metricstore/config.go b/pkg/metricstore/config.go similarity index 100% rename from internal/metricstore/config.go rename to pkg/metricstore/config.go diff --git a/internal/metricstore/configSchema.go b/pkg/metricstore/configSchema.go similarity index 100% rename from internal/metricstore/configSchema.go rename to pkg/metricstore/configSchema.go diff --git a/internal/metricstore/debug.go b/pkg/metricstore/debug.go similarity index 100% rename from internal/metricstore/debug.go rename to pkg/metricstore/debug.go diff --git a/internal/metricstore/healthcheck.go b/pkg/metricstore/healthcheck.go similarity index 100% rename from internal/metricstore/healthcheck.go rename to pkg/metricstore/healthcheck.go diff --git a/internal/metricstore/level.go b/pkg/metricstore/level.go similarity index 100% rename from internal/metricstore/level.go rename to pkg/metricstore/level.go diff --git a/internal/metricstore/lineprotocol.go b/pkg/metricstore/lineprotocol.go similarity index 100% rename from internal/metricstore/lineprotocol.go rename to pkg/metricstore/lineprotocol.go diff --git a/internal/metricstore/metricstore.go b/pkg/metricstore/metricstore.go similarity index 100% rename from internal/metricstore/metricstore.go rename to pkg/metricstore/metricstore.go diff --git a/internal/metricstore/metricstore_test.go b/pkg/metricstore/metricstore_test.go similarity index 100% rename from internal/metricstore/metricstore_test.go rename to pkg/metricstore/metricstore_test.go diff --git a/internal/metricstore/query.go b/pkg/metricstore/query.go similarity index 100% rename from internal/metricstore/query.go rename to pkg/metricstore/query.go diff --git a/internal/metricstore/stats.go b/pkg/metricstore/stats.go similarity index 100% rename from internal/metricstore/stats.go rename to pkg/metricstore/stats.go