Best Practice For Private Locations (Synthetics)

Hello, Elastic!

I had a couple questions for you regarding best practices for utilizing Private Locations with Synthetics.

I'll explain the two scenarios:

1 - We currently have two Elastic Stacks (dev and prod). The 'dev' Elastic Stack hosts Synthetics that point to resources on both our development and staging environments. The 'prod' Elastic Stack hosts Synthetics that point to resources on our production environment.

For the 'dev' Elastic stack, we have one Private Location that encompasses all of the Synthetics (the ones aimed at dev resources and staging resources).

For the 'prod' Elastic stack, we have one Private Location that encompasses the Synthetics that are aimed at production resources.

2 - In the near future we plan to reduce this to one Elastic Stack that will have Synthetics that will point at dev, staging and production resources.

My two questions are:

  • For scenario 1, would it be considered best practice to have our 'dev' Elastic Stack have two Private Locations instead of the current one (one for dev resource Synthetics and one for staging resource Synthetics)?

  • (answering 1 might very well answer this question) For scenario 2, with one Elastic Stack, would it be considered best practice to have three Private Locations, one for each product environment (dev/stg/prod)?

Thanks in advance!

1 Like

Hi @ameindel,

thank you for you query. At Elastic, we strive to keep components as flexible as possible so that different users and vendors can configure them the way which suits their infrastructure and domain requirements. So, you and your team can best decide what will be better.

As for one private location or separate private locations, you may want to consider the scalability concerns e.g. see. We've received interest in allowing Private Locations to be horizontally scalable and introduce load balancing among multiple agents registered to one Private Location, but that implementation is not prioritized yet.

In my personal opinion, if your project has "configuration as code" setup to configure Elastic stack or your project configures the environment where Elastic Agent runs (where the Synthetics tests will actually run), then you should have separate instances of the stack for each dev/stg/prod. But if the Elastic stack is configured independently of your project, keeping in view the scalability, you could have one private location configured on one stack while running different set of monitors where each set represents each env dev/stg/prod. To distinguish between sets, you can tag the monitors or use different projects so that it's easier to drill down for each env.

You may also consider that fact that, if you want to setup alerts for monitor failures, then what level isolation you need to setup alerts.

2 Likes

Thank you for the reply, Abdul! I will relay this info to my team.

Thanks again!

Adam

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