Skip to content

AnatolyRugalev/observ

Repository files navigation

observ: Observability Testing

observ is a set of Go test tools to simplify testing of observability data generated by applications.

Status

This toolkit is stable enough to use in tests.

API will likely have some breaking changes between minor pre-v1 releases, but I will put as much effort as reasonably possible to provide upgrade instructions, compatibility layers and tools with each breaking change.

How To Use

Sorry, this is very early release, please take a look at hello_test.go to see how it works.

Why

The code of modern Go app has a lot of metadata that can be used to accompany regular tests. Some ideas:

  1. Testing asyncronous components (e.g. block the test until the log message is emitted)
  2. Testing cache hits: just check Prometheus counter instead of mocking
  3. Creating rules for log format: when application logs follow a contract (e.g. used in data pipelines, served from the API
  4. Testing correctness of mission-critical metrics (e.g. metrics used in autoscaling and alerting)

Roadmap

  1. More log collectors
  2. Documentation and more examples
  3. More assertion functions
  4. Test coverage and CI
  5. Tracing support

Contribution

There are no rules for contribution yet. Open and issue or PR if you feel like it.

testify

A part of testify is copied into this repo to fix bad error traces. This code is licensed via MIT License, same as observ.

About

Golang observability testing library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages