Better Stack
Blyp's Better Stack connector covers two related server-side flows:
- log forwarding into Better Stack Logs through
@logtail/node - exception capture into Better Stack error tracking through the Sentry SDK
Config
Configure Better Stack under connectors.betterstack:
export default {
connectors: {
betterstack: {
enabled: true,
mode: "auto",
sourceToken: process.env.SOURCE_TOKEN,
ingestingHost: process.env.INGESTING_HOST,
serviceName: "api",
errorTracking: {
enabled: true,
dsn: process.env.BETTERSTACK_ERROR_TRACKING_DSN,
tracesSampleRate: 1.0,
environment: process.env.NODE_ENV,
release: "2026.03.11",
},
},
},
};Config fields
enabled: enables Better Stack deliverymode:autoormanualfor server log forwardingsourceToken: Better Stack source token for log deliveryingestingHost: absolutehttp://orhttps://Better Stack ingest URLserviceName: defaults toblyp-apperrorTracking.enabled: enables Better Stack error tracking and defaults to the connectorenabledvalueerrorTracking.dsn: Better Stack error tracking DSNerrorTracking.tracesSampleRate: defaults to1.0errorTracking.environment: optional Sentry environment value used for Better Stack error trackingerrorTracking.release: optional release string
Automatic server forwarding
When mode: "auto" is enabled and the connector is ready, Blyp server logs forward into Better Stack automatically.
If errorTracking.dsn is configured, Blyp also captures handled server errors into Better Stack error tracking automatically.
Blyp forwards logs to Better Stack as structured JSON events. Each Blyp log line becomes one Better Stack log entry with the original message, level, and structured fields preserved.
Manual APIs
Use @blyp/core/betterstack when you want explicit control:
import {
captureBetterStackException,
createBetterStackErrorTracker,
createBetterStackLogger,
createStructuredBetterStackLogger,
} from "@blyp/core/betterstack";
createBetterStackLogger().info("manual better stack log");
createBetterStackErrorTracker().capture(
new Error("manual better stack exception")
);
captureBetterStackException(new Error("wrapped better stack exception"), {
context: {
feature: "checkout",
},
});
const structured = createStructuredBetterStackLogger("checkout", {
orderId: "ord_123",
});
structured.info("manual start");
structured.emit({ status: 200 });Browser and Expo forwarding
Browser and Expo do not use Better Stack SDKs directly. They request forwarding through Blyp ingestion:
const logger = createClientLogger({
endpoint: "/inngest",
connector: "betterstack",
});const logger = createExpoLogger({
endpoint: "https://api.example.com/inngest",
connector: "betterstack",
});Client error and critical logs requested through the Better Stack connector are promoted into Better Stack exceptions when server-side Better Stack error tracking is configured.
Notes
ingestingHostmust be a full absolutehttp://orhttps://URL- Blyp does not auto-read
SOURCE_TOKENorINGESTING_HOST; wire them throughblyp.config.*explicitly - if
@sentry/nodeis already initialized, Blyp reuses the existing Sentry client for Better Stack error tracking - if that existing Sentry client uses different DSN, environment, or release options, Blyp warns and keeps the existing client
- browser and Expo still post to Blyp first
- browser and Expo do not use
@logtail/browserdirectly - Workers remain out of scope for this connector