Skip to content
This repository has been archived by the owner on May 23, 2023. It is now read-only.
/ appcat-sli-exporter Public archive

A Prometheus exporter to measure the SLIs of AppCat Services

License

Notifications You must be signed in to change notification settings

vshn/appcat-sli-exporter

Repository files navigation

AppCat SLI Exporter

Build Go version Version GitHub downloads

⚠️ This repository and its content has been moved to appcat

The ApppCat SLI Exporter is a Prometheus that automatically detects AppCat services and measures uptime SLIs.

Building

See make help for a list of build targets.

  • make build: Build binary for linux/amd64
  • make build -e GOOS=darwin -e GOARCH=arm64: Build binary for macos/arm64
  • make docker-build: Build Docker image for local environment

Metrics

The exporter exposes a histogram appcat_probes_seconds with four labels

  • service, the service type that was probed (e.g. VSHNPostgreSQL)
  • namespace, the namespace of the claim that was monitored
  • name, the name of the claim that was monitored
  • reason, if the probe was successful. Can either be success, fail-timeout, or fail-unkown

Architecture

.
├── config // Kustomize files to deploy the exporter
├── controllers
│   └── vshnpostgresql_controller.go // starts probes for VSHNPostgreSQL claims
├── Dockerfile
├── main.go
├── probes
│   ├── manager.go // manages all started probes and exposes metrics
│   └── postgresql.go // prober implementation for postgresql
├── README.md
└── tools.go

Adding a Prober

To add a prober for a new service, add a file in probes/ that adds another implementation of the Prober interface.

Adding an AppCat service

There should be a separate controller per AppCat Claim type. Add another controller for each service that should be probed.

Adding SLA exceptions

If possible SLA exceptions should be implemented as a middleware for the Prober interface.