revere

command module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 21, 2022 License: BSD-3-Clause Imports: 2 Imported by: 0

README

Revere

codecov

Revere is a service communicating Terra's uptime and status to end-users (like a metaphorical Paul Revere).

Revere cares about services and components. A service is an internal application or codebase, something that we can directly monitor. A component is a piece of user-facing functionality, something that impacts customers and clients.

Revere operates like this:

  1. Accept status information about services from event sources:
    1. Cloud Monitoring Alerts via Cloud Pub/Sub
  2. Translate those events to impacts on components
  3. Communicate those impacts to end-users:
    1. Statuspage.io

Usage

Revere is started via CLI:

go run main.go

Docker images are built automatically and are uploaded to dsp-artifact-registry.

Configuration

Viper reads the configuration file and allows a wide range of formats; documentation here uses YAML.

Viper reads a file given by --config via CLI, or looks for revere.yaml in the following directories:

  1. ./
  2. /etc/revere/

The configuration file's format is defined by internal/config.go.

Development

Repository Structure
.
├── cmd/
│   └── # CLI commands
├── docs/
│   └── # Long-form documentation
├── internal/
│   ├── api/
│   │   └── # Barebones API routes
│   ├── cloudmonitoring/
│   │   └── # Data types from Google Cloud Monitoring
│   ├── configuration/
│   │   └── # Data types for Revere's config file
│   ├── pubsub/
│   │   └── # Handling for Google Pub/Sub
│   ├── shared/
│   │   └── # Shared utility functions
│   ├── state/
│   │   └── # Data types for Revere's internal state
│   ├── statuspage/
│   │   └── # Data types and handling for Atlassian Statuspage
│   └── version/
│       └── # Run-time reference to Revere's own version
└── main.go # CLI entrypoint
Git Policy

go fmt should be run before pushed commits.

Do not manually tag commits. This repository has Bumper enabled, Git tags will be created automatically on merge to main. Patch version will be automatically bumped upon merge; including "#minor" or "#major" in the merge commit body will bump that instead.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL