Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/vs/workbench/api/node/proxyResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ export function connectProxyResolver(
return intervalSeconds * 1000;
},
loadAdditionalCertificates: async () => {
const start = Date.now();
const useNodeSystemCerts = getExtHostConfigValue<boolean>(configProvider, isRemote, 'http.systemCertificatesNode', systemCertificatesNodeDefault);
const promises: Promise<string[]>[] = [];
if (isRemote) {
Expand All @@ -126,6 +127,7 @@ export function connectProxyResolver(
const result = (await Promise.all(promises)).flat();
mainThreadTelemetry.$publicLog2<AdditionalCertificatesEvent, AdditionalCertificatesClassification>('additionalCertificates', {
count: result.length,
duration: Date.now() - start,
isRemote,
loadLocalCertificates,
useNodeSystemCerts,
Expand Down Expand Up @@ -299,15 +301,17 @@ function recordFetchFeatureUse(mainThreadTelemetry: MainThreadTelemetryShape, fe

type AdditionalCertificatesClassification = {
owner: 'chrmarti';
comment: 'Tracks the number of additional certificates loaded for TLS connections';
comment: 'Tracks loading additional certificates for TLS connections';
count: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Number of additional certificates loaded' };
duration: { classification: 'SystemMetaData'; purpose: 'PerformanceAndHealth'; isMeasurement: true; comment: 'Time in milliseconds spent loading additional certificates' };
isRemote: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Whether this is a remote extension host' };
loadLocalCertificates: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Whether local certificates are loaded' };
useNodeSystemCerts: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; isMeasurement: true; comment: 'Whether Node.js system certificates are used' };
};

type AdditionalCertificatesEvent = {
count: number;
duration: number;
isRemote: boolean;
loadLocalCertificates: boolean;
useNodeSystemCerts: boolean;
Expand Down