@marinoscar/platform-api 0.0.0-stage → 0.1.0-next.3
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/CHANGELOG.md +54 -0
- package/LICENSE +21 -0
- package/README.md +106 -2
- package/dist/core/crypto/encryption-key-startup-check.d.ts +29 -0
- package/dist/core/crypto/encryption-key-startup-check.d.ts.map +1 -0
- package/dist/core/crypto/encryption-key-startup-check.js +221 -0
- package/dist/core/crypto/encryption-key-startup-check.js.map +1 -0
- package/dist/core/crypto/secret-cipher.d.ts +151 -0
- package/dist/core/crypto/secret-cipher.d.ts.map +1 -0
- package/dist/core/crypto/secret-cipher.js +452 -0
- package/dist/core/crypto/secret-cipher.js.map +1 -0
- package/dist/core/data-access/index.d.ts +6 -0
- package/dist/core/data-access/index.d.ts.map +1 -0
- package/dist/core/data-access/index.js +19 -0
- package/dist/core/data-access/index.js.map +1 -0
- package/dist/core/data-access/scoped-access.error.d.ts +35 -0
- package/dist/core/data-access/scoped-access.error.d.ts.map +1 -0
- package/dist/core/data-access/scoped-access.error.js +43 -0
- package/dist/core/data-access/scoped-access.error.js.map +1 -0
- package/dist/core/data-access/scoped-client.d.ts +104 -0
- package/dist/core/data-access/scoped-client.d.ts.map +1 -0
- package/dist/core/data-access/scoped-client.js +270 -0
- package/dist/core/data-access/scoped-client.js.map +1 -0
- package/dist/core/data-access/types.d.ts +85 -0
- package/dist/core/data-access/types.d.ts.map +1 -0
- package/dist/core/data-access/types.js +12 -0
- package/dist/core/data-access/types.js.map +1 -0
- package/dist/core/data-access/user-owned-data.registry.d.ts +60 -0
- package/dist/core/data-access/user-owned-data.registry.d.ts.map +1 -0
- package/dist/core/data-access/user-owned-data.registry.js +140 -0
- package/dist/core/data-access/user-owned-data.registry.js.map +1 -0
- package/dist/core/errors/database-seed.exception.d.ts +23 -0
- package/dist/core/errors/database-seed.exception.d.ts.map +1 -0
- package/dist/core/errors/database-seed.exception.js +49 -0
- package/dist/core/errors/database-seed.exception.js.map +1 -0
- package/dist/core/errors/error.dto.d.ts +47 -0
- package/dist/core/errors/error.dto.d.ts.map +1 -0
- package/dist/core/errors/error.dto.js +121 -0
- package/dist/core/errors/error.dto.js.map +1 -0
- package/dist/core/errors/http-exception.filter.d.ts +63 -0
- package/dist/core/errors/http-exception.filter.d.ts.map +1 -0
- package/dist/core/errors/http-exception.filter.js +234 -0
- package/dist/core/errors/http-exception.filter.js.map +1 -0
- package/dist/core/errors/verbatim-error-body.exception.d.ts +46 -0
- package/dist/core/errors/verbatim-error-body.exception.d.ts.map +1 -0
- package/dist/core/errors/verbatim-error-body.exception.js +135 -0
- package/dist/core/errors/verbatim-error-body.exception.js.map +1 -0
- package/dist/core/host/index.d.ts +7 -0
- package/dist/core/host/index.d.ts.map +1 -0
- package/dist/core/host/index.js +14 -0
- package/dist/core/host/index.js.map +1 -0
- package/dist/core/host/platform-host.d.ts +58 -0
- package/dist/core/host/platform-host.d.ts.map +1 -0
- package/dist/core/host/platform-host.js +104 -0
- package/dist/core/host/platform-host.js.map +1 -0
- package/dist/core/host/platform-host.module.d.ts +53 -0
- package/dist/core/host/platform-host.module.d.ts.map +1 -0
- package/dist/core/host/platform-host.module.js +90 -0
- package/dist/core/host/platform-host.module.js.map +1 -0
- package/dist/core/host/ports.d.ts +132 -0
- package/dist/core/host/ports.d.ts.map +1 -0
- package/dist/core/host/ports.js +48 -0
- package/dist/core/host/ports.js.map +1 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +77 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/openapi/openapi-tag.registry.d.ts +80 -0
- package/dist/core/openapi/openapi-tag.registry.d.ts.map +1 -0
- package/dist/core/openapi/openapi-tag.registry.js +72 -0
- package/dist/core/openapi/openapi-tag.registry.js.map +1 -0
- package/dist/core/principal/index.d.ts +6 -0
- package/dist/core/principal/index.d.ts.map +1 -0
- package/dist/core/principal/index.js +3 -0
- package/dist/core/principal/index.js.map +1 -0
- package/dist/core/principal/principal.types.d.ts +222 -0
- package/dist/core/principal/principal.types.d.ts.map +1 -0
- package/dist/core/principal/principal.types.js +22 -0
- package/dist/core/principal/principal.types.js.map +1 -0
- package/dist/core/registry/index.d.ts +4 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/index.js +19 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/registry/registry-freeze.service.d.ts +14 -0
- package/dist/core/registry/registry-freeze.service.d.ts.map +1 -0
- package/dist/core/registry/registry-freeze.service.js +55 -0
- package/dist/core/registry/registry-freeze.service.js.map +1 -0
- package/dist/core/registry/registry.d.ts +268 -0
- package/dist/core/registry/registry.d.ts.map +1 -0
- package/dist/core/registry/registry.js +351 -0
- package/dist/core/registry/registry.js.map +1 -0
- package/dist/core/registry/testing.d.ts +29 -0
- package/dist/core/registry/testing.d.ts.map +1 -0
- package/dist/core/registry/testing.js +63 -0
- package/dist/core/registry/testing.js.map +1 -0
- package/dist/doctor/doctor-check.interface.d.ts +100 -0
- package/dist/doctor/doctor-check.interface.d.ts.map +1 -0
- package/dist/doctor/doctor-check.interface.js +95 -0
- package/dist/doctor/doctor-check.interface.js.map +1 -0
- package/dist/doctor/doctor-check.registry.d.ts +37 -0
- package/dist/doctor/doctor-check.registry.d.ts.map +1 -0
- package/dist/doctor/doctor-check.registry.js +96 -0
- package/dist/doctor/doctor-check.registry.js.map +1 -0
- package/dist/doctor/doctor.controller.factory.d.ts +29 -0
- package/dist/doctor/doctor.controller.factory.d.ts.map +1 -0
- package/dist/doctor/doctor.controller.factory.js +121 -0
- package/dist/doctor/doctor.controller.factory.js.map +1 -0
- package/dist/doctor/doctor.module.d.ts +78 -0
- package/dist/doctor/doctor.module.d.ts.map +1 -0
- package/dist/doctor/doctor.module.js +158 -0
- package/dist/doctor/doctor.module.js.map +1 -0
- package/dist/doctor/doctor.options.d.ts +39 -0
- package/dist/doctor/doctor.options.d.ts.map +1 -0
- package/dist/doctor/doctor.options.js +21 -0
- package/dist/doctor/doctor.options.js.map +1 -0
- package/dist/doctor/doctor.service.d.ts +80 -0
- package/dist/doctor/doctor.service.d.ts.map +1 -0
- package/dist/doctor/doctor.service.js +301 -0
- package/dist/doctor/doctor.service.js.map +1 -0
- package/dist/doctor/dto/doctor-query.dto.d.ts +15 -0
- package/dist/doctor/dto/doctor-query.dto.d.ts.map +1 -0
- package/dist/doctor/dto/doctor-query.dto.js +16 -0
- package/dist/doctor/dto/doctor-query.dto.js.map +1 -0
- package/dist/doctor/dto/doctor-report.dto.d.ts +27 -0
- package/dist/doctor/dto/doctor-report.dto.d.ts.map +1 -0
- package/dist/doctor/dto/doctor-report.dto.js +23 -0
- package/dist/doctor/dto/doctor-report.dto.js.map +1 -0
- package/dist/doctor/egress/classify-host.d.ts +73 -0
- package/dist/doctor/egress/classify-host.d.ts.map +1 -0
- package/dist/doctor/egress/classify-host.js +210 -0
- package/dist/doctor/egress/classify-host.js.map +1 -0
- package/dist/doctor/egress/egress.registry.d.ts +34 -0
- package/dist/doctor/egress/egress.registry.d.ts.map +1 -0
- package/dist/doctor/egress/egress.registry.js +70 -0
- package/dist/doctor/egress/egress.registry.js.map +1 -0
- package/dist/doctor/egress/egress.types.d.ts +135 -0
- package/dist/doctor/egress/egress.types.d.ts.map +1 -0
- package/dist/doctor/egress/egress.types.js +42 -0
- package/dist/doctor/egress/egress.types.js.map +1 -0
- package/dist/doctor/egress/index.d.ts +6 -0
- package/dist/doctor/egress/index.d.ts.map +1 -0
- package/dist/doctor/egress/index.js +23 -0
- package/dist/doctor/egress/index.js.map +1 -0
- package/dist/doctor/egress/network-egress.doctor-check.d.ts +78 -0
- package/dist/doctor/egress/network-egress.doctor-check.d.ts.map +1 -0
- package/dist/doctor/egress/network-egress.doctor-check.js +226 -0
- package/dist/doctor/egress/network-egress.doctor-check.js.map +1 -0
- package/dist/doctor/index.d.ts +19 -0
- package/dist/doctor/index.d.ts.map +1 -0
- package/dist/doctor/index.js +66 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/support-bundle/index.d.ts +12 -0
- package/dist/doctor/support-bundle/index.d.ts.map +1 -0
- package/dist/doctor/support-bundle/index.js +32 -0
- package/dist/doctor/support-bundle/index.js.map +1 -0
- package/dist/doctor/support-bundle/redact.d.ts +76 -0
- package/dist/doctor/support-bundle/redact.d.ts.map +1 -0
- package/dist/doctor/support-bundle/redact.js +236 -0
- package/dist/doctor/support-bundle/redact.js.map +1 -0
- package/dist/doctor/support-bundle/sections/doctor.section.d.ts +81 -0
- package/dist/doctor/support-bundle/sections/doctor.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/doctor.section.js +83 -0
- package/dist/doctor/support-bundle/sections/doctor.section.js.map +1 -0
- package/dist/doctor/support-bundle/sections/egress.section.d.ts +73 -0
- package/dist/doctor/support-bundle/sections/egress.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/egress.section.js +97 -0
- package/dist/doctor/support-bundle/sections/egress.section.js.map +1 -0
- package/dist/doctor/support-bundle/sections/meta.section.d.ts +39 -0
- package/dist/doctor/support-bundle/sections/meta.section.d.ts.map +1 -0
- package/dist/doctor/support-bundle/sections/meta.section.js +89 -0
- package/dist/doctor/support-bundle/sections/meta.section.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts +100 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.js +59 -0
- package/dist/doctor/support-bundle/support-bundle-section.interface.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.controller.d.ts +57 -0
- package/dist/doctor/support-bundle/support-bundle.controller.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.controller.js +141 -0
- package/dist/doctor/support-bundle/support-bundle.controller.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.options.d.ts +92 -0
- package/dist/doctor/support-bundle/support-bundle.options.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.options.js +100 -0
- package/dist/doctor/support-bundle/support-bundle.options.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.registry.d.ts +38 -0
- package/dist/doctor/support-bundle/support-bundle.registry.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.registry.js +90 -0
- package/dist/doctor/support-bundle/support-bundle.registry.js.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.service.d.ts +63 -0
- package/dist/doctor/support-bundle/support-bundle.service.d.ts.map +1 -0
- package/dist/doctor/support-bundle/support-bundle.service.js +244 -0
- package/dist/doctor/support-bundle/support-bundle.service.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/otel-core/index.d.ts +9 -0
- package/dist/otel-core/index.d.ts.map +1 -0
- package/dist/otel-core/index.js +58 -0
- package/dist/otel-core/index.js.map +1 -0
- package/dist/otel-core/metrics/gauge-provider.d.ts +44 -0
- package/dist/otel-core/metrics/gauge-provider.d.ts.map +1 -0
- package/dist/otel-core/metrics/gauge-provider.js +37 -0
- package/dist/otel-core/metrics/gauge-provider.js.map +1 -0
- package/dist/otel-core/metrics/labels.d.ts +79 -0
- package/dist/otel-core/metrics/labels.d.ts.map +1 -0
- package/dist/otel-core/metrics/labels.js +135 -0
- package/dist/otel-core/metrics/labels.js.map +1 -0
- package/dist/otel-core/metrics/metric-name.registry.d.ts +130 -0
- package/dist/otel-core/metrics/metric-name.registry.d.ts.map +1 -0
- package/dist/otel-core/metrics/metric-name.registry.js +134 -0
- package/dist/otel-core/metrics/metric-name.registry.js.map +1 -0
- package/dist/otel-core/metrics/metrics-host.service.d.ts +163 -0
- package/dist/otel-core/metrics/metrics-host.service.d.ts.map +1 -0
- package/dist/otel-core/metrics/metrics-host.service.js +344 -0
- package/dist/otel-core/metrics/metrics-host.service.js.map +1 -0
- package/dist/otel-core/metrics/otel-metrics.module.d.ts +54 -0
- package/dist/otel-core/metrics/otel-metrics.module.d.ts.map +1 -0
- package/dist/otel-core/metrics/otel-metrics.module.js +83 -0
- package/dist/otel-core/metrics/otel-metrics.module.js.map +1 -0
- package/dist/otel-core/sdk/index.d.ts +5 -0
- package/dist/otel-core/sdk/index.d.ts.map +1 -0
- package/dist/otel-core/sdk/index.js +27 -0
- package/dist/otel-core/sdk/index.js.map +1 -0
- package/dist/otel-core/sdk/initialize-otel.d.ts +126 -0
- package/dist/otel-core/sdk/initialize-otel.d.ts.map +1 -0
- package/dist/otel-core/sdk/initialize-otel.js +204 -0
- package/dist/otel-core/sdk/initialize-otel.js.map +1 -0
- package/dist/otel-core/sdk/instance-id.d.ts +29 -0
- package/dist/otel-core/sdk/instance-id.d.ts.map +1 -0
- package/dist/otel-core/sdk/instance-id.js +65 -0
- package/dist/otel-core/sdk/instance-id.js.map +1 -0
- package/dist/otel-core/sdk/service-name.d.ts +28 -0
- package/dist/otel-core/sdk/service-name.d.ts.map +1 -0
- package/dist/otel-core/sdk/service-name.js +63 -0
- package/dist/otel-core/sdk/service-name.js.map +1 -0
- package/dist/otel-core/sdk/telemetry-gate.d.ts +116 -0
- package/dist/otel-core/sdk/telemetry-gate.d.ts.map +1 -0
- package/dist/otel-core/sdk/telemetry-gate.js +297 -0
- package/dist/otel-core/sdk/telemetry-gate.js.map +1 -0
- package/dist/otel-core/spans/request-span-attributes.d.ts +58 -0
- package/dist/otel-core/spans/request-span-attributes.d.ts.map +1 -0
- package/dist/otel-core/spans/request-span-attributes.js +155 -0
- package/dist/otel-core/spans/request-span-attributes.js.map +1 -0
- package/dist/otel-core/spans/trace.decorator.d.ts +36 -0
- package/dist/otel-core/spans/trace.decorator.d.ts.map +1 -0
- package/dist/otel-core/spans/trace.decorator.js +74 -0
- package/dist/otel-core/spans/trace.decorator.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts +15 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js +50 -0
- package/dist/telemetry/assistant/telemetry-ai-enabled.guard.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts +14 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.js +178 -0
- package/dist/telemetry/assistant/telemetry-assistant.controller.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts +147 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.js +495 -0
- package/dist/telemetry/assistant/telemetry-assistant.metrics.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.d.ts +216 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.js +1256 -0
- package/dist/telemetry/assistant/telemetry-assistant.service.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts +69 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.js +471 -0
- package/dist/telemetry/assistant/telemetry-assistant.sql.js.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts +15 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.d.ts.map +1 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.js +68 -0
- package/dist/telemetry/assistant/telemetry-assistant.sse.js.map +1 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts +92 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.d.ts.map +1 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.js +41 -0
- package/dist/telemetry/connection/dto/telemetry-connection.dto.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts +45 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.js +303 -0
- package/dist/telemetry/connection/telemetry-connection-admin.service.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.d.ts +41 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.js +187 -0
- package/dist/telemetry/connection/telemetry-connection-test.service.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.controller.d.ts +14 -0
- package/dist/telemetry/connection/telemetry-connection.controller.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.controller.js +192 -0
- package/dist/telemetry/connection/telemetry-connection.controller.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.schema.d.ts +28 -0
- package/dist/telemetry/connection/telemetry-connection.schema.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.schema.js +106 -0
- package/dist/telemetry/connection/telemetry-connection.schema.js.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.service.d.ts +197 -0
- package/dist/telemetry/connection/telemetry-connection.service.d.ts.map +1 -0
- package/dist/telemetry/connection/telemetry-connection.service.js +461 -0
- package/dist/telemetry/connection/telemetry-connection.service.js.map +1 -0
- package/dist/telemetry/dashboard/sql-literals.d.ts +19 -0
- package/dist/telemetry/dashboard/sql-literals.d.ts.map +1 -0
- package/dist/telemetry/dashboard/sql-literals.js +75 -0
- package/dist/telemetry/dashboard/sql-literals.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts +14 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.js +277 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.controller.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +112 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js +904 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts +212 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.js +486 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.sql.js.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +235 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +269 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -0
- package/dist/telemetry/dashboard/verdict-policy.d.ts +51 -0
- package/dist/telemetry/dashboard/verdict-policy.d.ts.map +1 -0
- package/dist/telemetry/dashboard/verdict-policy.js +77 -0
- package/dist/telemetry/dashboard/verdict-policy.js.map +1 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts +21 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.d.ts.map +1 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js +59 -0
- package/dist/telemetry/doctor/egress/greptimedb.egress.contributor.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.js +69 -0
- package/dist/telemetry/doctor/telemetry-connection.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts +33 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.js +105 -0
- package/dist/telemetry/doctor/telemetry-export.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts +38 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js +104 -0
- package/dist/telemetry/doctor/telemetry-freshness.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js +65 -0
- package/dist/telemetry/doctor/telemetry-reachable.doctor-check.js.map +1 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts +23 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.d.ts.map +1 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.js +91 -0
- package/dist/telemetry/doctor/telemetry-tables.doctor-check.js.map +1 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.d.ts +14 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.js +29 -0
- package/dist/telemetry/dto/telemetry-assistant.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-config.dto.d.ts +59 -0
- package/dist/telemetry/dto/telemetry-config.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-config.dto.js +18 -0
- package/dist/telemetry/dto/telemetry-config.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +397 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.js +118 -0
- package/dist/telemetry/dto/telemetry-dashboard.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-query.dto.d.ts +44 -0
- package/dist/telemetry/dto/telemetry-query.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-query.dto.js +42 -0
- package/dist/telemetry/dto/telemetry-query.dto.js.map +1 -0
- package/dist/telemetry/dto/telemetry-status.dto.d.ts +22 -0
- package/dist/telemetry/dto/telemetry-status.dto.d.ts.map +1 -0
- package/dist/telemetry/dto/telemetry-status.dto.js +12 -0
- package/dist/telemetry/dto/telemetry-status.dto.js.map +1 -0
- package/dist/telemetry/export/parquet-writer.loader.d.ts +13 -0
- package/dist/telemetry/export/parquet-writer.loader.d.ts.map +1 -0
- package/dist/telemetry/export/parquet-writer.loader.js +29 -0
- package/dist/telemetry/export/parquet-writer.loader.js.map +1 -0
- package/dist/telemetry/export/telemetry-export.service.d.ts +39 -0
- package/dist/telemetry/export/telemetry-export.service.d.ts.map +1 -0
- package/dist/telemetry/export/telemetry-export.service.js +185 -0
- package/dist/telemetry/export/telemetry-export.service.js.map +1 -0
- package/dist/telemetry/greptime/greptime-host.d.ts +44 -0
- package/dist/telemetry/greptime/greptime-host.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime-host.js +114 -0
- package/dist/telemetry/greptime/greptime-host.js.map +1 -0
- package/dist/telemetry/greptime/greptime.client.d.ts +171 -0
- package/dist/telemetry/greptime/greptime.client.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime.client.js +352 -0
- package/dist/telemetry/greptime/greptime.client.js.map +1 -0
- package/dist/telemetry/greptime/greptime.errors.d.ts +59 -0
- package/dist/telemetry/greptime/greptime.errors.d.ts.map +1 -0
- package/dist/telemetry/greptime/greptime.errors.js +100 -0
- package/dist/telemetry/greptime/greptime.errors.js.map +1 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.d.ts +27 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.d.ts.map +1 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.js +123 -0
- package/dist/telemetry/handlers/telemetry-retention.handler.js.map +1 -0
- package/dist/telemetry/index.d.ts +37 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +97 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/internal/blank-secret.d.ts +3 -0
- package/dist/telemetry/internal/blank-secret.d.ts.map +1 -0
- package/dist/telemetry/internal/blank-secret.js +14 -0
- package/dist/telemetry/internal/blank-secret.js.map +1 -0
- package/dist/telemetry/internal/csv.d.ts +9 -0
- package/dist/telemetry/internal/csv.d.ts.map +1 -0
- package/dist/telemetry/internal/csv.js +23 -0
- package/dist/telemetry/internal/csv.js.map +1 -0
- package/dist/telemetry/internal/sse.d.ts +23 -0
- package/dist/telemetry/internal/sse.d.ts.map +1 -0
- package/dist/telemetry/internal/sse.js +43 -0
- package/dist/telemetry/internal/sse.js.map +1 -0
- package/dist/telemetry/metrics/groups/database.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/database.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/database.metric-group.js +159 -0
- package/dist/telemetry/metrics/groups/database.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/host.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/host.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/host.metric-group.js +146 -0
- package/dist/telemetry/metrics/groups/host.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.js +159 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.js +144 -0
- package/dist/telemetry/metrics/groups/pipeline.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.js +163 -0
- package/dist/telemetry/metrics/groups/queue.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts +7 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.js +103 -0
- package/dist/telemetry/metrics/groups/uptime.metric-group.js.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.d.ts +324 -0
- package/dist/telemetry/metrics/metric-catalog.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.d.ts +30 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.js +37 -0
- package/dist/telemetry/metrics/metric-catalog.helpers.js.map +1 -0
- package/dist/telemetry/metrics/metric-catalog.js +180 -0
- package/dist/telemetry/metrics/metric-catalog.js.map +1 -0
- package/dist/telemetry/metrics/metric-group-registry.service.d.ts +59 -0
- package/dist/telemetry/metrics/metric-group-registry.service.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group-registry.service.js +99 -0
- package/dist/telemetry/metrics/metric-group-registry.service.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.d.ts +113 -0
- package/dist/telemetry/metrics/metric-group.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.js +647 -0
- package/dist/telemetry/metrics/metric-group.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.manifest.d.ts +2 -0
- package/dist/telemetry/metrics/metric-group.manifest.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.manifest.js +30 -0
- package/dist/telemetry/metrics/metric-group.manifest.js.map +1 -0
- package/dist/telemetry/metrics/metric-group.registry.d.ts +109 -0
- package/dist/telemetry/metrics/metric-group.registry.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-group.registry.js +181 -0
- package/dist/telemetry/metrics/metric-group.registry.js.map +1 -0
- package/dist/telemetry/metrics/metric-sql.d.ts +98 -0
- package/dist/telemetry/metrics/metric-sql.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-sql.js +259 -0
- package/dist/telemetry/metrics/metric-sql.js.map +1 -0
- package/dist/telemetry/metrics/metric-values.d.ts +19 -0
- package/dist/telemetry/metrics/metric-values.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-values.js +97 -0
- package/dist/telemetry/metrics/metric-values.js.map +1 -0
- package/dist/telemetry/metrics/metric-verdict.d.ts +20 -0
- package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -0
- package/dist/telemetry/metrics/metric-verdict.js +218 -0
- package/dist/telemetry/metrics/metric-verdict.js.map +1 -0
- package/dist/telemetry/ports.d.ts +575 -0
- package/dist/telemetry/ports.d.ts.map +1 -0
- package/dist/telemetry/ports.js +78 -0
- package/dist/telemetry/ports.js.map +1 -0
- package/dist/telemetry/query/sql-guard.d.ts +71 -0
- package/dist/telemetry/query/sql-guard.d.ts.map +1 -0
- package/dist/telemetry/query/sql-guard.js +258 -0
- package/dist/telemetry/query/sql-guard.js.map +1 -0
- package/dist/telemetry/query/telemetry-availability.d.ts +11 -0
- package/dist/telemetry/query/telemetry-availability.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-availability.js +55 -0
- package/dist/telemetry/query/telemetry-availability.js.map +1 -0
- package/dist/telemetry/query/telemetry-query.errors.d.ts +48 -0
- package/dist/telemetry/query/telemetry-query.errors.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-query.errors.js +100 -0
- package/dist/telemetry/query/telemetry-query.errors.js.map +1 -0
- package/dist/telemetry/query/telemetry-query.service.d.ts +57 -0
- package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-query.service.js +194 -0
- package/dist/telemetry/query/telemetry-query.service.js.map +1 -0
- package/dist/telemetry/query/telemetry-schema.service.d.ts +36 -0
- package/dist/telemetry/query/telemetry-schema.service.d.ts.map +1 -0
- package/dist/telemetry/query/telemetry-schema.service.js +154 -0
- package/dist/telemetry/query/telemetry-schema.service.js.map +1 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +29 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts.map +1 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.js +27 -0
- package/dist/telemetry/stack/dto/telemetry-stack.dto.js.map +1 -0
- package/dist/telemetry/stack/stack-agent.client.d.ts +76 -0
- package/dist/telemetry/stack/stack-agent.client.d.ts.map +1 -0
- package/dist/telemetry/stack/stack-agent.client.js +208 -0
- package/dist/telemetry/stack/stack-agent.client.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts +43 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.js +159 -0
- package/dist/telemetry/stack/telemetry-stack-deploy.handler.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.controller.d.ts +14 -0
- package/dist/telemetry/stack/telemetry-stack.controller.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.controller.js +107 -0
- package/dist/telemetry/stack/telemetry-stack.controller.js.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.service.d.ts +19 -0
- package/dist/telemetry/stack/telemetry-stack.service.d.ts.map +1 -0
- package/dist/telemetry/stack/telemetry-stack.service.js +122 -0
- package/dist/telemetry/stack/telemetry-stack.service.js.map +1 -0
- package/dist/telemetry/tasks/telemetry-retention.task.d.ts +8 -0
- package/dist/telemetry/tasks/telemetry-retention.task.d.ts.map +1 -0
- package/dist/telemetry/tasks/telemetry-retention.task.js +61 -0
- package/dist/telemetry/tasks/telemetry-retention.task.js.map +1 -0
- package/dist/telemetry/telemetry-admin.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-admin.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-admin.controller.js +148 -0
- package/dist/telemetry/telemetry-admin.controller.js.map +1 -0
- package/dist/telemetry/telemetry-config.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-config.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-config.controller.js +73 -0
- package/dist/telemetry/telemetry-config.controller.js.map +1 -0
- package/dist/telemetry/telemetry-explorer.controller.d.ts +14 -0
- package/dist/telemetry/telemetry-explorer.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry-explorer.controller.js +193 -0
- package/dist/telemetry/telemetry-explorer.controller.js.map +1 -0
- package/dist/telemetry/telemetry-settings.service.d.ts +85 -0
- package/dist/telemetry/telemetry-settings.service.d.ts.map +1 -0
- package/dist/telemetry/telemetry-settings.service.js +278 -0
- package/dist/telemetry/telemetry-settings.service.js.map +1 -0
- package/dist/telemetry/telemetry-status.service.d.ts +28 -0
- package/dist/telemetry/telemetry-status.service.d.ts.map +1 -0
- package/dist/telemetry/telemetry-status.service.js +185 -0
- package/dist/telemetry/telemetry-status.service.js.map +1 -0
- package/dist/telemetry/telemetry-support-bundle.section.d.ts +163 -0
- package/dist/telemetry/telemetry-support-bundle.section.d.ts.map +1 -0
- package/dist/telemetry/telemetry-support-bundle.section.js +187 -0
- package/dist/telemetry/telemetry-support-bundle.section.js.map +1 -0
- package/dist/telemetry/telemetry.module.d.ts +35 -0
- package/dist/telemetry/telemetry.module.d.ts.map +1 -0
- package/dist/telemetry/telemetry.module.js +210 -0
- package/dist/telemetry/telemetry.module.js.map +1 -0
- package/dist/telemetry/telemetry.options.d.ts +176 -0
- package/dist/telemetry/telemetry.options.d.ts.map +1 -0
- package/dist/telemetry/telemetry.options.js +246 -0
- package/dist/telemetry/telemetry.options.js.map +1 -0
- package/dist/telemetry/telemetry.permissions.d.ts +76 -0
- package/dist/telemetry/telemetry.permissions.d.ts.map +1 -0
- package/dist/telemetry/telemetry.permissions.js +85 -0
- package/dist/telemetry/telemetry.permissions.js.map +1 -0
- package/dist/telemetry/telemetry.settings.d.ts +79 -0
- package/dist/telemetry/telemetry.settings.d.ts.map +1 -0
- package/dist/telemetry/telemetry.settings.js +92 -0
- package/dist/telemetry/telemetry.settings.js.map +1 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.d.ts +17 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.d.ts.map +1 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.js +128 -0
- package/dist/telemetry/testing/coach-metric-group.fixture.js.map +1 -0
- package/dist/telemetry/testing/conformance.d.ts +257 -0
- package/dist/telemetry/testing/conformance.d.ts.map +1 -0
- package/dist/telemetry/testing/conformance.js +626 -0
- package/dist/telemetry/testing/conformance.js.map +1 -0
- package/dist/telemetry/testing/index.d.ts +10 -0
- package/dist/telemetry/testing/index.d.ts.map +1 -0
- package/dist/telemetry/testing/index.js +41 -0
- package/dist/telemetry/testing/index.js.map +1 -0
- package/dist/telemetry/testing/metric-schema.fixture.d.ts +73 -0
- package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -0
- package/dist/telemetry/testing/metric-schema.fixture.js +362 -0
- package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -0
- package/dist/telemetry/testing/stub-ports.d.ts +46 -0
- package/dist/telemetry/testing/stub-ports.d.ts.map +1 -0
- package/dist/telemetry/testing/stub-ports.js +119 -0
- package/dist/telemetry/testing/stub-ports.js.map +1 -0
- package/dist/testing/conformance-suite.d.ts +106 -0
- package/dist/testing/conformance-suite.d.ts.map +1 -0
- package/dist/testing/conformance-suite.js +8 -0
- package/dist/testing/conformance-suite.js.map +1 -0
- package/dist/testing/conformance-suites.d.ts +14 -0
- package/dist/testing/conformance-suites.d.ts.map +1 -0
- package/dist/testing/conformance-suites.js +27 -0
- package/dist/testing/conformance-suites.js.map +1 -0
- package/dist/testing/host/in-memory-audit-sink.d.ts +23 -0
- package/dist/testing/host/in-memory-audit-sink.d.ts.map +1 -0
- package/dist/testing/host/in-memory-audit-sink.js +30 -0
- package/dist/testing/host/in-memory-audit-sink.js.map +1 -0
- package/dist/testing/host/in-memory-system-settings-store.d.ts +31 -0
- package/dist/testing/host/in-memory-system-settings-store.d.ts.map +1 -0
- package/dist/testing/host/in-memory-system-settings-store.js +54 -0
- package/dist/testing/host/in-memory-system-settings-store.js.map +1 -0
- package/dist/testing/host/index.d.ts +4 -0
- package/dist/testing/host/index.d.ts.map +1 -0
- package/dist/testing/host/index.js +13 -0
- package/dist/testing/host/index.js.map +1 -0
- package/dist/testing/host/test-platform-host.d.ts +35 -0
- package/dist/testing/host/test-platform-host.d.ts.map +1 -0
- package/dist/testing/host/test-platform-host.js +81 -0
- package/dist/testing/host/test-platform-host.js.map +1 -0
- package/dist/testing/index.d.ts +12 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +32 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/prisma-schema.d.ts +99 -0
- package/dist/testing/prisma-schema.d.ts.map +1 -0
- package/dist/testing/prisma-schema.js +175 -0
- package/dist/testing/prisma-schema.js.map +1 -0
- package/dist/testing/run-platform-conformance.d.ts +70 -0
- package/dist/testing/run-platform-conformance.d.ts.map +1 -0
- package/dist/testing/run-platform-conformance.js +77 -0
- package/dist/testing/run-platform-conformance.js.map +1 -0
- package/dist/testing/suites/cron-enqueue-only.d.ts +46 -0
- package/dist/testing/suites/cron-enqueue-only.d.ts.map +1 -0
- package/dist/testing/suites/cron-enqueue-only.js +177 -0
- package/dist/testing/suites/cron-enqueue-only.js.map +1 -0
- package/dist/testing/suites/user-owned-data.d.ts +86 -0
- package/dist/testing/suites/user-owned-data.d.ts.map +1 -0
- package/dist/testing/suites/user-owned-data.js +329 -0
- package/dist/testing/suites/user-owned-data.js.map +1 -0
- package/package.json +129 -4
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// `@marinoscar/platform-api/otel-core`: the emitting half of telemetry
|
|
3
|
+
// (issue #700). The metrics host and its name registry, label bounding, the
|
|
4
|
+
// gauge-provider seam, the request span attributes hook, `@Trace()`, and the
|
|
5
|
+
// Nest-free `sdk` half re-exported. Documented in ./README.md.
|
|
6
|
+
//
|
|
7
|
+
// Import `@marinoscar/platform-api/otel-core/sdk`, never this index, from the
|
|
8
|
+
// file that installs the SDK: this one loads `@nestjs/common`.
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
21
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.Trace = exports.requestSpanAttributesHook = exports.registerRequestSpanAttributes = exports.hasBearer = exports.ATTR_HTTP_ROUTE = exports.ATTR_APP_ROUTE_MATCHED = exports.ATTR_APP_REQUEST_BEARER = exports.OtelMetricsModule = exports.MetricsHostService = exports.METRICS_HOST_OPTIONS = exports.APP_METER_NAME = exports.createRegisteredGauge = exports.shapeLabel = exports.nonNegative = exports.enumLabel = exports.UNKNOWN_LABEL = exports.OTHER_LABEL = exports.MAX_DISTINCT_VALUES = exports.LabelBudget = exports.registerAppMetrics = exports.assertAppMetric = exports.appMetricRegistry = exports.APP_METRIC_NAME_PATTERN = exports.APP_METRIC_KEY_PATTERN = exports.APP_METRIC_ATTRIBUTE_KEY_PATTERN = void 0;
|
|
25
|
+
__exportStar(require("./sdk/index"), exports);
|
|
26
|
+
var metric_name_registry_1 = require("./metrics/metric-name.registry");
|
|
27
|
+
Object.defineProperty(exports, "APP_METRIC_ATTRIBUTE_KEY_PATTERN", { enumerable: true, get: function () { return metric_name_registry_1.APP_METRIC_ATTRIBUTE_KEY_PATTERN; } });
|
|
28
|
+
Object.defineProperty(exports, "APP_METRIC_KEY_PATTERN", { enumerable: true, get: function () { return metric_name_registry_1.APP_METRIC_KEY_PATTERN; } });
|
|
29
|
+
Object.defineProperty(exports, "APP_METRIC_NAME_PATTERN", { enumerable: true, get: function () { return metric_name_registry_1.APP_METRIC_NAME_PATTERN; } });
|
|
30
|
+
Object.defineProperty(exports, "appMetricRegistry", { enumerable: true, get: function () { return metric_name_registry_1.appMetricRegistry; } });
|
|
31
|
+
Object.defineProperty(exports, "assertAppMetric", { enumerable: true, get: function () { return metric_name_registry_1.assertAppMetric; } });
|
|
32
|
+
Object.defineProperty(exports, "registerAppMetrics", { enumerable: true, get: function () { return metric_name_registry_1.registerAppMetrics; } });
|
|
33
|
+
var labels_1 = require("./metrics/labels");
|
|
34
|
+
Object.defineProperty(exports, "LabelBudget", { enumerable: true, get: function () { return labels_1.LabelBudget; } });
|
|
35
|
+
Object.defineProperty(exports, "MAX_DISTINCT_VALUES", { enumerable: true, get: function () { return labels_1.MAX_DISTINCT_VALUES; } });
|
|
36
|
+
Object.defineProperty(exports, "OTHER_LABEL", { enumerable: true, get: function () { return labels_1.OTHER_LABEL; } });
|
|
37
|
+
Object.defineProperty(exports, "UNKNOWN_LABEL", { enumerable: true, get: function () { return labels_1.UNKNOWN_LABEL; } });
|
|
38
|
+
Object.defineProperty(exports, "enumLabel", { enumerable: true, get: function () { return labels_1.enumLabel; } });
|
|
39
|
+
Object.defineProperty(exports, "nonNegative", { enumerable: true, get: function () { return labels_1.nonNegative; } });
|
|
40
|
+
Object.defineProperty(exports, "shapeLabel", { enumerable: true, get: function () { return labels_1.shapeLabel; } });
|
|
41
|
+
var gauge_provider_1 = require("./metrics/gauge-provider");
|
|
42
|
+
Object.defineProperty(exports, "createRegisteredGauge", { enumerable: true, get: function () { return gauge_provider_1.createRegisteredGauge; } });
|
|
43
|
+
var metrics_host_service_1 = require("./metrics/metrics-host.service");
|
|
44
|
+
Object.defineProperty(exports, "APP_METER_NAME", { enumerable: true, get: function () { return metrics_host_service_1.APP_METER_NAME; } });
|
|
45
|
+
Object.defineProperty(exports, "METRICS_HOST_OPTIONS", { enumerable: true, get: function () { return metrics_host_service_1.METRICS_HOST_OPTIONS; } });
|
|
46
|
+
Object.defineProperty(exports, "MetricsHostService", { enumerable: true, get: function () { return metrics_host_service_1.MetricsHostService; } });
|
|
47
|
+
var otel_metrics_module_1 = require("./metrics/otel-metrics.module");
|
|
48
|
+
Object.defineProperty(exports, "OtelMetricsModule", { enumerable: true, get: function () { return otel_metrics_module_1.OtelMetricsModule; } });
|
|
49
|
+
var request_span_attributes_1 = require("./spans/request-span-attributes");
|
|
50
|
+
Object.defineProperty(exports, "ATTR_APP_REQUEST_BEARER", { enumerable: true, get: function () { return request_span_attributes_1.ATTR_APP_REQUEST_BEARER; } });
|
|
51
|
+
Object.defineProperty(exports, "ATTR_APP_ROUTE_MATCHED", { enumerable: true, get: function () { return request_span_attributes_1.ATTR_APP_ROUTE_MATCHED; } });
|
|
52
|
+
Object.defineProperty(exports, "ATTR_HTTP_ROUTE", { enumerable: true, get: function () { return request_span_attributes_1.ATTR_HTTP_ROUTE; } });
|
|
53
|
+
Object.defineProperty(exports, "hasBearer", { enumerable: true, get: function () { return request_span_attributes_1.hasBearer; } });
|
|
54
|
+
Object.defineProperty(exports, "registerRequestSpanAttributes", { enumerable: true, get: function () { return request_span_attributes_1.registerRequestSpanAttributes; } });
|
|
55
|
+
Object.defineProperty(exports, "requestSpanAttributesHook", { enumerable: true, get: function () { return request_span_attributes_1.requestSpanAttributesHook; } });
|
|
56
|
+
var trace_decorator_1 = require("./spans/trace.decorator");
|
|
57
|
+
Object.defineProperty(exports, "Trace", { enumerable: true, get: function () { return trace_decorator_1.Trace; } });
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/otel-core/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,4EAA4E;AAC5E,6EAA6E;AAC7E,+DAA+D;AAC/D,EAAE;AACF,8EAA8E;AAC9E,+DAA+D;;;;;;;;;;;;;;;;;AAE/D,8CAA4B;AAE5B,uEAWwC;AAVtC,wIAAA,gCAAgC,OAAA;AAChC,8HAAA,sBAAsB,OAAA;AACtB,+HAAA,uBAAuB,OAAA;AACvB,yHAAA,iBAAiB,OAAA;AACjB,uHAAA,eAAe,OAAA;AACf,0HAAA,kBAAkB,OAAA;AAMpB,2CAQ0B;AAPxB,qGAAA,WAAW,OAAA;AACX,6GAAA,mBAAmB,OAAA;AACnB,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AAEZ,2DAKkC;AAJhC,uHAAA,qBAAqB,OAAA;AAKvB,uEAKwC;AAJtC,sHAAA,cAAc,OAAA;AACd,4HAAA,oBAAoB,OAAA;AACpB,0HAAA,kBAAkB,OAAA;AAGpB,qEAAsG;AAA7F,wHAAA,iBAAiB,OAAA;AAE1B,2EAOyC;AANvC,kIAAA,uBAAuB,OAAA;AACvB,iIAAA,sBAAsB,OAAA;AACtB,0HAAA,eAAe,OAAA;AACf,oHAAA,SAAS,OAAA;AACT,wIAAA,6BAA6B,OAAA;AAC7B,oIAAA,yBAAyB,OAAA;AAE3B,2DAAmE;AAA1D,wGAAA,KAAK,OAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Meter, ObservableGauge } from '@opentelemetry/api';
|
|
2
|
+
import { type AppMetricKeys } from './metric-name.registry';
|
|
3
|
+
/**
|
|
4
|
+
* A registered metric's code key: one an app typed by augmenting
|
|
5
|
+
* `AppMetricKeys`, or any string (checked against the registry at run time).
|
|
6
|
+
*
|
|
7
|
+
* @stability experimental
|
|
8
|
+
*/
|
|
9
|
+
export type AppMetricKeyLike = (keyof AppMetricKeys & string) | (string & {});
|
|
10
|
+
/**
|
|
11
|
+
* What a gauge provider needs to follow the host's conventions.
|
|
12
|
+
*
|
|
13
|
+
* @stability stable
|
|
14
|
+
*/
|
|
15
|
+
export interface AppGaugeContext {
|
|
16
|
+
/** The `app` meter. */
|
|
17
|
+
meter: Meter;
|
|
18
|
+
/** The clock, in epoch milliseconds (a test seam). */
|
|
19
|
+
now: () => number;
|
|
20
|
+
/** Whether the runtime export gate is open; a callback queries nothing while it is closed. */
|
|
21
|
+
gateOpen: () => boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A gauge provider: creates its gauges and their callback from the context.
|
|
25
|
+
* Called once, and only when gauges are on for this process.
|
|
26
|
+
*
|
|
27
|
+
* @stability experimental
|
|
28
|
+
*/
|
|
29
|
+
export type GaugeProvider = (context: AppGaugeContext) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Creates the observable gauge DECLARED under `key` in the app-metric
|
|
32
|
+
* registry, with its registered name, unit and description. For gauge
|
|
33
|
+
* providers: the callback is theirs, the descriptor is the registry's.
|
|
34
|
+
*
|
|
35
|
+
* @param meter - The meter from {@link AppGaugeContext}.
|
|
36
|
+
* @param key - The gauge's registry key.
|
|
37
|
+
* @returns The created gauge.
|
|
38
|
+
* @throws RegistryError `UNKNOWN_ID` when no metric is declared under `key`;
|
|
39
|
+
* `Error` when the declared metric is not a gauge.
|
|
40
|
+
*
|
|
41
|
+
* @stability stable
|
|
42
|
+
*/
|
|
43
|
+
export declare function createRegisteredGauge(meter: Meter, key: AppMetricKeyLike): ObservableGauge;
|
|
44
|
+
//# sourceMappingURL=gauge-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge-provider.d.ts","sourceRoot":"","sources":["../../../src/otel-core/metrics/gauge-provider.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,sDAAsD;IACtD,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;AAE/D;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,GAAG,eAAe,CAI1F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// The gauge-provider seam (issue #606; generalised by issue #700)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// Observable gauges are different from counters and histograms: their
|
|
7
|
+
// callbacks QUERY something (a table, a fleet), so they belong to the module
|
|
8
|
+
// that owns that something, not to the metrics host. The host hands such a
|
|
9
|
+
// provider its meter, clock and export gate (`AppGaugeContext`), and only
|
|
10
|
+
// when gauges are on for this process; the provider creates its gauges from
|
|
11
|
+
// their registry declarations (`createRegisteredGauge`) and returns early
|
|
12
|
+
// from its callback while the gate is closed, so a deployment with telemetry
|
|
13
|
+
// off never pays for a single query.
|
|
14
|
+
// =============================================================================
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.createRegisteredGauge = createRegisteredGauge;
|
|
17
|
+
const metric_name_registry_1 = require("./metric-name.registry");
|
|
18
|
+
/**
|
|
19
|
+
* Creates the observable gauge DECLARED under `key` in the app-metric
|
|
20
|
+
* registry, with its registered name, unit and description. For gauge
|
|
21
|
+
* providers: the callback is theirs, the descriptor is the registry's.
|
|
22
|
+
*
|
|
23
|
+
* @param meter - The meter from {@link AppGaugeContext}.
|
|
24
|
+
* @param key - The gauge's registry key.
|
|
25
|
+
* @returns The created gauge.
|
|
26
|
+
* @throws RegistryError `UNKNOWN_ID` when no metric is declared under `key`;
|
|
27
|
+
* `Error` when the declared metric is not a gauge.
|
|
28
|
+
*
|
|
29
|
+
* @stability stable
|
|
30
|
+
*/
|
|
31
|
+
function createRegisteredGauge(meter, key) {
|
|
32
|
+
const def = metric_name_registry_1.appMetricRegistry.require(key);
|
|
33
|
+
if (def.kind !== 'gauge')
|
|
34
|
+
throw new Error(`App metric "${key}" is a ${def.kind}, not a gauge.`);
|
|
35
|
+
return meter.createObservableGauge(def.name, { description: def.description, unit: def.unit });
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=gauge-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge-provider.js","sourceRoot":"","sources":["../../../src/otel-core/metrics/gauge-provider.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,kEAAkE;AAClE,gFAAgF;AAChF,EAAE;AACF,sEAAsE;AACtE,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,qCAAqC;AACrC,gFAAgF;;AAiDhF,sDAIC;AAjDD,iEAA+E;AAgC/E;;;;;;;;;;;;GAYG;AACH,SAAgB,qBAAqB,CAAC,KAAY,EAAE,GAAqB;IACvE,MAAM,GAAG,GAAG,wCAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,UAAU,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACjG,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per attribute key, how many distinct free-form values are admitted before
|
|
3
|
+
* `other`, per process.
|
|
4
|
+
*
|
|
5
|
+
* @stability stable
|
|
6
|
+
*/
|
|
7
|
+
export declare const MAX_DISTINCT_VALUES = 100;
|
|
8
|
+
/**
|
|
9
|
+
* The label a value outside its bound (shape, budget or enum) is exported as.
|
|
10
|
+
*
|
|
11
|
+
* @stability stable
|
|
12
|
+
*/
|
|
13
|
+
export declare const OTHER_LABEL = "other";
|
|
14
|
+
/**
|
|
15
|
+
* The label an empty or missing value is exported as.
|
|
16
|
+
*
|
|
17
|
+
* @stability stable
|
|
18
|
+
*/
|
|
19
|
+
export declare const UNKNOWN_LABEL = "unknown";
|
|
20
|
+
/**
|
|
21
|
+
* The SHAPE half of `MetricsHostService.boundLabel`, with no distinct-value
|
|
22
|
+
* budget: `unknown` when empty, `other` when the value is not
|
|
23
|
+
* identifier-shaped (at most 64 characters of `[A-Za-z0-9_.:/@+-]`, never
|
|
24
|
+
* address-shaped), else the trimmed value. For a label that is functionally
|
|
25
|
+
* dependent on another, already-bounded one (a node's name beside its capped
|
|
26
|
+
* `node_id`), where a per-process budget would only fold real values into
|
|
27
|
+
* `other` without bounding anything.
|
|
28
|
+
*
|
|
29
|
+
* @param value - Any value; non-strings are `unknown`.
|
|
30
|
+
* @returns The trimmed value, `other` or `unknown`.
|
|
31
|
+
*
|
|
32
|
+
* @stability stable
|
|
33
|
+
*/
|
|
34
|
+
export declare function shapeLabel(value: unknown): string;
|
|
35
|
+
/**
|
|
36
|
+
* An enumerated value, or `other`.
|
|
37
|
+
*
|
|
38
|
+
* @param value - The value to check.
|
|
39
|
+
* @param allowed - The values the attribute admits.
|
|
40
|
+
* @returns `value` when it is one of `allowed`, else `other`.
|
|
41
|
+
*
|
|
42
|
+
* @stability stable
|
|
43
|
+
*/
|
|
44
|
+
export declare function enumLabel(value: unknown, allowed: ReadonlySet<string>): string;
|
|
45
|
+
/**
|
|
46
|
+
* A non-negative finite number, or `null`: what a counter, histogram or
|
|
47
|
+
* duration accepts.
|
|
48
|
+
*
|
|
49
|
+
* @param value - The value to check.
|
|
50
|
+
* @returns `value`, or `null` when it is not a non-negative finite number.
|
|
51
|
+
*
|
|
52
|
+
* @stability stable
|
|
53
|
+
*/
|
|
54
|
+
export declare function nonNegative(value: unknown): number | null;
|
|
55
|
+
/**
|
|
56
|
+
* Per-key distinct-value budgets: the stateful half of label bounding.
|
|
57
|
+
*
|
|
58
|
+
* @stability experimental
|
|
59
|
+
*/
|
|
60
|
+
export declare class LabelBudget {
|
|
61
|
+
private readonly maxDistinct;
|
|
62
|
+
/** Distinct free-form values admitted so far, per attribute key. */
|
|
63
|
+
private readonly seen;
|
|
64
|
+
/**
|
|
65
|
+
* @param maxDistinct - Distinct values admitted per key before `other`.
|
|
66
|
+
*/
|
|
67
|
+
constructor(maxDistinct?: number);
|
|
68
|
+
/**
|
|
69
|
+
* A free-form string as a low-cardinality label: `unknown` when empty,
|
|
70
|
+
* `other` when it does not look like an identifier, is too long, or would
|
|
71
|
+
* be the `maxDistinct + 1`-th distinct value for `key`.
|
|
72
|
+
*
|
|
73
|
+
* @param key - The budget to charge (usually the attribute key).
|
|
74
|
+
* @param value - The raw value.
|
|
75
|
+
* @returns The bounded label.
|
|
76
|
+
*/
|
|
77
|
+
bound(key: string, value: unknown): string;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/otel-core/metrics/labels.ts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAQvC;;;;GAIG;AACH,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEzD;AAED;;;;GAIG;AACH,qBAAa,WAAW;IAOV,OAAO,CAAC,QAAQ,CAAC,WAAW;IANxC,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkC;IAEvD;;OAEG;gBAC0B,WAAW,GAAE,MAA4B;IAEtE;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM;CAc3C"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Label bounding (issue #600; packaged by issue #700)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// Attributes become GreptimeDB columns and series, so every label is bounded:
|
|
7
|
+
// job type, status/outcome, executor, provider, model, operation, channel and
|
|
8
|
+
// event key, NEVER a user id, an email, a URL or an error message. A
|
|
9
|
+
// free-form string must look like an identifier (at most 64 characters of
|
|
10
|
+
// `[A-Za-z0-9_.:/@+-]`, never address-shaped), and each attribute key admits
|
|
11
|
+
// at most `MAX_DISTINCT_VALUES` distinct values per process; anything else
|
|
12
|
+
// becomes `other`. Enumerated attributes (outcomes) are checked against their
|
|
13
|
+
// allowed set and fall back to `other` too.
|
|
14
|
+
// =============================================================================
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.LabelBudget = exports.UNKNOWN_LABEL = exports.OTHER_LABEL = exports.MAX_DISTINCT_VALUES = void 0;
|
|
17
|
+
exports.shapeLabel = shapeLabel;
|
|
18
|
+
exports.enumLabel = enumLabel;
|
|
19
|
+
exports.nonNegative = nonNegative;
|
|
20
|
+
/**
|
|
21
|
+
* Per attribute key, how many distinct free-form values are admitted before
|
|
22
|
+
* `other`, per process.
|
|
23
|
+
*
|
|
24
|
+
* @stability stable
|
|
25
|
+
*/
|
|
26
|
+
exports.MAX_DISTINCT_VALUES = 100;
|
|
27
|
+
/** The longest free-form label kept as is. */
|
|
28
|
+
const MAX_LABEL_LENGTH = 64;
|
|
29
|
+
const LABEL_PATTERN = /^[A-Za-z0-9_.:/@+-]+$/;
|
|
30
|
+
/** `@` is allowed for versioned model ids (`model@20240620`), never for an address. */
|
|
31
|
+
const EMAIL_LIKE = /@[^@]*\./;
|
|
32
|
+
/**
|
|
33
|
+
* The label a value outside its bound (shape, budget or enum) is exported as.
|
|
34
|
+
*
|
|
35
|
+
* @stability stable
|
|
36
|
+
*/
|
|
37
|
+
exports.OTHER_LABEL = 'other';
|
|
38
|
+
/**
|
|
39
|
+
* The label an empty or missing value is exported as.
|
|
40
|
+
*
|
|
41
|
+
* @stability stable
|
|
42
|
+
*/
|
|
43
|
+
exports.UNKNOWN_LABEL = 'unknown';
|
|
44
|
+
/**
|
|
45
|
+
* The SHAPE half of `MetricsHostService.boundLabel`, with no distinct-value
|
|
46
|
+
* budget: `unknown` when empty, `other` when the value is not
|
|
47
|
+
* identifier-shaped (at most 64 characters of `[A-Za-z0-9_.:/@+-]`, never
|
|
48
|
+
* address-shaped), else the trimmed value. For a label that is functionally
|
|
49
|
+
* dependent on another, already-bounded one (a node's name beside its capped
|
|
50
|
+
* `node_id`), where a per-process budget would only fold real values into
|
|
51
|
+
* `other` without bounding anything.
|
|
52
|
+
*
|
|
53
|
+
* @param value - Any value; non-strings are `unknown`.
|
|
54
|
+
* @returns The trimmed value, `other` or `unknown`.
|
|
55
|
+
*
|
|
56
|
+
* @stability stable
|
|
57
|
+
*/
|
|
58
|
+
function shapeLabel(value) {
|
|
59
|
+
if (typeof value !== 'string')
|
|
60
|
+
return exports.UNKNOWN_LABEL;
|
|
61
|
+
const trimmed = value.trim();
|
|
62
|
+
if (trimmed.length === 0)
|
|
63
|
+
return exports.UNKNOWN_LABEL;
|
|
64
|
+
if (trimmed.length > MAX_LABEL_LENGTH || !LABEL_PATTERN.test(trimmed) || EMAIL_LIKE.test(trimmed)) {
|
|
65
|
+
return exports.OTHER_LABEL;
|
|
66
|
+
}
|
|
67
|
+
return trimmed;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* An enumerated value, or `other`.
|
|
71
|
+
*
|
|
72
|
+
* @param value - The value to check.
|
|
73
|
+
* @param allowed - The values the attribute admits.
|
|
74
|
+
* @returns `value` when it is one of `allowed`, else `other`.
|
|
75
|
+
*
|
|
76
|
+
* @stability stable
|
|
77
|
+
*/
|
|
78
|
+
function enumLabel(value, allowed) {
|
|
79
|
+
return typeof value === 'string' && allowed.has(value) ? value : exports.OTHER_LABEL;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* A non-negative finite number, or `null`: what a counter, histogram or
|
|
83
|
+
* duration accepts.
|
|
84
|
+
*
|
|
85
|
+
* @param value - The value to check.
|
|
86
|
+
* @returns `value`, or `null` when it is not a non-negative finite number.
|
|
87
|
+
*
|
|
88
|
+
* @stability stable
|
|
89
|
+
*/
|
|
90
|
+
function nonNegative(value) {
|
|
91
|
+
return typeof value === 'number' && Number.isFinite(value) && value >= 0 ? value : null;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Per-key distinct-value budgets: the stateful half of label bounding.
|
|
95
|
+
*
|
|
96
|
+
* @stability experimental
|
|
97
|
+
*/
|
|
98
|
+
class LabelBudget {
|
|
99
|
+
maxDistinct;
|
|
100
|
+
/** Distinct free-form values admitted so far, per attribute key. */
|
|
101
|
+
seen = new Map();
|
|
102
|
+
/**
|
|
103
|
+
* @param maxDistinct - Distinct values admitted per key before `other`.
|
|
104
|
+
*/
|
|
105
|
+
constructor(maxDistinct = exports.MAX_DISTINCT_VALUES) {
|
|
106
|
+
this.maxDistinct = maxDistinct;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* A free-form string as a low-cardinality label: `unknown` when empty,
|
|
110
|
+
* `other` when it does not look like an identifier, is too long, or would
|
|
111
|
+
* be the `maxDistinct + 1`-th distinct value for `key`.
|
|
112
|
+
*
|
|
113
|
+
* @param key - The budget to charge (usually the attribute key).
|
|
114
|
+
* @param value - The raw value.
|
|
115
|
+
* @returns The bounded label.
|
|
116
|
+
*/
|
|
117
|
+
bound(key, value) {
|
|
118
|
+
const trimmed = shapeLabel(value);
|
|
119
|
+
if (trimmed === exports.UNKNOWN_LABEL || trimmed === exports.OTHER_LABEL)
|
|
120
|
+
return trimmed;
|
|
121
|
+
let seen = this.seen.get(key);
|
|
122
|
+
if (!seen) {
|
|
123
|
+
seen = new Set();
|
|
124
|
+
this.seen.set(key, seen);
|
|
125
|
+
}
|
|
126
|
+
if (seen.has(trimmed))
|
|
127
|
+
return trimmed;
|
|
128
|
+
if (seen.size >= this.maxDistinct)
|
|
129
|
+
return exports.OTHER_LABEL;
|
|
130
|
+
seen.add(trimmed);
|
|
131
|
+
return trimmed;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.LabelBudget = LabelBudget;
|
|
135
|
+
//# sourceMappingURL=labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/otel-core/metrics/labels.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,sDAAsD;AACtD,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,qEAAqE;AACrE,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,8EAA8E;AAC9E,4CAA4C;AAC5C,gFAAgF;;;AA4ChF,gCAQC;AAWD,8BAEC;AAWD,kCAEC;AA5ED;;;;;GAKG;AACU,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAEvC,8CAA8C;AAC9C,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAC9C,uFAAuF;AACvF,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B;;;;GAIG;AACU,QAAA,WAAW,GAAG,OAAO,CAAC;AAEnC;;;;GAIG;AACU,QAAA,aAAa,GAAG,SAAS,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,qBAAa,CAAC;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,qBAAa,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClG,OAAO,mBAAW,CAAC;IACrB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,OAA4B;IACpE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAW,CAAC;AAC/E,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1F,CAAC;AAED;;;;GAIG;AACH,MAAa,WAAW;IAOO;IAN7B,oEAAoE;IACnD,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEvD;;OAEG;IACH,YAA6B,cAAsB,2BAAmB;QAAzC,gBAAW,GAAX,WAAW,CAA8B;IAAG,CAAC;IAE1E;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAW,EAAE,KAAc;QAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,OAAO,KAAK,qBAAa,IAAI,OAAO,KAAK,mBAAW;YAAE,OAAO,OAAO,CAAC;QAEzE,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QACtC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,mBAAW,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAhCD,kCAgCC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { type Registry } from '../../core/index';
|
|
2
|
+
/**
|
|
3
|
+
* The OTel instrument kind. Gauges are declared for their name, unit and
|
|
4
|
+
* description; their callbacks stay code.
|
|
5
|
+
*
|
|
6
|
+
* @stability stable
|
|
7
|
+
*/
|
|
8
|
+
export type AppMetricKind = 'counter' | 'histogram' | 'gauge';
|
|
9
|
+
/**
|
|
10
|
+
* How one attribute is bounded before it becomes a label (a GreptimeDB column).
|
|
11
|
+
*
|
|
12
|
+
* - `enum`: the value must be one of `values`, else it is exported as `other`.
|
|
13
|
+
* - `free`: an identifier-shaped string through `MetricsHostService.boundLabel`
|
|
14
|
+
* (at most 64 characters of `[A-Za-z0-9_.:/@+-]`, never address-shaped, and
|
|
15
|
+
* at most `MAX_DISTINCT_VALUES` distinct values per attribute key per
|
|
16
|
+
* process); anything else becomes `other` (or `unknown` when empty).
|
|
17
|
+
*
|
|
18
|
+
* Neither admits a user id, an e-mail, a URL or an error message as a label:
|
|
19
|
+
* declare an attribute only for a low-cardinality dimension (a type, a status,
|
|
20
|
+
* an outcome, a provider).
|
|
21
|
+
*
|
|
22
|
+
* @stability stable
|
|
23
|
+
*/
|
|
24
|
+
export type AppMetricAttribute = {
|
|
25
|
+
/** One of `values`, else `other`. */
|
|
26
|
+
kind: 'enum';
|
|
27
|
+
/** The allowed values, non-empty strings. */
|
|
28
|
+
values: readonly string[];
|
|
29
|
+
} | {
|
|
30
|
+
/** An identifier-shaped string, bounded per key. */
|
|
31
|
+
kind: 'free';
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* One declared `app.*` metric.
|
|
35
|
+
*
|
|
36
|
+
* @stability stable
|
|
37
|
+
*/
|
|
38
|
+
export interface AppMetricDef {
|
|
39
|
+
/** Stable code key, e.g. `jobsEnqueued`: what `add`/`record` and `APP_METRIC_NAMES` use. lowerCamelCase. */
|
|
40
|
+
key: string;
|
|
41
|
+
/** OTLP name, e.g. `app.jobs.enqueued`: `app.` then dot-separated snake_case segments. Permanent. */
|
|
42
|
+
name: string;
|
|
43
|
+
/** The instrument kind. */
|
|
44
|
+
kind: AppMetricKind;
|
|
45
|
+
/** OTel unit: `s`, `By`, `{job}`, `1` … (it picks the GreptimeDB table suffix, docs §11.3). */
|
|
46
|
+
unit: string;
|
|
47
|
+
/** One sentence, exported as the instrument's description. */
|
|
48
|
+
description: string;
|
|
49
|
+
/** Histogram bucket boundaries, ascending, in `unit`. Histograms only. */
|
|
50
|
+
buckets?: readonly number[];
|
|
51
|
+
/** The attribute keys the metric may carry (snake_case, no dots); any other key is dropped. */
|
|
52
|
+
attributes?: Readonly<Record<string, AppMetricAttribute>>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The augmentable set of app metric keys, so `add`/`record` and
|
|
56
|
+
* `createRegisteredGauge` type-check an app's own keys. An app widens it next
|
|
57
|
+
* to its declarations:
|
|
58
|
+
*
|
|
59
|
+
* ```ts
|
|
60
|
+
* declare module '@marinoscar/platform-api/otel-core' {
|
|
61
|
+
* interface AppMetricKeys { coachNudgesSent: true }
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @stability experimental
|
|
66
|
+
*/
|
|
67
|
+
export interface AppMetricKeys {
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* `app.` then one or more dot-separated snake_case segments.
|
|
71
|
+
*
|
|
72
|
+
* @stability stable
|
|
73
|
+
*/
|
|
74
|
+
export declare const APP_METRIC_NAME_PATTERN: RegExp;
|
|
75
|
+
/**
|
|
76
|
+
* Attribute keys become columns: snake_case, no dots (a dotted column needs
|
|
77
|
+
* quoting in every statement).
|
|
78
|
+
*
|
|
79
|
+
* @stability stable
|
|
80
|
+
*/
|
|
81
|
+
export declare const APP_METRIC_ATTRIBUTE_KEY_PATTERN: RegExp;
|
|
82
|
+
/**
|
|
83
|
+
* Code keys are lowerCamelCase.
|
|
84
|
+
*
|
|
85
|
+
* @stability stable
|
|
86
|
+
*/
|
|
87
|
+
export declare const APP_METRIC_KEY_PATTERN: RegExp;
|
|
88
|
+
/**
|
|
89
|
+
* Every rule a declaration must satisfy, against the declarations already
|
|
90
|
+
* known. Throws a plain `Error`. A known declaration with the SAME key is
|
|
91
|
+
* ignored, so re-registering a key reports the registry's `DUPLICATE_ID`.
|
|
92
|
+
*
|
|
93
|
+
* @param def - The declaration to check.
|
|
94
|
+
* @param known - The declarations already registered.
|
|
95
|
+
* @throws Error naming the metric and the broken rule.
|
|
96
|
+
*
|
|
97
|
+
* @stability stable
|
|
98
|
+
*/
|
|
99
|
+
export declare function assertAppMetric(def: AppMetricDef, known: readonly AppMetricDef[]): void;
|
|
100
|
+
/**
|
|
101
|
+
* Every declared `app.*` metric, in registration order. Frozen once the Nest
|
|
102
|
+
* application has bootstrapped (`RegistryFreezeService`). Register through
|
|
103
|
+
* {@link registerAppMetrics}; read with `list()`, `require(key)`, `has(key)`.
|
|
104
|
+
*
|
|
105
|
+
* @extensionPoint registry
|
|
106
|
+
* @stability stable
|
|
107
|
+
*/
|
|
108
|
+
export declare const appMetricRegistry: Registry<AppMetricDef>;
|
|
109
|
+
/**
|
|
110
|
+
* Registers `defs`, all or nothing, also refusing two declarations of one
|
|
111
|
+
* batch that share a NAME (the registry's `validate` hook alone does not see a
|
|
112
|
+
* batch's earlier entries). Call it at import time, from a manifest the
|
|
113
|
+
* metrics service imports.
|
|
114
|
+
*
|
|
115
|
+
* @param defs - The declarations, in order.
|
|
116
|
+
* @throws RegistryError `INVALID_ENTRY`, `INVALID_ID`, `DUPLICATE_ID` or `FROZEN`.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* registerAppMetrics([
|
|
121
|
+
* { key: 'coachNudgesSent', name: 'app.coach.nudges.sent', kind: 'counter', unit: '{nudge}',
|
|
122
|
+
* description: 'Coach nudges sent.', attributes: { channel: { kind: 'free' } } },
|
|
123
|
+
* ]);
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* @extensionPoint registry
|
|
127
|
+
* @stability stable
|
|
128
|
+
*/
|
|
129
|
+
export declare function registerAppMetrics(defs: readonly AppMetricDef[]): void;
|
|
130
|
+
//# sourceMappingURL=metric-name.registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metric-name.registry.d.ts","sourceRoot":"","sources":["../../../src/otel-core/metrics/metric-name.registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA6BhF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IACE,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,GACD;IACE,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,4GAA4G;IAC5G,GAAG,EAAE,MAAM,CAAC;IACZ,qGAAqG;IACrG,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,+FAA+F;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,+FAA+F;IAC/F,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;CAC3D;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,aAAa;CAAG;AAEjC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAA8B,CAAC;AACnE;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAAsB,CAAC;AACpE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAwB,CAAC;AAQ5D;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CA6CvF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAOnD,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI,CAgBtE"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.appMetricRegistry = exports.APP_METRIC_KEY_PATTERN = exports.APP_METRIC_ATTRIBUTE_KEY_PATTERN = exports.APP_METRIC_NAME_PATTERN = void 0;
|
|
4
|
+
exports.assertAppMetric = assertAppMetric;
|
|
5
|
+
exports.registerAppMetrics = registerAppMetrics;
|
|
6
|
+
const index_1 = require("../../core/index");
|
|
7
|
+
/**
|
|
8
|
+
* `app.` then one or more dot-separated snake_case segments.
|
|
9
|
+
*
|
|
10
|
+
* @stability stable
|
|
11
|
+
*/
|
|
12
|
+
exports.APP_METRIC_NAME_PATTERN = /^app(\.[a-z][a-z0-9_]*)+$/;
|
|
13
|
+
/**
|
|
14
|
+
* Attribute keys become columns: snake_case, no dots (a dotted column needs
|
|
15
|
+
* quoting in every statement).
|
|
16
|
+
*
|
|
17
|
+
* @stability stable
|
|
18
|
+
*/
|
|
19
|
+
exports.APP_METRIC_ATTRIBUTE_KEY_PATTERN = /^[a-z][a-z0-9_]*$/;
|
|
20
|
+
/**
|
|
21
|
+
* Code keys are lowerCamelCase.
|
|
22
|
+
*
|
|
23
|
+
* @stability stable
|
|
24
|
+
*/
|
|
25
|
+
exports.APP_METRIC_KEY_PATTERN = /^[a-z][A-Za-z0-9]*$/;
|
|
26
|
+
const KINDS = new Set(['counter', 'histogram', 'gauge']);
|
|
27
|
+
function assertText(value, where) {
|
|
28
|
+
if (typeof value !== 'string' || value.trim() === '')
|
|
29
|
+
throw new Error(`${where} must be a non-empty string.`);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Every rule a declaration must satisfy, against the declarations already
|
|
33
|
+
* known. Throws a plain `Error`. A known declaration with the SAME key is
|
|
34
|
+
* ignored, so re-registering a key reports the registry's `DUPLICATE_ID`.
|
|
35
|
+
*
|
|
36
|
+
* @param def - The declaration to check.
|
|
37
|
+
* @param known - The declarations already registered.
|
|
38
|
+
* @throws Error naming the metric and the broken rule.
|
|
39
|
+
*
|
|
40
|
+
* @stability stable
|
|
41
|
+
*/
|
|
42
|
+
function assertAppMetric(def, known) {
|
|
43
|
+
const where = `App metric "${def.key}"`;
|
|
44
|
+
if (typeof def.name !== 'string' || !exports.APP_METRIC_NAME_PATTERN.test(def.name)) {
|
|
45
|
+
throw new Error(`${where} name ${JSON.stringify(def.name)} must start with "app." and match ${exports.APP_METRIC_NAME_PATTERN}.`);
|
|
46
|
+
}
|
|
47
|
+
const clash = known.find((other) => other.key !== def.key && other.name === def.name);
|
|
48
|
+
if (clash)
|
|
49
|
+
throw new Error(`${where} name "${def.name}" is already declared by "${clash.key}".`);
|
|
50
|
+
if (!KINDS.has(def.kind))
|
|
51
|
+
throw new Error(`${where} kind ${JSON.stringify(def.kind)} must be counter, histogram or gauge.`);
|
|
52
|
+
assertText(def.unit, `${where} unit`);
|
|
53
|
+
assertText(def.description, `${where} description`);
|
|
54
|
+
if (def.buckets !== undefined) {
|
|
55
|
+
if (def.kind !== 'histogram')
|
|
56
|
+
throw new Error(`${where} declares buckets, which only a histogram takes.`);
|
|
57
|
+
if (!Array.isArray(def.buckets) || def.buckets.length === 0) {
|
|
58
|
+
throw new Error(`${where} buckets must be a non-empty array.`);
|
|
59
|
+
}
|
|
60
|
+
def.buckets.forEach((bound, index) => {
|
|
61
|
+
if (typeof bound !== 'number' || !Number.isFinite(bound)) {
|
|
62
|
+
throw new Error(`${where} bucket ${index} is not a finite number.`);
|
|
63
|
+
}
|
|
64
|
+
if (index > 0 && !(bound > def.buckets[index - 1])) {
|
|
65
|
+
throw new Error(`${where} buckets must be strictly ascending (bucket ${index}: ${bound}).`);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
for (const [key, attribute] of Object.entries(def.attributes ?? {})) {
|
|
70
|
+
if (!exports.APP_METRIC_ATTRIBUTE_KEY_PATTERN.test(key)) {
|
|
71
|
+
throw new Error(`${where} attribute key "${key}" must be snake_case without dots (${exports.APP_METRIC_ATTRIBUTE_KEY_PATTERN}).`);
|
|
72
|
+
}
|
|
73
|
+
if (attribute?.kind === 'enum') {
|
|
74
|
+
if (!Array.isArray(attribute.values) || attribute.values.length === 0) {
|
|
75
|
+
throw new Error(`${where} attribute "${key}" is an enum without values.`);
|
|
76
|
+
}
|
|
77
|
+
if (attribute.values.some((v) => typeof v !== 'string' || v === '')) {
|
|
78
|
+
throw new Error(`${where} attribute "${key}" enum values must be non-empty strings.`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (attribute?.kind !== 'free') {
|
|
82
|
+
throw new Error(`${where} attribute "${key}" kind must be "enum" or "free".`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Every declared `app.*` metric, in registration order. Frozen once the Nest
|
|
88
|
+
* application has bootstrapped (`RegistryFreezeService`). Register through
|
|
89
|
+
* {@link registerAppMetrics}; read with `list()`, `require(key)`, `has(key)`.
|
|
90
|
+
*
|
|
91
|
+
* @extensionPoint registry
|
|
92
|
+
* @stability stable
|
|
93
|
+
*/
|
|
94
|
+
exports.appMetricRegistry = (0, index_1.defineRegistry)({
|
|
95
|
+
name: 'app-metrics',
|
|
96
|
+
idOf: (def) => def.key,
|
|
97
|
+
idPattern: exports.APP_METRIC_KEY_PATTERN,
|
|
98
|
+
validate: (def, registry) => assertAppMetric(def, registry.list()),
|
|
99
|
+
describeDuplicate: (_existing, incoming) => `Duplicate app metric key "${incoming.key}": a metric key is declared once (platform metrics first, then the app's).`,
|
|
100
|
+
});
|
|
101
|
+
/**
|
|
102
|
+
* Registers `defs`, all or nothing, also refusing two declarations of one
|
|
103
|
+
* batch that share a NAME (the registry's `validate` hook alone does not see a
|
|
104
|
+
* batch's earlier entries). Call it at import time, from a manifest the
|
|
105
|
+
* metrics service imports.
|
|
106
|
+
*
|
|
107
|
+
* @param defs - The declarations, in order.
|
|
108
|
+
* @throws RegistryError `INVALID_ENTRY`, `INVALID_ID`, `DUPLICATE_ID` or `FROZEN`.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```ts
|
|
112
|
+
* registerAppMetrics([
|
|
113
|
+
* { key: 'coachNudgesSent', name: 'app.coach.nudges.sent', kind: 'counter', unit: '{nudge}',
|
|
114
|
+
* description: 'Coach nudges sent.', attributes: { channel: { kind: 'free' } } },
|
|
115
|
+
* ]);
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @extensionPoint registry
|
|
119
|
+
* @stability stable
|
|
120
|
+
*/
|
|
121
|
+
function registerAppMetrics(defs) {
|
|
122
|
+
const names = new Map();
|
|
123
|
+
for (const def of defs) {
|
|
124
|
+
const earlier = typeof def?.name === 'string' ? names.get(def.name) : undefined;
|
|
125
|
+
if (earlier !== undefined && earlier !== def.key) {
|
|
126
|
+
throw new index_1.RegistryError('INVALID_ENTRY', exports.appMetricRegistry.name, `Invalid entry "${def.key}" in registry "${exports.appMetricRegistry.name}": App metric "${def.key}" name "${def.name}" ` +
|
|
127
|
+
`is already declared by "${earlier}".`, { id: def.key });
|
|
128
|
+
}
|
|
129
|
+
if (typeof def?.name === 'string')
|
|
130
|
+
names.set(def.name, def.key);
|
|
131
|
+
}
|
|
132
|
+
exports.appMetricRegistry.registerAll(defs);
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=metric-name.registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metric-name.registry.js","sourceRoot":"","sources":["../../../src/otel-core/metrics/metric-name.registry.ts"],"names":[],"mappings":"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"}
|