ObservabilityConfig.fromEnvironment constructor
Builds a configuration by reading relevant environment variables from
env or the process environment.
Implementation
factory ObservabilityConfig.fromEnvironment([Map<String, String>? env]) {
final environment = env ?? Platform.environment;
final interval =
parseDuration(environment[_EnvKeys.heartbeatInterval]) ??
const Duration(seconds: 10);
final namespace = environment[_EnvKeys.namespace]?.trim();
final exportersRaw = environment[_EnvKeys.metricExporters] ?? '';
final exporters = exportersRaw
.split(',')
.map((entry) => entry.trim())
.where((entry) => entry.isNotEmpty)
.toList();
final otlpRaw = environment[_EnvKeys.otlpEndpoint]?.trim();
final otlp = otlpRaw != null && otlpRaw.isNotEmpty
? Uri.tryParse(otlpRaw)
: null;
final signalsEnabled = _parseBool(environment[_EnvKeys.signalsEnabled]);
final disabledSignals = _parseList(environment[_EnvKeys.signalsDisabled]);
final signalConfig = StemSignalConfiguration(
enabled: signalsEnabled ?? true,
enabledSignals: {for (final name in disabledSignals) name: false},
);
return ObservabilityConfig(
heartbeatInterval: interval,
namespace: namespace,
metricExporters: exporters,
otlpEndpoint: otlp,
signalConfiguration: signalConfig,
);
}