Skip to main content

Synadia Cloud

Managed NATS Message Queue

Synopsis

The Synadia Cloud target publishes log messages to Synadia's managed NATS JetStream service with enterprise features including global distribution, automatic scaling, and managed infrastructure. This target extends the standard NATS configuration with Synadia Cloud-specific endpoints and authentication.

Schema

- name: <string>
description: <string>
type: synadia
pipelines: <pipeline[]>
status: <boolean>
properties:
url: <string>
subject: <string>
username: <string>
password: <string>
timeout: <integer>
batch_size: <integer>
max_retries: <integer>
retry_delay: <integer>
tls:
status: <boolean>
verify: <boolean>
cert_name: <string>
key_name: <string>
min_tls_version: <string>
max_tls_version: <string>
field_format: <string>
debug:
status: <boolean>
dont_send_logs: <boolean>

Configuration

The following fields are used to define the target:

FieldRequiredDefaultDescription
nameYTarget name
descriptionN-Optional description
typeYMust be synadia
pipelinesN-Optional post-processor pipelines
statusNtrueEnable/disable the target

Connection

FieldRequiredDefaultDescription
urlY-Synadia Cloud NATS URL (e.g., nats://connect.ngs.global:4222)
subjectY-NATS subject name for message publishing
usernameN-Synadia Cloud account username or NKey seed
passwordN-Synadia Cloud account password or JWT
timeoutN30Connection timeout in seconds

Batch Configuration

FieldRequiredDefaultDescription
batch_sizeN1000Number of messages to batch before publishing (minimum 1)
max_retriesN3Maximum retry attempts for failed publish operations
retry_delayN1Delay between retry attempts in seconds

Processing

FieldRequiredDefaultDescription
field_formatN-Data normalization format. See applicable Normalization section

TLS Configuration

FieldRequiredDefaultDescription
tls.statusNfalseEnable TLS encryption
tls.verifyNtrueVerify server TLS certificate
tls.cert_nameN*-Client certificate filename (PEM format)
tls.key_nameN*-Client private key filename (PEM format)
tls.min_tls_versionNtls1.2Minimum TLS version: tls1.0, tls1.1, tls1.2, tls1.3
tls.max_tls_versionNtls1.3Maximum TLS version: tls1.0, tls1.1, tls1.2, tls1.3

* = Conditionally required. Both cert_name and key_name must be provided together or omitted together.

Scheduling

See Scheduling and Pool Behavior for interval and cron fields shared by all targets.

Debug Options

FieldRequiredDefaultDescription
debug.statusNfalseEnable debug logging
debug.dont_send_logsNfalseProcess logs but don't send to target (testing)

Details

The Synadia Cloud target uses the NATS JetStream protocol to publish log messages. This target shares its implementation with the generic NATS target (type: nats) — the same Go code handles both types. The synadia type is provided for organizational clarity when connecting to Synadia's managed NATS service.

Synadia Cloud supports three credential modes via username and password: traditional username/password, NKey seed (set password to the NKey seed string), and JWT (set password to the JWT token). All three are optional in the YAML — omitting both disables SASL authentication entirely.

The global endpoint nats://connect.ngs.global:4222 routes to the nearest regional cluster. Regional endpoints are available in the Synadia Cloud console for latency-sensitive deployments.

Messages are accumulated in batches and published to NATS JetStream subjects. JetStream must be enabled on the Synadia Cloud account. Each message is published with per-event retry logic up to max_retries attempts, waiting retry_delay seconds between attempts.

warning

Both tls.cert_name and tls.key_name must be provided together when using client certificate authentication. Providing only one will result in a configuration error.

warning

Ensure the Synadia Cloud account has publish permissions for the configured subjects. Permission denials cause publish failures.

Examples

Basic Configuration

Sending logs to Synadia Cloud using username/password authentication...

targets:
- name: synadia-logs
type: synadia
properties:
url: "nats://connect.ngs.global:4222"
subject: "logs.production"
username: "${SYNADIA_USERNAME}"
password: "${SYNADIA_PASSWORD}"

With NKey Authentication

Using NKey-based authentication for enhanced security...

targets:
- name: synadia-nkey
type: synadia
properties:
url: "nats://connect.ngs.global:4222"
subject: "telemetry.events"
username: "${SYNADIA_NKEY_USER}"
password: "${SYNADIA_NKEY_SEED}"
timeout: 30

High-Volume Configuration

Optimizing for high-volume telemetry ingestion with larger batches...

targets:
- name: synadia-high-volume
type: synadia
properties:
url: "nats://connect.ngs.global:4222"
subject: "metrics.streaming"
username: "${SYNADIA_USERNAME}"
password: "${SYNADIA_PASSWORD}"
batch_size: 1000
max_retries: 3
retry_delay: 1

With TLS Encryption

Enabling TLS encryption for secure data transmission...

targets:
- name: synadia-secure
type: synadia
properties:
url: "nats://connect.ngs.global:4222"
subject: "security.logs"
username: "${SYNADIA_USERNAME}"
password: "${SYNADIA_PASSWORD}"
tls:
status: true
verify: true
min_tls_version: tls1.2
max_tls_version: tls1.3

Multi-Subject Publishing

Publishing different event types to separate subjects...

targets:
- name: synadia-security
type: synadia
properties:
url: "nats://connect.ngs.global:4222"
subject: "logs.security"
username: "${SYNADIA_USERNAME}"
password: "${SYNADIA_PASSWORD}"

- name: synadia-application
type: synadia
properties:
url: "nats://connect.ngs.global:4222"
subject: "logs.application"
username: "${SYNADIA_USERNAME}"
password: "${SYNADIA_PASSWORD}"

With Normalization

Applying ECS normalization before publishing to Synadia Cloud...

targets:
- name: synadia-normalized
type: synadia
properties:
url: "nats://connect.ngs.global:4222"
subject: "logs.normalized"
username: "${SYNADIA_USERNAME}"
password: "${SYNADIA_PASSWORD}"
field_format: ECS

Production Configuration

Production-ready configuration with NKey authentication, TLS encryption, and batch optimization...

targets:
- name: synadia-production
type: synadia
properties:
url: "nats://connect.ngs.global:4222"
subject: "production.telemetry"
username: "${SYNADIA_NKEY_USER}"
password: "${SYNADIA_NKEY_SEED}"
timeout: 30
batch_size: 1000
max_retries: 3
retry_delay: 2
field_format: ASIM
tls:
status: true
verify: true
min_tls_version: tls1.2