@elastic/synthetics 1.24.4 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +67 -0
  2. package/dist/common_types.d.ts +17 -0
  3. package/dist/common_types.d.ts.map +1 -1
  4. package/dist/core/gatherer.d.ts +4 -4
  5. package/dist/core/gatherer.d.ts.map +1 -1
  6. package/dist/core/gatherer.js +28 -7
  7. package/dist/core/gatherer.js.map +1 -1
  8. package/dist/core/globals.js +1 -1
  9. package/dist/core/index.d.ts +2 -1
  10. package/dist/core/index.d.ts.map +1 -1
  11. package/dist/core/index.js +16 -1
  12. package/dist/core/index.js.map +1 -1
  13. package/dist/core/runner.d.ts +1 -1
  14. package/dist/core/runner.d.ts.map +1 -1
  15. package/dist/core/runner.js +86 -58
  16. package/dist/core/runner.js.map +1 -1
  17. package/dist/dsl/api-journey.d.ts +62 -0
  18. package/dist/dsl/api-journey.d.ts.map +1 -0
  19. package/dist/dsl/api-journey.js +55 -0
  20. package/dist/dsl/api-journey.js.map +1 -0
  21. package/dist/dsl/index.d.ts +1 -0
  22. package/dist/dsl/index.d.ts.map +1 -1
  23. package/dist/dsl/index.js +1 -0
  24. package/dist/dsl/index.js.map +1 -1
  25. package/dist/dsl/journey.d.ts +10 -2
  26. package/dist/dsl/journey.d.ts.map +1 -1
  27. package/dist/dsl/journey.js +11 -2
  28. package/dist/dsl/journey.js.map +1 -1
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +2 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/loader.d.ts.map +1 -1
  34. package/dist/loader.js +66 -1
  35. package/dist/loader.js.map +1 -1
  36. package/dist/network-timings.d.ts +55 -0
  37. package/dist/network-timings.d.ts.map +1 -0
  38. package/dist/network-timings.js +107 -0
  39. package/dist/network-timings.js.map +1 -0
  40. package/dist/plugins/api-network.d.ts +39 -0
  41. package/dist/plugins/api-network.d.ts.map +1 -0
  42. package/dist/plugins/api-network.js +235 -0
  43. package/dist/plugins/api-network.js.map +1 -0
  44. package/dist/plugins/network.d.ts +0 -6
  45. package/dist/plugins/network.d.ts.map +1 -1
  46. package/dist/plugins/network.js +5 -70
  47. package/dist/plugins/network.js.map +1 -1
  48. package/dist/plugins/plugin-manager.d.ts +11 -4
  49. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  50. package/dist/plugins/plugin-manager.js +36 -16
  51. package/dist/plugins/plugin-manager.js.map +1 -1
  52. package/dist/push/index.d.ts.map +1 -1
  53. package/dist/push/index.js +4 -0
  54. package/dist/push/index.js.map +1 -1
  55. package/dist/push/monitor.d.ts.map +1 -1
  56. package/dist/push/monitor.js +1 -1
  57. package/dist/push/monitor.js.map +1 -1
  58. package/dist/push/run-local.d.ts.map +1 -1
  59. package/dist/push/run-local.js +2 -1
  60. package/dist/push/run-local.js.map +1 -1
  61. package/dist/push/utils.d.ts +7 -0
  62. package/dist/push/utils.d.ts.map +1 -1
  63. package/dist/push/utils.js +15 -1
  64. package/dist/push/utils.js.map +1 -1
  65. package/dist/reporters/base.d.ts +2 -2
  66. package/dist/reporters/base.d.ts.map +1 -1
  67. package/dist/reporters/base.js.map +1 -1
  68. package/dist/reporters/index.d.ts +2 -2
  69. package/dist/reporters/index.d.ts.map +1 -1
  70. package/dist/reporters/index.js.map +1 -1
  71. package/dist/reporters/json.d.ts +6 -2
  72. package/dist/reporters/json.d.ts.map +1 -1
  73. package/dist/reporters/json.js +68 -33
  74. package/dist/reporters/json.js.map +1 -1
  75. package/package.json +5 -5
  76. package/src/common_types.ts +22 -0
  77. package/src/core/gatherer.ts +41 -10
  78. package/src/core/globals.ts +1 -1
  79. package/src/core/index.ts +28 -0
  80. package/src/core/runner.ts +93 -67
  81. package/src/dsl/api-journey.ts +93 -0
  82. package/src/dsl/index.ts +1 -0
  83. package/src/dsl/journey.ts +21 -9
  84. package/src/index.ts +6 -0
  85. package/src/loader.ts +78 -2
  86. package/src/network-timings.ts +130 -0
  87. package/src/plugins/api-network.ts +252 -0
  88. package/src/plugins/network.ts +5 -87
  89. package/src/plugins/plugin-manager.ts +60 -19
  90. package/src/push/index.ts +11 -0
  91. package/src/push/monitor.ts +6 -2
  92. package/src/push/run-local.ts +2 -1
  93. package/src/push/utils.ts +15 -0
  94. package/src/reporters/base.ts +2 -1
  95. package/src/reporters/index.ts +2 -1
  96. package/src/reporters/json.ts +74 -41
  97. package/templates/README.md +3 -1
  98. package/templates/journeys/advanced-api-example-helpers.ts +79 -0
  99. package/templates/journeys/advanced-api-example.journey.ts +52 -0
  100. package/templates/journeys/api-example.journey.ts +35 -0
  101. package/templates/synthetics.config.ts +2 -0
@@ -50,6 +50,25 @@ function getMetadata() {
50
50
  },
51
51
  };
52
52
  }
53
+ // ECS `server.ip`/`server.port`. Emitted for API journeys only; browser
54
+ // output keeps the address under `http.response` to preserve its shape.
55
+ function formatServer(response) {
56
+ if (!response?.remoteIPAddress && !response?.remotePort)
57
+ return undefined;
58
+ return {
59
+ ip: response.remoteIPAddress,
60
+ port: response.remotePort,
61
+ };
62
+ }
63
+ // Epoch seconds -> ISO-8601, tolerating missing/non-finite input. A
64
+ // malformed cert date would otherwise throw `RangeError` and sink the
65
+ // whole `journey/end` document (see json.test.ts regression).
66
+ function epochToIso(epochSeconds) {
67
+ if (epochSeconds == null || !Number.isFinite(epochSeconds))
68
+ return undefined;
69
+ const date = new Date(epochSeconds * 1000);
70
+ return Number.isNaN(date.getTime()) ? undefined : date.toISOString();
71
+ }
53
72
  function formatTLS(tls) {
54
73
  if (!tls || !tls.protocol) {
55
74
  return;
@@ -64,8 +83,8 @@ function formatTLS(tls) {
64
83
  subject: {
65
84
  common_name: tls.subjectName,
66
85
  },
67
- not_after: new Date(tls.validTo * 1000).toISOString(),
68
- not_before: new Date(tls.validFrom * 1000).toISOString(),
86
+ not_after: epochToIso(tls.validTo),
87
+ not_before: epochToIso(tls.validFrom),
69
88
  },
70
89
  },
71
90
  version_protocol: name,
@@ -119,6 +138,7 @@ function formatNetworkFields(network) {
119
138
  response,
120
139
  },
121
140
  tls: formatTLS(response?.securityDetails),
141
+ ...(browser?.name === 'api' && { server: formatServer(response) }),
122
142
  };
123
143
  const pickItems = [
124
144
  'browser',
@@ -163,10 +183,14 @@ function journeyInfo(journey, type) {
163
183
  if (!journey) {
164
184
  return;
165
185
  }
186
+ // Surface non-default journey types (e.g. `api`) for downstream routing;
187
+ // browser output omits the field to stay byte-compatible.
188
+ const journeyType = journey.type && journey.type !== 'browser' ? journey.type : undefined;
166
189
  const info = {
167
190
  name: journey.name,
168
191
  id: journey.id,
169
192
  tags: journey.tags,
193
+ ...(journeyType ? { type: journeyType } : {}),
170
194
  };
171
195
  const isEnd = type === 'journey/end';
172
196
  if (isEnd) {
@@ -324,30 +348,37 @@ class JSONReporter extends base_1.default {
324
348
  },
325
349
  });
326
350
  }
327
- async onJourneyEnd(journey, { timestamp, browserDelay, networkinfo, browserconsole, options, }) {
328
- const { ssblocks, screenshots } = options;
329
- const writeScreenshots = screenshots === 'on' ||
330
- (screenshots === 'only-on-failure' && journey.status === 'failed');
331
- if (writeScreenshots) {
332
- await gatherScreenshots((0, path_1.join)(helpers_1.CACHE_PATH, 'screenshots'), async (screenshot) => {
333
- const { data, timestamp, step } = screenshot;
334
- if (!data) {
335
- return;
336
- }
337
- if (ssblocks) {
338
- await this.writeScreenshotBlocks(journey, screenshot);
339
- }
340
- else {
341
- this.writeJSON({
342
- type: 'step/screenshot',
343
- timestamp,
344
- journey,
345
- step,
346
- blob: data,
347
- blob_mime: 'image/jpeg',
348
- });
349
- }
350
- });
351
+ async onJourneyEnd(journey, result) {
352
+ const { timestamp, networkinfo, options } = result;
353
+ const isAPIJourney = journey.type === 'api';
354
+ // Browser-only fields; absent for API journeys.
355
+ const browserDelay = result.browserDelay;
356
+ const browserconsole = result.browserconsole;
357
+ if (!isAPIJourney) {
358
+ const { ssblocks, screenshots } = options;
359
+ const writeScreenshots = screenshots === 'on' ||
360
+ (screenshots === 'only-on-failure' && journey.status === 'failed');
361
+ if (writeScreenshots) {
362
+ await gatherScreenshots((0, path_1.join)(helpers_1.CACHE_PATH, 'screenshots'), async (screenshot) => {
363
+ const { data, timestamp, step } = screenshot;
364
+ if (!data) {
365
+ return;
366
+ }
367
+ if (ssblocks) {
368
+ await this.writeScreenshotBlocks(journey, screenshot);
369
+ }
370
+ else {
371
+ this.writeJSON({
372
+ type: 'step/screenshot',
373
+ timestamp,
374
+ journey,
375
+ step,
376
+ blob: data,
377
+ blob_mime: 'image/jpeg',
378
+ });
379
+ }
380
+ });
381
+ }
351
382
  }
352
383
  if (networkinfo) {
353
384
  networkinfo.forEach(ni => {
@@ -376,18 +407,22 @@ class JSONReporter extends base_1.default {
376
407
  });
377
408
  });
378
409
  }
410
+ const endPayload = {
411
+ status: journey.status,
412
+ // Omit `browser_delay_us` for API journeys where it has no meaning;
413
+ // key order preserves the existing browser wire shape.
414
+ ...(isAPIJourney
415
+ ? {}
416
+ : { browser_delay_us: (0, helpers_1.getDurationInUs)(browserDelay) }),
417
+ // timestamp in microseconds at which the current node process began, measured in Unix time.
418
+ process_startup_epoch_us: Math.trunc(helpers_1.processStart * 1000),
419
+ };
379
420
  this.writeJSON({
380
421
  type: 'journey/end',
381
422
  journey,
382
423
  timestamp,
383
424
  error: journey.error,
384
- payload: {
385
- status: journey.status,
386
- // convert from monotonic seconds time to microseconds
387
- browser_delay_us: (0, helpers_1.getDurationInUs)(browserDelay),
388
- // timestamp in microseconds at which the current node process began, measured in Unix time.
389
- process_startup_epoch_us: Math.trunc(helpers_1.processStart * 1000),
390
- },
425
+ payload: endPayload,
391
426
  });
392
427
  }
393
428
  onEnd() {
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/reporters/json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/reporters/json.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elastic/synthetics",
3
- "version": "1.24.4",
3
+ "version": "1.25.0",
4
4
  "description": "Elastic synthetic monitoring agent",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -61,11 +61,11 @@
61
61
  "micromatch": "^4.0.8",
62
62
  "otpauth": "^9.3.2",
63
63
  "pirates": "^4.0.5",
64
- "playwright": "=1.61.1",
65
- "playwright-chromium": "=1.61.1",
66
- "playwright-core": "=1.61.1",
64
+ "playwright": "=1.62.0",
65
+ "playwright-chromium": "=1.62.0",
66
+ "playwright-core": "=1.62.0",
67
67
  "semver": "^7.5.4",
68
- "sharp": "^0.34.2",
68
+ "sharp": "^0.35.3",
69
69
  "snakecase-keys": "^4.0.1",
70
70
  "sonic-boom": "^3.3.0",
71
71
  "source-map-support": "^0.5.21",
@@ -64,6 +64,10 @@ export type NetworkConditions = {
64
64
  latency: number;
65
65
  };
66
66
 
67
+ export type APIDriver = {
68
+ request: APIRequestContext;
69
+ };
70
+
67
71
  export type Driver = {
68
72
  browser: ChromiumBrowser;
69
73
  context: ChromiumBrowserContext;
@@ -256,6 +260,13 @@ export type RunOptions = BaseArgs & {
256
260
  grepOpts?: GrepOptions;
257
261
  };
258
262
 
263
+ export type APIRunOptions = BaseArgs & {
264
+ network?: boolean;
265
+ environment?: string;
266
+ reporter?: BuiltInReporterName | ReporterInstance;
267
+ grepOpts?: GrepOptions;
268
+ };
269
+
259
270
  export type PushOptions = Partial<ProjectSettings> &
260
271
  Partial<BaseArgs> & {
261
272
  auth: string;
@@ -291,6 +302,12 @@ export type SyntheticsConfig = {
291
302
  proxy?: ProxySettings;
292
303
  };
293
304
 
305
+ /** Runner Payload types */
306
+ export type APIJourneyResult = Partial<Journey> & {
307
+ networkinfo?: PluginOutput['networkinfo'];
308
+ stepsresults?: Array<StepResult>;
309
+ };
310
+
294
311
  /** Runner Payload types */
295
312
  export type JourneyResult = Partial<Journey> & {
296
313
  networkinfo?: PluginOutput['networkinfo'];
@@ -330,6 +347,11 @@ export type JourneyEndResult = JourneyStartResult &
330
347
  options: RunOptions;
331
348
  };
332
349
 
350
+ export type APIJourneyEndResult = JourneyStartResult &
351
+ APIJourneyResult & {
352
+ options: RunOptions;
353
+ };
354
+
333
355
  export type StepEndResult = StepResult;
334
356
 
335
357
  export type ProxySettings = {
@@ -32,7 +32,12 @@ import {
32
32
  } from 'playwright-core';
33
33
  import { PluginManager } from '../plugins';
34
34
  import { log } from './logger';
35
- import { Driver, NetworkConditions, RunOptions } from '../common_types';
35
+ import {
36
+ APIDriver,
37
+ Driver,
38
+ NetworkConditions,
39
+ RunOptions,
40
+ } from '../common_types';
36
41
 
37
42
  // Default timeout for Playwright actions and Navigations
38
43
  const DEFAULT_TIMEOUT = 50000;
@@ -71,9 +76,19 @@ export class Gatherer {
71
76
  });
72
77
  }
73
78
 
74
- static async setupDriver(options: RunOptions): Promise<Driver> {
75
- await Gatherer.launchBrowser(options);
79
+ static async setupDriver<T extends 'browser' | 'api' = 'browser'>(
80
+ options: RunOptions,
81
+ journeyType: T = 'browser' as T
82
+ ): Promise<T extends 'api' ? APIDriver : Driver> {
76
83
  const { playwrightOptions } = options;
84
+
85
+ if (journeyType === 'api') {
86
+ const request = await apiRequest.newContext({ ...playwrightOptions });
87
+ return { request } as T extends 'api' ? APIDriver : Driver;
88
+ }
89
+
90
+ await Gatherer.launchBrowser(options);
91
+
77
92
  const context = await Gatherer.browser.newContext({
78
93
  ...playwrightOptions,
79
94
  userAgent: await Gatherer.getUserAgent(playwrightOptions?.userAgent),
@@ -96,7 +111,13 @@ export class Gatherer {
96
111
  const page = await context.newPage();
97
112
  const client = await context.newCDPSession(page);
98
113
  const request = await apiRequest.newContext({ ...playwrightOptions });
99
- return { browser: Gatherer.browser, context, page, client, request };
114
+ return {
115
+ browser: Gatherer.browser,
116
+ context,
117
+ page,
118
+ client,
119
+ request,
120
+ } as T extends 'api' ? APIDriver : Driver;
100
121
  }
101
122
 
102
123
  static async getUserAgent(userAgent?: string) {
@@ -136,14 +157,22 @@ export class Gatherer {
136
157
  * Starts recording all events related to the v8 devtools protocol
137
158
  * https://chromedevtools.github.io/devtools-protocol/v8/
138
159
  */
139
- static async beginRecording(driver: Driver, options: RunOptions) {
160
+ static async beginRecording(driver: Driver | APIDriver, options: RunOptions) {
140
161
  log('Gatherer: started recording');
141
162
  const { network, metrics } = options;
142
163
  Gatherer.pluginManager = new PluginManager(driver);
143
164
  Gatherer.pluginManager.registerAll(options);
144
- const plugins = [await Gatherer.pluginManager.start('browserconsole')];
145
- network && plugins.push(await Gatherer.pluginManager.start('network'));
146
- metrics && plugins.push(await Gatherer.pluginManager.start('performance'));
165
+ const plugins = [];
166
+ if ('browser' in driver) {
167
+ plugins.push(await Gatherer.pluginManager.start('browserconsole'));
168
+ network && plugins.push(await Gatherer.pluginManager.start('network'));
169
+ metrics &&
170
+ plugins.push(await Gatherer.pluginManager.start('performance'));
171
+ } else {
172
+ // Network is the only data source for API journeys, so always capture
173
+ // it regardless of `options.network`.
174
+ plugins.push(await Gatherer.pluginManager.start('network'));
175
+ }
147
176
  await Promise.all(plugins);
148
177
  return Gatherer.pluginManager;
149
178
  }
@@ -153,10 +182,12 @@ export class Gatherer {
153
182
  await Gatherer.pluginManager.unregisterAll();
154
183
  }
155
184
 
156
- static async dispose(driver: Driver) {
185
+ static async dispose(driver: Driver | APIDriver) {
157
186
  log(`Gatherer: closing all contexts`);
158
187
  await driver.request.dispose();
159
- await driver.context.close();
188
+ if ('context' in driver) {
189
+ await driver.context.close();
190
+ }
160
191
  }
161
192
 
162
193
  static async stop() {
@@ -26,7 +26,7 @@
26
26
  import Runner from './runner';
27
27
 
28
28
  /**
29
- * Use a gloabl Runner which would be accessed by the runtime and
29
+ * Use a global Runner which would be accessed by the runtime and
30
30
  * required to handle the local vs global invocation through CLI
31
31
  */
32
32
  const SYNTHETICS_RUNNER = Symbol.for('SYNTHETICS_RUNNER');
package/src/core/index.ts CHANGED
@@ -24,6 +24,10 @@
24
24
  */
25
25
 
26
26
  import {
27
+ APIJourney,
28
+ APIJourneyCallback,
29
+ APIJourneyOptions,
30
+ APIJourneyWithAnnotations,
27
31
  Journey,
28
32
  JourneyCallback,
29
33
  JourneyOptions,
@@ -60,6 +64,30 @@ export const journey = createJourney() as JourneyWithAnnotations;
60
64
  journey.skip = createJourney('skip');
61
65
  journey.only = createJourney('only');
62
66
 
67
+ const createAPIJourney = (type?: 'skip' | 'only') =>
68
+ wrapFnWithLocation(
69
+ (
70
+ location: Location,
71
+ options: APIJourneyOptions | string,
72
+ callback: APIJourneyCallback
73
+ ) => {
74
+ log(`API Journey register: ${JSON.stringify(options)}`);
75
+ if (typeof options === 'string') {
76
+ options = { name: options, id: options };
77
+ }
78
+ const j = new APIJourney(options, callback, location);
79
+ if (type) {
80
+ j[type] = true;
81
+ }
82
+ runner._addJourney(j);
83
+ return j;
84
+ }
85
+ );
86
+
87
+ export const apiJourney = createAPIJourney() as APIJourneyWithAnnotations;
88
+ apiJourney.skip = createAPIJourney('skip');
89
+ apiJourney.only = createAPIJourney('only');
90
+
63
91
  const createStep = (type?: 'skip' | 'soft' | 'only') =>
64
92
  wrapFnWithLocation(
65
93
  (location: Location, name: string, callback: VoidCallback) => {