# Synthetic monitoring without docker

**URL:** https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840
**Category:** Synthetics
**Tags:** synthetics
**Created:** [December 7, 2020, 11:58am UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840 "2020-12-07T11:58:00Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Wolfram\_Haussig](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/wolfram_haussig/32/70528_2.png) [@Wolfram\_Haussig](https://discuss.elastic.co/u/Wolfram_Haussig)
#### Post date: [December 7, 2020, 11:58am UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/1 "2020-12-07T11:58:00Z")

</div>

Hi,

I wanted to test the synthetic monitoring in my test environment using the documentation found [here](https://www.elastic.co/guide/en/observability/7.10/synthetics-visualize.html) but I only saw a quickstart for docker. Is it possible to use synthetics without docker?

Best regards  
Wolfram

PS:  
I followed the link in the documentation to this subforum: [Topics tagged synthetics](https://discuss.elastic.co/tags/c/observability/uptime/75/synthetics)  
Creating a ticket there failed with the following error(translated from german):

> The selected tag cannot be used.  
> An error occured while marking the topic.

After removing the `synthetics` keyword solved the problem...

---

<div class="post-metadata">

### Author: ![PaulB-Elastic](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/paulb-elastic/32/78691_2.png) [@PaulB-Elastic](https://discuss.elastic.co/u/PaulB-Elastic)
#### Post date: [December 7, 2020, 12:43pm UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/2 "2020-12-07T12:43:56Z")

</div>

Hi,

Whilst the Docker implementation simplifies dependencies etc., you can try running it outside of Docker as well. If you look [here](https://www.elastic.co/guide/en/observability/7.10/synthetics-create-test.html#synthetics-inline-journey), it shows how you can run an inline style of monitor, from the command line (look at the `cat...` example).

Similarly, [this](https://www.elastic.co/guide/en/observability/7.10/synthetics-create-test.html#synthetics-test-suite) shows you how to run a suite from the command line.

Thanks for the info about not being able to create this in the synthetics category, we will get that fixed.

---

<div class="post-metadata">

### Author: ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)
#### Post date: [December 7, 2020, 1:28pm UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/3 "2020-12-07T13:28:59Z")

</div>

> [@PaulB-Elastic](#):
>
> Thanks for the info about not being able to create this in the synthetics category, we will get that fixed.

Solved now. Thanks for reporting.

---

<div class="post-metadata">

### Author: ![Wolfram\_Haussig](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/wolfram_haussig/32/70528_2.png) [@Wolfram\_Haussig](https://discuss.elastic.co/u/Wolfram_Haussig)
#### Post date: [December 8, 2020, 12:44pm UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/4 "2020-12-08T12:44:20Z")

</div>

Hi,

I have still problems getting it to work running HeartBeat 7.10. According to your documentation I should use type `browser`:

```auto
heartbeat.monitors:
- type: browser
  id: my-monitor 
  name: My Monitor
  schedule: "@every 1m"
  script: |- 
    step("load homepage", async () => {
        await page.goto('https://www.elastic.co');
    });
    step("hover over products menu", async () => {
        await page.hover('css=[data-nav-item=products]');
    });

```

If I try this (in a monitors.d file) I get the following error:

```auto
- type: browser
  id: app-ui-test
  name: app-ui-test
  schedule: "@every 1m"
  script: |-
    step("Open application", async () => {
      await page.goto('https://myhost:8443/myApp/');

```

> Error creating runner from config: monitor type browser does not exist, valid types are [http synthetics/http icmp synthetics/icmp tcp synthetics/tcp]

Should I use `synthetics/http` instead or do I have to download a specific heartbeat version?

If I try to run my tests as a test suite like this nothing happens at all(not even a log entry):

```auto
heartbeat.synthetic_suites:
- name: myApp
  path: "/logserver/applications/heartbeat-7.10.0-linux-x86_64/monitors.d/app-ui-tests/"
  schedule: "@every 1m"

```

The directory structure of the app-ui-tests directory looks like this:

```auto
app-ui-tests
- node_modules
  - ...
- package.json
- package-lock.json
- myapp.journey.ts

```

When running standalone using `npx @elastic/synthetics .` it works on my windows machine but not on our Linux system because of missing certificates. I found [this](https://github.com/microsoft/playwright/issues/2814) solution in the playwright github but couldn't find a way to configure this in the elastic synthetics - can you give me a hint?

Best regards  
Wolfram

---

<div class="post-metadata">

### Author: ![Wolfram\_Haussig](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/wolfram_haussig/32/70528_2.png) [@Wolfram\_Haussig](https://discuss.elastic.co/u/Wolfram_Haussig)
#### Post date: [December 14, 2020, 5:15am UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/5 "2020-12-14T05:15:28Z")

</div>

Hello @PaulB-Elastic,

I am sorry to bother you again - could you help me out with the above question as I still didn't get it to work?

Best regards  
Wolfram

---

<div class="post-metadata">

### Author: ![Andrew\_Cholakian1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/andrew_cholakian1/32/3612_2.png) [@Andrew\_Cholakian1](https://discuss.elastic.co/u/Andrew_Cholakian1)
#### Post date: [December 14, 2020, 2:56pm UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/6 "2020-12-14T14:56:37Z")

</div>

Hi @Wolfram_Haussig , we currently do not support running synthetics outside of a container. The main reason being that supporting running headless browsers on multiple operating systems, with different versions of node, graphics libraries etc. would take away from our ability to focus on core features for the product. As you can probably imagine there's a lot that can go wrong here, and we'd like to focus more on getting the docker experience right (which is already complex) without the burden of supporting all those other configurations.

That said, we'd very much like to support running synthetics without docker in the future when the rest of the product is further along. One thing that would help us is if you could tell us why you either cannot or would prefer not to run with Docker?

---

<div class="post-metadata">

### Author: ![Andrew\_Cholakian1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/andrew_cholakian1/32/3612_2.png) [@Andrew\_Cholakian1](https://discuss.elastic.co/u/Andrew_Cholakian1)
#### Post date: [December 14, 2020, 3:34pm UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/7 "2020-12-14T15:34:59Z")

</div>

@Wolfram_Haussig re: certificates this [issue](https://github.com/microsoft/playwright/issues/1799#issuecomment-731734494) here might be a good temporary workaround, it looks looks more promising with `agentOptions`, used to set custom TLS settings. That said, there's definitely room for improvement on our end.

I've opened [synthetics#170](https://github.com/elastic/synthetics/issues/170) and [synthetics#171](https://github.com/elastic/synthetics/issues/171) to cover enhancements here.

---

<div class="post-metadata">

### Author: ![Wolfram\_Haussig](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/wolfram_haussig/32/70528_2.png) [@Wolfram\_Haussig](https://discuss.elastic.co/u/Wolfram_Haussig)
#### Post date: [December 15, 2020, 7:40am UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/8 "2020-12-15T07:40:30Z")

</div>

Hello @Andrew_Cholakian1

> [@Andrew\_Cholakian1](#):
>
> The main reason being that supporting running headless browsers on multiple operating systems, with different versions of node, graphics libraries etc. would take away from our ability to focus on core features for the product

Maybe I do not understand what HeartBeat does in this case but I would think that if I get the `npx @elastic/synthetics .` to work on my machine HeartBeat could simply call that and process the output? I am not saying that you have to support that if you are uncomfortable with that(it is still experimental in any case) but it would open this feature for more users.

> [@Andrew\_Cholakian1](#):
>
> One thing that would help us is if you could tell us why you either cannot or would prefer not to run with Docker?

The main reason is that all our systems are running on baremetal servers so we do not have the experience to use container. If all our applications would be running in a container already we wouldn't have this discussion here but it is hard to argument that we need additional tools "just" to run monitoring software. Another point is that the main part of our servers are managed by a third party so we do not have root access to easily install software. Therefore, we are currently using the tar.gz versions of the Beats which we can use with our limited users.

> [@Andrew\_Cholakian1](#):
>
> re: certificates this [issue](https://github.com/microsoft/playwright/issues/1799#issuecomment-731734494) here might be a good temporary workaround

As synthetics monitoring does not work without containers I will wait for future updates. Thank you for looking this up!

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [January 8, 2021, 8:43am UTC](https://discuss.elastic.co/t/synthetic-monitoring-without-docker/257840/10 "2021-01-08T08:43:08Z")

</div>

This topic was automatically closed 24 days after the last reply. New replies are no longer allowed.
