Synthetic Monitoring with Real Browsers
MIT License
Bot releases are visible (Hide)
Published by vigneshshanmugam over 1 year ago
--pattern
, --tags
, --match
flags same as their browser journey counterparts #761Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.46...v1.0.0
Published by vigneshshanmugam over 1 year ago
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.45...v1.0.0-beta.46
Published by vigneshshanmugam over 1 year ago
navigationTimeout
and actionTimeout
via PlaywrightOptions
configuration https://github.com/elastic/synthetics/pull/742
playwrightOptions: {
navigationTimeout: 60000, // 60 seconds
actionTimeout: 10000 // 10 seconds
}
Existing synthetics journeys that have a explicit timeout on the locator and other playwright API's will not be affected.
await page.goto("url", { timeout: 1000}) // not affected
await page.locator(".test", {timeout: 1000}) // not affected
load
or other events https://github.com/elastic/synthetics/pull/747
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.44...v1.0.0-beta.45
Published by vigneshshanmugam over 1 year ago
push command
#724push
command #732Note: Playwright version is upgraded to v1.32.3
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.43...v1.0.0-beta.44
Published by vigneshshanmugam over 1 year ago
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.42...v1.0.0-beta.43
Published by vigneshshanmugam over 1 year ago
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.41...v1.0.0-beta.42
Published by vigneshshanmugam over 1 year ago
data-test-id
via PlaywrightOptions
, this would help in the tests for locating the element via the custom attributes via page.getByTestId #7061.31.1
heartbeat.monitors
to lightweight scaffolding template #696--pattern
option when help command is run #710Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.40...v1.0.0-beta.41
Published by vigneshshanmugam almost 2 years ago
ts-node
to esbuild
for transforming the TypeScript
files at runtime. This includes journeys, synthetics config files which are .ts
extensions and transform the files at runtime along with full source-map support. One of the advantage this provides is the ability to use the same esbuild
API for both transpiling and bundling of the monitors #687Synthetics config
or by setting throttling: false
#690init
command is called multiple times inside a Synthetics project #688Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.39...v1.0.0-beta.40
Published by vigneshshanmugam almost 2 years ago
init
command #650init
command #658Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.38...v1.0.0-beta.39
Published by vigneshshanmugam almost 2 years ago
Improve the validation of project monitor schedule
for both browser and lightweight monitors. Error would be thrown if users would configure monitor schedule that are not supported. For lightweight monitors, we would save the schedule to the nearest supported schedule frequency #622
Current allowed schedule values are 1, 3, 5, 10, 15, 30, 60 minutes respectively.
Improve the push command experience by showing the monitor management URL link once the push has been completed successfully #637
Playwright version has been updated to 1.27.1
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.37...v1.0.0-beta.38
Published by vigneshshanmugam about 2 years ago
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.36...v1.0.0-beta.37
Published by vigneshshanmugam about 2 years ago
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.
npx @elastic/synthetics init <dir-name>
and configure the project related settings.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
schedule
, locations
and private locations
for specific monitors. Otherwise the defaults would be picked from synthetics.config.ts
files.SYNTHETICS_API_KEY=<key> npm run push
1.26.0
, this means the tests will be run on Google Chrome/106.0.5249.30
.Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.35...v1.0.0-beta.36
Published by vigneshshanmugam about 2 years ago
--yes
or -y
flag #602
SYNTHETICS_API_KEY="key" npx @ealstic/synthetics push --yes
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.34...v1.0.0-beta.35
Published by vigneshshanmugam about 2 years ago
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. https://github.com/elastic/synthetics/pull/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.
800 Kilobytes
.Introduce configuring project monitor settings in the Synthetics config file https://github.com/elastic/synthetics/pull/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 https://github.com/elastic/synthetics/pull/588
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.33...v1.0.0-beta.34
Published by vigneshshanmugam about 2 years ago
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.32...v1.0.0-beta.33
Published by vigneshshanmugam about 2 years ago
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 #566npx @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>
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>
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.31...v1.0.0-beta.32
Published by vigneshshanmugam about 2 years ago
request
context as part of the Journey if you want to make calls to theFull Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.30...v1.0.0-beta.31
Published by vigneshshanmugam over 2 years ago
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.29...v1.0.0-beta.30
Published by lucasfcosta over 2 years ago
Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.28...v1.0.0-beta.29
Published by lucasfcosta over 2 years ago
--match
, --pattern
and --tags
flags to filter which journeys to push #523init
command now generates more detailed examples, and includes documentation reference #524source-map-support
so that we use correct filepaths when bundling and pushing monitors #520Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0-beta.27...v1.0.0-beta.28