Skip to content

Releases: elastic/synthetics

v1.0.0-beta.36

30 Sep 15:50
Compare
Choose a tag to compare

Features

Project based lightweight monitors

In addition to pushing Project based browser monitors to Monitor management UI, the agent now supports pushing existing lightweight monitors directly from the heartbeat.yml files #542. Users can directly import the existing heartbeat.yml files in to their Synthetics project and configure the required project settings (Kibana host, auth key, locations, etc.) and run the push command.

  1. Create a new Synthetics project using npx @elastic/synthetics init <dir-name> and configure the project related settings.
  2. Copy the existing heartbeat.yml files in to the synthetics project directory. Example
   // heartbeat.yml example
  - type: http
    enabled: true
    id: my-monitor
    name: My Monitor
    urls: ["http://localhost:9200"]
    schedule: @every 10m
    locations: ["singapore"]
    private_locations: ["private-1"]
    timeout: 16s
  1. Override the schedule, locations and private locations for specific monitors. Otherwise the defaults would be picked from synthetics.config.ts files.
  2. Run the push command SYNTHETICS_API_KEY=<key> npm run push

Browser version

  • Playwright version has been updated to 1.26.0, this means the tests will be run on Google Chrome/106.0.5249.30.

Bug fixes

  • Transfer size of network requests now includes both the response header and body sizes #615

Full Changelog: v1.0.0-beta.35...v1.0.0-beta.36

v1.0.0-beta.35

19 Sep 19:40
Compare
Choose a tag to compare

Features

  • Agent now prompts a warning question in interactive mode when users attempt to run push command without any active monitors which would nuke an entire project #598
  • Users can suppress all prompt questions when running push command with --yes or -y flag #602
    SYNTHETICS_API_KEY="key" npx @ealstic/synthetics push --yes

Full Changelog: v1.0.0-beta.34...v1.0.0-beta.35

v1.0.0-beta.34

14 Sep 19:21
Compare
Choose a tag to compare

Features

  • Synthetics push command now supports bundling external packages from node_modules folder for browser monitors, users can now use external packages utility packages like lodash, moment.js, etc, in their synthetics scripts and push them instantaneously to Kibana. #580

    Example journey code below using an external package is-positive from NPM.

    // test.journey.ts
    import { journey, step, monitor, expect } from '@elastic/synthetics';
    import isPositive from 'is-positive';
    
    journey('bundle test', ({ page, params }) => {
      step('check if positive', () => {
        expect(isPositive(4)).toBe(true);
      });
    });

    If you run npm run push inside the synthetics project, we would bundle the whole journey file along with the package is-positive to make the experience smooth. However, there are a few caveats when pushing external modules.

    1. Packages that use native bindings will not work.
    2. Users cannot push bundles that are more than 800 Kilobytes.
  • Introduce configuring project monitor settings in the Synthetics config file #592. Comes in handy when running push command, users would be able to configure project-related settings like projectId, kibana host, and schedule and save them for successive runs.

  • Support the SYNTHETICS_API_KEY env variable for Kibana authentication when pushing monitors to Kibana #588

Full Changelog: v1.0.0-beta.33...v1.0.0-beta.34

v1.0.0-beta.33

06 Sep 23:34
Compare
Choose a tag to compare

Bug Fixes

  • Issue individual requests when pushing monitors to Kibana. This is to avoid timeout issues when monitors are pushed without streaming support #586

Full Changelog: v1.0.0-beta.32...v1.0.0-beta.33

v1.0.0-beta.32

24 Aug 22:31
Compare
Choose a tag to compare

Features

  • Improve the scaffolding experience of init command by setting up a brand new synthetics project by automatically connecting to your Kibana instance. With this, creating synthetics monitors and pushing them to Kibana becomes a lot easier #566
npx @elastic/synthetics init [project]

cd <project> && SYNTHETICS_API_KEY=<api-key> npm run push

Setting up the project is a one time operation, Once the init command is done, Synthetics agent stores the project releated settings under project.json file. From then, users can push all the synthetics monitors by specifying just the authentication key. If users want to push the monitors under different Kibana instance, project, spaces etc. They can do so by passing the CLI options explicitly.

npx @elastic/synthetics --url <url> --project <name> --space <kibana-spaces>
  • Introduce a new CLI command locations to list all the available public and private locations for running synthetic monitoring across the globe.
// List all the available global locations managed by Elastic for running synthetics monitors
npx @elastic/synthetics locations


// List all managed locations as well as custom private locations
npx @elastic/synthetics locations --url <kibana-host> --auth <api-key>
  • Warns when users accidently trying to push same sets of monitors under different project name #566
  • Push command now can display progress in the terminal whenever monitors are created, updated and deleted along with errors #576

Bug Fixes

  • Report error when monitors with duplicate ids are pushed to Kibana #568
  • Allow CLI sub commands(push, locations, init) to receive common options #572
  • Bundled push monitor contents must be idempotent, this caused performance issues in the Kibana side when monitors were updated every time user ran the push command #579
  • Report warnings in the terminal when Kibana fails to delete stale monitors #565

Full Changelog: v1.0.0-beta.31...v1.0.0-beta.32

v1.0.0-beta.31

27 Jul 15:39
Compare
Choose a tag to compare

Features

  • Expose request context as part of the Journey if you want to make calls to the
    HTTP API of your application. #555

Bug Fixes

  • Push command fails to push the monitors in windows platform #553

Full Changelog: v1.0.0-beta.30...v1.0.0-beta.31

v1.0.0-beta.30

28 Jun 16:48
Compare
Choose a tag to compare

Bug Fixes

  • fix: use fixed playwright version to avoid running in to dependency warnings #540

Full Changelog: v1.0.0-beta.29...v1.0.0-beta.30

v1.0.0-beta.29

22 Jun 14:22
Compare
Choose a tag to compare

Bug fixes

  • Setup github workflow template correctly #529
  • Stop pushing monitors on bundle errors #530
  • Delete stale monitors by default on push command #534
  • Allow controlling timeouts via actions #532
  • Remove trailing slash from Kibana host #536

Full Changelog: v1.0.0-beta.28...v1.0.0-beta.29

v1.0.0-beta.28

13 Jun 17:28
Compare
Choose a tag to compare

Features

  • Now that push only supports configurations in the current working directory, it also allows users to use the --match, --pattern and --tags flags to filter which journeys to push #523
  • The init command now generates more detailed examples, and includes documentation reference #524

Bug fixes

  • Upgrade sharp version to avoid known vulnerabilities #519
  • Update source-map-support so that we use correct filepaths when bundling and pushing monitors #520

Full Changelog: v1.0.0-beta.27...v1.0.0-beta.28

v1.0.0-beta.27

03 Jun 15:43
Compare
Choose a tag to compare

Features

  • Use Kibana Uptime APIKeys instead of Basic Auth for pushing monitors #512
  • Update all the available Synthetics test node locations #515
  • Interactive scaffolding using the npx @elastic/synthetics init <dir> command, allows users to choose default test location and schedule for the monitors to be pushed to Kibana #508

Bug fixes

  • Write .gitignore files for scaffolding instead of managing under assets #510
  • Preserve the original User-Agent string if the user configured the value and do not append 'Elastic/Synthetics' identifier #514
  • Override the PlaywrightOptions when configured via CLI and Synthetics config file #517