Wait until config is loaded to load otel
This commit is contained in:
parent
ec88907981
commit
48493a96e1
2 changed files with 16 additions and 3 deletions
|
@ -23,6 +23,7 @@ import * as Sentry from "@sentry/react";
|
||||||
|
|
||||||
import { getUrlParams } from "./UrlParams";
|
import { getUrlParams } from "./UrlParams";
|
||||||
import { Config } from "./config/Config";
|
import { Config } from "./config/Config";
|
||||||
|
import { ElementCallOpenTelemetry } from "./otel/otel";
|
||||||
|
|
||||||
enum LoadState {
|
enum LoadState {
|
||||||
None,
|
None,
|
||||||
|
@ -35,6 +36,7 @@ class DependencyLoadStates {
|
||||||
// olm: LoadState = LoadState.None;
|
// olm: LoadState = LoadState.None;
|
||||||
config: LoadState = LoadState.None;
|
config: LoadState = LoadState.None;
|
||||||
sentry: LoadState = LoadState.None;
|
sentry: LoadState = LoadState.None;
|
||||||
|
openTelemetry: LoadState = LoadState.None;
|
||||||
|
|
||||||
allDepsAreLoaded() {
|
allDepsAreLoaded() {
|
||||||
return !Object.values(this).some((s) => s !== LoadState.Loaded);
|
return !Object.values(this).some((s) => s !== LoadState.Loaded);
|
||||||
|
@ -209,6 +211,15 @@ export class Initializer {
|
||||||
this.loadStates.sentry = LoadState.Loaded;
|
this.loadStates.sentry = LoadState.Loaded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OpenTelemetry (also only after config loaded)
|
||||||
|
if (
|
||||||
|
this.loadStates.openTelemetry === LoadState.None &&
|
||||||
|
this.loadStates.config === LoadState.Loaded
|
||||||
|
) {
|
||||||
|
ElementCallOpenTelemetry.globalInit();
|
||||||
|
this.loadStates.openTelemetry = LoadState.Loaded;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.loadStates.allDepsAreLoaded()) {
|
if (this.loadStates.allDepsAreLoaded()) {
|
||||||
// resolve if there is no dependency that is not loaded
|
// resolve if there is no dependency that is not loaded
|
||||||
resolve();
|
resolve();
|
||||||
|
|
|
@ -39,6 +39,11 @@ export class ElementCallOpenTelemetry {
|
||||||
private _tracer: Tracer;
|
private _tracer: Tracer;
|
||||||
private _anonymity: Anonymity;
|
private _anonymity: Anonymity;
|
||||||
|
|
||||||
|
static globalInit(): void {
|
||||||
|
settingsBus.on("opt-in-analytics", recheckOTelEnabledStatus);
|
||||||
|
recheckOTelEnabledStatus(getSetting("opt-in-analytics", false));
|
||||||
|
}
|
||||||
|
|
||||||
static get instance(): ElementCallOpenTelemetry {
|
static get instance(): ElementCallOpenTelemetry {
|
||||||
return sharedInstance;
|
return sharedInstance;
|
||||||
}
|
}
|
||||||
|
@ -93,6 +98,3 @@ function recheckOTelEnabledStatus(optInAnalayticsEnabled: boolean): void {
|
||||||
sharedInstance = undefined;
|
sharedInstance = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsBus.on("opt-in-analytics", recheckOTelEnabledStatus);
|
|
||||||
recheckOTelEnabledStatus(getSetting("opt-in-analytics", false));
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue