@agent-vm/agent-vm 0.0.97 → 0.0.99

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.
Files changed (61) hide show
  1. package/dist/cli/manual-templates.d.ts.map +1 -1
  2. package/dist/cli/manual-templates.js +2 -1
  3. package/dist/cli/manual-templates.js.map +1 -1
  4. package/dist/config/system-config.d.ts +21 -3
  5. package/dist/config/system-config.d.ts.map +1 -1
  6. package/dist/config/system-config.js +81 -10
  7. package/dist/config/system-config.js.map +1 -1
  8. package/dist/controller/controller-runtime-types.d.ts +6 -0
  9. package/dist/controller/controller-runtime-types.d.ts.map +1 -1
  10. package/dist/controller/controller-runtime.d.ts.map +1 -1
  11. package/dist/controller/controller-runtime.js +101 -4
  12. package/dist/controller/controller-runtime.js.map +1 -1
  13. package/dist/controller/health/health-event-store.d.ts +5 -0
  14. package/dist/controller/health/health-event-store.d.ts.map +1 -1
  15. package/dist/controller/health/health-event-store.js +26 -0
  16. package/dist/controller/health/health-event-store.js.map +1 -1
  17. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts +1 -0
  18. package/dist/controller/zone-runtimes/zone-runtime-types.d.ts.map +1 -1
  19. package/dist/gateway/credential-manager.d.ts +1 -0
  20. package/dist/gateway/credential-manager.d.ts.map +1 -1
  21. package/dist/gateway/credential-manager.js +14 -1
  22. package/dist/gateway/credential-manager.js.map +1 -1
  23. package/dist/observability/controller-telemetry-identity.d.ts +12 -0
  24. package/dist/observability/controller-telemetry-identity.d.ts.map +1 -0
  25. package/dist/observability/controller-telemetry-identity.js +52 -0
  26. package/dist/observability/controller-telemetry-identity.js.map +1 -0
  27. package/dist/observability/controller-telemetry.d.ts +69 -0
  28. package/dist/observability/controller-telemetry.d.ts.map +1 -0
  29. package/dist/observability/controller-telemetry.js +149 -0
  30. package/dist/observability/controller-telemetry.js.map +1 -0
  31. package/dist/observability/health-event-telemetry.d.ts +20 -0
  32. package/dist/observability/health-event-telemetry.d.ts.map +1 -0
  33. package/dist/observability/health-event-telemetry.js +132 -0
  34. package/dist/observability/health-event-telemetry.js.map +1 -0
  35. package/dist/observability/observability-readiness.d.ts +1 -0
  36. package/dist/observability/observability-readiness.d.ts.map +1 -1
  37. package/dist/observability/observability-readiness.js +1 -1
  38. package/dist/observability/observability-readiness.js.map +1 -1
  39. package/dist/observability/otel-controller-telemetry-driver.d.ts +53 -0
  40. package/dist/observability/otel-controller-telemetry-driver.d.ts.map +1 -0
  41. package/dist/observability/otel-controller-telemetry-driver.js +191 -0
  42. package/dist/observability/otel-controller-telemetry-driver.js.map +1 -0
  43. package/dist/operations/agent-secret-access-checks.d.ts +8 -0
  44. package/dist/operations/agent-secret-access-checks.d.ts.map +1 -0
  45. package/dist/operations/agent-secret-access-checks.js +35 -0
  46. package/dist/operations/agent-secret-access-checks.js.map +1 -0
  47. package/dist/operations/config-validation.d.ts.map +1 -1
  48. package/dist/operations/config-validation.js +2 -0
  49. package/dist/operations/config-validation.js.map +1 -1
  50. package/dist/operations/doctor.d.ts.map +1 -1
  51. package/dist/operations/doctor.js +2 -0
  52. package/dist/operations/doctor.js.map +1 -1
  53. package/dist/tool-vm/tool-vm-lifecycle.d.ts +1 -0
  54. package/dist/tool-vm/tool-vm-lifecycle.d.ts.map +1 -1
  55. package/dist/tool-vm/tool-vm-lifecycle.js +6 -0
  56. package/dist/tool-vm/tool-vm-lifecycle.js.map +1 -1
  57. package/dist/tool-vm/tool-vm-secret-selection.d.ts +16 -0
  58. package/dist/tool-vm/tool-vm-secret-selection.d.ts.map +1 -0
  59. package/dist/tool-vm/tool-vm-secret-selection.js +47 -0
  60. package/dist/tool-vm/tool-vm-secret-selection.js.map +1 -0
  61. package/package.json +21 -11
@@ -0,0 +1,69 @@
1
+ import type { AgentVmHealthEvent } from '@agent-vm/gateway-interface';
2
+ import { type TelemetryAttributes } from './health-event-telemetry.js';
3
+ import type { EnabledObservabilityRuntimeConfig, ObservabilityRuntimeConfig } from './observability-config.js';
4
+ export interface ControllerTelemetryIdentity {
5
+ readonly branchName: string;
6
+ readonly releaseChannel?: string | undefined;
7
+ readonly repositoryIdentity: string;
8
+ readonly runtimeFlavor?: string | undefined;
9
+ readonly serviceVersion: string;
10
+ readonly worktreeIdentity: string;
11
+ }
12
+ export interface ControllerTelemetryProofAttributes {
13
+ readonly marker?: string | undefined;
14
+ readonly startedAt?: string | undefined;
15
+ readonly stateFile?: string | undefined;
16
+ }
17
+ export interface ControllerTelemetryDriverOptions {
18
+ readonly endpoint: string;
19
+ readonly resourceAttributes: TelemetryAttributes;
20
+ }
21
+ export interface ControllerTelemetryLogRecord {
22
+ readonly attributes: TelemetryAttributes;
23
+ readonly body: string;
24
+ readonly name: string;
25
+ readonly observedAtMs: number;
26
+ }
27
+ export interface ControllerTelemetryMetricRecord {
28
+ readonly attributes: TelemetryAttributes;
29
+ readonly name: string;
30
+ readonly value: number;
31
+ }
32
+ export interface ControllerTelemetrySpanRecord {
33
+ readonly attributes: TelemetryAttributes;
34
+ readonly name: string;
35
+ readonly observedAtMs: number;
36
+ }
37
+ export interface ControllerTelemetryDriver {
38
+ readonly emitLog: (record: ControllerTelemetryLogRecord) => void;
39
+ readonly emitMetric: (record: ControllerTelemetryMetricRecord) => void;
40
+ readonly emitSpan: (record: ControllerTelemetrySpanRecord) => void;
41
+ readonly forceFlush: () => Promise<void>;
42
+ readonly shutdown: () => Promise<void>;
43
+ }
44
+ export interface ControllerLifecycleTelemetryEvent {
45
+ readonly eventName: string;
46
+ readonly observedAtMs: number;
47
+ }
48
+ export interface ControllerTelemetry {
49
+ readonly healthEventSink: {
50
+ readonly record: (event: AgentVmHealthEvent) => void;
51
+ };
52
+ readonly forceFlush: () => Promise<void>;
53
+ readonly recordControllerLifecycleEvent: (event: ControllerLifecycleTelemetryEvent) => void;
54
+ readonly shutdown: () => Promise<void>;
55
+ }
56
+ export interface StartControllerTelemetryOptions {
57
+ readonly createDriver?: ((options: ControllerTelemetryDriverOptions) => ControllerTelemetryDriver) | undefined;
58
+ readonly identity: ControllerTelemetryIdentity;
59
+ readonly observabilityConfig: ObservabilityRuntimeConfig;
60
+ readonly projectNamespace: string;
61
+ readonly proof?: ControllerTelemetryProofAttributes | undefined;
62
+ }
63
+ export declare function startControllerTelemetry(options: StartControllerTelemetryOptions): ControllerTelemetry | undefined;
64
+ export declare function createControllerTelemetryResourceAttributes(options: {
65
+ readonly identity: ControllerTelemetryIdentity;
66
+ readonly projectNamespace: string;
67
+ readonly stackMode: EnabledObservabilityRuntimeConfig['stackMode'];
68
+ }): TelemetryAttributes;
69
+ //# sourceMappingURL=controller-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-telemetry.d.ts","sourceRoot":"","sources":["../../src/observability/controller-telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import { mapHealthEventToTelemetry, stableTelemetryHash, } from './health-event-telemetry.js';
2
+ import { formatHttpHost } from './observability-readiness.js';
3
+ import { createOtelControllerTelemetryDriver } from './otel-controller-telemetry-driver.js';
4
+ export function startControllerTelemetry(options) {
5
+ if (!options.observabilityConfig.enabled) {
6
+ return undefined;
7
+ }
8
+ const enabledConfig = options.observabilityConfig;
9
+ const driver = (options.createDriver ?? createOtelControllerTelemetryDriver)({
10
+ endpoint: formatCollectorHttpEndpoint(enabledConfig),
11
+ resourceAttributes: createControllerTelemetryResourceAttributes({
12
+ identity: options.identity,
13
+ projectNamespace: options.projectNamespace,
14
+ stackMode: enabledConfig.stackMode,
15
+ }),
16
+ });
17
+ const proofAttributes = createProofAttributes(options.proof);
18
+ const emitLog = (record) => {
19
+ driver.emitLog({
20
+ attributes: {
21
+ ...record.attributes,
22
+ 'agent_vm.log.name': record.logName,
23
+ ...proofAttributes,
24
+ },
25
+ body: record.body,
26
+ name: record.logName,
27
+ observedAtMs: record.observedAtMs,
28
+ });
29
+ };
30
+ const emitLogAndSpan = (record) => {
31
+ const attributes = {
32
+ ...record.attributes,
33
+ ...proofAttributes,
34
+ };
35
+ emitLog({
36
+ attributes,
37
+ body: record.body,
38
+ logName: record.logName,
39
+ observedAtMs: record.observedAtMs,
40
+ });
41
+ driver.emitSpan({
42
+ attributes,
43
+ name: record.spanName,
44
+ observedAtMs: record.observedAtMs,
45
+ });
46
+ };
47
+ return {
48
+ forceFlush: async () => {
49
+ await driver.forceFlush();
50
+ },
51
+ healthEventSink: {
52
+ record: (event) => {
53
+ const telemetry = mapHealthEventToTelemetry(event);
54
+ emitLog({
55
+ attributes: telemetry.log.attributes,
56
+ body: telemetry.log.message,
57
+ logName: 'agent_vm.health_event',
58
+ observedAtMs: event.observedAtMs,
59
+ });
60
+ if (shouldEmitHealthEventSpan(event)) {
61
+ driver.emitSpan({
62
+ attributes: {
63
+ ...telemetry.log.attributes,
64
+ ...proofAttributes,
65
+ },
66
+ name: `agent_vm.health.${event.kind}`,
67
+ observedAtMs: event.observedAtMs,
68
+ });
69
+ }
70
+ for (const metricSample of telemetry.metricSamples) {
71
+ driver.emitMetric(metricSample);
72
+ }
73
+ },
74
+ },
75
+ recordControllerLifecycleEvent: (event) => {
76
+ emitLogAndSpan({
77
+ attributes: {
78
+ 'agent_vm.controller.event': event.eventName,
79
+ },
80
+ body: `agent-vm controller ${event.eventName}`,
81
+ logName: 'agent_vm.controller.lifecycle',
82
+ observedAtMs: event.observedAtMs,
83
+ spanName: `agent_vm.controller.${event.eventName}`,
84
+ });
85
+ },
86
+ shutdown: async () => {
87
+ await driver.shutdown();
88
+ },
89
+ };
90
+ }
91
+ export function createControllerTelemetryResourceAttributes(options) {
92
+ return {
93
+ 'dev.branch.name': options.identity.branchName,
94
+ 'dev.release.channel': options.identity.releaseChannel ??
95
+ inferReleaseChannel(options.projectNamespace, options.stackMode),
96
+ 'dev.repo.hash': stableTelemetryHash(options.identity.repositoryIdentity),
97
+ 'dev.runtime.flavor': options.identity.runtimeFlavor ?? inferRuntimeFlavor(options.projectNamespace),
98
+ 'dev.worktree.hash': stableTelemetryHash(options.identity.worktreeIdentity),
99
+ 'service.name': 'agent-vm-controller',
100
+ 'service.version': options.identity.serviceVersion,
101
+ };
102
+ }
103
+ function formatCollectorHttpEndpoint(config) {
104
+ return `http://${formatHttpHost(config.bindAddress)}:${String(config.ports.collectorHttp)}`;
105
+ }
106
+ function shouldEmitHealthEventSpan(event) {
107
+ switch (event.kind) {
108
+ case 'controller-request':
109
+ case 'gateway-control-link':
110
+ case 'gateway-recovery':
111
+ case 'gateway-recovery-suspended':
112
+ case 'lease-heartbeat':
113
+ case 'lease-renew':
114
+ case 'tool-vm-ssh':
115
+ return true;
116
+ case 'agent-channel-provider-health':
117
+ case 'gateway-plugin-health':
118
+ case 'gateway-service-health':
119
+ return false;
120
+ default:
121
+ return assertNever(event);
122
+ }
123
+ }
124
+ function assertNever(value) {
125
+ throw new Error(`Unhandled health event kind: ${JSON.stringify(value)}`);
126
+ }
127
+ function inferRuntimeFlavor(projectNamespace) {
128
+ return projectNamespace.toLowerCase().includes('beta') ? 'beta' : 'agent-vm';
129
+ }
130
+ function inferReleaseChannel(projectNamespace, stackMode) {
131
+ if (projectNamespace.toLowerCase().includes('beta')) {
132
+ return 'beta';
133
+ }
134
+ return stackMode;
135
+ }
136
+ function createProofAttributes(proof) {
137
+ const attributes = {};
138
+ if (proof?.marker) {
139
+ attributes['agent.proof.marker'] = proof.marker;
140
+ }
141
+ if (proof?.startedAt) {
142
+ attributes['agent.proof.started_at'] = proof.startedAt;
143
+ }
144
+ if (proof?.stateFile) {
145
+ attributes['agent.proof.state_file_hash'] = stableTelemetryHash(proof.stateFile);
146
+ }
147
+ return attributes;
148
+ }
149
+ //# sourceMappingURL=controller-telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-telemetry.js","sourceRoot":"","sources":["../../src/observability/controller-telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { AgentVmHealthEvent } from '@agent-vm/gateway-interface';
2
+ export type TelemetryAttributeValue = boolean | number | string;
3
+ export type TelemetryAttributes = Readonly<Record<string, TelemetryAttributeValue>>;
4
+ export interface HealthEventTelemetryLog {
5
+ readonly attributes: TelemetryAttributes;
6
+ readonly message: string;
7
+ readonly observedAtMs: number;
8
+ }
9
+ export interface HealthEventTelemetryMetricSample {
10
+ readonly attributes: TelemetryAttributes;
11
+ readonly name: 'agent_vm_health_event_duration_ms' | 'agent_vm_health_events_total';
12
+ readonly value: number;
13
+ }
14
+ export interface HealthEventTelemetryRecord {
15
+ readonly log: HealthEventTelemetryLog;
16
+ readonly metricSamples: readonly HealthEventTelemetryMetricSample[];
17
+ }
18
+ export declare function mapHealthEventToTelemetry(event: AgentVmHealthEvent): HealthEventTelemetryRecord;
19
+ export declare function stableTelemetryHash(value: string): string;
20
+ //# sourceMappingURL=health-event-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-event-telemetry.d.ts","sourceRoot":"","sources":["../../src/observability/health-event-telemetry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAChE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;AAEpF,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gCAAgC;IAChD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,mCAAmC,GAAG,8BAA8B,CAAC;IACpF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IAC1C,QAAQ,CAAC,GAAG,EAAE,uBAAuB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,SAAS,gCAAgC,EAAE,CAAC;CACpE;AAID,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,GAAG,0BAA0B,CA2C/F;AAqGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD"}
@@ -0,0 +1,132 @@
1
+ import { createHash } from 'node:crypto';
2
+ const forbiddenAttributeSubstrings = ['api_key', 'password', 'secret', 'token'];
3
+ export function mapHealthEventToTelemetry(event) {
4
+ const baseAttributes = {
5
+ 'agent_vm.health.kind': event.kind,
6
+ 'agent_vm.health.result': event.result,
7
+ 'agent_vm.zone.id': event.zoneId,
8
+ };
9
+ const lowCardinalityAttributes = { ...baseAttributes };
10
+ if ('elapsedMs' in event) {
11
+ baseAttributes['agent_vm.health.elapsed_ms'] = event.elapsedMs;
12
+ }
13
+ if ('statusCode' in event && event.statusCode !== undefined) {
14
+ baseAttributes['http.response.status_code'] = event.statusCode;
15
+ }
16
+ if ('errorCode' in event && typeof event.errorCode === 'string') {
17
+ addSafeErrorCode(baseAttributes, event.errorCode);
18
+ }
19
+ addKindSpecificAttributes(baseAttributes, event);
20
+ const metricSamples = [
21
+ {
22
+ attributes: lowCardinalityAttributes,
23
+ name: 'agent_vm_health_events_total',
24
+ value: 1,
25
+ },
26
+ ];
27
+ if ('elapsedMs' in event) {
28
+ metricSamples.push({
29
+ attributes: lowCardinalityAttributes,
30
+ name: 'agent_vm_health_event_duration_ms',
31
+ value: event.elapsedMs,
32
+ });
33
+ }
34
+ return {
35
+ log: {
36
+ attributes: baseAttributes,
37
+ message: `agent-vm health ${event.kind} ${event.result}`,
38
+ observedAtMs: event.observedAtMs,
39
+ },
40
+ metricSamples,
41
+ };
42
+ }
43
+ function addKindSpecificAttributes(attributes, event) {
44
+ switch (event.kind) {
45
+ case 'agent-channel-provider-health':
46
+ attributes['agent_vm.agent_channel.health'] = event.health;
47
+ attributes['agent_vm.agent_channel.provider_id_hash'] = stableTelemetryHash(event.channelProviderId);
48
+ if (event.transitionStartedAtMs !== undefined) {
49
+ attributes['agent_vm.agent_channel.transition_started_at_ms'] = event.transitionStartedAtMs;
50
+ }
51
+ if (event.unhealthySinceMs !== undefined) {
52
+ attributes['agent_vm.agent_channel.unhealthy_since_ms'] = event.unhealthySinceMs;
53
+ }
54
+ return;
55
+ case 'controller-request':
56
+ attributes['agent_vm.controller.operation'] = event.operation;
57
+ attributes['agent_vm.controller.attempt'] = event.attempt;
58
+ attributes['agent_vm.controller.max_attempts'] = event.maxAttempts;
59
+ return;
60
+ case 'gateway-control-link':
61
+ attributes['agent_vm.gateway.operation'] = event.operation;
62
+ return;
63
+ case 'gateway-plugin-health':
64
+ attributes['agent_vm.gateway.service'] = event.gatewayService;
65
+ attributes['agent_vm.gateway.state'] = event.state;
66
+ return;
67
+ case 'gateway-recovery':
68
+ attributes['agent_vm.gateway.recovery.action'] = event.action;
69
+ attributes['agent_vm.gateway.recovery.consecutive_failures'] = event.consecutiveFailures;
70
+ attributes['agent_vm.gateway.recovery.cooldown_ms'] = event.cooldownMs;
71
+ attributes['agent_vm.gateway.recovery.reason'] = event.reason;
72
+ if (event.operationId !== undefined) {
73
+ attributes['agent_vm.gateway.recovery.operation_id_hash'] = stableTelemetryHash(event.operationId);
74
+ }
75
+ return;
76
+ case 'gateway-recovery-suspended':
77
+ attributes['agent_vm.gateway.recovery.action'] = event.action;
78
+ attributes['agent_vm.gateway.recovery.consecutive_failed_recoveries'] =
79
+ event.consecutiveFailedRecoveries;
80
+ attributes['agent_vm.gateway.recovery.consecutive_failures'] = event.consecutiveFailures;
81
+ attributes['agent_vm.gateway.recovery.cooldown_ms'] = event.cooldownMs;
82
+ attributes['agent_vm.gateway.recovery.failed_recovery_reset_ms'] =
83
+ event.failedRecoveryResetMs;
84
+ attributes['agent_vm.gateway.recovery.reason'] = event.reason;
85
+ if (event.operationId !== undefined) {
86
+ attributes['agent_vm.gateway.recovery.operation_id_hash'] = stableTelemetryHash(event.operationId);
87
+ }
88
+ return;
89
+ case 'gateway-service-health':
90
+ if (event.statusCode !== undefined) {
91
+ attributes['http.response.status_code'] = event.statusCode;
92
+ }
93
+ return;
94
+ case 'lease-heartbeat':
95
+ attributes['agent_vm.agent.id_hash'] = stableTelemetryHash(event.agentId);
96
+ attributes['agent_vm.lease.id_hash'] = stableTelemetryHash(event.leaseId);
97
+ attributes['agent_vm.lease.use_id_hash'] = stableTelemetryHash(event.useId);
98
+ return;
99
+ case 'lease-renew':
100
+ attributes['agent_vm.agent.id_hash'] = stableTelemetryHash(event.agentId);
101
+ attributes['agent_vm.lease.id_hash'] = stableTelemetryHash(event.leaseId);
102
+ return;
103
+ case 'tool-vm-ssh':
104
+ attributes['agent_vm.agent.id_hash'] = stableTelemetryHash(event.agentId);
105
+ attributes['agent_vm.lease.id_hash'] = stableTelemetryHash(event.leaseId);
106
+ attributes['agent_vm.tool_vm.ssh.operation'] = event.operation;
107
+ return;
108
+ default:
109
+ assertNever(event);
110
+ }
111
+ }
112
+ function addSafeErrorCode(attributes, errorCode) {
113
+ if (isSafeTelemetryCode(errorCode)) {
114
+ attributes['error.type'] = errorCode;
115
+ return;
116
+ }
117
+ attributes['error.type_hash'] = stableTelemetryHash(errorCode);
118
+ }
119
+ function isSafeTelemetryCode(value) {
120
+ if (!/^[a-z0-9][a-z0-9._:-]{0,95}$/u.test(value)) {
121
+ return false;
122
+ }
123
+ const lowercaseValue = value.toLowerCase();
124
+ return !forbiddenAttributeSubstrings.some((substring) => lowercaseValue.includes(substring));
125
+ }
126
+ export function stableTelemetryHash(value) {
127
+ return createHash('sha256').update(value).digest('hex').slice(0, 16);
128
+ }
129
+ function assertNever(value) {
130
+ throw new Error(`Unhandled health event kind: ${JSON.stringify(value)}`);
131
+ }
132
+ //# sourceMappingURL=health-event-telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-event-telemetry.js","sourceRoot":"","sources":["../../src/observability/health-event-telemetry.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,6 @@ export interface CheckObservabilityStackReadinessOptions {
13
13
  readonly probeTimeoutMs?: number;
14
14
  readonly retryDelayMs?: number;
15
15
  }
16
+ export declare function formatHttpHost(host: '127.0.0.1' | '::1'): string;
16
17
  export declare function checkObservabilityStackReadiness(options: CheckObservabilityStackReadinessOptions): Promise<ObservabilityReadinessResult>;
17
18
  //# sourceMappingURL=observability-readiness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"observability-readiness.d.ts","sourceRoot":"","sources":["../../src/observability/observability-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAEnF,MAAM,MAAM,4BAA4B,GACrC;IACA,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CACxB,GACD;IACA,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEL,MAAM,WAAW,uCAAuC;IACvD,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAC/B;AA0GD,wBAAsB,gCAAgC,CACrD,OAAO,EAAE,uCAAuC,GAC9C,OAAO,CAAC,4BAA4B,CAAC,CAoEvC"}
1
+ {"version":3,"file":"observability-readiness.d.ts","sourceRoot":"","sources":["../../src/observability/observability-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAEnF,MAAM,MAAM,4BAA4B,GACrC;IACA,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CACxB,GACD;IACA,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEL,MAAM,WAAW,uCAAuC;IACvD,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAC/B;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,KAAK,GAAG,MAAM,CAEhE;AAoGD,wBAAsB,gCAAgC,CACrD,OAAO,EAAE,uCAAuC,GAC9C,OAAO,CAAC,4BAA4B,CAAC,CAoEvC"}
@@ -1,5 +1,5 @@
1
1
  const DEFAULT_OBSERVABILITY_READINESS_PROBE_TIMEOUT_MS = 1_000;
2
- function formatHttpHost(host) {
2
+ export function formatHttpHost(host) {
3
3
  return host === '::1' ? '[::1]' : host;
4
4
  }
5
5
  function createHealthEndpoints(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"observability-readiness.js","sourceRoot":"","sources":["../../src/observability/observability-readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observability-readiness.js","sourceRoot":"","sources":["../../src/observability/observability-readiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { ControllerTelemetryDriver, ControllerTelemetryDriverOptions, ControllerTelemetryLogRecord } from './controller-telemetry.js';
2
+ import type { TelemetryAttributes } from './health-event-telemetry.js';
3
+ interface OtelLoggerLike {
4
+ readonly emit: (record: ControllerTelemetryLogRecord) => void;
5
+ }
6
+ interface OtelLoggerProviderLike {
7
+ readonly forceFlush: () => Promise<void>;
8
+ readonly getLogger: (name: string, version: string) => OtelLoggerLike;
9
+ readonly shutdown: () => Promise<void>;
10
+ }
11
+ interface OtelCounterLike {
12
+ readonly add: (value: number, attributes: TelemetryAttributes) => void;
13
+ }
14
+ interface OtelHistogramLike {
15
+ readonly record: (value: number, attributes: TelemetryAttributes) => void;
16
+ }
17
+ interface OtelMeterLike {
18
+ readonly createCounter: (name: string) => OtelCounterLike;
19
+ readonly createHistogram: (name: string) => OtelHistogramLike;
20
+ }
21
+ interface OtelMeterProviderLike {
22
+ readonly forceFlush: () => Promise<void>;
23
+ readonly getMeter: (name: string, version: string) => OtelMeterLike;
24
+ readonly shutdown: () => Promise<void>;
25
+ }
26
+ interface OtelSpanLike {
27
+ readonly end: (endTime: number) => void;
28
+ }
29
+ interface OtelTracerLike {
30
+ readonly startSpan: (name: string, options: {
31
+ readonly attributes: TelemetryAttributes;
32
+ readonly startTime: number;
33
+ }) => OtelSpanLike;
34
+ }
35
+ interface OtelTracerProviderLike {
36
+ readonly forceFlush: () => Promise<void>;
37
+ readonly getTracer: (name: string, version: string) => OtelTracerLike;
38
+ readonly shutdown: () => Promise<void>;
39
+ }
40
+ export interface OtelControllerTelemetryProviderFactoryOptions {
41
+ readonly logsUrl: string;
42
+ readonly metricsUrl: string;
43
+ readonly resourceAttributes: TelemetryAttributes;
44
+ readonly tracesUrl: string;
45
+ }
46
+ export type OtelControllerTelemetryProviderFactory = (options: OtelControllerTelemetryProviderFactoryOptions) => {
47
+ readonly loggerProvider: OtelLoggerProviderLike;
48
+ readonly meterProvider: OtelMeterProviderLike;
49
+ readonly tracerProvider: OtelTracerProviderLike;
50
+ };
51
+ export declare function createOtelControllerTelemetryDriver(options: ControllerTelemetryDriverOptions, providerFactory?: OtelControllerTelemetryProviderFactory): ControllerTelemetryDriver;
52
+ export {};
53
+ //# sourceMappingURL=otel-controller-telemetry-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-controller-telemetry-driver.d.ts","sourceRoot":"","sources":["../../src/observability/otel-controller-telemetry-driver.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACX,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,UAAU,cAAc;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,4BAA4B,KAAK,IAAI,CAAC;CAC9D;AAED,UAAU,sBAAsB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,cAAc,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,UAAU,eAAe;IACxB,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACvE;AAED,UAAU,iBAAiB;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC1E;AAED,UAAU,aAAa;IACtB,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;IAC1D,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,iBAAiB,CAAC;CAC9D;AAED,UAAU,qBAAqB;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,UAAU,YAAY;IACrB,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,UAAU,cAAc;IACvB,QAAQ,CAAC,SAAS,EAAE,CACnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QAAE,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAC7E,YAAY,CAAC;CAClB;AAED,UAAU,sBAAsB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,cAAc,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,6CAA6C;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,sCAAsC,GAAG,CACpD,OAAO,EAAE,6CAA6C,KAClD;IACJ,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;IAChD,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;CAChD,CAAC;AAIF,wBAAgB,mCAAmC,CAClD,OAAO,EAAE,gCAAgC,EACzC,eAAe,GAAE,sCAAmE,GAClF,yBAAyB,CAkD3B"}