Skip to main content

Observability Configuration

The Observability section configures logging and telemetry for Synentra.

It provides:

  • Structured logging
  • Rolling file logs
  • Seq integration for centralized log analysis
  • OpenTelemetry (OTLP) log export
  • OpenTelemetry telemetry export for traces and metrics

Configuration Structure

Observability
├── Logging
│ ├── File
│ ├── Seq
│ └── Otlp
└── OpenTelemetry

Logging

The Logging section controls all structured logging sinks.

PropertyTypeDefaultDescription
DefaultLogLevelstring"Information"Default minimum log level for all sinks unless overridden. Supported values: Verbose, Debug, Information, Warning, Error, Fatal.
FileFileLoggingEnabledRolling file logging configuration
SeqSeqLoggingDisabledConfiguration for the Seq structured log server
OtlpOtlpLoggingDisabledExports logs using the OpenTelemetry Protocol (OTLP)

Example:

{
"Observability": {
"Logging": {
"DefaultLogLevel": "Information"
}
}
}

File Sink

Type: FileLogging

The file sink writes structured logs to rolling log files on disk.

PropertyTypeDefaultDescription
EnabledbooltrueEnable or disable file logging
LogLevelstring"Information"Minimum log level for this sink
LogPathstringlogs/log-.txtLog file path. Supports Serilog rolling filename patterns (log-.txt).
RollingIntervalstring"Day"Rolling interval. Typical values: Infinite, Year, Month, Day, Hour, Minute.
RetainedFileCountLimitint7Maximum number of log files to retain

Example:

{
"Observability": {
"Logging": {
"File": {
"Enabled": true,
"LogLevel": "Information",
"LogPath": "logs/log-.txt",
"RollingInterval": "Day",
"RetainedFileCountLimit": 7
}
}
}
}

Seq Sink

Type: SeqLogging

The Seq sink sends structured log events to a Seq server for centralized querying and analysis.

Useful during development and production for searching requests, filtering by properties, and correlating events.

PropertyTypeDefaultDescription
EnabledboolfalseEnable Seq logging
LogLevelstring"Information"Minimum log level sent to Seq
UrlstringURL of the Seq server
ApiKeystringOptional API key if Seq authentication is enabled

Example:

{
"Observability": {
"Logging": {
"Seq": {
"Enabled": true,
"LogLevel": "Information",
"Url": "http://seq:5341",
"ApiKey": "your-api-key"
}
}
}
}

OTLP Log Export

Type: OtlpLogging

The OTLP sink exports logs using the OpenTelemetry Protocol.

This allows Synentra logs to be collected by systems such as:

  • OpenTelemetry Collector
  • Grafana Alloy
  • Grafana Loki
  • Jaeger
  • Honeycomb
  • Azure Monitor
  • Datadog
  • New Relic
PropertyTypeDefaultDescription
EnabledboolfalseEnable OTLP log export
EndpointstringOTLP endpoint (typically gRPC on port 4317 or HTTP on port 4318)
LogLevelstring"Information"Minimum log level exported through OTLP

Example:

{
"Observability": {
"Logging": {
"Otlp": {
"Enabled": true,
"Endpoint": "http://otel-collector:4317",
"LogLevel": "Information"
}
}
}
}

OpenTelemetry

The OpenTelemetry section enables exporting traces and metrics generated by Synentra.

When enabled, Synentra emits OpenTelemetry telemetry that can be collected by an OpenTelemetry Collector or any OTLP-compatible backend.

PropertyTypeDefaultDescription
EnabledboolfalseEnable OpenTelemetry instrumentation
EndpointstringOTLP endpoint used for traces and metrics

Example:

{
"Observability": {
"OpenTelemetry": {
"Enabled": true,
"Endpoint": "http://otel-collector:4317"
}
}
}

Complete Example

{
"Observability": {
"Logging": {
"DefaultLogLevel": "Information",
"File": {
"Enabled": true,
"LogLevel": "Information",
"LogPath": "logs/log-.txt",
"RollingInterval": "Day",
"RetainedFileCountLimit": 7
},
"Seq": {
"Enabled": true,
"LogLevel": "Information",
"Url": "http://seq:5341",
"ApiKey": "your-api-key"
},
"Otlp": {
"Enabled": false,
"LogLevel": "Information",
"Endpoint": "http://otel-collector:4317"
}
},
"OpenTelemetry": {
"Enabled": true,
"Endpoint": "http://otel-collector:4317"
}
}
}

Structured Log Events

Synentra emits structured log events throughout the request pipeline.

EventTypical LevelDescription
Application startupInformationSynentra initialization
Agent authenticatedDebugSuccessful agent authentication
Authentication failedWarningInvalid or expired credentials
Policy evaluationDebugPolicy engine execution
Policy deniedInformationRequest blocked by policy
Semantic analysisDebugIntent classification completed
Risk score computedDebugFinal request risk score
Human review requestedInformationRequest suspended for HITL
Rate limit exceededWarningRate limiter rejected the request
Circuit breaker openedWarningUpstream temporarily unavailable
Upstream request completedDebugRequest successfully proxied
Unhandled exceptionErrorUnexpected runtime exception
Startup failureFatalApplication failed during startup

Log Levels

Synentra uses the standard Serilog log levels.

LevelDescription
VerboseExtremely detailed diagnostic information
DebugUseful during development and troubleshooting
InformationNormal application events
WarningRecoverable problems or unexpected conditions
ErrorFailed operations that affect the current request
FatalCritical failures causing application termination

Sink-specific log levels override the global DefaultLogLevel when configured.

Was this helpful?