Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[main] [BUG] using EndPointUrl (and IngestionEndpoint) results in Telemetry sent to incorrect urls #2197 #2274

Merged
merged 14 commits into from
Mar 4, 2024
2 changes: 1 addition & 1 deletion AISKU/src/AISku.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ export class AppInsightsSku implements IApplicationInsights {
// Will get recalled if any referenced values are changed
_addUnloadHook(onConfigChange(cfgHandler, () => {
if (_config.connectionString) {
const cs = parseConnectionString(_config.connectionString);
const cs = parseConnectionString(_config.connectionString, _config.userOverrideEndpointUrl);
const ingest = cs.ingestionendpoint;
_config.endpointUrl = ingest ? (ingest + DEFAULT_BREEZE_PATH) : _config.endpointUrl; // only add /v2/track when from connectionstring
_config.instrumentationKey = cs.instrumentationkey || _config.instrumentationKey;
Expand Down
2 changes: 1 addition & 1 deletion AISKULight/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ export class ApplicationInsights {

core.addUnloadHook(onConfigChange(cfgHandler, () => {
if (_config.connectionString) {
const cs = parseConnectionString(_config.connectionString);
const cs = parseConnectionString(_config.connectionString, _config.userOverrideEndpointUrl);
const ingest = cs.ingestionendpoint;
_config.endpointUrl = ingest ? (ingest + DEFAULT_BREEZE_PATH) : _config.endpointUrl; // only add /v2/track when from connectionstring
_config.instrumentationKey = cs.instrumentationkey || _config.instrumentationKey;
Expand Down
6 changes: 3 additions & 3 deletions shared/AppInsightsCommon/src/ConnectionStringParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { ConnectionString, ConnectionStringKey } from "./Interfaces/ConnectionSt
const _FIELDS_SEPARATOR = ";";
const _FIELD_KEY_VALUE_SEPARATOR = "=";

export function parseConnectionString(connectionString?: string): ConnectionString {
export function parseConnectionString(connectionString?: string, userOverrideEndpointUrl?: string): ConnectionString {
if (!connectionString) {
return {};
}
Expand All @@ -35,8 +35,8 @@ export function parseConnectionString(connectionString?: string): ConnectionStri
result.ingestionendpoint = result.ingestionendpoint || ("https://" + locationPrefix + "dc." + result.endpointsuffix);
}

// apply the default endpoints
result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;
// apply user override endpoint or the default endpoints
result.ingestionendpoint = userOverrideEndpointUrl || result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;

if (strEndsWith(result.ingestionendpoint, "/")) {
result.ingestionendpoint = result.ingestionendpoint.slice(0,-1);
Expand Down
5 changes: 5 additions & 0 deletions shared/AppInsightsCommon/src/Interfaces/IConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,11 @@ export interface IConfig {
* [Optional] Sets throttle mgr configuration by key
*/
throttleMgrCfg?: {[key: number]: IThrottleMgrConfig};

/**
* [Optional] Sets the user override endpoint url where the track telemetry is going to be sent
*/
userOverrideEndpointUrl?: string;
}

export class ConfigurationManager {
Expand Down
Loading