unleash-server 7.2.2 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -10
- package/dist/lib/create-config.d.ts.map +1 -1
- package/dist/lib/create-config.js +8 -0
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/db/client-applications-store.d.ts.map +1 -1
- package/dist/lib/db/client-applications-store.js +32 -2
- package/dist/lib/db/client-applications-store.js.map +1 -1
- package/dist/lib/db/feature-environment-store.d.ts +1 -1
- package/dist/lib/db/feature-environment-store.d.ts.map +1 -1
- package/dist/lib/db/feature-environment-store.js +42 -35
- package/dist/lib/db/feature-environment-store.js.map +1 -1
- package/dist/lib/db/index.d.ts.map +1 -1
- package/dist/lib/db/index.js +2 -0
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/error/unleash-error.d.ts.map +1 -1
- package/dist/lib/error/unleash-error.js +2 -2
- package/dist/lib/error/unleash-error.js.map +1 -1
- package/dist/lib/events/index.d.ts +8 -1
- package/dist/lib/events/index.d.ts.map +1 -1
- package/dist/lib/events/index.js +14 -0
- package/dist/lib/events/index.js.map +1 -1
- package/dist/lib/features/api-tokens/createApiTokenService.d.ts +2 -0
- package/dist/lib/features/api-tokens/createApiTokenService.d.ts.map +1 -1
- package/dist/lib/features/api-tokens/createApiTokenService.js +6 -2
- package/dist/lib/features/api-tokens/createApiTokenService.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js +2 -9
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js.map +1 -1
- package/dist/lib/features/dependent-features/dependent.features.e2e.test.js +28 -29
- package/dist/lib/features/dependent-features/dependent.features.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-links/feature-link-service.js +1 -1
- package/dist/lib/features/feature-links/feature-link-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/createFeatureToggleService.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js +14 -4
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.js +2 -1
- package/dist/lib/features/feature-toggle/fakes/fake-feature-strategies-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts +9 -3
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.js +23 -7
- package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js +3 -3
- package/dist/lib/features/feature-toggle/feature-toggle-strategies-store.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggles.e2e.test.js +34 -35
- package/dist/lib/features/feature-toggle/tests/feature-toggles.e2e.test.js.map +1 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/createInstanceStatsService.js +5 -2
- package/dist/lib/features/instance-stats/createInstanceStatsService.js.map +1 -1
- package/dist/lib/features/instance-stats/getEdgeInstances.d.ts +6 -0
- package/dist/lib/features/instance-stats/getEdgeInstances.d.ts.map +1 -0
- package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.d.ts +2 -0
- package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.d.ts.map +1 -0
- package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.js +137 -0
- package/dist/lib/features/instance-stats/getEdgeInstances.e2e.test.js.map +1 -0
- package/dist/lib/features/instance-stats/getEdgeInstances.js +36 -0
- package/dist/lib/features/instance-stats/getEdgeInstances.js.map +1 -0
- package/dist/lib/features/instance-stats/instance-stats-service.d.ts +4 -1
- package/dist/lib/features/instance-stats/instance-stats-service.d.ts.map +1 -1
- package/dist/lib/features/instance-stats/instance-stats-service.js +8 -3
- package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -1
- package/dist/lib/features/instance-stats/instance-stats-service.test.js +2 -1
- package/dist/lib/features/instance-stats/instance-stats-service.test.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.js +1 -1
- package/dist/lib/features/metrics/client-metrics/metrics-service-v2.js.map +1 -1
- package/dist/lib/features/metrics/impact/batch-histogram.d.ts +36 -0
- package/dist/lib/features/metrics/impact/batch-histogram.d.ts.map +1 -0
- package/dist/lib/features/metrics/impact/batch-histogram.js +87 -0
- package/dist/lib/features/metrics/impact/batch-histogram.js.map +1 -0
- package/dist/lib/features/metrics/impact/batch-histogram.test.d.ts +2 -0
- package/dist/lib/features/metrics/impact/batch-histogram.test.d.ts.map +1 -0
- package/dist/lib/features/metrics/impact/batch-histogram.test.js +137 -0
- package/dist/lib/features/metrics/impact/batch-histogram.test.js.map +1 -0
- package/dist/lib/features/metrics/impact/define-impact-metrics.d.ts +2 -0
- package/dist/lib/features/metrics/impact/define-impact-metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/impact/define-impact-metrics.js +4 -0
- package/dist/lib/features/metrics/impact/define-impact-metrics.js.map +1 -1
- package/dist/lib/features/metrics/impact/impact-metrics.e2e.test.js +49 -0
- package/dist/lib/features/metrics/impact/impact-metrics.e2e.test.js.map +1 -1
- package/dist/lib/features/metrics/impact/metrics-translator.d.ts +22 -4
- package/dist/lib/features/metrics/impact/metrics-translator.d.ts.map +1 -1
- package/dist/lib/features/metrics/impact/metrics-translator.js +58 -2
- package/dist/lib/features/metrics/impact/metrics-translator.js.map +1 -1
- package/dist/lib/features/metrics/impact/metrics-translator.test.js +83 -0
- package/dist/lib/features/metrics/impact/metrics-translator.test.js.map +1 -1
- package/dist/lib/features/metrics/shared/schema.d.ts +1 -0
- package/dist/lib/features/metrics/shared/schema.d.ts.map +1 -1
- package/dist/lib/features/metrics/shared/schema.js +27 -1
- package/dist/lib/features/metrics/shared/schema.js.map +1 -1
- package/dist/lib/features/project/createProjectService.d.ts.map +1 -1
- package/dist/lib/features/project/createProjectService.js +7 -5
- package/dist/lib/features/project/createProjectService.js.map +1 -1
- package/dist/lib/features/project/project-service.d.ts +3 -2
- package/dist/lib/features/project/project-service.d.ts.map +1 -1
- package/dist/lib/features/project/project-service.js +4 -3
- package/dist/lib/features/project/project-service.js.map +1 -1
- package/dist/lib/features/release-plans/release-plan-milestone-store.d.ts +2 -2
- package/dist/lib/features/release-plans/release-plan-milestone-store.d.ts.map +1 -1
- package/dist/lib/features/release-plans/release-plan-milestone-store.js +3 -0
- package/dist/lib/features/release-plans/release-plan-milestone-store.js.map +1 -1
- package/dist/lib/features/release-plans/release-plan-milestone.d.ts +6 -0
- package/dist/lib/features/release-plans/release-plan-milestone.d.ts.map +1 -1
- package/dist/lib/features/release-plans/release-plan-read-model-type.d.ts +5 -0
- package/dist/lib/features/release-plans/release-plan-read-model-type.d.ts.map +1 -0
- package/dist/lib/features/release-plans/release-plan-read-model-type.js +2 -0
- package/dist/lib/features/release-plans/release-plan-read-model-type.js.map +1 -0
- package/dist/lib/features/release-plans/release-plan-read-model.d.ts +11 -0
- package/dist/lib/features/release-plans/release-plan-read-model.d.ts.map +1 -0
- package/dist/lib/features/release-plans/release-plan-read-model.js +133 -0
- package/dist/lib/features/release-plans/release-plan-read-model.js.map +1 -0
- package/dist/lib/features/release-plans/release-plan-read-model.test.d.ts +2 -0
- package/dist/lib/features/release-plans/release-plan-read-model.test.d.ts.map +1 -0
- package/dist/lib/features/release-plans/release-plan-read-model.test.js +165 -0
- package/dist/lib/features/release-plans/release-plan-read-model.test.js.map +1 -0
- package/dist/lib/features/release-plans/release-plan-store.d.ts +1 -1
- package/dist/lib/features/release-plans/release-plan-store.d.ts.map +1 -1
- package/dist/lib/features/release-plans/release-plan-store.js +16 -15
- package/dist/lib/features/release-plans/release-plan-store.js.map +1 -1
- package/dist/lib/features/release-plans/release-plan-template.d.ts +2 -2
- package/dist/lib/features/release-plans/release-plan-template.d.ts.map +1 -1
- package/dist/lib/features/release-plans/release-plan.d.ts +1 -1
- package/dist/lib/features/release-plans/release-plan.d.ts.map +1 -1
- package/dist/lib/features/resource-limits/resource-limits-service.d.ts +8 -0
- package/dist/lib/features/resource-limits/resource-limits-service.d.ts.map +1 -0
- package/dist/lib/features/resource-limits/resource-limits-service.js +9 -0
- package/dist/lib/features/resource-limits/resource-limits-service.js.map +1 -0
- package/dist/lib/features/scheduler/schedule-services.js +1 -1
- package/dist/lib/features/scheduler/schedule-services.js.map +1 -1
- package/dist/lib/features/segment/createSegmentService.d.ts.map +1 -1
- package/dist/lib/features/segment/createSegmentService.js +5 -3
- package/dist/lib/features/segment/createSegmentService.js.map +1 -1
- package/dist/lib/features/segment/segment-service.d.ts +3 -2
- package/dist/lib/features/segment/segment-service.d.ts.map +1 -1
- package/dist/lib/features/segment/segment-service.js +3 -3
- package/dist/lib/features/segment/segment-service.js.map +1 -1
- package/dist/lib/features/users/user-store.d.ts +2 -0
- package/dist/lib/features/users/user-store.d.ts.map +1 -1
- package/dist/lib/features/users/user-store.js +3 -2
- package/dist/lib/features/users/user-store.js.map +1 -1
- package/dist/lib/features/users/user-updates-read-model.d.ts +27 -0
- package/dist/lib/features/users/user-updates-read-model.d.ts.map +1 -0
- package/dist/lib/features/users/user-updates-read-model.js +68 -0
- package/dist/lib/features/users/user-updates-read-model.js.map +1 -0
- package/dist/lib/features/users/user-updates-read-model.test.d.ts +2 -0
- package/dist/lib/features/users/user-updates-read-model.test.d.ts.map +1 -0
- package/dist/lib/features/users/user-updates-read-model.test.js +50 -0
- package/dist/lib/features/users/user-updates-read-model.test.js.map +1 -0
- package/dist/lib/metrics.d.ts.map +1 -1
- package/dist/lib/metrics.js +8 -6
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +2 -1
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/middleware/origin-middleware.d.ts +1 -1
- package/dist/lib/middleware/origin-middleware.d.ts.map +1 -1
- package/dist/lib/middleware/origin-middleware.js +2 -9
- package/dist/lib/middleware/origin-middleware.js.map +1 -1
- package/dist/lib/middleware/origin-middleware.test.js +0 -16
- package/dist/lib/middleware/origin-middleware.test.js.map +1 -1
- package/dist/lib/openapi/spec/application-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/application-schema.js +1 -1
- package/dist/lib/openapi/spec/application-schema.js.map +1 -1
- package/dist/lib/openapi/spec/applications-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/bulk-metrics-schema.d.ts +126 -39
- package/dist/lib/openapi/spec/bulk-metrics-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/create-application-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/create-application-schema.js +1 -1
- package/dist/lib/openapi/spec/create-application-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-strategy-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/create-strategy-schema.js +2 -2
- package/dist/lib/openapi/spec/create-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/event-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/event-search-response-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/events-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/export-result-schema.d.ts +12304 -1250
- package/dist/lib/openapi/spec/export-result-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/export-result-schema.js +12 -0
- package/dist/lib/openapi/spec/export-result-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts +2767 -0
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-environment-schema.js +19 -0
- package/dist/lib/openapi/spec/feature-environment-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-events-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/feature-schema.d.ts +5808 -281
- package/dist/lib/openapi/spec/feature-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-schema.js +12 -0
- package/dist/lib/openapi/spec/feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +5613 -79
- package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-search-environment-schema.js +12 -0
- package/dist/lib/openapi/spec/feature-search-environment-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts +2 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.js +2 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.js.map +1 -1
- package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +5613 -79
- package/dist/lib/openapi/spec/feature-search-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/health-overview-schema.d.ts +11432 -605
- package/dist/lib/openapi/spec/health-overview-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/health-overview-schema.js +8 -0
- package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
- package/dist/lib/openapi/spec/health-report-schema.d.ts +11432 -605
- package/dist/lib/openapi/spec/health-report-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/impact-metrics-schema.d.ts +126 -39
- package/dist/lib/openapi/spec/impact-metrics-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/impact-metrics-schema.js +128 -39
- package/dist/lib/openapi/spec/impact-metrics-schema.js.map +1 -1
- package/dist/lib/openapi/spec/import-toggles-schema.d.ts +24822 -2714
- package/dist/lib/openapi/spec/import-toggles-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/import-toggles-schema.js +12 -0
- package/dist/lib/openapi/spec/import-toggles-schema.js.map +1 -1
- package/dist/lib/openapi/spec/index.d.ts +7 -0
- package/dist/lib/openapi/spec/index.d.ts.map +1 -1
- package/dist/lib/openapi/spec/index.js +7 -0
- package/dist/lib/openapi/spec/index.js.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +13 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js +13 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
- package/dist/lib/openapi/spec/integration-event-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/integration-events-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/me-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/patch-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/patch-schema.js +1 -1
- package/dist/lib/openapi/spec/patch-schema.js.map +1 -1
- package/dist/lib/openapi/spec/patches-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/permission-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/permission-schema.js +1 -1
- package/dist/lib/openapi/spec/permission-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts +5808 -281
- package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/project-overview-schema.d.ts +11641 -814
- package/dist/lib/openapi/spec/project-overview-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/project-overview-schema.js +8 -0
- package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
- package/dist/lib/openapi/spec/ready-check-schema.d.ts +19 -0
- package/dist/lib/openapi/spec/ready-check-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/ready-check-schema.js +17 -0
- package/dist/lib/openapi/spec/ready-check-schema.js.map +1 -0
- package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +716 -0
- package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/release-plan-milestone-schema.js +72 -0
- package/dist/lib/openapi/spec/release-plan-milestone-schema.js.map +1 -0
- package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +361 -0
- package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.js +40 -0
- package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.js.map +1 -0
- package/dist/lib/openapi/spec/release-plan-schema.d.ts +1449 -0
- package/dist/lib/openapi/spec/release-plan-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/release-plan-schema.js +74 -0
- package/dist/lib/openapi/spec/release-plan-schema.js.map +1 -0
- package/dist/lib/openapi/spec/release-plan-template-id-schema.d.ts +19 -0
- package/dist/lib/openapi/spec/release-plan-template-id-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/release-plan-template-id-schema.js +17 -0
- package/dist/lib/openapi/spec/release-plan-template-id-schema.js.map +1 -0
- package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +1434 -0
- package/dist/lib/openapi/spec/release-plan-template-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/release-plan-template-schema.js +79 -0
- package/dist/lib/openapi/spec/release-plan-template-schema.js.map +1 -0
- package/dist/lib/openapi/spec/search-features-schema.d.ts +11793 -725
- package/dist/lib/openapi/spec/search-features-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/transition-condition-schema.d.ts +19 -0
- package/dist/lib/openapi/spec/transition-condition-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/transition-condition-schema.js +17 -0
- package/dist/lib/openapi/spec/transition-condition-schema.js.map +1 -0
- package/dist/lib/openapi/spec/update-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/update-strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/update-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/util/openapi-tags.d.ts +2 -2
- package/dist/lib/openapi/util/openapi-tags.js +1 -1
- package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
- package/dist/lib/routes/admin-api/index.js +2 -2
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.js +5 -0
- package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/strategy.js +1 -1
- package/dist/lib/routes/admin-api/strategy.js.map +1 -1
- package/dist/lib/routes/admin-api/strategy.test.js +25 -1
- package/dist/lib/routes/admin-api/strategy.test.js.map +1 -1
- package/dist/lib/routes/backstage.test.js +17 -5
- package/dist/lib/routes/backstage.test.js.map +1 -1
- package/dist/lib/routes/health-check.test.js +2 -2
- package/dist/lib/routes/health-check.test.js.map +1 -1
- package/dist/lib/routes/index.d.ts.map +1 -1
- package/dist/lib/routes/index.js +2 -0
- package/dist/lib/routes/index.js.map +1 -1
- package/dist/lib/routes/ready-check.d.ts +14 -0
- package/dist/lib/routes/ready-check.d.ts.map +1 -0
- package/dist/lib/routes/ready-check.js +86 -0
- package/dist/lib/routes/ready-check.js.map +1 -0
- package/dist/lib/routes/util.d.ts.map +1 -1
- package/dist/lib/routes/util.js +19 -1
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/server-impl.d.ts +9 -3
- package/dist/lib/server-impl.d.ts.map +1 -1
- package/dist/lib/server-impl.js +6 -1
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/api-token-service.d.ts +3 -2
- package/dist/lib/services/api-token-service.d.ts.map +1 -1
- package/dist/lib/services/api-token-service.js +3 -3
- package/dist/lib/services/api-token-service.js.map +1 -1
- package/dist/lib/services/index.d.ts +5 -1
- package/dist/lib/services/index.d.ts.map +1 -1
- package/dist/lib/services/index.js +16 -2
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/strategy-service.d.ts +4 -1
- package/dist/lib/services/strategy-service.d.ts.map +1 -1
- package/dist/lib/services/strategy-service.js +15 -2
- package/dist/lib/services/strategy-service.js.map +1 -1
- package/dist/lib/services/user-service.d.ts.map +1 -1
- package/dist/lib/services/user-service.js +19 -3
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/services/user-splash-service.d.ts.map +1 -1
- package/dist/lib/services/user-splash-service.js +7 -1
- package/dist/lib/services/user-splash-service.js.map +1 -1
- package/dist/lib/services/version-service.d.ts +2 -0
- package/dist/lib/services/version-service.d.ts.map +1 -1
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/services/version-service.test.js +1 -0
- package/dist/lib/services/version-service.test.js.map +1 -1
- package/dist/lib/types/events.d.ts +28 -0
- package/dist/lib/types/events.d.ts.map +1 -1
- package/dist/lib/types/events.js +20 -1
- package/dist/lib/types/events.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +3 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +7 -8
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/option.d.ts +8 -0
- package/dist/lib/types/option.d.ts.map +1 -1
- package/dist/lib/types/stores/feature-environment-store.d.ts +1 -1
- package/dist/lib/types/stores/feature-environment-store.d.ts.map +1 -1
- package/dist/lib/types/stores.d.ts +2 -0
- package/dist/lib/types/stores.d.ts.map +1 -1
- package/dist/lib/types/stores.js.map +1 -1
- package/dist/lib/ui-config/ui-config-controller.d.ts +18 -0
- package/dist/lib/ui-config/ui-config-controller.d.ts.map +1 -0
- package/dist/lib/ui-config/ui-config-controller.js +62 -0
- package/dist/lib/ui-config/ui-config-controller.js.map +1 -0
- package/dist/lib/ui-config/ui-config-service.d.ts +18 -0
- package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -0
- package/dist/lib/ui-config/ui-config-service.js +64 -0
- package/dist/lib/ui-config/ui-config-service.js.map +1 -0
- package/dist/lib/ui-config/ui-config.test.d.ts +2 -0
- package/dist/lib/ui-config/ui-config.test.d.ts.map +1 -0
- package/dist/lib/{routes/admin-api/config.test.js → ui-config/ui-config.test.js} +6 -6
- package/dist/lib/ui-config/ui-config.test.js.map +1 -0
- package/dist/lib/util/metrics/createGauge.d.ts +17 -1
- package/dist/lib/util/metrics/createGauge.d.ts.map +1 -1
- package/dist/lib/util/metrics/createGauge.js +49 -4
- package/dist/lib/util/metrics/createGauge.js.map +1 -1
- package/dist/lib/util/random-id.js +2 -2
- package/dist/lib/util/random-id.js.map +1 -1
- package/dist/lib/util/random-id.test.d.ts +2 -0
- package/dist/lib/util/random-id.test.d.ts.map +1 -0
- package/dist/lib/util/random-id.test.js +7 -0
- package/dist/lib/util/random-id.test.js.map +1 -0
- package/dist/migrations/20210218090213-generate-server-identifier.js +2 -2
- package/dist/migrations/20210218090213-generate-server-identifier.js.map +1 -1
- package/dist/migrations/20210615115226-migrate-strategies-to-feature-strategies.js +2 -2
- package/dist/migrations/20210615115226-migrate-strategies-to-feature-strategies.js.map +1 -1
- package/dist/migrations/20250923130348-add-users-updated-at.d.ts +3 -0
- package/dist/migrations/20250923130348-add-users-updated-at.d.ts.map +1 -0
- package/dist/migrations/20250923130348-add-users-updated-at.js +40 -0
- package/dist/migrations/20250923130348-add-users-updated-at.js.map +1 -0
- package/dist/migrations/20251002095623-not-null-constraints.d.ts +3 -0
- package/dist/migrations/20251002095623-not-null-constraints.d.ts.map +1 -0
- package/dist/migrations/20251002095623-not-null-constraints.js +20 -0
- package/dist/migrations/20251002095623-not-null-constraints.js.map +1 -0
- package/dist/migrations/20251003105758-add-milestone-started-at.d.ts +3 -0
- package/dist/migrations/20251003105758-add-milestone-started-at.d.ts.map +1 -0
- package/dist/migrations/20251003105758-add-milestone-started-at.js +8 -0
- package/dist/migrations/20251003105758-add-milestone-started-at.js.map +1 -0
- package/dist/migrations/20251006111609-add-milestone-progressions.d.ts +3 -0
- package/dist/migrations/20251006111609-add-milestone-progressions.d.ts.map +1 -0
- package/dist/migrations/20251006111609-add-milestone-progressions.js +15 -0
- package/dist/migrations/20251006111609-add-milestone-progressions.js.map +1 -0
- package/dist/migrations/20251009081052-add-milestone-progression-executed-at.d.ts +3 -0
- package/dist/migrations/20251009081052-add-milestone-progression-executed-at.d.ts.map +1 -0
- package/dist/migrations/20251009081052-add-milestone-progression-executed-at.js +14 -0
- package/dist/migrations/20251009081052-add-milestone-progression-executed-at.js.map +1 -0
- package/dist/migrations/20251009132935-add-edge-node-presence.d.ts +3 -0
- package/dist/migrations/20251009132935-add-edge-node-presence.d.ts.map +1 -0
- package/dist/migrations/20251009132935-add-edge-node-presence.js +29 -0
- package/dist/migrations/20251009132935-add-edge-node-presence.js.map +1 -0
- package/dist/migrations/20251013131405-milestone-progression-uniqueness.d.ts +3 -0
- package/dist/migrations/20251013131405-milestone-progression-uniqueness.d.ts.map +1 -0
- package/dist/migrations/20251013131405-milestone-progression-uniqueness.js +9 -0
- package/dist/migrations/20251013131405-milestone-progression-uniqueness.js.map +1 -0
- package/dist/migrations/20251027094509-milestone-progression-natural-pk.d.ts +3 -0
- package/dist/migrations/20251027094509-milestone-progression-natural-pk.d.ts.map +1 -0
- package/dist/migrations/20251027094509-milestone-progression-natural-pk.js +22 -0
- package/dist/migrations/20251027094509-milestone-progression-natural-pk.js.map +1 -0
- package/dist/migrations/20251103114221-milestone-progression-paused-at.d.ts +3 -0
- package/dist/migrations/20251103114221-milestone-progression-paused-at.d.ts.map +1 -0
- package/dist/migrations/20251103114221-milestone-progression-paused-at.js +14 -0
- package/dist/migrations/20251103114221-milestone-progression-paused-at.js.map +1 -0
- package/dist/migrations/20251105153729-create-safeguards-table.d.ts +3 -0
- package/dist/migrations/20251105153729-create-safeguards-table.d.ts.map +1 -0
- package/dist/migrations/20251105153729-create-safeguards-table.js +17 -0
- package/dist/migrations/20251105153729-create-safeguards-table.js.map +1 -0
- package/dist/server-dev.js +5 -3
- package/dist/server-dev.js.map +1 -1
- package/dist/test/e2e/api/admin/context.e2e.test.js +2 -3
- package/dist/test/e2e/api/admin/context.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/user-admin.e2e.test.js +2 -3
- package/dist/test/e2e/api/admin/user-admin.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js +17 -41
- package/dist/test/e2e/api/client/feature.optimal304.e2e.test.js.map +1 -1
- package/dist/test/e2e/helpers/database-init.js +2 -2
- package/dist/test/e2e/helpers/database-init.js.map +1 -1
- package/dist/test/e2e/ready.e2e.test.d.ts +2 -0
- package/dist/test/e2e/ready.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/ready.e2e.test.js +66 -0
- package/dist/test/e2e/ready.e2e.test.js.map +1 -0
- package/dist/test/e2e/services/user-service.e2e.test.js +129 -99
- package/dist/test/e2e/services/user-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/client-application-store.e2e.test.js +0 -1
- package/dist/test/e2e/stores/client-application-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/stores/feature-environment-store.e2e.test.js +3 -1
- package/dist/test/e2e/stores/feature-environment-store.e2e.test.js.map +1 -1
- package/dist/test/e2e/users/user-store.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/users/user-store.e2e.test.js.map +1 -0
- package/dist/test/e2e/users/user-updates-read-model.e2e.test.d.ts +2 -0
- package/dist/test/e2e/users/user-updates-read-model.e2e.test.d.ts.map +1 -0
- package/dist/test/e2e/users/user-updates-read-model.e2e.test.js +88 -0
- package/dist/test/e2e/users/user-updates-read-model.e2e.test.js.map +1 -0
- package/dist/test/fixtures/fake/fake-release-plan-read-model.d.ts +8 -0
- package/dist/test/fixtures/fake/fake-release-plan-read-model.d.ts.map +1 -0
- package/dist/test/fixtures/fake/fake-release-plan-read-model.js +9 -0
- package/dist/test/fixtures/fake/fake-release-plan-read-model.js.map +1 -0
- package/dist/test/fixtures/fake-impact-metrics.d.ts +12 -4
- package/dist/test/fixtures/fake-impact-metrics.d.ts.map +1 -1
- package/dist/test/fixtures/fake-impact-metrics.js +50 -26
- package/dist/test/fixtures/fake-impact-metrics.js.map +1 -1
- package/dist/test/fixtures/store.d.ts.map +1 -1
- package/dist/test/fixtures/store.js +1 -0
- package/dist/test/fixtures/store.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-D2Y0O_LK.js → AdvancedPlayground-BMmRjlFK.js} +1 -1
- package/frontend/build/static/BackendConnections-C4TwFekS.js +1 -0
- package/frontend/build/static/{CreateProject-jRfRrbUO.js → CreateProject-De6TDUjF.js} +1 -1
- package/frontend/build/static/FeatureMetricsChart-CQOjOGdB.js +2 -0
- package/frontend/build/static/FeatureStaleDialog-DFBMJIHQ.js +7 -0
- package/frontend/build/static/FeatureViewLazyExport-CUraS5Co.js +10 -0
- package/frontend/build/static/{FlagMetricsChart-oDTQTkxU.js → FlagMetricsChart-BqT9hgdO.js} +2 -2
- package/frontend/build/static/FrontendNetworkTrafficUsage-BzwFAGbK.js +1 -0
- package/frontend/build/static/GridLayoutWrapper-DY9lNz0U.js +3 -0
- package/frontend/build/static/ImpactMetricsPage-Bqewvmqu.js +1 -0
- package/frontend/build/static/LazyAdminExport-DSSpZhpf.js +38 -0
- package/frontend/build/static/LazyProjectExport-Cd5au6uN.js +728 -0
- package/frontend/build/static/{LifecycleChartComponent-Dz1wdYkW.js → LifecycleChartComponent-iH7Xwal_.js} +3 -3
- package/frontend/build/static/LineChartComponent-BnogHewS.js +1 -0
- package/frontend/build/static/{MarkCompletedDialogue-Bw9Iccid.js → MarkCompletedDialogue-BOSV3MHM.js} +1 -1
- package/frontend/build/static/{NetworkConnectedEdges-HU923-QZ.js → NetworkConnectedEdges-d0ZBRss5.js} +1 -1
- package/frontend/build/static/{NetworkOverview-_igGCPCJ.js → NetworkOverview-DivQ4b83.js} +1 -1
- package/frontend/build/static/{NetworkPrometheusAPIWarning-BS9PGbzI.js → NetworkPrometheusAPIWarning-2jclDnfE.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-BpNEMFBl.js → NetworkTraffic-DDSLmVgI.js} +1 -1
- package/frontend/build/static/NetworkTrafficUsage-DYNGGkkm.js +1 -0
- package/frontend/build/static/PercentageDonut-aa1oSbho.js +1 -0
- package/frontend/build/static/{ReactJSONEditor-DZ9l5V9S.js → ReactJSONEditor-BKB6MheT.js} +1 -1
- package/frontend/build/static/{RoleCell-C-hJFmul.js → RoleCell-CkV0Kf4-.js} +1 -1
- package/frontend/build/static/{aggregateFeatureMetrics-Dli6i5No.js → aggregateFeatureMetrics-CrQXQAeM.js} +1 -1
- package/frontend/build/static/{formatTickValue-D3KZyzeb.js → formatTickValue-BCAqKqmg.js} +2 -2
- package/frontend/build/static/index-B33kIVre.js +542 -0
- package/frontend/build/static/metricsFormatters-C7iN2dDH.js +1 -0
- package/frontend/build/static/{networkTrafficUsageHighlightPlugin-DLE_BBMN.js → networkTrafficUsageHighlightPlugin-o9kHeQ2O.js} +1 -1
- package/frontend/build/static/strategyCustom-Db-ZtYWl.svg +23 -0
- package/frontend/build/static/strategyDefault-LnSyH2eZ.svg +17 -0
- package/frontend/build/static/strategyGradual-oCA99tj3.svg +18 -0
- package/frontend/build/static/strategyHosts-4lVYC2Bf.svg +23 -0
- package/frontend/build/static/strategyIPs-BHaXsOYV.svg +24 -0
- package/frontend/build/static/strategyOn-CX-xL0oK.svg +18 -0
- package/frontend/build/static/{useApiTokens-DNIDLJlc.js → useApiTokens-eXyUbKcO.js} +1 -1
- package/frontend/package.json +3 -4
- package/package.json +7 -9
- package/dist/lib/routes/admin-api/config.d.ts +0 -24
- package/dist/lib/routes/admin-api/config.d.ts.map +0 -1
- package/dist/lib/routes/admin-api/config.js +0 -114
- package/dist/lib/routes/admin-api/config.js.map +0 -1
- package/dist/lib/routes/admin-api/config.test.d.ts +0 -2
- package/dist/lib/routes/admin-api/config.test.d.ts.map +0 -1
- package/dist/lib/routes/admin-api/config.test.js.map +0 -1
- package/dist/test/e2e/stores/user-store.e2e.test.d.ts.map +0 -1
- package/dist/test/e2e/stores/user-store.e2e.test.js.map +0 -1
- package/frontend/build/static/BackendConnections-C9HcQ9To.js +0 -1
- package/frontend/build/static/ChartItem-COMyVdgD.js +0 -1
- package/frontend/build/static/FeatureMetricsChart-CQkGp91T.js +0 -2
- package/frontend/build/static/FeatureStaleDialog-DKeGFuL1.js +0 -7
- package/frontend/build/static/FeatureViewLazyExport-CgntSCvS.js +0 -10
- package/frontend/build/static/FrontendNetworkTrafficUsage-E4pIeMFQ.js +0 -1
- package/frontend/build/static/ImpactMetricsPage-B3STis_H.js +0 -3
- package/frontend/build/static/LazyAdminExport-CsCsRIwk.js +0 -38
- package/frontend/build/static/LazyProjectExport-DkN0UegC.js +0 -728
- package/frontend/build/static/LineChartComponent-DG1LdcL_.js +0 -1
- package/frontend/build/static/NetworkTrafficUsage-bSUVPjoc.js +0 -1
- package/frontend/build/static/index-A5We7bvX.js +0 -542
- package/frontend/build/static/merge-C7IT0rZd.svg +0 -3
- /package/dist/test/e2e/{stores → users}/user-store.e2e.test.d.ts +0 -0
- /package/dist/test/e2e/{stores → users}/user-store.e2e.test.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-histogram.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/batch-histogram.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Registry } from 'prom-client';
|
|
2
|
+
import { BatchHistogram } from './batch-histogram.js';
|
|
3
|
+
describe('BatchHistogram', () => {
|
|
4
|
+
let registry;
|
|
5
|
+
let histogram;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
registry = new Registry();
|
|
8
|
+
histogram = new BatchHistogram({
|
|
9
|
+
name: 'test_histogram',
|
|
10
|
+
help: 'Test histogram',
|
|
11
|
+
registry: registry,
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
test('should record batch data and preserve bucket distribution', async () => {
|
|
15
|
+
histogram.recordBatch({ label1: 'value1' }, {
|
|
16
|
+
count: 10,
|
|
17
|
+
sum: 15.5,
|
|
18
|
+
buckets: [
|
|
19
|
+
{ le: 0.1, count: 2 },
|
|
20
|
+
{ le: 0.5, count: 5 },
|
|
21
|
+
{ le: 1, count: 7 },
|
|
22
|
+
{ le: 2.5, count: 9 },
|
|
23
|
+
{ le: 5, count: 10 },
|
|
24
|
+
{ le: '+Inf', count: 10 },
|
|
25
|
+
],
|
|
26
|
+
});
|
|
27
|
+
const metrics = await registry.metrics();
|
|
28
|
+
expect(metrics).toContain('# HELP test_histogram Test histogram');
|
|
29
|
+
expect(metrics).toContain('# TYPE test_histogram histogram');
|
|
30
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="0.1"} 2/);
|
|
31
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="0.5"} 5/);
|
|
32
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="1"} 7/);
|
|
33
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="2.5"} 9/);
|
|
34
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="5"} 10/);
|
|
35
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="\+Inf"} 10/);
|
|
36
|
+
expect(metrics).toMatch(/test_histogram_sum{label1="value1"} 15\.5/);
|
|
37
|
+
expect(metrics).toMatch(/test_histogram_count{label1="value1"} 10/);
|
|
38
|
+
});
|
|
39
|
+
test('should aggregate multiple batches correctly', async () => {
|
|
40
|
+
histogram.recordBatch({ label1: 'value1' }, {
|
|
41
|
+
count: 5,
|
|
42
|
+
sum: 7.5,
|
|
43
|
+
buckets: [
|
|
44
|
+
{ le: 0.1, count: 1 },
|
|
45
|
+
{ le: 0.5, count: 3 },
|
|
46
|
+
{ le: 1, count: 4 },
|
|
47
|
+
{ le: 2.5, count: 5 },
|
|
48
|
+
{ le: 5, count: 5 },
|
|
49
|
+
{ le: '+Inf', count: 5 },
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
histogram.recordBatch({ label1: 'value1' }, {
|
|
53
|
+
count: 3,
|
|
54
|
+
sum: 4.2,
|
|
55
|
+
buckets: [
|
|
56
|
+
{ le: 0.1, count: 0 },
|
|
57
|
+
{ le: 0.5, count: 1 },
|
|
58
|
+
{ le: 1, count: 2 },
|
|
59
|
+
{ le: 2.5, count: 3 },
|
|
60
|
+
{ le: 5, count: 3 },
|
|
61
|
+
{ le: '+Inf', count: 3 },
|
|
62
|
+
],
|
|
63
|
+
});
|
|
64
|
+
const metrics = await registry.metrics();
|
|
65
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="0.1"} 1/);
|
|
66
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="0.5"} 4/);
|
|
67
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="1"} 6/);
|
|
68
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="2.5"} 8/);
|
|
69
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="5"} 8/);
|
|
70
|
+
expect(metrics).toMatch(/test_histogram_bucket{label1="value1",le="\+Inf"} 8/);
|
|
71
|
+
expect(metrics).toMatch(/test_histogram_sum{label1="value1"} 11\.7/);
|
|
72
|
+
expect(metrics).toMatch(/test_histogram_count{label1="value1"} 8/);
|
|
73
|
+
});
|
|
74
|
+
test('should record different labels separately and handle special characters', async () => {
|
|
75
|
+
histogram.recordBatch({ service: 'api', url: 'http://example.com:8080/api' }, {
|
|
76
|
+
count: 3,
|
|
77
|
+
sum: 1.5,
|
|
78
|
+
buckets: [
|
|
79
|
+
{ le: 1, count: 2 },
|
|
80
|
+
{ le: '+Inf', count: 3 },
|
|
81
|
+
],
|
|
82
|
+
});
|
|
83
|
+
histogram.recordBatch({ service: 'web', url: 'https://app.example.com/dashboard' }, {
|
|
84
|
+
count: 2,
|
|
85
|
+
sum: 3.0,
|
|
86
|
+
buckets: [
|
|
87
|
+
{ le: 1, count: 1 },
|
|
88
|
+
{ le: '+Inf', count: 2 },
|
|
89
|
+
],
|
|
90
|
+
});
|
|
91
|
+
const metrics = await registry.metrics();
|
|
92
|
+
expect(metrics).toMatch(/test_histogram_bucket{service="api",url="http:\/\/example\.com:8080\/api",le="1"} 2/);
|
|
93
|
+
expect(metrics).toMatch(/test_histogram_bucket{service="api",url="http:\/\/example\.com:8080\/api",le="\+Inf"} 3/);
|
|
94
|
+
expect(metrics).toMatch(/test_histogram_sum{service="api",url="http:\/\/example\.com:8080\/api"} 1\.5/);
|
|
95
|
+
expect(metrics).toMatch(/test_histogram_count{service="api",url="http:\/\/example\.com:8080\/api"} 3/);
|
|
96
|
+
// Web service metrics (with HTTPS URL)
|
|
97
|
+
expect(metrics).toMatch(/test_histogram_bucket{service="web",url="https:\/\/app\.example\.com\/dashboard",le="1"} 1/);
|
|
98
|
+
expect(metrics).toMatch(/test_histogram_bucket{service="web",url="https:\/\/app\.example\.com\/dashboard",le="\+Inf"} 2/);
|
|
99
|
+
expect(metrics).toMatch(/test_histogram_sum{service="web",url="https:\/\/app\.example\.com\/dashboard"} 3/);
|
|
100
|
+
expect(metrics).toMatch(/test_histogram_count{service="web",url="https:\/\/app\.example\.com\/dashboard"} 2/);
|
|
101
|
+
});
|
|
102
|
+
test('should handle "+Inf" string from SDK serialization', async () => {
|
|
103
|
+
histogram.recordBatch({ client: 'sdk' }, {
|
|
104
|
+
count: 5,
|
|
105
|
+
sum: 12.3,
|
|
106
|
+
buckets: [
|
|
107
|
+
{ le: 1, count: 3 },
|
|
108
|
+
{ le: '+Inf', count: 5 }, // String instead of Infinity
|
|
109
|
+
],
|
|
110
|
+
});
|
|
111
|
+
const metrics = await registry.metrics();
|
|
112
|
+
expect(metrics).toMatch(/test_histogram_bucket{client="sdk",le="1"} 3/);
|
|
113
|
+
expect(metrics).toMatch(/test_histogram_bucket{client="sdk",le="\+Inf"} 5/);
|
|
114
|
+
expect(metrics).toMatch(/test_histogram_sum{client="sdk"} 12\.3/);
|
|
115
|
+
expect(metrics).toMatch(/test_histogram_count{client="sdk"} 5/);
|
|
116
|
+
});
|
|
117
|
+
test('should handle unsorted bucket input', async () => {
|
|
118
|
+
histogram.recordBatch({ service: 'test' }, {
|
|
119
|
+
count: 5,
|
|
120
|
+
sum: 7.5,
|
|
121
|
+
buckets: [
|
|
122
|
+
{ le: '+Inf', count: 5 }, // Infinity first (unsorted)
|
|
123
|
+
{ le: 2.5, count: 4 }, // Out of order
|
|
124
|
+
{ le: 0.5, count: 2 }, // Out of order
|
|
125
|
+
{ le: 1, count: 3 }, // Out of order
|
|
126
|
+
],
|
|
127
|
+
});
|
|
128
|
+
const metrics = await registry.metrics();
|
|
129
|
+
expect(metrics).toMatch(/test_histogram_bucket{service="test",le="0.5"} 2/);
|
|
130
|
+
expect(metrics).toMatch(/test_histogram_bucket{service="test",le="1"} 3/);
|
|
131
|
+
expect(metrics).toMatch(/test_histogram_bucket{service="test",le="2.5"} 4/);
|
|
132
|
+
expect(metrics).toMatch(/test_histogram_bucket{service="test",le="\+Inf"} 5/);
|
|
133
|
+
expect(metrics).toMatch(/test_histogram_sum{service="test"} 7\.5/);
|
|
134
|
+
expect(metrics).toMatch(/test_histogram_count{service="test"} 5/);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=batch-histogram.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-histogram.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/batch-histogram.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,7 @@ export declare const CLIENT_ERROR_COUNT = "client_error_count";
|
|
|
4
4
|
export declare const SERVER_ERROR_COUNT = "server_error_count";
|
|
5
5
|
export declare const REQUEST_COUNT = "request_count";
|
|
6
6
|
export declare const HEAP_MEMORY_TOTAL = "heap_memory_total";
|
|
7
|
+
export declare const REQUEST_TIME_MS = "request_time_ms";
|
|
8
|
+
export declare const SCHEDULER_JOB_TIME_SECONDS = "scheduler_job_time_seconds";
|
|
7
9
|
export declare const defineImpactMetrics: (flagResolver: IFlagResolver) => void;
|
|
8
10
|
//# sourceMappingURL=define-impact-metrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-impact-metrics.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/define-impact-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"define-impact-metrics.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/define-impact-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AACrD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AAEvE,eAAO,MAAM,mBAAmB,GAAI,cAAc,aAAa,SA+B9D,CAAC"}
|
|
@@ -3,11 +3,15 @@ export const CLIENT_ERROR_COUNT = 'client_error_count';
|
|
|
3
3
|
export const SERVER_ERROR_COUNT = 'server_error_count';
|
|
4
4
|
export const REQUEST_COUNT = 'request_count';
|
|
5
5
|
export const HEAP_MEMORY_TOTAL = 'heap_memory_total';
|
|
6
|
+
export const REQUEST_TIME_MS = 'request_time_ms';
|
|
7
|
+
export const SCHEDULER_JOB_TIME_SECONDS = 'scheduler_job_time_seconds';
|
|
6
8
|
export const defineImpactMetrics = (flagResolver) => {
|
|
7
9
|
flagResolver.impactMetrics?.defineCounter(FEAUTRE_LINK_COUNT, 'Count of feature links');
|
|
8
10
|
flagResolver.impactMetrics?.defineCounter(CLIENT_ERROR_COUNT, 'Count of 4xx errors');
|
|
9
11
|
flagResolver.impactMetrics?.defineCounter(SERVER_ERROR_COUNT, 'Count of 5xx errors');
|
|
10
12
|
flagResolver.impactMetrics?.defineCounter(REQUEST_COUNT, 'Count of all requests');
|
|
11
13
|
flagResolver.impactMetrics?.defineGauge(HEAP_MEMORY_TOTAL, 'Total heap memory used by the application process');
|
|
14
|
+
flagResolver.impactMetrics?.defineHistogram(REQUEST_TIME_MS, 'Request handling time', [10, 25, 50, 100, 200, 500, 1000, 2000, 5000]);
|
|
15
|
+
flagResolver.impactMetrics?.defineHistogram(SCHEDULER_JOB_TIME_SECONDS, 'Job execution time', [1, 2, 3, 4, 5, 7, 10, 15, 20, 30, 45, 60, 120]);
|
|
12
16
|
};
|
|
13
17
|
//# sourceMappingURL=define-impact-metrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-impact-metrics.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/define-impact-metrics.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"define-impact-metrics.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/define-impact-metrics.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,YAA2B,EAAE,EAAE;IAC/D,YAAY,CAAC,aAAa,EAAE,aAAa,CACrC,kBAAkB,EAClB,wBAAwB,CAC3B,CAAC;IACF,YAAY,CAAC,aAAa,EAAE,aAAa,CACrC,kBAAkB,EAClB,qBAAqB,CACxB,CAAC;IACF,YAAY,CAAC,aAAa,EAAE,aAAa,CACrC,kBAAkB,EAClB,qBAAqB,CACxB,CAAC;IACF,YAAY,CAAC,aAAa,EAAE,aAAa,CACrC,aAAa,EACb,uBAAuB,CAC1B,CAAC;IACF,YAAY,CAAC,aAAa,EAAE,WAAW,CACnC,iBAAiB,EACjB,mDAAmD,CACtD,CAAC;IACF,YAAY,CAAC,aAAa,EAAE,eAAe,CACvC,eAAe,EACf,uBAAuB,EACvB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAChD,CAAC;IACF,YAAY,CAAC,aAAa,EAAE,eAAe,CACvC,0BAA0B,EAC1B,oBAAoB,EACpB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAClD,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -128,4 +128,53 @@ test('should store impact metrics sent via bulk metrics endpoint', async () => {
|
|
|
128
128
|
expect(metricsText).toContain('# TYPE unleash_counter_bulk_counter counter');
|
|
129
129
|
expect(metricsText).toMatch(/unleash_counter_bulk_counter{unleash_source="bulk",unleash_origin="sdk"} 15/);
|
|
130
130
|
});
|
|
131
|
+
test('should store histogram metrics with batch data', async () => {
|
|
132
|
+
await sendImpactMetrics([
|
|
133
|
+
{
|
|
134
|
+
name: 'response_time',
|
|
135
|
+
help: 'Response time histogram',
|
|
136
|
+
type: 'histogram',
|
|
137
|
+
samples: [
|
|
138
|
+
{
|
|
139
|
+
labels: { foo: 'bar' },
|
|
140
|
+
count: 10,
|
|
141
|
+
sum: 8.5,
|
|
142
|
+
buckets: [
|
|
143
|
+
{ le: 1, count: 7 },
|
|
144
|
+
{ le: '+Inf', count: 10 },
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
]);
|
|
150
|
+
await sendImpactMetrics([
|
|
151
|
+
{
|
|
152
|
+
name: 'response_time',
|
|
153
|
+
help: 'Response time histogram',
|
|
154
|
+
type: 'histogram',
|
|
155
|
+
samples: [
|
|
156
|
+
{
|
|
157
|
+
labels: { foo: 'bar' },
|
|
158
|
+
count: 5,
|
|
159
|
+
sum: 3.2,
|
|
160
|
+
buckets: [
|
|
161
|
+
{ le: 1, count: 3 },
|
|
162
|
+
{ le: '+Inf', count: 5 },
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
]);
|
|
168
|
+
const response = await app.request
|
|
169
|
+
.get('/internal-backstage/impact/metrics')
|
|
170
|
+
.expect('Content-Type', /text/)
|
|
171
|
+
.expect(200);
|
|
172
|
+
const metricsText = response.text;
|
|
173
|
+
expect(metricsText).toContain('# HELP unleash_histogram_response_time Response time histogram');
|
|
174
|
+
expect(metricsText).toContain('# TYPE unleash_histogram_response_time histogram');
|
|
175
|
+
expect(metricsText).toContain('unleash_histogram_response_time_bucket{unleash_foo="bar",unleash_origin="sdk",le="1"} 10');
|
|
176
|
+
expect(metricsText).toContain('unleash_histogram_response_time_bucket{unleash_foo="bar",unleash_origin="sdk",le="+Inf"} 15');
|
|
177
|
+
expect(metricsText).toContain('unleash_histogram_response_time_sum{unleash_foo="bar",unleash_origin="sdk"} 11.7');
|
|
178
|
+
expect(metricsText).toContain('unleash_histogram_response_time_count{unleash_foo="bar",unleash_origin="sdk"} 15');
|
|
179
|
+
});
|
|
131
180
|
//# sourceMappingURL=impact-metrics.e2e.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impact-metrics.e2e.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/impact-metrics.e2e.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,wBAAwB,GAC3B,MAAM,6CAA6C,CAAC;AACrD,OAAO,MAEN,MAAM,+CAA+C,CAAC;AACvD,OAAO,SAAS,MAAM,wCAAwC,CAAC;AAG/D,IAAI,GAAiB,CAAC;AACtB,IAAI,EAAW,CAAC;AAEhB,MAAM,iBAAiB,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"impact-metrics.e2e.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/impact-metrics.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,40 @@
|
|
|
1
1
|
import { Counter, Gauge, type Registry } from 'prom-client';
|
|
2
|
-
|
|
2
|
+
import { BatchHistogram } from './batch-histogram.js';
|
|
3
|
+
export interface NumericMetricSample {
|
|
3
4
|
labels?: Record<string, string | number>;
|
|
4
5
|
value: number;
|
|
5
6
|
}
|
|
6
|
-
export interface
|
|
7
|
+
export interface BucketMetricSample {
|
|
8
|
+
labels?: Record<string, string | number>;
|
|
9
|
+
count: number;
|
|
10
|
+
sum: number;
|
|
11
|
+
buckets: Array<{
|
|
12
|
+
le: number | '+Inf';
|
|
13
|
+
count: number;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
export interface NumericMetric {
|
|
7
17
|
name: string;
|
|
8
18
|
help: string;
|
|
9
19
|
type: 'counter' | 'gauge';
|
|
10
|
-
samples:
|
|
20
|
+
samples: NumericMetricSample[];
|
|
21
|
+
}
|
|
22
|
+
export interface BucketMetric {
|
|
23
|
+
name: string;
|
|
24
|
+
help: string;
|
|
25
|
+
type: 'histogram';
|
|
26
|
+
samples: BucketMetricSample[];
|
|
11
27
|
}
|
|
28
|
+
export type Metric = NumericMetric | BucketMetric;
|
|
12
29
|
export declare class MetricsTranslator {
|
|
13
30
|
private registry;
|
|
14
31
|
constructor(registry: Registry);
|
|
15
32
|
sanitizeName(name: string): string;
|
|
16
33
|
private hasNewLabels;
|
|
34
|
+
private hasNewBuckets;
|
|
17
35
|
private transformLabels;
|
|
18
36
|
private addOriginLabel;
|
|
19
|
-
translateMetric(metric: Metric): Counter<string> | Gauge<string> | null;
|
|
37
|
+
translateMetric(metric: Metric): Counter<string> | Gauge<string> | BatchHistogram | null;
|
|
20
38
|
translateMetrics(metrics: Metric[]): Registry;
|
|
21
39
|
serializeMetrics(): Promise<string>;
|
|
22
40
|
translateAndSerializeMetrics(metrics: Metric[]): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-translator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/metrics-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics-translator.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/metrics-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;AAElD,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,EAAE,QAAQ;IAI9B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMlC,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAStB,eAAe,CACX,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,cAAc,GAAG,IAAI;IA0I1D,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ;IAQ7C,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInC,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAInE"}
|
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import { Counter, Gauge } from 'prom-client';
|
|
2
|
+
import { BatchHistogram } from './batch-histogram.js';
|
|
2
3
|
export class MetricsTranslator {
|
|
3
4
|
constructor(registry) {
|
|
4
5
|
this.registry = registry;
|
|
5
6
|
}
|
|
6
7
|
sanitizeName(name) {
|
|
7
8
|
const regex = /[^a-zA-Z0-9_]/g;
|
|
8
|
-
|
|
9
|
-
return sanitized;
|
|
9
|
+
return name.replace(regex, '_');
|
|
10
10
|
}
|
|
11
11
|
hasNewLabels(existingMetric, newLabelNames) {
|
|
12
12
|
const existingLabelNames = existingMetric.labelNames || [];
|
|
13
13
|
return newLabelNames.some((label) => !existingLabelNames.includes(label));
|
|
14
14
|
}
|
|
15
|
+
hasNewBuckets(existingHistogram, newBuckets) {
|
|
16
|
+
const existingBoundaries = existingHistogram.bucketBoundaries;
|
|
17
|
+
if (existingBoundaries.size !== newBuckets.length) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
for (const bucket of newBuckets) {
|
|
21
|
+
if (!existingBoundaries.has(bucket.le)) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
15
27
|
transformLabels(labels) {
|
|
16
28
|
return Object.fromEntries(Object.entries(labels).map(([labelKey, value]) => [
|
|
17
29
|
`unleash_${this.sanitizeName(labelKey)}`,
|
|
@@ -94,6 +106,50 @@ export class MetricsTranslator {
|
|
|
94
106
|
}
|
|
95
107
|
return gauge;
|
|
96
108
|
}
|
|
109
|
+
else if (metric.type === 'histogram') {
|
|
110
|
+
if (!metric.samples || metric.samples.length === 0) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
let histogram;
|
|
114
|
+
if (existingMetric && existingMetric instanceof BatchHistogram) {
|
|
115
|
+
const firstSample = metric.samples[0]; // all samples should have same buckets
|
|
116
|
+
const needsRecreation = !firstSample?.buckets ||
|
|
117
|
+
this.hasNewLabels(existingMetric, labelNames) ||
|
|
118
|
+
this.hasNewBuckets(existingMetric, firstSample.buckets);
|
|
119
|
+
if (needsRecreation) {
|
|
120
|
+
this.registry.removeSingleMetric(prefixedName);
|
|
121
|
+
histogram = new BatchHistogram({
|
|
122
|
+
name: prefixedName,
|
|
123
|
+
help: metric.help,
|
|
124
|
+
registry: this.registry,
|
|
125
|
+
labelNames,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
histogram = existingMetric;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
histogram = new BatchHistogram({
|
|
134
|
+
name: prefixedName,
|
|
135
|
+
help: metric.help,
|
|
136
|
+
registry: this.registry,
|
|
137
|
+
labelNames,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
for (const sample of metric.samples) {
|
|
141
|
+
const transformedLabels = this.transformLabels({
|
|
142
|
+
...sample.labels,
|
|
143
|
+
origin: sample.labels?.origin || 'sdk',
|
|
144
|
+
});
|
|
145
|
+
histogram.recordBatch(transformedLabels, {
|
|
146
|
+
count: sample.count,
|
|
147
|
+
sum: sample.sum,
|
|
148
|
+
buckets: sample.buckets,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return histogram;
|
|
152
|
+
}
|
|
97
153
|
return null;
|
|
98
154
|
}
|
|
99
155
|
translateMetrics(metrics) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-translator.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/metrics-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAiB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics-translator.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/metrics-translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,10 +149,27 @@ describe('MetricsTranslator', () => {
|
|
|
149
149
|
},
|
|
150
150
|
],
|
|
151
151
|
},
|
|
152
|
+
{
|
|
153
|
+
name: 'histogram_with_labels',
|
|
154
|
+
help: 'histogram with labels',
|
|
155
|
+
type: 'histogram',
|
|
156
|
+
samples: [
|
|
157
|
+
{
|
|
158
|
+
labels: { service: 'api' },
|
|
159
|
+
count: 5,
|
|
160
|
+
sum: 2.5,
|
|
161
|
+
buckets: [
|
|
162
|
+
{ le: 1, count: 3 },
|
|
163
|
+
{ le: '+Inf', count: 5 },
|
|
164
|
+
],
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
},
|
|
152
168
|
];
|
|
153
169
|
const result1 = await translator.translateAndSerializeMetrics(metrics1);
|
|
154
170
|
expect(result1).toContain('unleash_counter_counter_with_labels{unleash_foo="bar",unleash_origin="sdk"} 5');
|
|
155
171
|
expect(result1).toContain('unleash_gauge_gauge_with_labels{unleash_env="prod",unleash_origin="sdk"} 10');
|
|
172
|
+
expect(result1).toContain('unleash_histogram_histogram_with_labels_count{unleash_origin="sdk",unleash_service="api"} 5');
|
|
156
173
|
const metrics2 = [
|
|
157
174
|
{
|
|
158
175
|
name: 'counter_with_labels',
|
|
@@ -176,10 +193,76 @@ describe('MetricsTranslator', () => {
|
|
|
176
193
|
},
|
|
177
194
|
],
|
|
178
195
|
},
|
|
196
|
+
{
|
|
197
|
+
name: 'histogram_with_labels',
|
|
198
|
+
help: 'histogram with labels',
|
|
199
|
+
type: 'histogram',
|
|
200
|
+
buckets: [1],
|
|
201
|
+
samples: [
|
|
202
|
+
{
|
|
203
|
+
labels: { service: 'api', region: 'us-east' }, // Added a new label
|
|
204
|
+
count: 3,
|
|
205
|
+
sum: 1.8,
|
|
206
|
+
buckets: [
|
|
207
|
+
{ le: 1, count: 2 },
|
|
208
|
+
{ le: '+Inf', count: 3 },
|
|
209
|
+
],
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
},
|
|
179
213
|
];
|
|
180
214
|
const result2 = await translator.translateAndSerializeMetrics(metrics2);
|
|
181
215
|
expect(result2).toContain('unleash_counter_counter_with_labels{unleash_foo="bar",unleash_baz="qux",unleash_origin="sdk"} 15');
|
|
182
216
|
expect(result2).toContain('unleash_gauge_gauge_with_labels{unleash_env="prod",unleash_region="us-east",unleash_origin="sdk"} 20');
|
|
217
|
+
expect(result2).toContain('unleash_histogram_histogram_with_labels_count{unleash_origin="sdk",unleash_region="us-east",unleash_service="api"} 3');
|
|
218
|
+
expect(result2).not.toContain('unleash_histogram_histogram_with_labels_count{unleash_origin="sdk",unleash_service="api"} 5');
|
|
219
|
+
});
|
|
220
|
+
it('should handle histogram bucket changes', async () => {
|
|
221
|
+
const registry = new Registry();
|
|
222
|
+
const translator = new MetricsTranslator(registry);
|
|
223
|
+
// Initial histogram with 2 buckets
|
|
224
|
+
const metrics1 = [
|
|
225
|
+
{
|
|
226
|
+
name: 'test_histogram',
|
|
227
|
+
help: 'test histogram',
|
|
228
|
+
type: 'histogram',
|
|
229
|
+
samples: [
|
|
230
|
+
{
|
|
231
|
+
count: 5,
|
|
232
|
+
sum: 2.5,
|
|
233
|
+
buckets: [
|
|
234
|
+
{ le: 1, count: 3 },
|
|
235
|
+
{ le: '+Inf', count: 5 },
|
|
236
|
+
],
|
|
237
|
+
},
|
|
238
|
+
],
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
const result1 = await translator.translateAndSerializeMetrics(metrics1);
|
|
242
|
+
expect(result1).toContain('unleash_histogram_test_histogram_bucket{unleash_origin="sdk",le="1"} 3');
|
|
243
|
+
expect(result1).toContain('unleash_histogram_test_histogram_count{unleash_origin="sdk"} 5');
|
|
244
|
+
// Same histogram with different bucket (0.5 instead of 1)
|
|
245
|
+
const metrics2 = [
|
|
246
|
+
{
|
|
247
|
+
name: 'test_histogram',
|
|
248
|
+
help: 'test histogram',
|
|
249
|
+
type: 'histogram',
|
|
250
|
+
samples: [
|
|
251
|
+
{
|
|
252
|
+
count: 7,
|
|
253
|
+
sum: 3.5,
|
|
254
|
+
buckets: [
|
|
255
|
+
{ le: 0.5, count: 4 }, // Different bucket boundary
|
|
256
|
+
{ le: '+Inf', count: 7 },
|
|
257
|
+
],
|
|
258
|
+
},
|
|
259
|
+
],
|
|
260
|
+
},
|
|
261
|
+
];
|
|
262
|
+
const result2 = await translator.translateAndSerializeMetrics(metrics2);
|
|
263
|
+
expect(result2).toContain('unleash_histogram_test_histogram_bucket{unleash_origin="sdk",le="0.5"} 4');
|
|
264
|
+
expect(result2).toContain('unleash_histogram_test_histogram_count{unleash_origin="sdk"} 7');
|
|
265
|
+
expect(result2).not.toContain('unleash_histogram_test_histogram_count{unleash_origin="sdk"} 5');
|
|
183
266
|
});
|
|
184
267
|
});
|
|
185
268
|
//# sourceMappingURL=metrics-translator.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-translator.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/metrics-translator.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metrics-translator.test.js","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/impact/metrics-translator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export declare const applicationSchema: joi.ObjectSchema<any>;
|
|
|
13
13
|
export declare const customMetricSchema: joi.ObjectSchema<any>;
|
|
14
14
|
export declare const customMetricsSchema: joi.ObjectSchema<any>;
|
|
15
15
|
export declare const metricSampleSchema: joi.ObjectSchema<any>;
|
|
16
|
+
export declare const histogramSampleSchema: joi.ObjectSchema<any>;
|
|
16
17
|
export declare const impactMetricSchema: joi.ObjectSchema<any>;
|
|
17
18
|
export declare const impactMetricsSchema: joi.ArraySchema<any[]>;
|
|
18
19
|
export declare const batchMetricsSchema: joi.ObjectSchema<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/shared/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAY9D,MAAM,MAAM,sBAAsB,GAAG;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,0CAe1B,CAAC;AAEP,eAAO,MAAM,sBAAsB,uBAW7B,CAAC;AACP,eAAO,MAAM,0BAA0B,wBAG3B,CAAC;AAEb,eAAO,MAAM,iBAAiB,uBAexB,CAAC;AAEP,eAAO,MAAM,kBAAkB,uBAOzB,CAAC;AAEP,eAAO,MAAM,mBAAmB,uBAK1B,CAAC;AAEP,eAAO,MAAM,kBAAkB,uBAYzB,CAAC;AAEP,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../../src/lib/features/metrics/shared/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAY9D,MAAM,MAAM,sBAAsB,GAAG;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,0CAe1B,CAAC;AAEP,eAAO,MAAM,sBAAsB,uBAW7B,CAAC;AACP,eAAO,MAAM,0BAA0B,wBAG3B,CAAC;AAEb,eAAO,MAAM,iBAAiB,uBAexB,CAAC;AAEP,eAAO,MAAM,kBAAkB,uBAOzB,CAAC;AAEP,eAAO,MAAM,mBAAmB,uBAK1B,CAAC;AAEP,eAAO,MAAM,kBAAkB,uBAYzB,CAAC;AAEP,eAAO,MAAM,qBAAqB,uBAyB5B,CAAC;AAEP,eAAO,MAAM,kBAAkB,uBAazB,CAAC;AAEP,eAAO,MAAM,mBAAmB,wBAGpB,CAAC;AAEb,eAAO,MAAM,kBAAkB,uBAMzB,CAAC;AAEP,eAAO,MAAM,oBAAoB,uBAa3B,CAAC"}
|
|
@@ -79,6 +79,27 @@ export const metricSampleSchema = joi
|
|
|
79
79
|
.pattern(joi.string(), joi.alternatives().try(joi.string(), joi.number()))
|
|
80
80
|
.optional(),
|
|
81
81
|
});
|
|
82
|
+
export const histogramSampleSchema = joi
|
|
83
|
+
.object()
|
|
84
|
+
.options({ stripUnknown: true })
|
|
85
|
+
.keys({
|
|
86
|
+
count: joi.number().required(),
|
|
87
|
+
sum: joi.number().required(),
|
|
88
|
+
buckets: joi
|
|
89
|
+
.array()
|
|
90
|
+
.items(joi.object({
|
|
91
|
+
le: joi
|
|
92
|
+
.alternatives()
|
|
93
|
+
.try(joi.number(), joi.string().valid('+Inf'))
|
|
94
|
+
.required(),
|
|
95
|
+
count: joi.number().required(),
|
|
96
|
+
}))
|
|
97
|
+
.required(),
|
|
98
|
+
labels: joi
|
|
99
|
+
.object()
|
|
100
|
+
.pattern(joi.string(), joi.alternatives().try(joi.string(), joi.number()))
|
|
101
|
+
.optional(),
|
|
102
|
+
});
|
|
82
103
|
export const impactMetricSchema = joi
|
|
83
104
|
.object()
|
|
84
105
|
.options({ stripUnknown: true })
|
|
@@ -86,7 +107,12 @@ export const impactMetricSchema = joi
|
|
|
86
107
|
name: joi.string().required(),
|
|
87
108
|
help: joi.string().required(),
|
|
88
109
|
type: joi.string().required(),
|
|
89
|
-
|
|
110
|
+
buckets: joi.array().items(joi.number()).optional(),
|
|
111
|
+
samples: joi.when('type', {
|
|
112
|
+
is: 'histogram',
|
|
113
|
+
then: joi.array().items(histogramSampleSchema).required(),
|
|
114
|
+
otherwise: joi.array().items(metricSampleSchema).required(),
|
|
115
|
+
}),
|
|
90
116
|
});
|
|
91
117
|
export const impactMetricsSchema = joi
|
|
92
118
|
.array()
|