mirror of https://github.com/coder/code-server.git
Compare commits
3 Commits
0c802ba165
...
a73549539b
Author | SHA1 | Date |
---|---|---|
Asher | a73549539b | |
Asher | e7ca9cd6ac | |
Asher | 9da9f2029c |
39
CHANGELOG.md
39
CHANGELOG.md
|
@ -24,12 +24,21 @@ Code v99.99.999
|
|||
|
||||
Code v1.90.0
|
||||
|
||||
## Changed
|
||||
### Fixed
|
||||
|
||||
- Cache a call to get CPU information used in telemetry that could result in a
|
||||
lack responsiveness if it was particularly slow.
|
||||
|
||||
## [4.90.0](https://github.com/coder/code-server/releases/tag/v4.90.0) - 2024-06-11
|
||||
|
||||
Code v1.90.0
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.90.0.
|
||||
- Updated Node to 20.11.1.
|
||||
|
||||
## Added
|
||||
### Added
|
||||
|
||||
- Send contents to the clipboard in the integrated terminal by piping to
|
||||
`code-server --stdin-to-clipboard` or `code-server -c`.
|
||||
|
@ -45,7 +54,7 @@ Code v1.90.0
|
|||
|
||||
Code v1.89.1
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.89.1.
|
||||
|
||||
|
@ -53,7 +62,7 @@ Code v1.89.1
|
|||
|
||||
Code v1.89.0
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.89.0.
|
||||
|
||||
|
@ -61,7 +70,7 @@ Code v1.89.0
|
|||
|
||||
Code v1.88.1
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.88.1.
|
||||
|
||||
|
@ -69,12 +78,12 @@ Code v1.88.1
|
|||
|
||||
Code v1.88.0
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.88.0.
|
||||
- Updated Node to 18.18.2.
|
||||
|
||||
## Fixed
|
||||
### Fixed
|
||||
|
||||
- Fix masking the exit code when failing to install extensions on the command
|
||||
line outside the integrated terminal. Installing extensions inside the
|
||||
|
@ -84,7 +93,7 @@ Code v1.88.0
|
|||
|
||||
Code v1.87.2
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.87.2.
|
||||
- Enable keep-alive for proxy agent.
|
||||
|
@ -93,7 +102,7 @@ Code v1.87.2
|
|||
|
||||
Code v1.87.0
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.87.0.
|
||||
|
||||
|
@ -101,7 +110,7 @@ Code v1.87.0
|
|||
|
||||
Code v1.86.2
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.86.2.
|
||||
|
||||
|
@ -109,12 +118,12 @@ Code v1.86.2
|
|||
|
||||
Code v1.86.1
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.86.1.
|
||||
- Updated to Node 18.17.1.
|
||||
|
||||
## Added
|
||||
### Added
|
||||
|
||||
- Docker images for Fedora and openSUSE.
|
||||
|
||||
|
@ -122,7 +131,7 @@ Code v1.86.1
|
|||
|
||||
Code v1.86.0
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.86.0.
|
||||
|
||||
|
@ -130,11 +139,11 @@ Code v1.86.0
|
|||
|
||||
Code v1.85.2
|
||||
|
||||
## Changed
|
||||
### Changed
|
||||
|
||||
- Updated to Code 1.85.2.
|
||||
|
||||
## Fixed
|
||||
### Fixed
|
||||
|
||||
- Query variables are no longer double-encoded when going over the path proxy.
|
||||
|
||||
|
|
|
@ -50,50 +50,66 @@ Index: code-server/lib/vscode/src/vs/server/node/telemetryClient.ts
|
|||
===================================================================
|
||||
--- /dev/null
|
||||
+++ code-server/lib/vscode/src/vs/server/node/telemetryClient.ts
|
||||
@@ -0,0 +1,55 @@
|
||||
@@ -0,0 +1,71 @@
|
||||
+import { AppInsightsCore, IExtendedTelemetryItem, ITelemetryItem } from '@microsoft/1ds-core-js';
|
||||
+import * as https from 'https';
|
||||
+import * as http from 'http';
|
||||
+import * as os from 'os';
|
||||
+
|
||||
+interface SystemInfo {
|
||||
+ measurements: Record<string, number | undefined>;
|
||||
+ properties: Record<string, string | boolean | null | undefined>;
|
||||
+}
|
||||
+
|
||||
+export class TelemetryClient extends AppInsightsCore {
|
||||
+ private readonly systemInfo: SystemInfo = {
|
||||
+ measurements: {},
|
||||
+ properties: {},
|
||||
+ };
|
||||
+
|
||||
+ public constructor(
|
||||
+ private readonly endpoint: string,
|
||||
+ private readonly machineId: string,
|
||||
+ private readonly isContainer: Boolean | undefined) {
|
||||
+ machineId: string,
|
||||
+ isContainer: boolean | undefined) {
|
||||
+ super();
|
||||
+
|
||||
+ // os.cpus() can take a very long time sometimes (personally I see 1-2
|
||||
+ // seconds in a Coder workspace). This adds up significantly, especially
|
||||
+ // when many telemetry requests are sent during startup, which can cause
|
||||
+ // connection timeouts. Try to cache as much as we can.
|
||||
+ try {
|
||||
+ const cpus = os.cpus();
|
||||
+ this.systemInfo.measurements.cores = cpus.length;
|
||||
+ this.systemInfo.properties['common.cpuModel'] = cpus[0].model;
|
||||
+ } catch (error) {}
|
||||
+
|
||||
+ try {
|
||||
+ this.systemInfo.properties['common.shell'] = os.userInfo().shell;
|
||||
+ this.systemInfo.properties['common.release'] = os.release();
|
||||
+ this.systemInfo.properties['common.arch'] = os.arch();
|
||||
+ } catch (error) {}
|
||||
+
|
||||
+ this.systemInfo.properties['common.remoteMachineId'] = machineId;
|
||||
+ this.systemInfo.properties['common.isContainer'] = isContainer;
|
||||
+ }
|
||||
+
|
||||
+ public override track(item: IExtendedTelemetryItem | ITelemetryItem): void {
|
||||
+ const options = item.baseData || {}
|
||||
+ if (!options.properties) {
|
||||
+ options.properties = {};
|
||||
+ options.measurements = {
|
||||
+ ...(options.measurements || {}),
|
||||
+ ...this.systemInfo.measurements,
|
||||
+ }
|
||||
+ if (!options.measurements) {
|
||||
+ options.measurements = {};
|
||||
+ options.properties = {
|
||||
+ ...(options.properties || {}),
|
||||
+ ...this.systemInfo.properties,
|
||||
+ }
|
||||
+
|
||||
+ try {
|
||||
+ const cpus = os.cpus();
|
||||
+ options.measurements.cores = cpus.length;
|
||||
+ options.properties['common.cpuModel'] = cpus[0].model;
|
||||
+ } catch (error) {}
|
||||
+
|
||||
+ try {
|
||||
+ options.measurements.memoryFree = os.freemem();
|
||||
+ options.measurements.memoryTotal = os.totalmem();
|
||||
+ } catch (error) {}
|
||||
+
|
||||
+ try {
|
||||
+ options.properties['common.shell'] = os.userInfo().shell;
|
||||
+ options.properties['common.release'] = os.release();
|
||||
+ options.properties['common.arch'] = os.arch();
|
||||
+ } catch (error) {}
|
||||
+
|
||||
+ options.properties['common.remoteMachineId'] = this.machineId;
|
||||
+ options.properties['common.isContainer'] = this.isContainer;
|
||||
+
|
||||
+ try {
|
||||
+ const request = (/^http:/.test(this.endpoint) ? http : https).request(this.endpoint, {
|
||||
+ method: 'POST',
|
||||
+ headers: {
|
||||
|
|
Loading…
Reference in New Issue