@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,163 @@
|
|
|
1
|
+
import { type Counter, type Histogram, type Meter } from '@opentelemetry/api';
|
|
2
|
+
import type { AppGaugeContext, AppMetricKeyLike, GaugeProvider } from './gauge-provider';
|
|
3
|
+
/**
|
|
4
|
+
* The instrumentation scope every application metric is created under.
|
|
5
|
+
*
|
|
6
|
+
* @stability stable
|
|
7
|
+
*/
|
|
8
|
+
export declare const APP_METER_NAME = "app";
|
|
9
|
+
/**
|
|
10
|
+
* Injection token of the host's optional {@link MetricsHostOptions}: an
|
|
11
|
+
* explicit meter, clock, gate and gauge switch. Unprovided in production
|
|
12
|
+
* except for `gauges`; tests provide a meter from an in-memory
|
|
13
|
+
* `MeterProvider`.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* OtelMetricsModule.forRootAsync({
|
|
18
|
+
* inject: [ConfigService],
|
|
19
|
+
* useFactory: (config: ConfigService) => ({ gauges: config.get('otel.enabled') === true }),
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @extensionPoint token
|
|
24
|
+
* @stability experimental
|
|
25
|
+
*/
|
|
26
|
+
export declare const METRICS_HOST_OPTIONS: unique symbol;
|
|
27
|
+
/**
|
|
28
|
+
* Options of {@link MetricsHostService}, provided under {@link METRICS_HOST_OPTIONS}.
|
|
29
|
+
*
|
|
30
|
+
* @stability experimental
|
|
31
|
+
*/
|
|
32
|
+
export interface MetricsHostOptions {
|
|
33
|
+
/** The meter instruments are created on. Default: `metrics.getMeter(APP_METER_NAME)`. */
|
|
34
|
+
meter?: Meter;
|
|
35
|
+
/** The clock, in epoch milliseconds. Default: `Date.now`. */
|
|
36
|
+
now?: () => number;
|
|
37
|
+
/** Whether the runtime export gate is open. Default: `telemetryGate.isEnabled()`. */
|
|
38
|
+
gateOpen?: () => boolean;
|
|
39
|
+
/** Forces gauge providers on or off. Default: `process.env.OTEL_ENABLED === 'true'`, read per call. */
|
|
40
|
+
gauges?: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The generic metrics host: creates every registered counter and histogram,
|
|
44
|
+
* bounds labels, and hands gauge providers their context. Global through
|
|
45
|
+
* `OtelMetricsModule`; an app builds its typed recorders on it.
|
|
46
|
+
*
|
|
47
|
+
* @stability experimental
|
|
48
|
+
*/
|
|
49
|
+
export declare class MetricsHostService {
|
|
50
|
+
private readonly logger;
|
|
51
|
+
/** The `app` meter: the SDK's when one is installed, the API's no-op meter otherwise. */
|
|
52
|
+
readonly meter: Meter;
|
|
53
|
+
/** The clock, in epoch milliseconds. */
|
|
54
|
+
readonly now: () => number;
|
|
55
|
+
/** Whether the runtime export gate is open. */
|
|
56
|
+
readonly gateOpen: () => boolean;
|
|
57
|
+
private readonly gaugesForced;
|
|
58
|
+
/** Every registered counter and histogram, by code key, created from its declaration. */
|
|
59
|
+
private readonly instruments;
|
|
60
|
+
/** Keys `add`/`record` were given that name no counter (or histogram) of that kind; each logged once. */
|
|
61
|
+
private readonly unknownKeys;
|
|
62
|
+
private readonly labels;
|
|
63
|
+
/**
|
|
64
|
+
* @param options - See {@link MetricsHostOptions}; every field optional.
|
|
65
|
+
*/
|
|
66
|
+
constructor(options?: MetricsHostOptions);
|
|
67
|
+
/**
|
|
68
|
+
* The counter registered under `key`.
|
|
69
|
+
*
|
|
70
|
+
* @param key - A registry key declared as a counter.
|
|
71
|
+
* @returns The counter.
|
|
72
|
+
* @throws Error when `key` is not registered, or is not a counter.
|
|
73
|
+
*/
|
|
74
|
+
counter(key: AppMetricKeyLike): Counter;
|
|
75
|
+
/**
|
|
76
|
+
* The histogram registered under `key`.
|
|
77
|
+
*
|
|
78
|
+
* @param key - A registry key declared as a histogram.
|
|
79
|
+
* @returns The histogram.
|
|
80
|
+
* @throws Error when `key` is not registered, or is not a histogram.
|
|
81
|
+
*/
|
|
82
|
+
histogram(key: AppMetricKeyLike): Histogram;
|
|
83
|
+
/**
|
|
84
|
+
* Adds `value` (default 1) to the counter registered under `key`, with its
|
|
85
|
+
* declared attributes only, each bounded (`enum`: the value or `other`;
|
|
86
|
+
* `free`: {@link MetricsHostService.boundLabel}). An undeclared attribute
|
|
87
|
+
* key is dropped. An unknown key, or a key that names a histogram or gauge,
|
|
88
|
+
* is a no-op logged once at `debug`. A negative or non-finite value is
|
|
89
|
+
* ignored (counters are monotonic). Never throws.
|
|
90
|
+
*
|
|
91
|
+
* @param key - The counter's registry key.
|
|
92
|
+
* @param value - The amount; default 1.
|
|
93
|
+
* @param attributes - Raw attributes, bounded per the declaration.
|
|
94
|
+
*/
|
|
95
|
+
add(key: AppMetricKeyLike, value?: number, attributes?: Record<string, unknown>): void;
|
|
96
|
+
/**
|
|
97
|
+
* Records `value` on the histogram registered under `key`, with the same
|
|
98
|
+
* attribute rules as {@link MetricsHostService.add}. A negative or
|
|
99
|
+
* non-finite value is ignored. Never throws.
|
|
100
|
+
*
|
|
101
|
+
* @param key - The histogram's registry key.
|
|
102
|
+
* @param value - The measurement, in the declared unit.
|
|
103
|
+
* @param attributes - Raw attributes, bounded per the declaration.
|
|
104
|
+
*/
|
|
105
|
+
record(key: AppMetricKeyLike, value: number, attributes?: Record<string, unknown>): void;
|
|
106
|
+
/**
|
|
107
|
+
* A free-form string as a low-cardinality label: `unknown` when empty,
|
|
108
|
+
* `other` when it does not look like an identifier, is too long, or would
|
|
109
|
+
* be the `MAX_DISTINCT_VALUES + 1`-th distinct value for `key` in this
|
|
110
|
+
* process.
|
|
111
|
+
*
|
|
112
|
+
* @param key - The budget to charge (usually the attribute key).
|
|
113
|
+
* @param value - The raw value.
|
|
114
|
+
* @returns The bounded label.
|
|
115
|
+
*/
|
|
116
|
+
boundLabel(key: string, value: unknown): string;
|
|
117
|
+
/**
|
|
118
|
+
* Whether gauge providers run in this process: the `gauges` option, else
|
|
119
|
+
* `OTEL_ENABLED === 'true'`.
|
|
120
|
+
*
|
|
121
|
+
* @returns `true` when gauges are on.
|
|
122
|
+
*/
|
|
123
|
+
gaugesEnabled(): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* The meter, clock and export gate for a gauge provider, or `null` when
|
|
126
|
+
* gauges are off in this process (the caller then registers nothing).
|
|
127
|
+
*
|
|
128
|
+
* @returns The context, or `null`.
|
|
129
|
+
*/
|
|
130
|
+
gaugeContext(): AppGaugeContext | null;
|
|
131
|
+
/**
|
|
132
|
+
* Runs `provider` with the gauge context, once, when gauges are on. A
|
|
133
|
+
* provider that throws is logged at `debug` and reported as not registered.
|
|
134
|
+
* Never throws.
|
|
135
|
+
*
|
|
136
|
+
* @param provider - Creates its gauges (`createRegisteredGauge`) and their callback.
|
|
137
|
+
* @returns Whether the provider ran to completion.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* metricsHost.registerGaugeProvider(({ meter, gateOpen }) => {
|
|
142
|
+
* const backlog = createRegisteredGauge(meter, 'coachBacklog');
|
|
143
|
+
* backlog.addCallback(async (result) => {
|
|
144
|
+
* if (!gateOpen()) return;
|
|
145
|
+
* result.observe(await countBacklog());
|
|
146
|
+
* });
|
|
147
|
+
* });
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* @extensionPoint registry
|
|
151
|
+
* @stability experimental
|
|
152
|
+
*/
|
|
153
|
+
registerGaugeProvider(provider: GaugeProvider): boolean;
|
|
154
|
+
private create;
|
|
155
|
+
/** The instrument for `key`, created on first use when it was registered after construction. */
|
|
156
|
+
private lookup;
|
|
157
|
+
private require;
|
|
158
|
+
private instrumentFor;
|
|
159
|
+
/** The declared attributes of the metric, bounded; every other key dropped. */
|
|
160
|
+
private boundAttributes;
|
|
161
|
+
private safely;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=metrics-host.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-host.service.d.ts","sourceRoot":"","sources":["../../../src/otel-core/metrics/metrics-host.service.ts"],"names":[],"mappings":"AAsCA,OAAO,EAA4B,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGxG,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIzF;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,MAA0E,CAAC;AAErH;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC;IACzB,uGAAuG;IACvG,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD;;;;;;GAMG;AACH,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;IACvE,yGAAyG;IACzG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C;;OAEG;gBACmD,OAAO,CAAC,EAAE,kBAAkB;IAkBlF;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO;IAIvC;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS;IAI3C;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASjF;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAaxF;;;;;;;;;OASG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM;IAQ/C;;;;;OAKG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;OAKG;IACH,YAAY,IAAI,eAAe,GAAG,IAAI;IAKtC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO;IAgBvD,OAAO,CAAC,MAAM;IAuBd,gGAAgG;IAChG,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,aAAa;IAYrB,+EAA+E;IAC/E,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,MAAM;CAOf"}
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// The metrics host (issue #600; split out of the app's AppMetricsService by
|
|
4
|
+
// issue #700)
|
|
5
|
+
// =============================================================================
|
|
6
|
+
//
|
|
7
|
+
// THE ONE PLACE INSTRUMENTS ARE CREATED. Every counter and histogram declared
|
|
8
|
+
// in the app-metric registry (`metric-name.registry.ts`) is created here, with
|
|
9
|
+
// exactly its declared name, unit, description and bucket boundaries; gauges
|
|
10
|
+
// are created by their providers (`gauge-provider.ts`). An app's own metrics
|
|
11
|
+
// service builds its typed recorders on top (the reference app:
|
|
12
|
+
// `apps/api/src/common/otel/app-metrics.service.ts`), and emits generic ones
|
|
13
|
+
// with `add(key, …)` / `record(key, …)`.
|
|
14
|
+
//
|
|
15
|
+
// -----------------------------------------------------------------------------
|
|
16
|
+
// OFF MEANS NO-OP, FOR FREE
|
|
17
|
+
// -----------------------------------------------------------------------------
|
|
18
|
+
//
|
|
19
|
+
// The meter is `metrics.getMeter('app')` from `@opentelemetry/api`. When
|
|
20
|
+
// `OTEL_ENABLED` is not `true`, `initializeOtel()` installs no SDK, the
|
|
21
|
+
// global MeterProvider is the API's no-op one, and every instrument is a
|
|
22
|
+
// no-op: a counter `add()` costs a function call. When the SDK IS installed
|
|
23
|
+
// but the runtime gate is closed, instruments still aggregate in memory and
|
|
24
|
+
// the gated exporter drops each batch (`sdk/telemetry-gate.ts`).
|
|
25
|
+
//
|
|
26
|
+
// Observable gauges are different, because their callbacks query something:
|
|
27
|
+
// a provider is called only when gauges are on for this process (the
|
|
28
|
+
// `gauges` option, default `OTEL_ENABLED === 'true'`), and each callback
|
|
29
|
+
// returns early while the gate is closed.
|
|
30
|
+
//
|
|
31
|
+
// -----------------------------------------------------------------------------
|
|
32
|
+
// NEVER THROWS
|
|
33
|
+
// -----------------------------------------------------------------------------
|
|
34
|
+
//
|
|
35
|
+
// `add`, `record` and `registerGaugeProvider` are wrapped: a metrics fault
|
|
36
|
+
// must never reach a job runner, an auth flow or a delivery.
|
|
37
|
+
// =============================================================================
|
|
38
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
39
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
40
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
41
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
42
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
43
|
+
};
|
|
44
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
45
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
46
|
+
};
|
|
47
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
48
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
49
|
+
};
|
|
50
|
+
var MetricsHostService_1;
|
|
51
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
+
exports.MetricsHostService = exports.METRICS_HOST_OPTIONS = exports.APP_METER_NAME = void 0;
|
|
53
|
+
const common_1 = require("@nestjs/common");
|
|
54
|
+
const api_1 = require("@opentelemetry/api");
|
|
55
|
+
const telemetry_gate_1 = require("../sdk/telemetry-gate");
|
|
56
|
+
const labels_1 = require("./labels");
|
|
57
|
+
const metric_name_registry_1 = require("./metric-name.registry");
|
|
58
|
+
/**
|
|
59
|
+
* The instrumentation scope every application metric is created under.
|
|
60
|
+
*
|
|
61
|
+
* @stability stable
|
|
62
|
+
*/
|
|
63
|
+
exports.APP_METER_NAME = 'app';
|
|
64
|
+
/**
|
|
65
|
+
* Injection token of the host's optional {@link MetricsHostOptions}: an
|
|
66
|
+
* explicit meter, clock, gate and gauge switch. Unprovided in production
|
|
67
|
+
* except for `gauges`; tests provide a meter from an in-memory
|
|
68
|
+
* `MeterProvider`.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* OtelMetricsModule.forRootAsync({
|
|
73
|
+
* inject: [ConfigService],
|
|
74
|
+
* useFactory: (config: ConfigService) => ({ gauges: config.get('otel.enabled') === true }),
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @extensionPoint token
|
|
79
|
+
* @stability experimental
|
|
80
|
+
*/
|
|
81
|
+
exports.METRICS_HOST_OPTIONS = Symbol.for('@marinoscar/platform/otel-core/METRICS_HOST_OPTIONS');
|
|
82
|
+
function describe(error) {
|
|
83
|
+
return error instanceof Error ? error.message : String(error);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The generic metrics host: creates every registered counter and histogram,
|
|
87
|
+
* bounds labels, and hands gauge providers their context. Global through
|
|
88
|
+
* `OtelMetricsModule`; an app builds its typed recorders on it.
|
|
89
|
+
*
|
|
90
|
+
* @stability experimental
|
|
91
|
+
*/
|
|
92
|
+
let MetricsHostService = MetricsHostService_1 = class MetricsHostService {
|
|
93
|
+
logger = new common_1.Logger(MetricsHostService_1.name);
|
|
94
|
+
/** The `app` meter: the SDK's when one is installed, the API's no-op meter otherwise. */
|
|
95
|
+
meter;
|
|
96
|
+
/** The clock, in epoch milliseconds. */
|
|
97
|
+
now;
|
|
98
|
+
/** Whether the runtime export gate is open. */
|
|
99
|
+
gateOpen;
|
|
100
|
+
gaugesForced;
|
|
101
|
+
/** Every registered counter and histogram, by code key, created from its declaration. */
|
|
102
|
+
instruments = new Map();
|
|
103
|
+
/** Keys `add`/`record` were given that name no counter (or histogram) of that kind; each logged once. */
|
|
104
|
+
unknownKeys = new Set();
|
|
105
|
+
labels = new labels_1.LabelBudget();
|
|
106
|
+
/**
|
|
107
|
+
* @param options - See {@link MetricsHostOptions}; every field optional.
|
|
108
|
+
*/
|
|
109
|
+
constructor(options) {
|
|
110
|
+
// Resolved at construction, which is after `initializeOtel()` has run (the
|
|
111
|
+
// app loads it first), so this is the SDK's meter when there is one and
|
|
112
|
+
// the API's no-op meter otherwise.
|
|
113
|
+
this.meter = options?.meter ?? api_1.metrics.getMeter(exports.APP_METER_NAME);
|
|
114
|
+
this.now = options?.now ?? Date.now;
|
|
115
|
+
this.gateOpen = options?.gateOpen ?? (() => telemetry_gate_1.telemetryGate.isEnabled());
|
|
116
|
+
this.gaugesForced = options?.gauges;
|
|
117
|
+
// Every counter and histogram registered so far, platform and app alike.
|
|
118
|
+
// A declaration registered later is created on first use.
|
|
119
|
+
for (const def of metric_name_registry_1.appMetricRegistry.list())
|
|
120
|
+
this.create(def);
|
|
121
|
+
}
|
|
122
|
+
// ===========================================================================
|
|
123
|
+
// Instruments
|
|
124
|
+
// ===========================================================================
|
|
125
|
+
/**
|
|
126
|
+
* The counter registered under `key`.
|
|
127
|
+
*
|
|
128
|
+
* @param key - A registry key declared as a counter.
|
|
129
|
+
* @returns The counter.
|
|
130
|
+
* @throws Error when `key` is not registered, or is not a counter.
|
|
131
|
+
*/
|
|
132
|
+
counter(key) {
|
|
133
|
+
return this.require(key, 'counter').instrument;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* The histogram registered under `key`.
|
|
137
|
+
*
|
|
138
|
+
* @param key - A registry key declared as a histogram.
|
|
139
|
+
* @returns The histogram.
|
|
140
|
+
* @throws Error when `key` is not registered, or is not a histogram.
|
|
141
|
+
*/
|
|
142
|
+
histogram(key) {
|
|
143
|
+
return this.require(key, 'histogram').instrument;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Adds `value` (default 1) to the counter registered under `key`, with its
|
|
147
|
+
* declared attributes only, each bounded (`enum`: the value or `other`;
|
|
148
|
+
* `free`: {@link MetricsHostService.boundLabel}). An undeclared attribute
|
|
149
|
+
* key is dropped. An unknown key, or a key that names a histogram or gauge,
|
|
150
|
+
* is a no-op logged once at `debug`. A negative or non-finite value is
|
|
151
|
+
* ignored (counters are monotonic). Never throws.
|
|
152
|
+
*
|
|
153
|
+
* @param key - The counter's registry key.
|
|
154
|
+
* @param value - The amount; default 1.
|
|
155
|
+
* @param attributes - Raw attributes, bounded per the declaration.
|
|
156
|
+
*/
|
|
157
|
+
add(key, value = 1, attributes) {
|
|
158
|
+
this.safely(() => {
|
|
159
|
+
const entry = this.instrumentFor(key, 'counter');
|
|
160
|
+
const amount = (0, labels_1.nonNegative)(value);
|
|
161
|
+
if (!entry || amount === null)
|
|
162
|
+
return;
|
|
163
|
+
entry.instrument.add(amount, this.boundAttributes(entry, attributes));
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Records `value` on the histogram registered under `key`, with the same
|
|
168
|
+
* attribute rules as {@link MetricsHostService.add}. A negative or
|
|
169
|
+
* non-finite value is ignored. Never throws.
|
|
170
|
+
*
|
|
171
|
+
* @param key - The histogram's registry key.
|
|
172
|
+
* @param value - The measurement, in the declared unit.
|
|
173
|
+
* @param attributes - Raw attributes, bounded per the declaration.
|
|
174
|
+
*/
|
|
175
|
+
record(key, value, attributes) {
|
|
176
|
+
this.safely(() => {
|
|
177
|
+
const entry = this.instrumentFor(key, 'histogram');
|
|
178
|
+
const amount = (0, labels_1.nonNegative)(value);
|
|
179
|
+
if (!entry || amount === null)
|
|
180
|
+
return;
|
|
181
|
+
entry.instrument.record(amount, this.boundAttributes(entry, attributes));
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
// ===========================================================================
|
|
185
|
+
// Label bounding
|
|
186
|
+
// ===========================================================================
|
|
187
|
+
/**
|
|
188
|
+
* A free-form string as a low-cardinality label: `unknown` when empty,
|
|
189
|
+
* `other` when it does not look like an identifier, is too long, or would
|
|
190
|
+
* be the `MAX_DISTINCT_VALUES + 1`-th distinct value for `key` in this
|
|
191
|
+
* process.
|
|
192
|
+
*
|
|
193
|
+
* @param key - The budget to charge (usually the attribute key).
|
|
194
|
+
* @param value - The raw value.
|
|
195
|
+
* @returns The bounded label.
|
|
196
|
+
*/
|
|
197
|
+
boundLabel(key, value) {
|
|
198
|
+
return this.labels.bound(key, value);
|
|
199
|
+
}
|
|
200
|
+
// ===========================================================================
|
|
201
|
+
// Gauges
|
|
202
|
+
// ===========================================================================
|
|
203
|
+
/**
|
|
204
|
+
* Whether gauge providers run in this process: the `gauges` option, else
|
|
205
|
+
* `OTEL_ENABLED === 'true'`.
|
|
206
|
+
*
|
|
207
|
+
* @returns `true` when gauges are on.
|
|
208
|
+
*/
|
|
209
|
+
gaugesEnabled() {
|
|
210
|
+
return this.gaugesForced ?? process.env.OTEL_ENABLED === 'true';
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* The meter, clock and export gate for a gauge provider, or `null` when
|
|
214
|
+
* gauges are off in this process (the caller then registers nothing).
|
|
215
|
+
*
|
|
216
|
+
* @returns The context, or `null`.
|
|
217
|
+
*/
|
|
218
|
+
gaugeContext() {
|
|
219
|
+
if (!this.gaugesEnabled())
|
|
220
|
+
return null;
|
|
221
|
+
return { meter: this.meter, now: this.now, gateOpen: this.gateOpen };
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Runs `provider` with the gauge context, once, when gauges are on. A
|
|
225
|
+
* provider that throws is logged at `debug` and reported as not registered.
|
|
226
|
+
* Never throws.
|
|
227
|
+
*
|
|
228
|
+
* @param provider - Creates its gauges (`createRegisteredGauge`) and their callback.
|
|
229
|
+
* @returns Whether the provider ran to completion.
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```ts
|
|
233
|
+
* metricsHost.registerGaugeProvider(({ meter, gateOpen }) => {
|
|
234
|
+
* const backlog = createRegisteredGauge(meter, 'coachBacklog');
|
|
235
|
+
* backlog.addCallback(async (result) => {
|
|
236
|
+
* if (!gateOpen()) return;
|
|
237
|
+
* result.observe(await countBacklog());
|
|
238
|
+
* });
|
|
239
|
+
* });
|
|
240
|
+
* ```
|
|
241
|
+
*
|
|
242
|
+
* @extensionPoint registry
|
|
243
|
+
* @stability experimental
|
|
244
|
+
*/
|
|
245
|
+
registerGaugeProvider(provider) {
|
|
246
|
+
const context = this.gaugeContext();
|
|
247
|
+
if (!context)
|
|
248
|
+
return false;
|
|
249
|
+
try {
|
|
250
|
+
provider(context);
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
this.logger.debug(`Could not register application gauges: ${describe(error)}`);
|
|
255
|
+
return false;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// ===========================================================================
|
|
259
|
+
// Internals
|
|
260
|
+
// ===========================================================================
|
|
261
|
+
create(def) {
|
|
262
|
+
let instrument;
|
|
263
|
+
if (def.kind === 'counter') {
|
|
264
|
+
instrument = this.meter.createCounter(def.name, { description: def.description, unit: def.unit });
|
|
265
|
+
}
|
|
266
|
+
else if (def.kind === 'histogram') {
|
|
267
|
+
instrument = this.meter.createHistogram(def.name, {
|
|
268
|
+
description: def.description,
|
|
269
|
+
unit: def.unit,
|
|
270
|
+
...(def.buckets ? { advice: { explicitBucketBoundaries: [...def.buckets] } } : {}),
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
const enums = new Map();
|
|
277
|
+
for (const [key, rule] of Object.entries(def.attributes ?? {})) {
|
|
278
|
+
if (rule.kind === 'enum')
|
|
279
|
+
enums.set(key, new Set(rule.values));
|
|
280
|
+
}
|
|
281
|
+
const entry = { def, instrument, enums };
|
|
282
|
+
this.instruments.set(def.key, entry);
|
|
283
|
+
return entry;
|
|
284
|
+
}
|
|
285
|
+
/** The instrument for `key`, created on first use when it was registered after construction. */
|
|
286
|
+
lookup(key) {
|
|
287
|
+
const entry = this.instruments.get(key);
|
|
288
|
+
if (entry)
|
|
289
|
+
return entry;
|
|
290
|
+
const def = metric_name_registry_1.appMetricRegistry.get(key);
|
|
291
|
+
return def ? this.create(def) : null;
|
|
292
|
+
}
|
|
293
|
+
require(key, kind) {
|
|
294
|
+
const entry = this.lookup(key);
|
|
295
|
+
if (entry && entry.def.kind === kind)
|
|
296
|
+
return entry;
|
|
297
|
+
const actual = entry?.def.kind ?? metric_name_registry_1.appMetricRegistry.get(key)?.kind;
|
|
298
|
+
throw new Error(actual ? `App metric "${key}" is a ${actual}, not a ${kind}.` : `App metric "${key}" is not registered.`);
|
|
299
|
+
}
|
|
300
|
+
instrumentFor(key, kind) {
|
|
301
|
+
const entry = this.lookup(key);
|
|
302
|
+
if (entry && entry.def.kind === kind)
|
|
303
|
+
return entry;
|
|
304
|
+
if (!this.unknownKeys.has(key)) {
|
|
305
|
+
this.unknownKeys.add(key);
|
|
306
|
+
const why = entry ? `is a ${entry.def.kind}` : metric_name_registry_1.appMetricRegistry.has(key) ? 'is a gauge' : 'is not registered';
|
|
307
|
+
this.logger.debug(`Metric "${String(key)}" ${why}; ${kind === 'counter' ? 'add' : 'record'}() ignored.`);
|
|
308
|
+
}
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
/** The declared attributes of the metric, bounded; every other key dropped. */
|
|
312
|
+
boundAttributes(entry, attributes) {
|
|
313
|
+
const out = {};
|
|
314
|
+
if (!attributes || typeof attributes !== 'object')
|
|
315
|
+
return out;
|
|
316
|
+
for (const [key, rule] of Object.entries(entry.def.attributes ?? {})) {
|
|
317
|
+
if (!Object.prototype.hasOwnProperty.call(attributes, key))
|
|
318
|
+
continue;
|
|
319
|
+
const raw = attributes[key];
|
|
320
|
+
if (raw === undefined || raw === null)
|
|
321
|
+
continue;
|
|
322
|
+
const value = typeof raw === 'number' || typeof raw === 'boolean' ? String(raw) : raw;
|
|
323
|
+
const allowed = entry.enums.get(key);
|
|
324
|
+
out[key] = rule.kind === 'enum' && allowed ? (0, labels_1.enumLabel)(value, allowed) : this.boundLabel(key, value);
|
|
325
|
+
}
|
|
326
|
+
return out;
|
|
327
|
+
}
|
|
328
|
+
safely(fn) {
|
|
329
|
+
try {
|
|
330
|
+
fn();
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
this.logger.debug(`Metric recording skipped: ${describe(error)}`);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
exports.MetricsHostService = MetricsHostService;
|
|
338
|
+
exports.MetricsHostService = MetricsHostService = MetricsHostService_1 = __decorate([
|
|
339
|
+
(0, common_1.Injectable)(),
|
|
340
|
+
__param(0, (0, common_1.Optional)()),
|
|
341
|
+
__param(0, (0, common_1.Inject)(exports.METRICS_HOST_OPTIONS)),
|
|
342
|
+
__metadata("design:paramtypes", [Object])
|
|
343
|
+
], MetricsHostService);
|
|
344
|
+
//# sourceMappingURL=metrics-host.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-host.service.js","sourceRoot":"","sources":["../../../src/otel-core/metrics/metrics-host.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type DynamicModule, type InjectionToken, type ModuleMetadata } from '@nestjs/common';
|
|
2
|
+
import { type MetricsHostOptions } from './metrics-host.service';
|
|
3
|
+
/**
|
|
4
|
+
* Options of {@link OtelMetricsModule.forRootAsync}: a factory for
|
|
5
|
+
* {@link MetricsHostOptions}, typically reading the app's configuration.
|
|
6
|
+
*
|
|
7
|
+
* @stability experimental
|
|
8
|
+
*/
|
|
9
|
+
export interface OtelMetricsModuleAsyncOptions {
|
|
10
|
+
/** Modules exporting the factory's dependencies (a global `ConfigModule` needs none). */
|
|
11
|
+
imports?: ModuleMetadata['imports'];
|
|
12
|
+
/** Tokens injected into `useFactory`, in order. */
|
|
13
|
+
inject?: InjectionToken[];
|
|
14
|
+
/** Builds the options; may be async. */
|
|
15
|
+
useFactory: (...args: never[]) => MetricsHostOptions | Promise<MetricsHostOptions>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Global module providing {@link MetricsHostService}. Import it once, in the
|
|
19
|
+
* root module or in the app's own metrics module: bare (every default), with
|
|
20
|
+
* `forRoot(options)` or with `forRootAsync({ inject, useFactory })`.
|
|
21
|
+
*
|
|
22
|
+
* @stability experimental
|
|
23
|
+
*/
|
|
24
|
+
export declare class OtelMetricsModule {
|
|
25
|
+
/**
|
|
26
|
+
* The module with fixed host options.
|
|
27
|
+
*
|
|
28
|
+
* @param options - See {@link MetricsHostOptions}.
|
|
29
|
+
* @returns A global dynamic module.
|
|
30
|
+
*
|
|
31
|
+
* @stability experimental
|
|
32
|
+
*/
|
|
33
|
+
static forRoot(options?: MetricsHostOptions): DynamicModule;
|
|
34
|
+
/**
|
|
35
|
+
* The module with host options built by a factory (for example from the
|
|
36
|
+
* app's `ConfigService`).
|
|
37
|
+
*
|
|
38
|
+
* @param options - See {@link OtelMetricsModuleAsyncOptions}.
|
|
39
|
+
* @returns A global dynamic module.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* OtelMetricsModule.forRootAsync({
|
|
44
|
+
* inject: [ConfigService],
|
|
45
|
+
* useFactory: (config: ConfigService) => ({ gauges: config.get<boolean>('otel.enabled') === true }),
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @extensionPoint option
|
|
50
|
+
* @stability experimental
|
|
51
|
+
*/
|
|
52
|
+
static forRootAsync(options: OtelMetricsModuleAsyncOptions): DynamicModule;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=otel-metrics.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-metrics.module.d.ts","sourceRoot":"","sources":["../../../src/otel-core/metrics/otel-metrics.module.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE9G,OAAO,EAA4C,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE3G;;;;;GAKG;AACH,MAAM,WAAW,6BAA6B;IAC5C,yFAAyF;IACzF,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACpC,mDAAmD;IACnD,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,wCAAwC;IACxC,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACpF;AAED;;;;;;GAMG;AACH,qBAKa,iBAAiB;IAC5B;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,aAAa;IAS/D;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,6BAA6B,GAAG,aAAa;CAgB3E"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// The metrics host's module (issue #700): global, so every slice and app
|
|
3
|
+
// module injects `MetricsHostService` without importing it, like the app's
|
|
4
|
+
// own `AppMetricsModule` before it.
|
|
5
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
6
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
9
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
10
|
+
};
|
|
11
|
+
var OtelMetricsModule_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.OtelMetricsModule = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const metrics_host_service_1 = require("./metrics-host.service");
|
|
16
|
+
/**
|
|
17
|
+
* Global module providing {@link MetricsHostService}. Import it once, in the
|
|
18
|
+
* root module or in the app's own metrics module: bare (every default), with
|
|
19
|
+
* `forRoot(options)` or with `forRootAsync({ inject, useFactory })`.
|
|
20
|
+
*
|
|
21
|
+
* @stability experimental
|
|
22
|
+
*/
|
|
23
|
+
let OtelMetricsModule = OtelMetricsModule_1 = class OtelMetricsModule {
|
|
24
|
+
/**
|
|
25
|
+
* The module with fixed host options.
|
|
26
|
+
*
|
|
27
|
+
* @param options - See {@link MetricsHostOptions}.
|
|
28
|
+
* @returns A global dynamic module.
|
|
29
|
+
*
|
|
30
|
+
* @stability experimental
|
|
31
|
+
*/
|
|
32
|
+
static forRoot(options = {}) {
|
|
33
|
+
return {
|
|
34
|
+
module: OtelMetricsModule_1,
|
|
35
|
+
global: true,
|
|
36
|
+
providers: [{ provide: metrics_host_service_1.METRICS_HOST_OPTIONS, useValue: options }, metrics_host_service_1.MetricsHostService],
|
|
37
|
+
exports: [metrics_host_service_1.MetricsHostService, metrics_host_service_1.METRICS_HOST_OPTIONS],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The module with host options built by a factory (for example from the
|
|
42
|
+
* app's `ConfigService`).
|
|
43
|
+
*
|
|
44
|
+
* @param options - See {@link OtelMetricsModuleAsyncOptions}.
|
|
45
|
+
* @returns A global dynamic module.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* OtelMetricsModule.forRootAsync({
|
|
50
|
+
* inject: [ConfigService],
|
|
51
|
+
* useFactory: (config: ConfigService) => ({ gauges: config.get<boolean>('otel.enabled') === true }),
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @extensionPoint option
|
|
56
|
+
* @stability experimental
|
|
57
|
+
*/
|
|
58
|
+
static forRootAsync(options) {
|
|
59
|
+
return {
|
|
60
|
+
module: OtelMetricsModule_1,
|
|
61
|
+
global: true,
|
|
62
|
+
imports: options.imports ?? [],
|
|
63
|
+
providers: [
|
|
64
|
+
{
|
|
65
|
+
provide: metrics_host_service_1.METRICS_HOST_OPTIONS,
|
|
66
|
+
inject: options.inject ?? [],
|
|
67
|
+
useFactory: options.useFactory,
|
|
68
|
+
},
|
|
69
|
+
metrics_host_service_1.MetricsHostService,
|
|
70
|
+
],
|
|
71
|
+
exports: [metrics_host_service_1.MetricsHostService, metrics_host_service_1.METRICS_HOST_OPTIONS],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
exports.OtelMetricsModule = OtelMetricsModule;
|
|
76
|
+
exports.OtelMetricsModule = OtelMetricsModule = OtelMetricsModule_1 = __decorate([
|
|
77
|
+
(0, common_1.Global)(),
|
|
78
|
+
(0, common_1.Module)({
|
|
79
|
+
providers: [metrics_host_service_1.MetricsHostService],
|
|
80
|
+
exports: [metrics_host_service_1.MetricsHostService],
|
|
81
|
+
})
|
|
82
|
+
], OtelMetricsModule);
|
|
83
|
+
//# sourceMappingURL=otel-metrics.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel-metrics.module.js","sourceRoot":"","sources":["../../../src/otel-core/metrics/otel-metrics.module.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,2EAA2E;AAC3E,oCAAoC;;;;;;;;;;AAEpC,2CAA8G;AAE9G,iEAA2G;AAiB3G;;;;;;GAMG;AAMI,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAC5B;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,UAA8B,EAAE;QAC7C,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,2CAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,yCAAkB,CAAC;YACrF,OAAO,EAAE,CAAC,yCAAkB,EAAE,2CAAoB,CAAC;SACpD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,YAAY,CAAC,OAAsC;QACxD,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,2CAAoB;oBAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;oBAC5B,UAAU,EAAE,OAAO,CAAC,UAAsF;iBAC3G;gBACD,yCAAkB;aACnB;YACD,OAAO,EAAE,CAAC,yCAAkB,EAAE,2CAAoB,CAAC;SACpD,CAAC;IACJ,CAAC;CACF,CAAA;AApDY,8CAAiB;4BAAjB,iBAAiB;IAL7B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,yCAAkB,CAAC;QAC/B,OAAO,EAAE,CAAC,yCAAkB,CAAC;KAC9B,CAAC;GACW,iBAAiB,CAoD7B"}
|