synthetics

Synthetic Monitoring with Real Browsers

MIT License

Downloads
107.3K
Stars
65
Committers
22

Bot releases are visible (Hide)

synthetics - v1.12.1 Latest Release

Published by obltmachine about 2 months ago

1.12.1 (2024-08-27)

Bug Fixes

  • deps: update engine in package lock and release sharp update (#947) (c51c0b7)
synthetics - v1.12.0

Published by github-actions[bot] 3 months ago

1.12.0 (2024-08-02)

Features

synthetics - v1.11.1

Published by github-actions[bot] 3 months ago

1.11.1 (2024-07-31)

Bug Fixes

  • deps: updgrade micromatch and archiever (#941) (4fcf638)
  • log screenshot errors during debug mode (#942) (41588ed)
synthetics - v1.11.0

Published by github-actions[bot] 3 months ago

1.11.0 (2024-07-16)

Features

  • measure startup delay and journey duration (#709) (2de3bce)
synthetics - v1.10.0

Published by github-actions[bot] 3 months ago

1.10.0 (2024-07-09)

Bug Fixes

  • Push command only pushed newly created/updated monitors instead of pushing all monitors in local(#939) (686f95a)
  • update playwright to 1.45.1 (#938) (2d26404)

Features

  • Add support for Project based lightweight monitors to run at @every 10s and @every 30s intervals (#932) (edaef90)
synthetics - v1.9.1

Published by github-actions[bot] 6 months ago

1.9.1 (2024-05-06)

Bug Fixes

  • avoid consuming kibana response twice (#921) (d2ae1ff)
  • update deps undici and follow-redirects (#924) (eb68ad3)
  • update pw to 1.43.1 and fix expect types (#923) (66eec16)
synthetics - v1.9.0

Published by github-actions[bot] 7 months ago

1.9.0 (2024-04-05)

Features

synthetics - v1.8.0

Published by github-actions[bot] 7 months ago

1.8.0 (2024-03-28)

Bug Fixes

  • redact sensitive req/response headers by default (#904) (0b5ffa7)

Features

  • add support for --config option in push command (#908) (9494973)
  • support yml anchors during push command (#903) (63e5e4a)
synthetics - v1.7.2

Published by github-actions[bot] 8 months ago

1.7.2 (2024-02-23)

Bug Fixes

  • allow overriding enabled/retestOnFailure via global config (#896) (27182c6)
  • push disabled lightweight monitor correctly (#899) (f3d578a)
synthetics - v1.7.1

Published by github-actions[bot] 9 months ago

1.7.1 (2024-02-02)

Bug Fixes

  • Update Playwright dependency to 1.41.2 #891
synthetics - v1.7.0

Published by github-actions[bot] 9 months ago

1.7.0 (2024-01-31)

Features

  • Added support for .only and .skip in Journey and Step functions which would allow only the particular journey and step to run and get skipped when running them locally #880
journey.only('test journey', ({}) => {
  step.skip('step 1', async () => {
    console.log('step 1');
  });

  step.only('step 2', async () => {
    console.log('step 2');
  });
});

  • Additional, there is a way to do soft assertion on the Step level by marking the step with .soft. Failure of soft step will not skip rest of the steps in the journey.
journey('test journey', ({}) => {
  step.soft('step 1', async () => {
   // errored step
    expect('').toEqual('hello');
  });
    // step 2 will still run
  step('step 2', async () => {
    // errored step
    expect('').toEqual('hello');
  });
});

  • Double monitor bundle size to 1500Kb when using npx @elastic/synthetics push command which is then used for bundling all project monitors, previously this was set to 800Kb #882
  • Enable minification of whitespaces when bundling the project monitors. This provided huge savings compared to enabling other options and also simpler when reconstructing the source #886
synthetics - v1.6.0

Published by github-actions[bot] 10 months ago

Features

  • Add buildkite CLI reporter to pretty print the logs for buildkite pipelines #872. We can use the new reporter via the runner
npx @elastic/synthetics journeys --reporter=buildkite-cli 
  • Update playwright version to 1.40.1 and update formatter to support the new actions #871
  • Add Kibana internal origin header to support serverless projects #873

Full Changelog: https://github.com/elastic/synthetics/compare/v1.5.3...v1.6.0

synthetics - v1.5.3

Published by github-actions[bot] 12 months ago

1.5.3 (2023-11-10)

Bug Fixes

  • Fix playwright package version mismatch with the other playwright dependencies #868

Full Changelog: https://github.com/elastic/synthetics/compare/v1.5.2...v1.5.3

synthetics - v1.5.2

Published by github-actions[bot] 12 months ago

Bug Fixes

  • Normalize monitor names when bundling #861
  • Remove top level errors from pageerror events #862

Full Changelog: https://github.com/elastic/synthetics/compare/v1.5.1...v1.5.2

synthetics - v1.5.1

Published by github-actions[bot] 12 months ago

Bug Fixes

  • Capture primitive errors that are thrown inside journeys and report it in json reporter #856
  • Increase the connection timeout for project monitors when working with Private Locations #852
synthetics - v1.5.0

Published by github-actions[bot] about 1 year ago

Features

  • Playwright Test expect assertions are supported natively in the Synthetics tests. Users can start using all of the official Playwright assertions except for the unsupported ones Snapshot Assertions toHaveScreenshot and toMatchSnapshot #812
    import { journey, step, expect } from '@elastic/synthetics';
    
    journey('testing example.com', ({ page }) => {
      step('load homepage', async () => {
        await page.goto('https://example.com/');
        await expect(page).toHaveTitle('Example Domain');
      });
    });
    
  • Better error stack traces for failed tests with highlighted codeframes to the source location. This makes it easier to visualize the origin of the error on CLI and on the Synthetics Kibana UI #826
  Journey: testing stack trace
    ✖  Step: 'load homepage' failed (183 ms)

    Error: Asdas

      15 |   step("load homepage", async () => {
      16 |     await page.goto("https://example.com/");
    > 17 |     throw new Timeout("Asdas");
          |           ^
      18 |   });
      19 | });
      20 |

        at (/synthetics-project/journeys/errors.journey.ts:17:11)
  • Support remote fetching configurations inside the Synthetics config files, Helps for configuring synthetics monitors based of fetching configurations from other systems like Vault/S3 etc.
    // synthetics.config.ts
    
    export default async env => {
      const params = await loadParams();
      const config: SyntheticsConfig = {
          params,
          monitors: {schedule: 10}
      }
      return config;
    };
    
  • Retesting will be enabled by default on the Synthetics monitors when used along with the stack 8.11. Users can disable the retests by manually passing monitor configuration option #845
   monitor.use({ retestOnFailure: false });
  • Agent now captures all unhandled rejections that happens across the whole browser context, this means if the exceptions occur on a different page than the first page, these errors would be captured and reported back #835
  • Browser console log messages will be captured even for successful journeys, this makes the debugging part easier. For successful journeys, the limit is 100 with console.error messages being preferred over other types #817
  • Playwright version has been upgraded to 1.38.1, this means the Chrome version used for the tests would be the latest Chromium 117.0.5938.62

Bug Fixes

  • Dry run mode now logs the tests when using the default reporter #827
  • Headless Option from config file is now passed correctly #838
  • Throw better error message if Kibana version parsing fails when pushing project monitors #821
synthetics - v1.4.0

Published by vigneshshanmugam about 1 year ago

Features

  • Users now import devices directly from the @elastic/synthetics inside their journeys instead of importing from @playwright-core which might not work as expected when running project monitors #810
    // synthetics.config.ts
    import { devices } from "@elastic/synthetics"
    
    export default {
      playwrightOptions: {
        ...devices['Galaxy S9+'],
      },
    }
    
  • Headless option has been brought back to the CLI flags, Users can now disable headless mode by passing --no-headless flag options #813
  • Playwright version has been upgraded to 1.37 which includes Chrome version 116.0.5845.82 - #816

Bug Fixes

  • Now bundling project monitors also tracks changes in the imported files along with the changes made on journey files which will update the monitors correctly #802
  • Url and Auth flags has been made optional for locations command, Its only required if users are interested in listing their privateLocations #814
  • Update typescript typings for Kibana version #818

Full Changelog: https://github.com/elastic/synthetics/compare/v1.3.0...v1.4.0

synthetics - v1.3.0

Published by vigneshshanmugam over 1 year ago

Potential Breaking Changes ❗

  • Tags and Match CLI flags have been removed when using the npx @elastic/synthetics push command since we never intended project monitors to have support for filtering when pushed to Synthetics Kibana app.

The main intention of Push command at any synthetics project was to deploy the current state of the monitors to our globally managed infrastructure. Any time we detect a change, whether its an Create or update/delete, the monitor status will get updated based on those changes. Having the ability to allow filtering during the deploy works against the model and brings in more problems. With that said, there are other ways to manage the synthetics monitors.

  1. Creating multiple synthetics projects or managing them under different folders where each project-a/synthetics.config.ts and project-b/synthetics.config.ts would have their own Kibana settings.
  2. Using multiple Kibana spaces for organizing the monitors.
     npx @elastic/synthetics push --space <name>
    

NOTE: Tags and Match for filtering are still supported when running the tests locally as we want the Synthetics runner to have the ability to grep and run any journey/tests.

Features

  • Monitor tags can be configured for all project based lightweight and browser monitors either via the synthetics.config.ts file or using the monitor.use API.

    {
      monitor: {
        tags: ["global1", "global2"]
      },
    };
    

    For Individual browser monitors we can use monitor.use(tags: ["local"]) or for lightweight monitors on the yml file.

     heartbeat.monitors:
     - type: http
        tags: 
          - tag1
          - tag2
    
  • Users can enable TLS and Status alerts for Project based lightweight and browser monitors. Alerts can be configured both globally via synthetics.config.ts file or on individual monitors #785 #795

    {
      monitor: {
        alert: {
          status: {
            enabled: true,
          }
        },
      },
    };
    

    For lightweight monitors, it can be configured via the yml syntax.

     alert.status.enabled: true
     alert.tls.enabled: false
    

Full Changelog: https://github.com/elastic/synthetics/compare/v1.2.0...v1.3.0

synthetics - v1.2.0

Published by vigneshshanmugam over 1 year ago

Features

  • Playwright version has been updated to 1.35.0 which updates the Chromium browser to 115.0.5790.13
  • Browser console events including warn and errors are captured automatically for all iframes, popups etc which was missing previously. Console events in general are reported only reported when the synthetic tests fail #784

Full Changelog: https://github.com/elastic/synthetics/compare/v1.1.0...v1.2.0

synthetics - v1.1.0

Published by vigneshshanmugam over 1 year ago

Features

  • Parameters defined in the Synthetics config file, CLI flags will be sent as part of the Lightweight monitors for the kibana version >= 8.8.0 #725

Bug fixes

  • Use correct schedule when scaffolding projects using init command #771
  • Replace reference to the Kibana uptime app with Synthetics app #770

Docs

Full Changelog: https://github.com/elastic/synthetics/compare/v1.0.0...v1.1.0