Skip to content

Commit a05317d

Browse files
feat(observability): tag Trigger.dev telemetry with deployment.environment.name
1 parent 222089a commit a05317d

2 files changed

Lines changed: 7 additions & 0 deletions

File tree

apps/sim/lib/core/config/env.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ export const env = createEnv({
160160
GRAFANA_OTLP_ENDPOINT: z.string().url().optional(), // Grafana Cloud OTLP HTTP gateway base URL (e.g., https://otlp-gateway-prod-us-east-0.grafana.net/otlp). Trigger.dev exporters append /v1/traces, /v1/logs, /v1/metrics.
161161
GRAFANA_INSTANCE_ID: z.string().min(1).optional(), // Grafana Cloud instance ID (Basic auth username for OTLP)
162162
GRAFANA_API_TOKEN: z.string().min(1).optional(), // Grafana Cloud API token (Basic auth password for OTLP)
163+
SIM_DEPLOYMENT_ENVIRONMENT: z.string().min(1).optional(), // Deployment tier label (e.g., "production", "staging", "development"). Emitted as the stable `deployment.environment.name` resource attribute on Trigger.dev telemetry to match the rest of the Sim OTEL stack.
163164

164165
// External Services
165166
BROWSERBASE_API_KEY: z.string().min(1).optional(), // Browserbase API key for browser automation

apps/sim/trigger.config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http'
22
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http'
33
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'
4+
import { resourceFromAttributes } from '@opentelemetry/resources'
45
import { additionalFiles, additionalPackages } from '@trigger.dev/build/extensions/core'
56
import { defineConfig } from '@trigger.dev/sdk'
67
import { env } from './lib/core/config/env'
@@ -23,10 +24,15 @@ const grafanaTelemetry = grafanaFullyConfigured
2324
const headers = {
2425
Authorization: `Basic ${Buffer.from(`${grafanaInstanceId}:${grafanaToken}`).toString('base64')}`,
2526
}
27+
const deploymentEnvironment = env.SIM_DEPLOYMENT_ENVIRONMENT
28+
const resource = deploymentEnvironment
29+
? resourceFromAttributes({ 'deployment.environment.name': deploymentEnvironment })
30+
: undefined
2631
return {
2732
exporters: [new OTLPTraceExporter({ url: `${baseUrl}/v1/traces`, headers })],
2833
logExporters: [new OTLPLogExporter({ url: `${baseUrl}/v1/logs`, headers })],
2934
metricExporters: [new OTLPMetricExporter({ url: `${baseUrl}/v1/metrics`, headers })],
35+
...(resource ? { resource } : {}),
3036
}
3137
})()
3238
: undefined

0 commit comments

Comments
 (0)