Skip to content

Commit bf98996

Browse files
committed
Allow OTEL env vars to be overridden, prefix ours with TRIGGER_
1 parent 24d3a29 commit bf98996

File tree

2 files changed

+100
-4
lines changed

2 files changed

+100
-4
lines changed

apps/webapp/app/v3/environmentVariableRules.server.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ type VariableRule =
88
const blacklistedVariables: VariableRule[] = [
99
{ type: "exact", key: "TRIGGER_SECRET_KEY" },
1010
{ type: "exact", key: "TRIGGER_API_URL" },
11-
{ type: "prefix", prefix: "OTEL_" },
12-
{ type: "whitelist", key: "OTEL_LOG_LEVEL" },
1311
];
1412

1513
export function removeBlacklistedVariables(

apps/webapp/app/v3/environmentVariables/environmentVariablesRepository.server.ts

Lines changed: 100 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
} from "./repository";
1818
import { removeBlacklistedVariables } from "../environmentVariableRules.server";
1919
import { deduplicateVariableArray } from "../deduplicateVariableArray.server";
20+
import { logger } from "~/services/logger.server";
2021

2122
function secretKeyProjectPrefix(projectId: string) {
2223
return `environmentvariable:${projectId}:`;
@@ -837,11 +838,23 @@ export async function resolveVariablesForEnvironment(
837838
? await resolveBuiltInDevVariables(runtimeEnvironment)
838839
: await resolveBuiltInProdVariables(runtimeEnvironment, parentEnvironment);
839840

840-
return deduplicateVariableArray([
841+
const overridableOtelVariables =
842+
runtimeEnvironment.type === "DEVELOPMENT"
843+
? await resolveOverridableOtelDevVariables(runtimeEnvironment)
844+
: [];
845+
846+
const result = deduplicateVariableArray([
841847
...overridableTriggerVariables,
848+
...overridableOtelVariables,
842849
...projectSecrets,
843850
...builtInVariables,
844851
]);
852+
853+
logger.debug("Resolved variables", {
854+
result,
855+
});
856+
857+
return result;
845858
}
846859

847860
async function resolveOverridableTriggerVariables(
@@ -860,7 +873,7 @@ async function resolveOverridableTriggerVariables(
860873
async function resolveBuiltInDevVariables(runtimeEnvironment: RuntimeEnvironmentForEnvRepo) {
861874
let result: Array<EnvironmentVariable> = [
862875
{
863-
key: "OTEL_EXPORTER_OTLP_ENDPOINT",
876+
key: "TRIGGER_OTEL_EXPORTER_OTLP_ENDPOINT",
864877
value: env.DEV_OTEL_EXPORTER_OTLP_ENDPOINT ?? `${env.APP_ORIGIN.replace(/\/$/, "")}/otel`,
865878
},
866879
{
@@ -875,6 +888,42 @@ async function resolveBuiltInDevVariables(runtimeEnvironment: RuntimeEnvironment
875888

876889
if (env.DEV_OTEL_BATCH_PROCESSING_ENABLED === "1") {
877890
result = result.concat([
891+
{
892+
key: "TRIGGER_OTEL_BATCH_PROCESSING_ENABLED",
893+
value: "1",
894+
},
895+
{
896+
key: "TRIGGER_OTEL_SPAN_MAX_EXPORT_BATCH_SIZE",
897+
value: env.DEV_OTEL_SPAN_MAX_EXPORT_BATCH_SIZE,
898+
},
899+
{
900+
key: "TRIGGER_OTEL_SPAN_SCHEDULED_DELAY_MILLIS",
901+
value: env.DEV_OTEL_SPAN_SCHEDULED_DELAY_MILLIS,
902+
},
903+
{
904+
key: "TRIGGER_OTEL_SPAN_EXPORT_TIMEOUT_MILLIS",
905+
value: env.DEV_OTEL_SPAN_EXPORT_TIMEOUT_MILLIS,
906+
},
907+
{
908+
key: "TRIGGER_OTEL_SPAN_MAX_QUEUE_SIZE",
909+
value: env.DEV_OTEL_SPAN_MAX_QUEUE_SIZE,
910+
},
911+
{
912+
key: "TRIGGER_OTEL_LOG_MAX_EXPORT_BATCH_SIZE",
913+
value: env.DEV_OTEL_LOG_MAX_EXPORT_BATCH_SIZE,
914+
},
915+
{
916+
key: "TRIGGER_OTEL_LOG_SCHEDULED_DELAY_MILLIS",
917+
value: env.DEV_OTEL_LOG_SCHEDULED_DELAY_MILLIS,
918+
},
919+
{
920+
key: "TRIGGER_OTEL_LOG_EXPORT_TIMEOUT_MILLIS",
921+
value: env.DEV_OTEL_LOG_EXPORT_TIMEOUT_MILLIS,
922+
},
923+
{
924+
key: "TRIGGER_OTEL_LOG_MAX_QUEUE_SIZE",
925+
value: env.DEV_OTEL_LOG_MAX_QUEUE_SIZE,
926+
},
878927
{
879928
key: "OTEL_BATCH_PROCESSING_ENABLED",
880929
value: "1",
@@ -919,6 +968,19 @@ async function resolveBuiltInDevVariables(runtimeEnvironment: RuntimeEnvironment
919968
return [...result, ...commonVariables];
920969
}
921970

971+
async function resolveOverridableOtelDevVariables(
972+
runtimeEnvironment: RuntimeEnvironmentForEnvRepo
973+
) {
974+
let result: Array<EnvironmentVariable> = [
975+
{
976+
key: "OTEL_EXPORTER_OTLP_ENDPOINT",
977+
value: env.DEV_OTEL_EXPORTER_OTLP_ENDPOINT ?? `${env.APP_ORIGIN.replace(/\/$/, "")}/otel`,
978+
},
979+
];
980+
981+
return result;
982+
}
983+
922984
async function resolveBuiltInProdVariables(
923985
runtimeEnvironment: RuntimeEnvironmentForEnvRepo,
924986
parentEnvironment?: RuntimeEnvironmentForEnvRepo
@@ -957,6 +1019,42 @@ async function resolveBuiltInProdVariables(
9571019

9581020
if (env.PROD_OTEL_BATCH_PROCESSING_ENABLED === "1") {
9591021
result = result.concat([
1022+
{
1023+
key: "TRIGGER_OTEL_BATCH_PROCESSING_ENABLED",
1024+
value: "1",
1025+
},
1026+
{
1027+
key: "TRIGGER_OTEL_SPAN_MAX_EXPORT_BATCH_SIZE",
1028+
value: env.PROD_OTEL_SPAN_MAX_EXPORT_BATCH_SIZE,
1029+
},
1030+
{
1031+
key: "TRIGGER_OTEL_SPAN_SCHEDULED_DELAY_MILLIS",
1032+
value: env.PROD_OTEL_SPAN_SCHEDULED_DELAY_MILLIS,
1033+
},
1034+
{
1035+
key: "TRIGGER_OTEL_SPAN_EXPORT_TIMEOUT_MILLIS",
1036+
value: env.PROD_OTEL_SPAN_EXPORT_TIMEOUT_MILLIS,
1037+
},
1038+
{
1039+
key: "TRIGGER_OTEL_SPAN_MAX_QUEUE_SIZE",
1040+
value: env.PROD_OTEL_SPAN_MAX_QUEUE_SIZE,
1041+
},
1042+
{
1043+
key: "TRIGGER_OTEL_LOG_MAX_EXPORT_BATCH_SIZE",
1044+
value: env.PROD_OTEL_LOG_MAX_EXPORT_BATCH_SIZE,
1045+
},
1046+
{
1047+
key: "TRIGGER_OTEL_LOG_SCHEDULED_DELAY_MILLIS",
1048+
value: env.PROD_OTEL_LOG_SCHEDULED_DELAY_MILLIS,
1049+
},
1050+
{
1051+
key: "TRIGGER_OTEL_LOG_EXPORT_TIMEOUT_MILLIS",
1052+
value: env.PROD_OTEL_LOG_EXPORT_TIMEOUT_MILLIS,
1053+
},
1054+
{
1055+
key: "TRIGGER_OTEL_LOG_MAX_QUEUE_SIZE",
1056+
value: env.PROD_OTEL_LOG_MAX_QUEUE_SIZE,
1057+
},
9601058
{
9611059
key: "OTEL_BATCH_PROCESSING_ENABLED",
9621060
value: "1",

0 commit comments

Comments
 (0)