Skip to main content

Browser Journey

Browser Journey

Plugin: dem.plugin Module: journey

Maintained by Netdata

Overview​

Monitor whether browser workflow checks execute and pass with real Playwright Test. Inspect test outcomes, attempt durations and retained failure details.

Runs the configured Playwright Test entry with sandboxed Chromium at the native job interval, using one worker without retries. Workflows can perform the actions their scripts request on the target website. Configuration Test validates preparation without executing the workflow.

This collector is only supported on the following platforms:

  • Linux

This collector supports collecting metrics from multiple instances of this integration.

PermissionNeeded when
Execute the prepared Node runtime and sandboxed ChromiumEvery browser attempt
Write to the DEM state directoryRetaining history and optional captures
Read the entry file and its importsUsing script_path

Default Behavior​

Auto-Detection​

Jobs require explicit configuration; no websites or scripts are discovered automatically.

Limits​

Empty suites, skipped tests and expected failures cannot establish successful coverage. A failed check takes precedence over incomplete coverage. Waiting and running attempts retain the prior result for diagnosis; that observation becomes stale after two collection intervals and does not imply recovery. Failure screenshots are disabled unless requested.

Performance Impact​

Each attempt starts a fresh browser and consumes CPU, memory and target website requests. Increasing update_every reduces frequency. Jobs share one browser admission slot, so concurrent due jobs can wait. Optional captures consume local disk space.

Setup​

Prerequisites​

Prepare the browser runtime​

Configure the Node executable, pinned Playwright and Lighthouse dependencies, and full Chromium binary in the runtime section of dem.conf. Chromium must run with its sandbox enabled as the Netdata service account. Restart dem.plugin after changing runtime paths; the plugin does not download dependencies. Follow the DEM runtime preparation guide for the pinned versions and setup commands.

Configuration​

Options​

Options apply independently to each native job.

Configuration options
GroupOptionDescriptionDefaultRequired
JourneynameNative job name used to identify this monitor and its history. Renaming creates a separate monitor.yes
scriptInline Playwright Test JavaScript or TypeScript source. Leave empty when using Script path.no
script_pathAbsolute path to a readable Playwright Test JavaScript or TypeScript entry file. Leave empty when using Script.no
Secretssecrets[].nameUnique environment variable name starting with DEM_SECRET_, followed by letters, digits or underscores.no
secrets[].valueCredential value or a native secret reference, such as ${env:WORKFLOW_PASSWORD}.no
Diagnosisscreenshot_on_failureSave a screenshot when a workflow check fails. Screenshots can contain sensitive page content; timeout capture is best effort.nono
Collectionupdate_everyData collection interval, in seconds.900no
timeoutBrowser attempt timeout, in seconds. Waiting for another browser attempt is excluded.120no

via File​

The configuration file name for this integration is dem/journey.conf.

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config dem/journey.conf
Examples​
Monitor a home page​

Create one native browser monitor after preparing the runtime.

Examples
jobs:
- name: home
script: |
import { test, expect } from '@playwright/test';
test('home page', async ({ page }) => {
await page.goto('https://example.org/');
await expect(page).toHaveTitle(/Example Domain/);
});

Alerts​

The following alerts are available:

Alert nameOn metricDescription
dem_journey_failed dem_synthetic.execution_stateLatest fresh journey attempt failed or timed out for ${label:_collect_job}

Metrics​

Metrics grouped by scope.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.

Each native job has its own chart identity. Attempt duration excludes waiting for admission. Missing observations are omitted.

Per job​

One configured native browser monitor.

This scope has no labels.

Metrics:

MetricDescriptionDimensionsUnit
dem_synthetic.execution_stateSynthetic attempt outcomeunknown, success, failed, timeout, inconclusive, error, cancelledstate
dem_synthetic.durationSynthetic attempt durationdurationmilliseconds
dem_synthetic.journey.declared_testsDeclared journey testsdeclaredtests
dem_synthetic.journey.test_outcomesJourney test outcomespassed, failed, timed_out, skipped, expected_failure, not_runtests

Live Data​

Use these process-wide Functions through the Agent or Cloud for both journey and Lighthouse jobs. Invoke their public synthetics-* names with the documented filters; no job selector or active browser is required.

Synthetic monitors​

Invoke synthetics-checks. Active native monitors and their latest observation. Disabled and failed-startup configuration remains in native job status. Freshness belongs to the last observation, independently of a waiting or running attempt.

AspectDescription
NameSynthetics-checks
Require Cloudno
PerformanceReads local active snapshots and retained evidence without starting a browser or acquiring browser admission. Artifact fetch reads at most 5 MiB.
SecurityRequires member-equivalent access for observations and retained text; artifact bytes require administrator-equivalent access. Captures and reports may contain sensitive URLs, page content and user input; they are not universally redacted.
AvailabilityAvailable while dem.plugin is running, independently of active journey or Lighthouse jobs. Individual retained evidence may be absent or expired.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
Monitor (job_id)stringNative module and job name, such as journey:checkout. Leave empty to include all monitors when listing.no
Kind (kind)stringFilter by journey or lighthouse. Leave empty to include both kinds.no
Maximum rows (limit)stringMaximum returned rows, from 1 to 2000. Defaults to 2000; truncated indicates additional matching rows.no2000

Returns​

At most limit active jobs, with independent current-attempt state and last-observation freshness. The response includes process artifact retained_bytes, protected_bytes and cleanup_errors under artifacts. Disabled and failed-startup jobs are visible through native configuration status.

ColumnTypeUnitVisibilityDescription
job_idstringMonitor.
kindstringKind.
namestringName.
targetstringTarget.
statestringCurrent state.
freshbooleanLast observation fresh.
run_idstringLast run.
outcomestringLast outcome.
completed_ustimestampLast completion. Unix microseconds; null when unavailable.
duration_msfloatmsAttempt duration.
last_success_ustimestampLast success in this activation. Unix microseconds; null when unavailable.
last_failure_ustimestampLast failure in this activation. Unix microseconds; null when unavailable.
errorstringLast error.
history_errorstringHistory error.

Synthetic runs​

Invoke synthetics-runs. Retained attempts selected by start time, with their latest retained outcome even when completion is outside the range. after and before include their entire Unix second or accept negative offsets from now; omitted bounds cover retained history through now. Results are capped at 2000 and disclose truncation.

AspectDescription
NameSynthetics-runs
Require Cloudno
PerformanceReads local active snapshots and retained evidence without starting a browser or acquiring browser admission. Artifact fetch reads at most 5 MiB.
SecurityRequires member-equivalent access for observations and retained text; artifact bytes require administrator-equivalent access. Captures and reports may contain sensitive URLs, page content and user input; they are not universally redacted.
AvailabilityAvailable while dem.plugin is running, independently of active journey or Lighthouse jobs. Individual retained evidence may be absent or expired.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
Monitor (job_id)stringNative module and job name, such as journey:checkout. Leave empty to include all monitors when listing.no
Kind (kind)stringFilter by journey or lighthouse. Leave empty to include both kinds.no
Outcome (outcome)stringFilter by unknown, success, failed, timeout, inconclusive, error or cancelled. Leave empty for all outcomes.no
Started after (after)stringInclusive run start-time lower bound in Unix seconds or a negative offset from now. Leave empty for all retained history.no
Started before (before)stringInclusive run start-time upper bound in Unix seconds or a negative offset from now. Leave empty for the current time.no
Maximum rows (limit)stringMaximum returned rows, from 1 to 2000. Defaults to 2000; truncated indicates additional matching rows.no2000

Returns​

At most limit retained attempts selected by start time, with explicit truncated and effective time bounds. Zero or missing execution timestamps and missing durations are null rather than fabricated measurements.

ColumnTypeUnitVisibilityDescription
run_idstringRun.
job_idstringMonitor.
kindstringKind.
namestringName.
targetstringTarget.
started_ustimestampStarted. Unix microseconds; null when unavailable.
completed_ustimestampCompleted. Unix microseconds; null when unavailable.
outcomestringOutcome.
duration_msfloatmsAttempt duration.
capture_statestringCapture state.
errorstringError.
history_errorstringHistory error.

Synthetic run detail​

Invoke synthetics-run. One retained or latest active attempt, independent of picker bounds, with original test phases, errors, counts, nullable lab measurements and bounded reporter events. Missing completion means no verified terminal observation.

AspectDescription
NameSynthetics-run
Require Cloudno
PerformanceReads local active snapshots and retained evidence without starting a browser or acquiring browser admission. Artifact fetch reads at most 5 MiB.
SecurityRequires member-equivalent access for observations and retained text; artifact bytes require administrator-equivalent access. Captures and reports may contain sensitive URLs, page content and user input; they are not universally redacted.
AvailabilityAvailable while dem.plugin is running, independently of active journey or Lighthouse jobs. Individual retained evidence may be absent or expired.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
Monitor (job_id)stringExact native module and job name that owns the requested run, such as journey:checkout.yes
Run (run_id)stringExact run identifier returned by synthetic inventory or run history.yes

Returns​

One row per retained reporter event, preserving actual and expected status and failure phase. The run object also contains test counts, nullable lab metrics, capture state, artifact metadata and history errors; dropped_events discloses omitted event detail.

ColumnTypeUnitVisibilityDescription
at_mstimestampEvent time. Unix milliseconds.
kindstringEvent.
test_idstringTest.
titlestringTitle.
phasestringPhase.
statusstringActual status.
expected_statusstringExpected status.
duration_msfloatmsDuration.
messagestringMessage.

Synthetic artifacts​

Invoke synthetics-artifact. Retained capture metadata for one run; file bytes are verified when fetched. Supplying artifact_id requests base64-encoded bytes and requires administrator-equivalent permissions. Screenshots and HTML reports may contain sensitive content. Missing retained files are expired or unavailable; fetches are limited to 5 MiB.

AspectDescription
NameSynthetics-artifact
Require Cloudno
PerformanceReads local active snapshots and retained evidence without starting a browser or acquiring browser admission. Artifact fetch reads at most 5 MiB.
SecurityRequires member-equivalent access for observations and retained text; artifact bytes require administrator-equivalent access. Captures and reports may contain sensitive URLs, page content and user input; they are not universally redacted.
AvailabilityAvailable while dem.plugin is running, independently of active journey or Lighthouse jobs. Individual retained evidence may be absent or expired.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
Monitor (job_id)stringExact native module and job name that owns the requested run, such as journey:checkout.yes
Run (run_id)stringExact run identifier returned by synthetic inventory or run history.yes
Artifact (artifact_id)stringExact recorded artifact identifier to fetch its bytes. Leave empty to list capture metadata.no

Returns​

Recorded capture metadata with retained-manifest availability. Fetch verifies content and returns encoding=base64 and data_base64 without rendering HTML. A missing recorded capture returns expired_or_unavailable, which does not prove why the file is absent.

ColumnTypeUnitVisibilityDescription
artifact_idstringArtifact.
kindstringKind.
mimestringContent type.
bytesintegerbytesSize.
sha256stringSHA-256.
availabilitystringAvailability.

Troubleshooting​

Other Problems​

No conclusive observations​

Inspect native job status and synthetic inventory for runtime preparation errors, waiting attempts or execution inability. Open the latest retained run for errors and actual failure phases. Missing measurements are gaps; stale, inconclusive and cancelled observations are not recovery.


Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.