Skip to content

Alerting Endpoint Server

Alexandre Lamarre edited this page Feb 17, 2023 · 8 revisions

Alerting Endpoint Server

Summary:

The alerting endpoint server is used to store user specifications to create notification endpoints for use with all other Alerting features.

Table of contents

Architecture:

Alerting Gateway

Endpoint CRUD

Description

Create, Read, Update and Delete endpoint configurations in the Opni Alerting Endpoint Server

Dataflow

Alerting APIs Dataflow - Endpoints CRUD(2)

Responsibilities

  • Persist endpoint user configurations
  • Validate input information

Corresponding UI element(s)

Description

  • Alerting/Endpoints admin UI page

Screenshots

Alerting Endpoints

Input and output interfaces

Accepts GRPC proto messages, converts them to OpniReceiver interfaces. OpniReceiver interfaces Must construct to valid AlertManager receivers.

Restrictions & Limitations

Converts to underlying AlertManager receiver structs, therefore:

  • to extend functionality (by writing methods on receiver structs), we must freeze the receiver code into pkg/alerting code
    • !! ensure that the frozen code matches the AlertManager version used by the AlertingBackend
  • any endpoint configuration must convert to an always valid receiver struct

Performance Issues

  • (K,V) stores that maintain many/all revisions (like etcd) can lead to update performance issues

Security:

  • Endpoint storage interface is wrapped in an Alerting Secret store interface, which allows backend processes to request unredacted information, and any read call defaults to redacted (such as from the UI)

Scale and performance:

A description of how the system will be scaled and the expected performance characteristics, including any performance metrics that will be used to measure success.

High availability:

Tied to Gateway High Availability.

Testing:

Testplan

WIP

Unit tests

  • Unit tests cover redacting and unredacting secrets in protocol buffers defining AlertEndpoints
  • Alerting storage client set tests the alerting endpoint storage

Integration tests

  • Integration tests cover creating endpoints through GRPC apis

e2e tests

N/A

Manual testing

Verify we can Create, Update and Delete endpoints through the UI.

Clone this wiki locally