An open API service indexing awesome lists of open source software.

https://github.com/financial-times/dotcom-reliability-kit

🪨 A well tested suite of tools designed to help FT.com applications be more reliable and measurable
https://github.com/financial-times/dotcom-reliability-kit

reliability-kit

Last synced: 3 months ago
JSON representation

🪨 A well tested suite of tools designed to help FT.com applications be more reliable and measurable

Awesome Lists containing this project

README

          


FT.com Reliability Kit

Reliability Kit is a well tested suite of tools designed to help FT.com applications be more reliable and measurable.

## Usage guide

We maintain documentation in this repo:

* **The [getting started guide](./docs/getting-started/#readme)** is the best place to begin, it guides you through good error handling practices and how you can use Reliability Kit to improve your app's error handling

* **The package README files** in this monorepo contain technical documentation. They can be found in the [`packages` folder](./packages/). A brief outline of what each package does is listed here:

* **[@dotcom-reliability-kit/app-info](./packages/app-info/#readme):**

A utility to get application information (e.g. the system code) in a consistent way

* **[@dotcom-reliability-kit/biome-config](./packages/biome-config/#readme):**

A Biome configuration focused on resolving code quality and reliability issues without making any code style decisions.

* **[@dotcom-reliability-kit/client-metrics-web](./packages/client-metrics-web/README.md):**

A lightweight client for sending operational metrics events from the browser to the Customer Products Client Metrics Server.

* **[@dotcom-reliability-kit/crash-handler](./packages/crash-handler/#readme):**

A method to bind an uncaught exception handler to ensure that fatal application errors are logged. It is a replacement for Sentry fatal error logging.

* **[@dotcom-reliability-kit/errors](./packages/errors/#readme):**

A suite of error classes which help you throw the most appropriate error in any situation

* **[@dotcom-reliability-kit/eslint-config](./packages/eslint-config/#readme):**

A linting config, specifically focussed on enhancing code quality and proactively catching errors/bugs before they make it into production.

* **[@dotcom-reliability-kit/fetch-error-handler](./packages/fetch-error-handler/#readme):**

Properly handle fetch errors and avoid a lot of boilerplate in your app.

* **[@dotcom-reliability-kit/log-error](./packages/log-error/#readme):**

A method to consistently log error object with optional request information

* **[@dotcom-reliability-kit/logger](./packages/logger/#readme):**

A simple and fast logger based on [Pino](https://getpino.io/), with FT preferences baked in

* **[@dotcom-reliability-kit/middleware-allow-request-methods](./packages/middleware-allow-request-methods/README.md):**

Express middleware that returns 405 (rather than 404) for disallowed request methods

* **[@dotcom-reliability-kit/middleware-log-errors](./packages/middleware-log-errors/#readme):**

Express middleware to consistently log errors

* **[@dotcom-reliability-kit/middleware-render-error-info](./packages/middleware-render-error-info/#readme):**

Express middleware to render error information in a browser in a way that makes local debugging easier

* **[@dotcom-reliability-kit/opentelemetry](./packages/opentelemetry/#readme):**

An [OpenTelemetry](https://opentelemetry.io/docs/what-is-opentelemetry/) client that's preconfigured for drop-in use in FT apps.

* **[@dotcom-reliability-kit/serialize-error](./packages/serialize-error/#readme):**

A utility function to serialize an error object in a way that's friendly to loggers, view engines, and converting to JSON

* **[@dotcom-reliability-kit/serialize-request](./packages/serialize-request/#readme):**

A utility function to serialize a request object in a way that's friendly to loggers, view engines, and converting to JSON

* **Example projects** illustrate more real-world examples of how to use Reliability Kit. These live in separate repositories:

* **[Express example](https://github.com/Financial-Times/reliability-kit-example-express#readme):**

An example of how to use Reliability Kit with an [Express](https://expressjs.com/)-based application

* **[Serverless example](https://github.com/Financial-Times/reliability-kit-example-serverless#readme):**

An example of how to use Reliability Kit with a [Serverless](https://www.serverless.com/) application

## Design

To understand the design decisions we made when building this project, [read the design guide here](docs/design.md).

## Contributing

[The contributing guide is available here](docs/contributing.md). You can find a [roadmap with planned work here](https://github.com/orgs/Financial-Times/projects/111).

## Support

[The support that we aim to offer is available here](docs/support.md).

## License

Licensed under the [MIT](LICENSE) license.

Copyright © 2022, The Financial Times Ltd.