Releases: elastic/synthetics
v1.0.0-beta.36
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.
- Create a new Synthetics project using
npx @elastic/synthetics init <dir-name>
and configure the project related settings. - 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
- Override the
schedule
,locations
andprivate locations
for specific monitors. Otherwise the defaults would be picked fromsynthetics.config.ts
files. - 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 onGoogle 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
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 #602SYNTHETICS_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
Features
-
Synthetics push command now supports bundling external packages from
node_modules
folder for browser monitors, users can now use external packages utility packages likelodash, moment.js, etc,
in their synthetics scripts and push them instantaneously to Kibana. #580Example 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 packageis-positive
to make the experience smooth. However, there are a few caveats when pushing external modules.- Packages that use native bindings will not work.
- 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 likeprojectId
,kibana host
, andschedule
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
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
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
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
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
v1.0.0-beta.28
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
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