Observability Helpers

View as Markdown

Generated from crates/node/observability.d.ts.

Import from nemo-relay-node/observability.

Observability plugin configuration helpers.

Interfaces

AtofConfig

export interface AtofConfig {
enabled?: boolean;
sinks?: AtofSinkConfig[];
}

AtofFileSinkConfig

export interface AtofFileSinkConfig {
type: 'file';
output_directory?: string;
filename?: string;
mode?: 'append' | 'overwrite' | string;
}

AtofStreamSinkConfig

export interface AtofStreamSinkConfig {
type: 'stream';
url: string;
transport?: 'http_post' | 'websocket' | 'ndjson' | string;
headers?: Record<string, string>;
header_env?: Record<string, string>;
header_file?: Record<string, string>;
timeout_millis?: number;
field_name_policy?: 'preserve' | 'replace_dots' | string;
name?: string;
}

S3StorageConfig

export interface S3StorageConfig {
type: 's3';
bucket: string;
key_prefix?: string;
access_key_id?: string;
secret_access_key_var?: string;
session_token_var?: string;
region?: string;
endpoint_url?: string;
allow_http?: boolean;
}

HttpStorageConfig

export interface HttpStorageConfig {
type: 'http';
endpoint: string;
headers?: Record<string, string>;
header_env?: Record<string, string>;
header_file?: Record<string, string>;
timeout_millis?: number;
}

AtifConfig

export interface AtifConfig {
enabled?: boolean;
agent_name?: string;
agent_version?: string;
model_name?: string;
tool_definitions?: Record<string, Json>[];
extra?: Record<string, Json>;
output_directory?: string;
filename_template?: string;
storage?: S3StorageConfig | HttpStorageConfig | Array<S3StorageConfig | HttpStorageConfig>;
}

OpenTelemetryEndpointConfig

export interface OpenTelemetryEndpointConfig {
type: 'full' | 'gen_ai' | 'openinference';
endpoint: string;
mark_projection?: 'inherit' | 'event' | 'tool';
mark_exclude_names?: string[];
attribute_mappings?: Array<{ key: string; alias: string }>;
promote_metadata_prefixes?: string[];
promote_resource_metadata_prefixes?: string[];
transport?: 'http_binary' | 'grpc';
headers?: Record<string, string>;
header_env?: Record<string, string>;
header_file?: Record<string, string>;
resource_attributes?: Record<string, string>;
service_name?: string;
service_namespace?: string;
service_version?: string;
instrumentation_scope?: string;
timeout_millis?: number;
max_queue_size?: number;
max_export_batch_size?: number;
scheduled_delay_millis?: number;
completed_span_context_ttl_millis?: number;
}

OpenTelemetrySignalEndpointConfig

export interface OpenTelemetrySignalEndpointConfig {
endpoint: string;
transport?: 'http_binary' | 'grpc';
headers?: Record<string, string>;
header_env?: Record<string, string>;
header_file?: Record<string, string>;
resource_attributes?: Record<string, string>;
service_name?: string;
service_namespace?: string;
service_version?: string;
instrumentation_scope?: string;
timeout_millis?: number;
/** Literal root-scope metadata prefixes promoted to resource attributes. */
promote_resource_metadata_prefixes?: string[];
}

OpenTelemetryLogSectionConfig

export interface OpenTelemetryLogSectionConfig {
enabled?: boolean;
endpoints?: OpenTelemetrySignalEndpointConfig[];
minimum_severity?: 'trace' | 'debug' | 'info' | 'warn' | 'warning' | 'error';
max_queue_size?: number;
max_export_batch_size?: number;
scheduled_delay_millis?: number;
}

OpenTelemetryMetricSectionConfig

export interface OpenTelemetryMetricSectionConfig {
enabled?: boolean;
endpoints?: OpenTelemetrySignalEndpointConfig[];
export_interval_millis?: number;
temporality?: 'cumulative' | 'delta' | 'low_memory';
max_instruments?: number;
cardinality_limit?: number;
}

OpenTelemetryFileSinkConfig

export interface OpenTelemetryFileSinkConfig {
type?: 'full' | 'gen_ai' | 'openinference';
output_directory: string;
filename?: string;
/**
* `json_lines` follows the OpenTelemetry Protocol File Exporter
* specification: one OTLP/JSON record per line. `proto` writes each record
* length-delimited.
*/
format?: 'json_lines' | 'proto';
mode?: 'append' | 'overwrite';
mark_projection?: 'inherit' | 'event' | 'tool';
mark_exclude_names?: string[];
attribute_mappings?: Array<{ key: string; alias: string }>;
promote_metadata_prefixes?: string[];
promote_resource_metadata_prefixes?: string[];
resource_attributes?: Record<string, string>;
service_name?: string;
service_namespace?: string;
service_version?: string;
instrumentation_scope?: string;
max_queue_size?: number;
max_export_batch_size?: number;
scheduled_delay_millis?: number;
completed_span_context_ttl_millis?: number;
}

OpenTelemetrySectionConfig

export interface OpenTelemetrySectionConfig {
enabled?: boolean;
endpoints?: OpenTelemetryEndpointConfig[];
file_sinks?: OpenTelemetryFileSinkConfig[];
logs?: OpenTelemetryLogSectionConfig;
metrics?: OpenTelemetryMetricSectionConfig;
}

Config

export interface Config {
version?: number;
atof?: AtofConfig;
atif?: AtifConfig;
opentelemetry?: OpenTelemetrySectionConfig;
policy?: ConfigPolicy;
/** Retain complete sanitized request data on every LLM start event. */
enable_full_payloads?: boolean;
}

ComponentSpec interface

export interface ComponentSpec {
kind: 'observability';
enabled?: boolean;
config: Config;
}

Functions

defaultConfig

Create a default observability component config.

export declare function defaultConfig(): Config;

atofConfig

Create filesystem-backed Agent Trajectory Observability Format (ATOF) JSONL settings with defaults applied.

export declare function atofConfig(config?: AtofConfig): AtofConfig;

atifConfig

Create per-agent Agent Trajectory Interchange Format (ATIF) trajectory settings with defaults applied.

export declare function atifConfig(config?: AtifConfig): AtifConfig;

openTelemetryEndpoint

Create one typed OpenTelemetry endpoint.

export declare function openTelemetryEndpoint(config: OpenTelemetryEndpointConfig): OpenTelemetryEndpointConfig;

openTelemetryFileSink

export declare function openTelemetryFileSink(config: OpenTelemetryFileSinkConfig): OpenTelemetryFileSinkConfig;

openTelemetrySignalEndpoint

Create one signal-specific OpenTelemetry endpoint for logs or metrics.

export declare function openTelemetrySignalEndpoint(
config: OpenTelemetrySignalEndpointConfig,
): OpenTelemetrySignalEndpointConfig;

openTelemetryLogConfig

Create OTLP log pipeline settings with defaults applied.

export declare function openTelemetryLogConfig(config?: OpenTelemetryLogSectionConfig): OpenTelemetryLogSectionConfig;

openTelemetryMetricConfig

Create OTLP metric pipeline settings with defaults applied.

export declare function openTelemetryMetricConfig(
config?: OpenTelemetryMetricSectionConfig,
): OpenTelemetryMetricSectionConfig;

openTelemetryConfig

Create multi-endpoint OpenTelemetry settings.

export declare function openTelemetryConfig(config?: OpenTelemetrySectionConfig): OpenTelemetrySectionConfig;

ComponentSpec function

Wrap observability config as a top-level plugin component.

export declare function ComponentSpec(
config: Config,
options?: {
enabled?: boolean;

Type Aliases

AtofSinkConfig

export type AtofSinkConfig = AtofFileSinkConfig | AtofStreamSinkConfig;

AtofEndpointConfig

@deprecated Use AtofStreamSinkConfig.

export type AtofEndpointConfig = AtofStreamSinkConfig;

Constants

OBSERVABILITY_PLUGIN_KIND

Top-level plugin kind used by the built-in observability component.

export declare const OBSERVABILITY_PLUGIN_KIND: 'observability';

Re-exports

  • ConfigDiagnostic
  • ConfigPolicy
  • ConfigReport