Skip to content

[FEATURE] Synthetics and Monitors #2434

Open
@synhershko

Description

@synhershko

This is a request for creating a Monitors section under Observability which allows to monitor status and health for services, certificates, http endpoints, hosts (via tcp / ping) and anything else that'd fall into the defined schema of "Up" and "Down" statuses.

It should also be possible to define Monitors not only on boolean up / down statuses but also on an avg latency.

Synthetics are the source of most (if not all) of data that Monitors would monitor.

For this feature to be developed efficiently, I propose that we focus on ingestion and display of existing synthetics monitoring agents (such as heartbeat) instead of developing one from scratch. Synthetics ingestion should be created in such a way to allow for this flexibility, mapping any synthetic to a up / down status, and an optional numeric value that a monitor can attach to and create a threshold.

There needs to be Alerting integration as well, but it's likely out of scope for this feature request.

So the steps required for this feature -

  1. Define a list of initial synthetics monitoring agents to support. heartbeat would be the first.
  2. Given the above list, settle on a schema that would serve opensearch-synthetics.
  3. Define an ingestion architecture. I propose a dedicated ingestion pipeline for synthetics which can take an indexing input with a source hint, and translate to the defined schema which essentially should always have up/down (or fail/success), @timestamp and a metric (to represent "time took" for example in http sampling, "time since", "time to" for example in cert expiration test, etc)
  4. Monitors UI where monitors would be defined and displayed. Monitor definitions would be saved in an .observability-monitors index.
  5. Follow up with spec'ing Alerting ingegration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions